diff options
author | Songchun Fan <schfan@google.com> | 2023-02-02 10:35:56 -0800 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-03-17 03:08:52 +0000 |
commit | 1b04c3b8aa7a866feae7eb44ab92cc80e03c9c22 (patch) | |
tree | c84c73dcd802db4116ae9d62d3641b8dd3accd08 | |
parent | c0ac625e276b11ccd5bc1fd83a8f30f0c0ff761b (diff) | |
download | base-1b04c3b8aa7a866feae7eb44ab92cc80e03c9c22.tar.gz |
[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 ceeca68b8c3f0ed8427b0212f63defe2f075146e)
(cherry picked from commit on googleplex-android-review.googlesource.com host: 3a04799f68de6b77fc89faddda032b1031551e78)
Merged-In: Ie281bbdc8788ee64ff99a7c5150da7ce7926235e
-rw-r--r-- | services/core/java/com/android/server/pm/InstallPackageHelper.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index ae62f4107591..c32a57c68ede 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -2477,15 +2477,19 @@ final class InstallPackageHelper { if (disabledPs != null) { dataOwnerPkg = disabledPs.getPkg(); } - try { - PackageManagerServiceUtils.checkDowngrade(dataOwnerPkg, pkgLite); - } catch (PackageManagerException e) { - String errorMsg = "System app: " + packageName + " cannot be downgraded to" - + " older than its preloaded version on the system image. " - + e.getMessage(); - Slog.w(TAG, errorMsg); - return Pair.create( - PackageManager.INSTALL_FAILED_VERSION_DOWNGRADE, errorMsg); + if (!Build.IS_DEBUGGABLE && !dataOwnerPkg.isDebuggable()) { + // Only restrict non-debuggable builds and non-debuggable version of the app + try { + PackageManagerServiceUtils.checkDowngrade(dataOwnerPkg, pkgLite); + } catch (PackageManagerException e) { + String errorMsg = + "System app: " + packageName + " cannot be downgraded to" + + " older than its preloaded version on the system" + + " image. " + e.getMessage(); + Slog.w(TAG, errorMsg); + return Pair.create( + PackageManager.INSTALL_FAILED_VERSION_DOWNGRADE, errorMsg); + } } } } |