summaryrefslogtreecommitdiffstats
path: root/packages/DefaultContainerService/src/com
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-09-23 16:25:12 -0700
committerJeff Sharkey <jsharkey@android.com>2012-09-23 16:44:34 -0700
commit752cd922f7091dfd5401faf70dc248934a9dbb6d (patch)
tree687e7c87a3fa71ac84c3fc5db8327d452a7cddc3 /packages/DefaultContainerService/src/com
parent5a370882f87321629f98f6149ac946a57e25dfa8 (diff)
downloadframeworks_base-752cd922f7091dfd5401faf70dc248934a9dbb6d.zip
frameworks_base-752cd922f7091dfd5401faf70dc248934a9dbb6d.tar.gz
frameworks_base-752cd922f7091dfd5401faf70dc248934a9dbb6d.tar.bz2
Always bind to DefaultContainerService as OWNER.
When PackageManagerService deals with external storage, always bind to DefaultContainerService as USER_OWNER. This avoids binding to a stopped user, which would fail. Bug: 7203111 Change-Id: I8e303c7558e8b5cbe4fea0acc9a472b598df0caa
Diffstat (limited to 'packages/DefaultContainerService/src/com')
-rw-r--r--packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
index b36bd55..24a9d71 100644
--- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
+++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
@@ -35,6 +35,7 @@ import android.content.res.ObbInfo;
import android.content.res.ObbScanner;
import android.net.Uri;
import android.os.Environment;
+import android.os.Environment.UserEnvironment;
import android.os.FileUtils;
import android.os.IBinder;
import android.os.ParcelFileDescriptor;
@@ -268,15 +269,16 @@ public class DefaultContainerService extends IntentService {
@Override
protected void onHandleIntent(Intent intent) {
if (PackageManager.ACTION_CLEAN_EXTERNAL_STORAGE.equals(intent.getAction())) {
- IPackageManager pm = IPackageManager.Stub.asInterface(
+ final IPackageManager pm = IPackageManager.Stub.asInterface(
ServiceManager.getService("package"));
- PackageCleanItem pkg = null;
+ PackageCleanItem item = null;
try {
- while ((pkg=pm.nextPackageToClean(pkg)) != null) {
- eraseFiles(Environment.getExternalStorageAppDataDirectory(pkg.packageName));
- eraseFiles(Environment.getExternalStorageAppMediaDirectory(pkg.packageName));
- if (pkg.andCode) {
- eraseFiles(Environment.getExternalStorageAppObbDirectory(pkg.packageName));
+ while ((item = pm.nextPackageToClean(item)) != null) {
+ final UserEnvironment userEnv = new UserEnvironment(item.userId);
+ eraseFiles(userEnv.getExternalStorageAppDataDirectory(item.packageName));
+ eraseFiles(userEnv.getExternalStorageAppMediaDirectory(item.packageName));
+ if (item.andCode) {
+ eraseFiles(userEnv.getExternalStorageAppObbDirectory(item.packageName));
}
}
} catch (RemoteException e) {