Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 365edfba authored by Harshit Mahajan's avatar Harshit Mahajan Committed by Android (Google) Code Review
Browse files

Merge "Check only for apk inside updatable apexes" into main

parents 1306fc1c aafe0a33
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -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;
            // Check if the package is listed among the system modules or is an
            // APK inside an updatable APEX.
            try {
                isApex = (pm.getModuleInfo(packageName, 0 /* flags */) != null);
            } catch (PackageManager.NameNotFoundException e) {
                //pass
                final PackageInfo pkg = pm.getPackageInfo(packageName, 0 /* flags */);
                String apexPackageName = pkg.getApexPackageName();
                if (apexPackageName != null) {
                    packageName = apexPackageName;
                }

            // Check if the package is an APK inside an APEX.
            boolean isApkInApex = false;
            try {
                final PackageInfo pkg = pm.getPackageInfo(packageName, 0 /* flags */);
                isApkInApex = (pkg.getApexPackageName() != null);
                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.