summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-05-11 15:49:00 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-05-11 15:49:00 -0700
commitf2fe4cb11b2b93acf1a983e856efe26b6bb79683 (patch)
tree08dd4a219ec6798d57998a0799952769570bf625 /services
parent07827454efef7f46d46e923a5091d8cf1e5d0d8c (diff)
parentcd5862586ab555b53ffd0a62488843838d1aa94d (diff)
downloadframeworks_base-f2fe4cb11b2b93acf1a983e856efe26b6bb79683.zip
frameworks_base-f2fe4cb11b2b93acf1a983e856efe26b6bb79683.tar.gz
frameworks_base-f2fe4cb11b2b93acf1a983e856efe26b6bb79683.tar.bz2
am cd586258: Merge "Enforce READ_EXTERNAL through Settings.Secure." into jb-dev
* commit 'cd5862586ab555b53ffd0a62488843838d1aa94d': Enforce READ_EXTERNAL through Settings.Secure.
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/pm/PackageManagerService.java13
-rw-r--r--services/java/com/android/server/pm/Settings.java5
2 files changed, 12 insertions, 6 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index d41cd5a..d7c5eea 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -98,6 +98,7 @@ import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserId;
+import android.provider.Settings.Secure;
import android.security.SystemKeyStore;
import android.util.DisplayMetrics;
import android.util.EventLog;
@@ -9259,7 +9260,8 @@ public class PackageManagerService extends IPackageManager.Stub {
mContext.enforceCallingOrSelfPermission(GRANT_REVOKE_PERMISSIONS, null);
if (READ_EXTERNAL_STORAGE.equals(permission)) {
synchronized (mPackages) {
- if (mSettings.mReadExternalStorageEnforced != enforced) {
+ if (mSettings.mReadExternalStorageEnforced == null
+ || mSettings.mReadExternalStorageEnforced != enforced) {
mSettings.mReadExternalStorageEnforced = enforced;
mSettings.writeLPr();
@@ -9284,7 +9286,6 @@ public class PackageManagerService extends IPackageManager.Stub {
@Override
public boolean isPermissionEnforced(String permission) {
- mContext.enforceCallingOrSelfPermission(GRANT_REVOKE_PERMISSIONS, null);
synchronized (mPackages) {
return isPermissionEnforcedLocked(permission);
}
@@ -9292,7 +9293,13 @@ public class PackageManagerService extends IPackageManager.Stub {
private boolean isPermissionEnforcedLocked(String permission) {
if (READ_EXTERNAL_STORAGE.equals(permission)) {
- return mSettings.mReadExternalStorageEnforced;
+ if (mSettings.mReadExternalStorageEnforced != null) {
+ return mSettings.mReadExternalStorageEnforced;
+ } else {
+ // if user hasn't defined, fall back to secure default
+ return Secure.getInt(mContext.getContentResolver(),
+ Secure.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT, 0) != 0;
+ }
} else {
return true;
}
diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java
index da0ec33..8b901b7 100644
--- a/services/java/com/android/server/pm/Settings.java
+++ b/services/java/com/android/server/pm/Settings.java
@@ -111,7 +111,7 @@ final class Settings {
int mInternalSdkPlatform;
int mExternalSdkPlatform;
- boolean mReadExternalStorageEnforced = PackageManager.DEFAULT_ENFORCE_READ_EXTERNAL_STORAGE;
+ Boolean mReadExternalStorageEnforced;
/** Device identity for the purpose of package verification. */
private VerifierDeviceIdentity mVerifierDeviceIdentity;
@@ -1147,8 +1147,7 @@ final class Settings {
serializer.endTag(null, "verifier");
}
- if (mReadExternalStorageEnforced
- != PackageManager.DEFAULT_ENFORCE_READ_EXTERNAL_STORAGE) {
+ if (mReadExternalStorageEnforced != null) {
serializer.startTag(null, TAG_READ_EXTERNAL_STORAGE);
serializer.attribute(
null, ATTR_ENFORCEMENT, mReadExternalStorageEnforced ? "1" : "0");