diff options
| author | Suchi Amalapurapu <asuchitra@google.com> | 2010-05-13 12:05:53 -0700 |
|---|---|---|
| committer | Suchi Amalapurapu <asuchitra@google.com> | 2010-05-13 15:48:39 -0700 |
| commit | 1ace5bc070b7271a3f5835b13e326875785f718c (patch) | |
| tree | 8eece8ed8afee9b9c789a5d1c9a642ba838827f6 /services | |
| parent | 3c78a1b58957e31d2991fb6a609abecbb1987b3b (diff) | |
| download | frameworks_base-1ace5bc070b7271a3f5835b13e326875785f718c.zip frameworks_base-1ace5bc070b7271a3f5835b13e326875785f718c.tar.gz frameworks_base-1ace5bc070b7271a3f5835b13e326875785f718c.tar.bz2 | |
Fix 2672155
Check the code path when enabling disabling packages.
Add unit test
Change-Id: I0f0f482a3735234eab3f63ba1f6462574b70144e
Diffstat (limited to 'services')
| -rw-r--r-- | services/java/com/android/server/PackageManagerService.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index b9204c7..ee725cc 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -5315,13 +5315,13 @@ class PackageManagerService extends IPackageManager.Stub { } SdInstallArgs(String cid) { - super(null, null, PackageManager.INSTALL_EXTERNAL, null); - this.cid = cid; + this((Uri)null, cid); } SdInstallArgs(Uri packageURI, String cid) { super(packageURI, null, PackageManager.INSTALL_EXTERNAL, null); this.cid = cid; + cachePath = PackageHelper.getSdDir(cid); } void createCopyFile() { @@ -9565,7 +9565,10 @@ class PackageManagerService extends IPackageManager.Stub { } if (DEBUG_SD_INSTALL) Log.i(TAG, "Looking for pkg : " + pkgName); PackageSetting ps = mSettings.mPackages.get(pkgName); - if (ps != null && ps.codePathString != null) { + // The package status is changed only if the code path + // matches between settings and the container id. + if (ps != null && ps.codePathString != null && + ps.codePathString.equals(args.getCodePath())) { if (DEBUG_SD_INSTALL) Log.i(TAG, "Container : " + cid + " corresponds to pkg : " + pkgName + " at code path: " + ps.codePathString); |
