diff options
| author | 2015-05-12 20:22:37 +0000 | |
|---|---|---|
| committer | 2015-05-12 20:22:44 +0000 | |
| commit | bf6fbb0040a9b37158d50102560ab57b98cae9ad (patch) | |
| tree | 0ebfe8b6e208dbb99fd918e6e0d62d5718190330 | |
| parent | f931e3c28422a9169e01b2be62ac17c5159a70d0 (diff) | |
| parent | 497c05218ae3b30fdd01699e06fba4d04e90659d (diff) | |
Merge "Ignore abandon after install relinquished." into mnc-dev
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageInstallerSession.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 89ca00e2f229..dcf668d665dd 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -127,6 +127,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { @GuardedBy("mLock") private boolean mPermissionsAccepted = false; @GuardedBy("mLock") + private boolean mRelinquished = false; + @GuardedBy("mLock") private boolean mDestroyed = false; private int mFinalStatus; @@ -557,6 +559,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { user = new UserHandle(userId); } + mRelinquished = true; mPm.installStage(mPackageName, stageDir, stageCid, localObserver, params, installerPackageName, installerUid, user); } @@ -928,6 +931,10 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { @Override public void abandon() { + if (mRelinquished) { + Slog.d(TAG, "Ignoring abandon after commit relinquished control"); + return; + } destroyInternal(); dispatchSessionFinished(INSTALL_FAILED_ABORTED, "Session was abandoned", null); } @@ -958,8 +965,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } } if (stageDir != null) { - FileUtils.deleteContents(stageDir); - stageDir.delete(); + mPm.mInstaller.rmPackageDir(stageDir.getAbsolutePath()); } if (stageCid != null) { PackageHelper.destroySdDir(stageCid); @@ -990,6 +996,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { pw.printPair("mProgress", mProgress); pw.printPair("mSealed", mSealed); pw.printPair("mPermissionsAccepted", mPermissionsAccepted); + pw.printPair("mRelinquished", mRelinquished); pw.printPair("mDestroyed", mDestroyed); pw.printPair("mBridges", mBridges.size()); pw.printPair("mFinalStatus", mFinalStatus); |