diff options
Diffstat (limited to 'core/java/android')
4 files changed, 11 insertions, 6 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 4e22cc15b253..685eedc31303 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -1920,8 +1920,8 @@ public class ApplicationPackageManager extends PackageManager { private int installExistingPackageAsUser(String packageName, int installReason, int userId) throws NameNotFoundException { try { - int res = mPM.installExistingPackageAsUser(packageName, userId, 0 /*installFlags*/, - installReason); + int res = mPM.installExistingPackageAsUser(packageName, userId, + INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS, installReason, null); if (res == INSTALL_FAILED_INVALID_URI) { throw new NameNotFoundException("Package " + packageName + " doesn't exist"); } diff --git a/core/java/android/content/pm/IPackageInstaller.aidl b/core/java/android/content/pm/IPackageInstaller.aidl index 8e840796e953..b0b2c33e0ddd 100644 --- a/core/java/android/content/pm/IPackageInstaller.aidl +++ b/core/java/android/content/pm/IPackageInstaller.aidl @@ -52,7 +52,7 @@ interface IPackageInstaller { in IntentSender statusReceiver, int userId); void installExistingPackage(String packageName, int installFlags, int installReason, - in IntentSender statusReceiver, int userId); + in IntentSender statusReceiver, int userId, in List<String> whiteListedPermissions); void setPermissionsResult(int sessionId, boolean accepted); } diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 6ab4657d727d..a7eecd7f4306 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -634,7 +634,7 @@ interface IPackageManager { int getInstallLocation(); int installExistingPackageAsUser(String packageName, int userId, int installFlags, - int installReason); + int installReason, in List<String> whiteListedPermissions); void verifyPendingInstall(int id, int verificationCode); void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay); diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java index 89eabc285e38..3cecd7f88045 100644 --- a/core/java/android/content/pm/PackageInstaller.java +++ b/core/java/android/content/pm/PackageInstaller.java @@ -627,6 +627,10 @@ public class PackageInstaller { * Install the given package, which already exists on the device, for the user for which this * installer was created. * + * <p>This will + * {@link PackageInstaller.SessionParams#setWhitelistedRestrictedPermissions(Set) whitelist + * all restricted permissions}. + * * @param packageName The package to install. * @param installReason Reason for install. * @param statusReceiver Where to deliver the result. @@ -639,8 +643,9 @@ public class PackageInstaller { @Nullable IntentSender statusReceiver) { Preconditions.checkNotNull(packageName, "packageName cannot be null"); try { - mInstaller.installExistingPackage(packageName, 0, installReason, statusReceiver, - mUserId); + mInstaller.installExistingPackage(packageName, + PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS, installReason, + statusReceiver, mUserId, null); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } |
