[RESTRICT AUTOMERGE][pm] still allow debuggable for system app downgrades

Turns out we do have internal tests that downgrades system apps, so adding this exception to allow for that.

BUG: 267232653
BUG: 256202273

Test: manual
Change-Id: Ie281bbdc8788ee64ff99a7c5150da7ce7926235e
(cherry picked from commit ceeca68b8c)
This commit is contained in:
Songchun Fan
2023-02-02 10:35:56 -08:00
committed by Song Chun Fan
parent cd8cf6b366
commit 3a04799f68

View File

@@ -2473,12 +2473,15 @@ final class InstallPackageHelper {
if (disabledPs != null) { if (disabledPs != null) {
dataOwnerPkg = disabledPs.getPkg(); dataOwnerPkg = disabledPs.getPkg();
} }
if (!Build.IS_DEBUGGABLE && !dataOwnerPkg.isDebuggable()) {
// Only restrict non-debuggable builds and non-debuggable version of the app
try { try {
PackageManagerServiceUtils.checkDowngrade(dataOwnerPkg, pkgLite); PackageManagerServiceUtils.checkDowngrade(dataOwnerPkg, pkgLite);
} catch (PackageManagerException e) { } catch (PackageManagerException e) {
String errorMsg = "System app: " + packageName + " cannot be downgraded to" String errorMsg =
+ " older than its preloaded version on the system image. " "System app: " + packageName + " cannot be downgraded to"
+ e.getMessage(); + " older than its preloaded version on the system"
+ " image. " + e.getMessage();
Slog.w(TAG, errorMsg); Slog.w(TAG, errorMsg);
return Pair.create( return Pair.create(
PackageManager.INSTALL_FAILED_VERSION_DOWNGRADE, errorMsg); PackageManager.INSTALL_FAILED_VERSION_DOWNGRADE, errorMsg);
@@ -2486,6 +2489,7 @@ final class InstallPackageHelper {
} }
} }
} }
}
return Pair.create(PackageManager.INSTALL_SUCCEEDED, null); return Pair.create(PackageManager.INSTALL_SUCCEEDED, null);
} }