Merge "Fix verfication bypassed for adb installs" into jb-mr1-dev

This commit is contained in:
rich cannings
2012-10-09 14:11:21 -07:00
committed by Android (Google) Code Review

View File

@ -6374,12 +6374,22 @@ public class PackageManagerService extends IPackageManager.Stub {
mArgs = args; mArgs = args;
if (ret == PackageManager.INSTALL_SUCCEEDED) { 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 * Determine if we have any installed package verifiers. If we
* do, then we'll defer to them to verify the packages. * do, then we'll defer to them to verify the packages.
*/ */
final int requiredUid = mRequiredVerifierPackage == null ? -1 final int requiredUid = mRequiredVerifierPackage == null ? -1
: getPackageUid(mRequiredVerifierPackage, getUser().getIdentifier()); : getPackageUid(mRequiredVerifierPackage, userIdentifier);
if (requiredUid != -1 && isVerificationEnabled(flags)) { if (requiredUid != -1 && isVerificationEnabled(flags)) {
final Intent verification = new Intent( final Intent verification = new Intent(
Intent.ACTION_PACKAGE_NEEDS_VERIFICATION); Intent.ACTION_PACKAGE_NEEDS_VERIFICATION);