Dont check for "no_install_unknown_sources" for installs from privileged sources.
Installs from privileged sources should only check for "no_install_apps"
retriction.
Bug: 324305636
Test: Manual. Follow repro steps in the bug
Change-Id: I64197ebed16098306c349f62e84f183d61903b4d
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java b/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java
index 3fea599..c6a7a35 100644
--- a/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java
@@ -154,7 +154,7 @@
mAbortInstall = true;
}
- checkDevicePolicyRestrictions();
+ checkDevicePolicyRestrictions(isTrustedSource);
final String installerPackageNameFromIntent = getIntent().getStringExtra(
Intent.EXTRA_INSTALLER_PACKAGE_NAME);
@@ -304,12 +304,17 @@
return callingUid == installerUid;
}
- private void checkDevicePolicyRestrictions() {
- final String[] restrictions = new String[] {
- UserManager.DISALLOW_INSTALL_APPS,
- UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
- UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY
- };
+ private void checkDevicePolicyRestrictions(boolean isTrustedSource) {
+ String[] restrictions;
+ if(isTrustedSource) {
+ restrictions = new String[] { UserManager.DISALLOW_INSTALL_APPS };
+ } else {
+ restrictions = new String[] {
+ UserManager.DISALLOW_INSTALL_APPS,
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY
+ };
+ }
final DevicePolicyManager dpm = getSystemService(DevicePolicyManager.class);
for (String restriction : restrictions) {