summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java4
-rw-r--r--core/java/android/content/pm/IPackageInstaller.aidl2
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl2
-rw-r--r--core/java/android/content/pm/PackageInstaller.java9
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();
}