OSDN Git Service

Verifier is required, except when it's not.
authorJeff Sharkey <jsharkey@android.com>
Fri, 8 Jan 2016 19:28:29 +0000 (12:28 -0700)
committerJeff Sharkey <jsharkey@android.com>
Fri, 8 Jan 2016 19:29:21 +0000 (12:29 -0700)
There are still some devices out there that are missing a verifier,
so relax this until we have time to look closer.

Bug: 26438767
Change-Id: I10e154d736619963c20aaed8199a457f3004011c

services/core/java/com/android/server/pm/PackageManagerService.java

index 9e0f3ce..254e77b 100644 (file)
@@ -2363,7 +2363,7 @@ public class PackageManagerService extends IPackageManager.Stub {
                     SystemClock.uptimeMillis());
 
             if (!mOnlyCore) {
-                mRequiredVerifierPackage = getRequiredVerifierLPr();
+                mRequiredVerifierPackage = getRequiredButNotReallyRequiredVerifierLPr();
                 mRequiredInstallerPackage = getRequiredInstallerLPr();
                 mIntentFilterVerifierComponent = getIntentFilterVerifierComponentNameLPr();
                 mIntentFilterVerifier = new IntentVerifierProxy(mContext,
@@ -2438,7 +2438,7 @@ public class PackageManagerService extends IPackageManager.Stub {
         return mIsUpgrade;
     }
 
-    private @NonNull String getRequiredVerifierLPr() {
+    private @Nullable String getRequiredButNotReallyRequiredVerifierLPr() {
         final Intent intent = new Intent(Intent.ACTION_PACKAGE_NEEDS_VERIFICATION);
 
         final List<ResolveInfo> matches = queryIntentReceivers(intent, PACKAGE_MIME_TYPE,
@@ -2446,7 +2446,8 @@ public class PackageManagerService extends IPackageManager.Stub {
         if (matches.size() == 1) {
             return matches.get(0).getComponentInfo().packageName;
         } else {
-            throw new RuntimeException("There must be exactly one verifier; found " + matches);
+            Log.e(TAG, "There should probably be exactly one verifier; found " + matches);
+            return null;
         }
     }