summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/VerifyingSession.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/VerifyingSession.java b/services/core/java/com/android/server/pm/VerifyingSession.java
index dd2b409c7100..1a9e012a7c53 100644
--- a/services/core/java/com/android/server/pm/VerifyingSession.java
+++ b/services/core/java/com/android/server/pm/VerifyingSession.java
@@ -47,6 +47,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.DataLoaderType;
+import android.content.pm.Flags;
import android.content.pm.IPackageInstallObserver2;
import android.content.pm.PackageInfoLite;
import android.content.pm.PackageInstaller;
@@ -541,7 +542,12 @@ final class VerifyingSession {
}
final int verificationCodeAtTimeout;
- if (getDefaultVerificationResponse() == PackageManager.VERIFICATION_ALLOW) {
+ // Allows package verification to continue in the event the app being updated is verifying
+ // itself and fails to respond
+ if (Flags.emergencyInstallPermission() && requiredVerifierPackages.contains(
+ pkgLite.packageName)) {
+ verificationCodeAtTimeout = PackageManager.VERIFICATION_ALLOW_WITHOUT_SUFFICIENT;
+ } else if (getDefaultVerificationResponse() == PackageManager.VERIFICATION_ALLOW) {
verificationCodeAtTimeout = PackageManager.VERIFICATION_ALLOW_WITHOUT_SUFFICIENT;
} else {
verificationCodeAtTimeout = PackageManager.VERIFICATION_REJECT;