Loading core/java/android/app/ApplicationPackageManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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 { Loading core/java/android/content/pm/IPackageManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -505,4 +505,6 @@ interface IPackageManager { void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId); boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId); String getPermissionControllerPackageName(); } core/java/android/content/pm/PackageManager.java +12 −10 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 Loading Loading @@ -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; } Loading services/core/java/com/android/server/pm/PackageInstallerSession.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading services/core/java/com/android/server/pm/PackageManagerService.java +7 −0 Original line number Diff line number Diff line Loading @@ -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. Loading Loading
core/java/android/app/ApplicationPackageManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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 { Loading
core/java/android/content/pm/IPackageManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -505,4 +505,6 @@ interface IPackageManager { void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId); boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId); String getPermissionControllerPackageName(); }
core/java/android/content/pm/PackageManager.java +12 −10 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 Loading Loading @@ -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; } Loading
services/core/java/com/android/server/pm/PackageInstallerSession.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
services/core/java/com/android/server/pm/PackageManagerService.java +7 −0 Original line number Diff line number Diff line Loading @@ -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. Loading