diff options
| author | 2024-08-21 08:45:47 +0000 | |
|---|---|---|
| committer | 2024-08-21 08:45:47 +0000 | |
| commit | aafe0a33f72122de067eb049a03f9d972c558a13 (patch) | |
| tree | 6fb87cbd71341819333674e4f8a286b62b03d281 | |
| parent | d9a2743f6bb54f78eb866c4e3e4ac1fa437097f4 (diff) | |
Check only for apk inside updatable apexes
Bug: 289203818
Test: TH
Flag: android.crashrecovery.flags.refactor_crashrecovery
Change-Id: I79924857480a660bb9ba4ff110fa955c9935aeb0
| -rw-r--r-- | services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java index e91097cbd8f8..1c786e668c7a 100644 --- a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java +++ b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java @@ -492,23 +492,19 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve PackageManager pm = mContext.getPackageManager(); if (Flags.refactorCrashrecovery() && provideInfoOfApkInApex()) { - // Check if the package is listed among the system modules. - boolean isApex = false; - try { - isApex = (pm.getModuleInfo(packageName, 0 /* flags */) != null); - } catch (PackageManager.NameNotFoundException e) { - //pass - } - - // Check if the package is an APK inside an APEX. - boolean isApkInApex = false; + // Check if the package is listed among the system modules or is an + // APK inside an updatable APEX. try { final PackageInfo pkg = pm.getPackageInfo(packageName, 0 /* flags */); - isApkInApex = (pkg.getApexPackageName() != null); + String apexPackageName = pkg.getApexPackageName(); + if (apexPackageName != null) { + packageName = apexPackageName; + } + + return pm.getModuleInfo(packageName, 0 /* flags */) != null; } catch (PackageManager.NameNotFoundException e) { - // pass + return false; } - return isApex || isApkInApex; } else { // Check if the package is an APK inside an APEX. If it is, use the parent APEX package // when querying PackageManager. |