diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/VerifyingSession.java | 8 |
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; |