From 2b9146523347d4458d17d99824afdac29e312176 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 27 Aug 2012 12:04:40 -0700 Subject: Fix adb install Was not properly handling creating DefContainerService when the installation was for USER_ALL. Not a problem for Market installs. Bug: 7061571 Change-Id: I4528b4c56e38effa137da56460e78c55b242ba45 --- services/java/com/android/server/am/ActiveServices.java | 2 +- services/java/com/android/server/pm/PackageManagerService.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'services/java') diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java index e6bcaa1d92df..ca7faa2de622 100644 --- a/services/java/com/android/server/am/ActiveServices.java +++ b/services/java/com/android/server/am/ActiveServices.java @@ -729,7 +729,7 @@ public class ActiveServices { ServiceInfo sInfo = rInfo != null ? rInfo.serviceInfo : null; if (sInfo == null) { - Slog.w(TAG, "Unable to start service " + service + + Slog.w(TAG, "Unable to start service " + service + " U=" + userId + ": not found"); return null; } diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 0345df100b37..ba8533fed3a6 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -473,6 +473,9 @@ public class PackageManagerService extends IPackageManager.Stub { mContainerServiceUserId = 0; if (mPendingInstalls.size() > 0) { mContainerServiceUserId = mPendingInstalls.get(0).getUser().getIdentifier(); + if (mContainerServiceUserId == UserHandle.USER_ALL) { + mContainerServiceUserId = 0; + } } if (mContext.bindService(service, mDefContainerConn, Context.BIND_AUTO_CREATE, mContainerServiceUserId)) { @@ -554,7 +557,10 @@ public class PackageManagerService extends IPackageManager.Stub { if (params != null) { // Check if we're connected to the correct service, if it's an install // request. - if (params.getUser().getIdentifier() != mContainerServiceUserId) { + final int installFor = params.getUser().getIdentifier(); + if (installFor != mContainerServiceUserId + && (installFor == UserHandle.USER_ALL + && mContainerServiceUserId != 0)) { mHandler.sendEmptyMessage(MCS_RECONNECT); return; } -- cgit v1.2.3-59-g8ed1b