From 73d448687c4eb5c33e2361caee8ff72a1e789457 Mon Sep 17 00:00:00 2001 From: Sebastian Achim Date: Fri, 8 Jul 2022 13:48:32 +0200 Subject: Set scan flags correctly for preloaded applications Folowing scenario was observed: 1. Application build and installed without any native library built inside it 2. In the next SW update the same application is built with a native library bundled inside the apk. When upgrading the SW, because SW update was not detected, primaryCpuAbi was not set. This resulted in the system not looking into the path derived from the ABI for native libraries. This happens becase of two reasons: 1. SCAN_FIRST_BOOT_OR_UPGRADE is not set because PackageManagerService does not detect correctly update scenario. 2. SCAN_FIRST_BOOT_OR_UPGRADE is not added to mSystemScanFlags Bug: 239073616 Test: will add ota test Change-Id: I2ba73fcfcc46d7ddf14c2fb4dbf877f3252e7a50 Merged-In: I2ba73fcfcc46d7ddf14c2fb4dbf877f3252e7a50 --- services/core/java/com/android/server/pm/InitAppsHelper.java | 2 +- services/core/java/com/android/server/pm/PackageManagerService.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/InitAppsHelper.java b/services/core/java/com/android/server/pm/InitAppsHelper.java index f6b22bc38939..a03a16ad7bc3 100644 --- a/services/core/java/com/android/server/pm/InitAppsHelper.java +++ b/services/core/java/com/android/server/pm/InitAppsHelper.java @@ -113,7 +113,7 @@ final class InitAppsHelper { mScanFlags = scanFlags; } mSystemParseFlags = mPm.getDefParseFlags() | ParsingPackageUtils.PARSE_IS_SYSTEM_DIR; - mSystemScanFlags = scanFlags | SCAN_AS_SYSTEM; + mSystemScanFlags = mScanFlags | SCAN_AS_SYSTEM; mExecutorService = ParallelPackageParser.makeExecutorService(); } diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 94e8ec5c434d..85b01491a8b7 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -1836,8 +1836,6 @@ public class PackageManagerService implements PackageSender, TestUtilityService mAppDataHelper = new AppDataHelper(this); mInstallPackageHelper = new InstallPackageHelper(this, mAppDataHelper); mRemovePackageHelper = new RemovePackageHelper(this, mAppDataHelper); - mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper, - mInjector.getSystemPartitions()); mDeletePackageHelper = new DeletePackageHelper(this, mRemovePackageHelper, mAppDataHelper); mSharedLibraries.setDeletePackageHelper(mDeletePackageHelper); @@ -1958,6 +1956,9 @@ public class PackageManagerService implements PackageSender, TestUtilityService + ver.fingerprint + " to " + PackagePartitions.FINGERPRINT); } + mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper, + mInjector.getSystemPartitions()); + // when upgrading from pre-M, promote system app permissions from install to runtime mPromoteSystemApps = mIsUpgrade && ver.sdkVersion <= Build.VERSION_CODES.LOLLIPOP_MR1; -- cgit v1.2.3-59-g8ed1b