diff options
| author | 2011-01-18 13:04:40 -0800 | |
|---|---|---|
| committer | 2011-01-18 13:55:42 -0800 | |
| commit | 300c13a48132f03d48462b9cd3ec41331a71a411 (patch) | |
| tree | b784943ca9d8e6988d9e0db62da448b8e9d10441 | |
| parent | 26c1ab2e58f47ac94e638f69b9b626cc6b1925b6 (diff) | |
Erase OBB files when removing packages
OBB files on USB storage or SD card should be removed when an
application is removed.
Bug: 3356804
Change-Id: Ifbbf043368b125fcd47fd74e5cd2e5167a8deb00
| -rw-r--r-- | packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java | 1 | ||||
| -rw-r--r-- | services/java/com/android/server/PackageManagerService.java | 15 |
2 files changed, 13 insertions, 3 deletions
diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java index 2ec222651436..21f77e366830 100644 --- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java +++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java @@ -190,6 +190,7 @@ public class DefaultContainerService extends IntentService { while ((pkg=pm.nextPackageToClean(pkg)) != null) { eraseFiles(Environment.getExternalStorageAppDataDirectory(pkg)); eraseFiles(Environment.getExternalStorageAppMediaDirectory(pkg)); + eraseFiles(Environment.getExternalStorageAppObbDirectory(pkg)); } } catch (RemoteException e) { } diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index 1eebd6aa361b..059c0b86410a 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -4407,10 +4407,19 @@ class PackageManagerService extends IPackageManager.Stub { } } } - + + /** + * Check if the external storage media is available. This is true if there + * is a mounted external storage medium or if the external storage is + * emulated. + */ + private boolean isExternalMediaAvailable() { + return mMediaMounted || Environment.isExternalStorageEmulated(); + } + public String nextPackageToClean(String lastPackage) { synchronized (mPackages) { - if (!mMediaMounted) { + if (!isExternalMediaAvailable()) { // If the external storage is no longer mounted at this point, // the caller may not have been able to delete all of this // packages files and can not delete any more. Bail. @@ -4430,7 +4439,7 @@ class PackageManagerService extends IPackageManager.Stub { void startCleaningPackages() { synchronized (mPackages) { - if (!mMediaMounted) { + if (!isExternalMediaAvailable()) { return; } if (mSettings.mPackagesToBeCleaned.size() <= 0) { |