summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2015-07-29 17:54:23 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-29 17:54:23 +0000
commit9352af2a9ef95e3f577a04474625249d3da62a04 (patch)
treeb4f13ca45bea5c9fdac99b42dd91c7b948593e92 /core/java/android
parent6b96de8dae8be99f75c86c795672905e10fca153 (diff)
parentf1b7f20bb839c96e8254ccb65398135f10fd45d9 (diff)
downloadframeworks_base-9352af2a9ef95e3f577a04474625249d3da62a04.zip
frameworks_base-9352af2a9ef95e3f577a04474625249d3da62a04.tar.gz
frameworks_base-9352af2a9ef95e3f577a04474625249d3da62a04.tar.bz2
Merge "Remove dependencies on the package installer's package name" into mnc-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java20
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl2
-rw-r--r--core/java/android/content/pm/PackageManager.java22
3 files changed, 34 insertions, 10 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 1fb0b2a..dbe91f9 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -110,6 +110,9 @@ final class ApplicationPackageManager extends PackageManager {
@GuardedBy("mDelegates")
private final ArrayList<MoveCallbackDelegate> mDelegates = new ArrayList<>();
+ @GuardedBy("mLock")
+ private String mPermissionsControllerPackageName;
+
UserManager getUserManager() {
synchronized (mLock) {
if (mUserManager == null) {
@@ -429,6 +432,23 @@ final class ApplicationPackageManager extends PackageManager {
}
}
+ /**
+ * @hide
+ */
+ @Override
+ public String getPermissionControllerPackageName() {
+ synchronized (mLock) {
+ if (mPermissionsControllerPackageName == null) {
+ try {
+ mPermissionsControllerPackageName = mPM.getPermissionControllerPackageName();
+ } catch (RemoteException e) {
+ throw new RuntimeException("Package manager has died", e);
+ }
+ }
+ return mPermissionsControllerPackageName;
+ }
+ }
+
@Override
public boolean addPermission(PermissionInfo info) {
try {
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index bc24d67..0336645 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -505,4 +505,6 @@ interface IPackageManager {
void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId);
boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId);
+
+ String getPermissionControllerPackageName();
}
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index cda5816..0f936fd 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -1876,14 +1876,6 @@ public abstract class PackageManager {
"android.content.pm.action.REQUEST_PERMISSIONS";
/**
- * The component name handling runtime permission grants.
- *
- * @hide
- */
- public static final String GRANT_PERMISSIONS_PACKAGE_NAME =
- "com.android.packageinstaller";
-
- /**
* The names of the requested permissions.
* <p>
* <strong>Type:</strong> String[]
@@ -2431,7 +2423,17 @@ public abstract class PackageManager {
* @return Whether the permission is restricted by policy.
*/
@CheckResult
- public abstract boolean isPermissionRevokedByPolicy(String permName, String pkgName);
+ public abstract boolean isPermissionRevokedByPolicy(@NonNull String permName,
+ @NonNull String pkgName);
+
+ /**
+ * Gets the package name of the component controlling runtime permissions.
+ *
+ * @return The package name.
+ *
+ * @hide
+ */
+ public abstract String getPermissionControllerPackageName();
/**
* Add a new dynamic permission to the system. For this to work, your
@@ -2615,7 +2617,7 @@ public abstract class PackageManager {
}
Intent intent = new Intent(ACTION_REQUEST_PERMISSIONS);
intent.putExtra(EXTRA_REQUEST_PERMISSIONS_NAMES, permissions);
- intent.setPackage(GRANT_PERMISSIONS_PACKAGE_NAME);
+ intent.setPackage(getPermissionControllerPackageName());
return intent;
}