summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server
diff options
context:
space:
mode:
authorrich cannings <richc@google.com>2012-10-09 14:11:21 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-10-09 14:11:21 -0700
commitf1b246ddfed6757180768eea080b80c1538333f3 (patch)
treed889db6e049af7a99129702feba2e36b438cb7c6 /services/java/com/android/server
parent64cb35c078d58d9025d2f14b3674ca59f2e6d80b (diff)
parent36070b414a710dd09a24698699f501d58c5772a4 (diff)
downloadframeworks_base-f1b246ddfed6757180768eea080b80c1538333f3.zip
frameworks_base-f1b246ddfed6757180768eea080b80c1538333f3.tar.gz
frameworks_base-f1b246ddfed6757180768eea080b80c1538333f3.tar.bz2
Merge "Fix verfication bypassed for adb installs" into jb-mr1-dev
Diffstat (limited to 'services/java/com/android/server')
-rw-r--r--services/java/com/android/server/pm/PackageManagerService.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index 0600f5c..b8d7286 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -6374,12 +6374,22 @@ public class PackageManagerService extends IPackageManager.Stub {
mArgs = args;
if (ret == PackageManager.INSTALL_SUCCEEDED) {
+ /*
+ * ADB installs appear as UserHandle.USER_ALL, and can only be performed by
+ * UserHandle.USER_OWNER, so use the package verifier for UserHandle.USER_OWNER.
+ */
+ int userIdentifier = getUser().getIdentifier();
+ if (userIdentifier == UserHandle.USER_ALL
+ && ((flags & PackageManager.INSTALL_FROM_ADB) != 0)) {
+ userIdentifier = UserHandle.USER_OWNER;
+ }
+
/*
* Determine if we have any installed package verifiers. If we
* do, then we'll defer to them to verify the packages.
*/
final int requiredUid = mRequiredVerifierPackage == null ? -1
- : getPackageUid(mRequiredVerifierPackage, getUser().getIdentifier());
+ : getPackageUid(mRequiredVerifierPackage, userIdentifier);
if (requiredUid != -1 && isVerificationEnabled(flags)) {
final Intent verification = new Intent(
Intent.ACTION_PACKAGE_NEEDS_VERIFICATION);