summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Harshit Mahajan <harshitmahajan@google.com> 2024-08-21 08:45:47 +0000
committer Harshit Mahajan <harshitmahajan@google.com> 2024-08-21 08:45:47 +0000
commitaafe0a33f72122de067eb049a03f9d972c558a13 (patch)
tree6fb87cbd71341819333674e4f8a286b62b03d281
parentd9a2743f6bb54f78eb866c4e3e4ac1fa437097f4 (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.java22
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.