summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xservices/core/java/com/android/server/pm/PackageManagerService.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 99535b6..9471cff 100755
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -8051,17 +8051,22 @@ public class PackageManagerService extends IPackageManager.Stub {
*
* @return true if verification should be performed
*/
- private boolean isVerificationEnabled(int flags) {
+ private boolean isVerificationEnabled(int userId, int flags) {
if (!DEFAULT_VERIFY_ENABLE) {
return false;
}
+ boolean ensureVerifyAppsEnabled = isUserRestricted(userId, UserManager.ENSURE_VERIFY_APPS);
+
// Check if installing from ADB
if ((flags & PackageManager.INSTALL_FROM_ADB) != 0) {
// Do not run verification in a test harness environment
if (ActivityManager.isRunningInTestHarness()) {
return false;
}
+ if (ensureVerifyAppsEnabled) {
+ return true;
+ }
// Check if the developer does not want package verification for ADB installs
if (android.provider.Settings.Global.getInt(mContext.getContentResolver(),
android.provider.Settings.Global.PACKAGE_VERIFIER_INCLUDE_ADB, 1) == 0) {
@@ -8069,6 +8074,10 @@ public class PackageManagerService extends IPackageManager.Stub {
}
}
+ if (ensureVerifyAppsEnabled) {
+ return true;
+ }
+
return android.provider.Settings.Global.getInt(mContext.getContentResolver(),
android.provider.Settings.Global.PACKAGE_VERIFIER_ENABLE, 1) == 1;
}
@@ -8639,7 +8648,7 @@ public class PackageManagerService extends IPackageManager.Stub {
*/
final int requiredUid = mRequiredVerifierPackage == null ? -1
: getPackageUid(mRequiredVerifierPackage, userIdentifier);
- if (requiredUid != -1 && isVerificationEnabled(flags)) {
+ if (requiredUid != -1 && isVerificationEnabled(userIdentifier, flags)) {
final Intent verification = new Intent(
Intent.ACTION_PACKAGE_NEEDS_VERIFICATION);
verification.setDataAndType(getPackageUri(), PACKAGE_MIME_TYPE);