summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/pm/Settings.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-03-19 19:24:04 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-03-19 19:24:04 -0700
commit09f5aededa1568f59bbe014ce5199ebca35a93b8 (patch)
tree99ccbe34f133d94ff79a4a0f94b84d29ddd6a024 /services/java/com/android/server/pm/Settings.java
parent975e04c24494cf4515a61f3bcf6b25fb5f565f4f (diff)
parentedc84ee8392afa0102f098168329db5bb43a6d4b (diff)
downloadframeworks_base-09f5aededa1568f59bbe014ce5199ebca35a93b8.zip
frameworks_base-09f5aededa1568f59bbe014ce5199ebca35a93b8.tar.gz
frameworks_base-09f5aededa1568f59bbe014ce5199ebca35a93b8.tar.bz2
Merge "Selective enforcement of READ_EXTERNAL_STORAGE."
Diffstat (limited to 'services/java/com/android/server/pm/Settings.java')
-rw-r--r--services/java/com/android/server/pm/Settings.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java
index 5da6ac9..363d020 100644
--- a/services/java/com/android/server/pm/Settings.java
+++ b/services/java/com/android/server/pm/Settings.java
@@ -20,6 +20,7 @@ import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+import static android.content.pm.PackageManager.ENFORCEMENT_DEFAULT;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.JournaledFile;
@@ -74,6 +75,9 @@ final class Settings {
private static final boolean DEBUG_STOPPED = false;
+ private static final String TAG_READ_EXTERNAL_STORAGE = "read-external-storage";
+ private static final String ATTR_ENFORCEMENT = "enforcement";
+
private final File mSettingsFilename;
private final File mBackupSettingsFilename;
private final File mPackageListFilename;
@@ -91,6 +95,8 @@ final class Settings {
int mInternalSdkPlatform;
int mExternalSdkPlatform;
+ int mReadExternalStorageEnforcement = ENFORCEMENT_DEFAULT;
+
/** Device identity for the purpose of package verification. */
private VerifierDeviceIdentity mVerifierDeviceIdentity;
@@ -864,13 +870,20 @@ final class Settings {
serializer.attribute(null, "internal", Integer.toString(mInternalSdkPlatform));
serializer.attribute(null, "external", Integer.toString(mExternalSdkPlatform));
serializer.endTag(null, "last-platform-version");
-
+
if (mVerifierDeviceIdentity != null) {
serializer.startTag(null, "verifier");
serializer.attribute(null, "device", mVerifierDeviceIdentity.toString());
serializer.endTag(null, "verifier");
}
+ if (mReadExternalStorageEnforcement != ENFORCEMENT_DEFAULT) {
+ serializer.startTag(null, TAG_READ_EXTERNAL_STORAGE);
+ serializer.attribute(
+ null, ATTR_ENFORCEMENT, Integer.toString(mReadExternalStorageEnforcement));
+ serializer.endTag(null, TAG_READ_EXTERNAL_STORAGE);
+ }
+
serializer.startTag(null, "permission-trees");
for (BasePermission bp : mPermissionTrees.values()) {
writePermissionLPr(serializer, bp);
@@ -1291,6 +1304,12 @@ final class Settings {
Slog.w(PackageManagerService.TAG, "Discard invalid verifier device id: "
+ e.getMessage());
}
+ } else if (TAG_READ_EXTERNAL_STORAGE.equals(tagName)) {
+ final String enforcement = parser.getAttributeValue(null, ATTR_ENFORCEMENT);
+ try {
+ mReadExternalStorageEnforcement = Integer.parseInt(enforcement);
+ } catch (NumberFormatException e) {
+ }
} else {
Slog.w(PackageManagerService.TAG, "Unknown element under <packages>: "
+ parser.getName());