Loading services/core/java/com/android/server/pm/DexOptHelper.java +1 −9 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApexStagedEvent; import android.content.pm.Flags; import android.content.pm.IPackageManagerNative; import android.content.pm.IStagedApexObserver; import android.content.pm.PackageManager; Loading @@ -59,7 +58,6 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; import android.provider.Settings.Global; import android.text.TextUtils; import android.util.ArraySet; import android.util.Log; Loading Loading @@ -824,16 +822,10 @@ public final class DexOptHelper { final PackageSetting ps = installRequest.getScannedPackageSetting(); final String packageName = ps.getPackageName(); PackageSetting uncommittedPs = null; if (Flags.improveInstallFreeze()) { uncommittedPs = ps; } PackageManagerLocal packageManagerLocal = LocalManagerRegistry.getManager(PackageManagerLocal.class); try (PackageManagerLocal.FilteredSnapshot snapshot = PackageManagerLocalImpl.withFilteredSnapshot(packageManagerLocal, uncommittedPs)) { PackageManagerLocalImpl.withFilteredSnapshot(packageManagerLocal, ps)) { boolean ignoreDexoptProfile = (installRequest.getInstallFlags() & PackageManager.INSTALL_IGNORE_DEXOPT_PROFILE) Loading services/core/java/com/android/server/pm/InstallPackageHelper.java +238 −278 Original line number Diff line number Diff line Loading @@ -1051,17 +1051,11 @@ final class InstallPackageHelper { if (renameAndUpdatePaths(requests)) { // rename before dexopt because art will encoded the path in the odex/vdex file if (Flags.improveInstallFreeze()) { pendingForDexopt = true; final Runnable actionsAfterDexopt = () -> doPostDexopt(reconciledPackages, requests, createdAppId, moveInfo, acquireTime); prepPerformDexoptIfNeeded(reconciledPackages, actionsAfterDexopt); } else { if (commitInstallPackages(reconciledPackages)) { success = true; } } } } } finally { Loading Loading @@ -1401,7 +1395,6 @@ final class InstallPackageHelper { private boolean commitInstallPackages(List<ReconciledPackage> reconciledPackages) { try (PackageManagerTracedLock installLock = mPm.mInstallLock.acquireLock()) { if (Flags.improveInstallFreeze()) { // Postpone freezer until after reconcile for (ReconciledPackage reconciledPkg : reconciledPackages) { InstallRequest installRequest = reconciledPkg.mInstallRequest; Loading @@ -1412,7 +1405,6 @@ final class InstallPackageHelper { installRequest); installRequest.setFreezer(freezer); } } synchronized (mPm.mLock) { try { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "commitPackages"); Loading Loading @@ -2012,15 +2004,6 @@ final class InstallPackageHelper { parsedPackage.setBaseApkPath(request.getApexInfo().modulePath); } PackageFreezer freezer = null; if (!Flags.improveInstallFreeze()) { freezer = freezePackageForInstall(pkgName, UserHandle.USER_ALL, installFlags, "installPackageLI", ApplicationExitInfo.REASON_PACKAGE_UPDATED, request); } boolean shouldCloseFreezerBeforeReturn = true; try { final PackageSetting oldPackageState; final AndroidPackage oldPackage; String renamedPackage; Loading Loading @@ -2275,20 +2258,10 @@ final class InstallPackageHelper { } } } // we're passing the freezer back to be closed in a later phase of install shouldCloseFreezerBeforeReturn = false; request.setPrepareResult(replace, targetScanFlags, targetParseFlags, oldPackageState, parsedPackage, archivedPackage, replace /* clearCodeCache */, sysPkg, ps, disabledPs); } finally { if (freezer != null) { request.setFreezer(freezer); if (shouldCloseFreezerBeforeReturn) { freezer.close(); } } } } /** Loading Loading @@ -2856,19 +2829,6 @@ final class InstallPackageHelper { mDexManager.notifyPackageUpdated(packageName, pkg.getBaseApkPath(), pkg.getSplitCodePaths()); } if (!Flags.improveInstallFreeze()) { // Hardcode previousAppId to 0 to disable any data migration (http://b/221088088) mAppDataHelper.prepareAppDataPostCommitLIF(ps, 0, installRequest.getNewUsers()); if (installRequest.isClearCodeCache()) { mAppDataHelper.clearAppDataLIF(ps.getPkg(), UserHandle.USER_ALL, FLAG_STORAGE_DE | FLAG_STORAGE_CE | FLAG_STORAGE_EXTERNAL | Installer.FLAG_CLEAR_CODE_CACHE_ONLY); } // run synchronous dexopt if the freeze improvement is not supported DexOptHelper.performDexoptIfNeeded( installRequest, mDexManager, mPm.mInstallLock.getRawLock()); } } PackageManagerServiceUtils.waitForNativeBinariesExtractionForIncremental( incrementalStorages); Loading Loading
services/core/java/com/android/server/pm/DexOptHelper.java +1 −9 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApexStagedEvent; import android.content.pm.Flags; import android.content.pm.IPackageManagerNative; import android.content.pm.IStagedApexObserver; import android.content.pm.PackageManager; Loading @@ -59,7 +58,6 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; import android.provider.Settings.Global; import android.text.TextUtils; import android.util.ArraySet; import android.util.Log; Loading Loading @@ -824,16 +822,10 @@ public final class DexOptHelper { final PackageSetting ps = installRequest.getScannedPackageSetting(); final String packageName = ps.getPackageName(); PackageSetting uncommittedPs = null; if (Flags.improveInstallFreeze()) { uncommittedPs = ps; } PackageManagerLocal packageManagerLocal = LocalManagerRegistry.getManager(PackageManagerLocal.class); try (PackageManagerLocal.FilteredSnapshot snapshot = PackageManagerLocalImpl.withFilteredSnapshot(packageManagerLocal, uncommittedPs)) { PackageManagerLocalImpl.withFilteredSnapshot(packageManagerLocal, ps)) { boolean ignoreDexoptProfile = (installRequest.getInstallFlags() & PackageManager.INSTALL_IGNORE_DEXOPT_PROFILE) Loading
services/core/java/com/android/server/pm/InstallPackageHelper.java +238 −278 Original line number Diff line number Diff line Loading @@ -1051,17 +1051,11 @@ final class InstallPackageHelper { if (renameAndUpdatePaths(requests)) { // rename before dexopt because art will encoded the path in the odex/vdex file if (Flags.improveInstallFreeze()) { pendingForDexopt = true; final Runnable actionsAfterDexopt = () -> doPostDexopt(reconciledPackages, requests, createdAppId, moveInfo, acquireTime); prepPerformDexoptIfNeeded(reconciledPackages, actionsAfterDexopt); } else { if (commitInstallPackages(reconciledPackages)) { success = true; } } } } } finally { Loading Loading @@ -1401,7 +1395,6 @@ final class InstallPackageHelper { private boolean commitInstallPackages(List<ReconciledPackage> reconciledPackages) { try (PackageManagerTracedLock installLock = mPm.mInstallLock.acquireLock()) { if (Flags.improveInstallFreeze()) { // Postpone freezer until after reconcile for (ReconciledPackage reconciledPkg : reconciledPackages) { InstallRequest installRequest = reconciledPkg.mInstallRequest; Loading @@ -1412,7 +1405,6 @@ final class InstallPackageHelper { installRequest); installRequest.setFreezer(freezer); } } synchronized (mPm.mLock) { try { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "commitPackages"); Loading Loading @@ -2012,15 +2004,6 @@ final class InstallPackageHelper { parsedPackage.setBaseApkPath(request.getApexInfo().modulePath); } PackageFreezer freezer = null; if (!Flags.improveInstallFreeze()) { freezer = freezePackageForInstall(pkgName, UserHandle.USER_ALL, installFlags, "installPackageLI", ApplicationExitInfo.REASON_PACKAGE_UPDATED, request); } boolean shouldCloseFreezerBeforeReturn = true; try { final PackageSetting oldPackageState; final AndroidPackage oldPackage; String renamedPackage; Loading Loading @@ -2275,20 +2258,10 @@ final class InstallPackageHelper { } } } // we're passing the freezer back to be closed in a later phase of install shouldCloseFreezerBeforeReturn = false; request.setPrepareResult(replace, targetScanFlags, targetParseFlags, oldPackageState, parsedPackage, archivedPackage, replace /* clearCodeCache */, sysPkg, ps, disabledPs); } finally { if (freezer != null) { request.setFreezer(freezer); if (shouldCloseFreezerBeforeReturn) { freezer.close(); } } } } /** Loading Loading @@ -2856,19 +2829,6 @@ final class InstallPackageHelper { mDexManager.notifyPackageUpdated(packageName, pkg.getBaseApkPath(), pkg.getSplitCodePaths()); } if (!Flags.improveInstallFreeze()) { // Hardcode previousAppId to 0 to disable any data migration (http://b/221088088) mAppDataHelper.prepareAppDataPostCommitLIF(ps, 0, installRequest.getNewUsers()); if (installRequest.isClearCodeCache()) { mAppDataHelper.clearAppDataLIF(ps.getPkg(), UserHandle.USER_ALL, FLAG_STORAGE_DE | FLAG_STORAGE_CE | FLAG_STORAGE_EXTERNAL | Installer.FLAG_CLEAR_CODE_CACHE_ONLY); } // run synchronous dexopt if the freeze improvement is not supported DexOptHelper.performDexoptIfNeeded( installRequest, mDexManager, mPm.mInstallLock.getRawLock()); } } PackageManagerServiceUtils.waitForNativeBinariesExtractionForIncremental( incrementalStorages); Loading