diff options
-rwxr-xr-x | services/core/java/com/android/server/pm/PackageManagerService.java | 13 |
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); |