From 77fb7f69e4754c3548d7302afbfa50967e5403cc Mon Sep 17 00:00:00 2001 From: Winson Date: Fri, 11 Dec 2020 16:38:09 -0800 Subject: [PATCH] Skip clearing verification for apps marked with SystemConfig If a system app misconfigures their AndroidManifest.xml and does not declare autoVerify="true" in any of their intent filters, they will lose app link verification when their app is updated from the version on the system image. This means the app will stop automatically opening when a web link is is opened by the user. To prevent this, ignore verification info clear requests when the package being cleared is in the linked apps set. Bug: 175139501 Test: manual, verify by updating configured app Change-Id: I489acb370c8e6a57bf40b4bf485fbe8addf7fdab --- .../java/com/android/server/pm/PackageManagerService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index d14baf561f01a..be279dda7afdf 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -20730,6 +20730,11 @@ public class PackageManagerService extends IPackageManager.Stub @GuardedBy("mLock") void clearIntentFilterVerificationsLPw(String packageName, int userId, boolean alsoResetStatus) { + if (SystemConfig.getInstance().getLinkedApps().contains(packageName)) { + // Nope, need to preserve the system configuration approval for this app + return; + } + if (userId == UserHandle.USER_ALL) { if (mSettings.removeIntentFilterVerificationLPw(packageName, mUserManager.getUserIds())) {