Loading services/core/java/com/android/server/pm/InstallPackageHelper.java +28 −1 Original line number Diff line number Diff line Loading @@ -1021,7 +1021,7 @@ final class InstallPackageHelper { * * Failure at any phase will result in a full failure to install all packages. */ void installPackagesTraced(List<InstallRequest> requests) { void installPackagesTraced(List<InstallRequest> requests, MoveInfo moveInfo) { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "installPackages"); boolean success = false; final Map<String, Boolean> createdAppId = new ArrayMap<>(requests.size()); Loading Loading @@ -1049,10 +1049,37 @@ final class InstallPackageHelper { } finally { completeInstallProcess(requests, createdAppId, success); Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); doPostInstall(requests, moveInfo); releaseWakeLock(acquireTime, requests.size()); } } private void doPostInstall(List<InstallRequest> requests, MoveInfo moveInfo) { for (InstallRequest request : requests) { doPostInstallCleanUp(request, moveInfo); } for (InstallRequest request : requests) { restoreAndPostInstall(request); } } private void doPostInstallCleanUp(InstallRequest request, MoveInfo moveInfo) { if (moveInfo != null) { if (request.getReturnCode() == PackageManager.INSTALL_SUCCEEDED) { mRemovePackageHelper.cleanUpForMoveInstall(moveInfo.mFromUuid, moveInfo.mPackageName, moveInfo.mFromCodePath); } else { mRemovePackageHelper.cleanUpForMoveInstall(moveInfo.mToUuid, moveInfo.mPackageName, moveInfo.mFromCodePath); } } else { if (request.getReturnCode() != PackageManager.INSTALL_SUCCEEDED) { mRemovePackageHelper.removeCodePath(request.getCodeFile()); } } } private long acquireWakeLock(int count) { if (!mPm.isSystemReady()) { return -1; Loading services/core/java/com/android/server/pm/InstallingSession.java +2 −22 Original line number Diff line number Diff line Loading @@ -550,31 +550,11 @@ class InstallingSession { cleanUpForFailedInstall(request); } } } else { mPm.installPackagesTraced(installRequests); for (InstallRequest request : installRequests) { doPostInstall(request); } } for (InstallRequest request : installRequests) { mPm.restoreAndPostInstall(request); } } private void doPostInstall(InstallRequest request) { if (mMoveInfo != null) { if (request.getReturnCode() == PackageManager.INSTALL_SUCCEEDED) { mPm.cleanUpForMoveInstall(mMoveInfo.mFromUuid, mMoveInfo.mPackageName, mMoveInfo.mFromCodePath); } else { mPm.cleanUpForMoveInstall(mMoveInfo.mToUuid, mMoveInfo.mPackageName, mMoveInfo.mFromCodePath); } } else { if (request.getReturnCode() != PackageManager.INSTALL_SUCCEEDED) { mPm.removeCodePath(request.getCodeFile()); } mPm.installPackagesTraced(installRequests, mMoveInfo); } } Loading services/core/java/com/android/server/pm/PackageManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -8214,8 +8214,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService return mInstallPackageHelper.enableCompressedPackage(stubPkg, stubPs); } void installPackagesTraced(List<InstallRequest> requests) { mInstallPackageHelper.installPackagesTraced(requests); void installPackagesTraced(List<InstallRequest> requests, MoveInfo moveInfo) { mInstallPackageHelper.installPackagesTraced(requests, moveInfo); } void restoreAndPostInstall(InstallRequest request) { Loading Loading
services/core/java/com/android/server/pm/InstallPackageHelper.java +28 −1 Original line number Diff line number Diff line Loading @@ -1021,7 +1021,7 @@ final class InstallPackageHelper { * * Failure at any phase will result in a full failure to install all packages. */ void installPackagesTraced(List<InstallRequest> requests) { void installPackagesTraced(List<InstallRequest> requests, MoveInfo moveInfo) { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "installPackages"); boolean success = false; final Map<String, Boolean> createdAppId = new ArrayMap<>(requests.size()); Loading Loading @@ -1049,10 +1049,37 @@ final class InstallPackageHelper { } finally { completeInstallProcess(requests, createdAppId, success); Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); doPostInstall(requests, moveInfo); releaseWakeLock(acquireTime, requests.size()); } } private void doPostInstall(List<InstallRequest> requests, MoveInfo moveInfo) { for (InstallRequest request : requests) { doPostInstallCleanUp(request, moveInfo); } for (InstallRequest request : requests) { restoreAndPostInstall(request); } } private void doPostInstallCleanUp(InstallRequest request, MoveInfo moveInfo) { if (moveInfo != null) { if (request.getReturnCode() == PackageManager.INSTALL_SUCCEEDED) { mRemovePackageHelper.cleanUpForMoveInstall(moveInfo.mFromUuid, moveInfo.mPackageName, moveInfo.mFromCodePath); } else { mRemovePackageHelper.cleanUpForMoveInstall(moveInfo.mToUuid, moveInfo.mPackageName, moveInfo.mFromCodePath); } } else { if (request.getReturnCode() != PackageManager.INSTALL_SUCCEEDED) { mRemovePackageHelper.removeCodePath(request.getCodeFile()); } } } private long acquireWakeLock(int count) { if (!mPm.isSystemReady()) { return -1; Loading
services/core/java/com/android/server/pm/InstallingSession.java +2 −22 Original line number Diff line number Diff line Loading @@ -550,31 +550,11 @@ class InstallingSession { cleanUpForFailedInstall(request); } } } else { mPm.installPackagesTraced(installRequests); for (InstallRequest request : installRequests) { doPostInstall(request); } } for (InstallRequest request : installRequests) { mPm.restoreAndPostInstall(request); } } private void doPostInstall(InstallRequest request) { if (mMoveInfo != null) { if (request.getReturnCode() == PackageManager.INSTALL_SUCCEEDED) { mPm.cleanUpForMoveInstall(mMoveInfo.mFromUuid, mMoveInfo.mPackageName, mMoveInfo.mFromCodePath); } else { mPm.cleanUpForMoveInstall(mMoveInfo.mToUuid, mMoveInfo.mPackageName, mMoveInfo.mFromCodePath); } } else { if (request.getReturnCode() != PackageManager.INSTALL_SUCCEEDED) { mPm.removeCodePath(request.getCodeFile()); } mPm.installPackagesTraced(installRequests, mMoveInfo); } } Loading
services/core/java/com/android/server/pm/PackageManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -8214,8 +8214,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService return mInstallPackageHelper.enableCompressedPackage(stubPkg, stubPs); } void installPackagesTraced(List<InstallRequest> requests) { mInstallPackageHelper.installPackagesTraced(requests); void installPackagesTraced(List<InstallRequest> requests, MoveInfo moveInfo) { mInstallPackageHelper.installPackagesTraced(requests, moveInfo); } void restoreAndPostInstall(InstallRequest request) { Loading