am 9352af2a: Merge "Remove dependencies on the package installer\'s package name" into mnc-dev

* commit '9352af2a9ef95e3f577a04474625249d3da62a04':
  Remove dependencies on the package installer's package name
This commit is contained in:
Svetoslav Ganov
2015-07-29 18:17:56 +00:00
committed by Android Git Automerger
7 changed files with 53 additions and 11 deletions

View File

@@ -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 {

View File

@@ -505,4 +505,6 @@ interface IPackageManager {
void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId);
boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId);
String getPermissionControllerPackageName();
}

View File

@@ -1875,14 +1875,6 @@ public abstract class PackageManager {
public static final String ACTION_REQUEST_PERMISSIONS =
"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>
@@ -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;
}

View File

@@ -489,7 +489,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
// User needs to accept permissions; give installer an intent they
// can use to involve user.
final Intent intent = new Intent(PackageInstaller.ACTION_CONFIRM_PERMISSIONS);
intent.setPackage("com.android.packageinstaller");
intent.setPackage(mContext.getPackageManager().getPermissionControllerPackageName());
intent.putExtra(PackageInstaller.EXTRA_SESSION_ID, sessionId);
try {
mRemoteObserver.onUserActionRequired(intent);

View File

@@ -3195,6 +3195,13 @@ public class PackageManagerService extends IPackageManager.Stub {
}
}
@Override
public String getPermissionControllerPackageName() {
synchronized (mPackages) {
return mRequiredInstallerPackage;
}
}
/**
* Checks if the request is from the system or an app that has INTERACT_ACROSS_USERS
* or INTERACT_ACROSS_USERS_FULL permissions, if the userid is not for the caller.

View File

@@ -181,6 +181,12 @@ public class MockPackageManager extends PackageManager {
throw new UnsupportedOperationException();
}
/** @hide */
@Override
public String getPermissionControllerPackageName() {
throw new UnsupportedOperationException();
}
@Override
public boolean addPermission(PermissionInfo info) {
throw new UnsupportedOperationException();

View File

@@ -171,6 +171,11 @@ public class BridgePackageManager extends PackageManager {
return false;
}
@Override
public String getPermissionControllerPackageName() {
return null;
}
@Override
public boolean addPermission(PermissionInfo info) {
return false;