diff options
| -rw-r--r-- | core/java/android/content/pm/RegisteredServicesCache.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/core/java/android/content/pm/RegisteredServicesCache.java b/core/java/android/content/pm/RegisteredServicesCache.java index 6162d1aeeceb..693228f4cd13 100644 --- a/core/java/android/content/pm/RegisteredServicesCache.java +++ b/core/java/android/content/pm/RegisteredServicesCache.java @@ -347,15 +347,17 @@ public abstract class RegisteredServicesCache<V> { @VisibleForTesting protected boolean inSystemImage(int callerUid) { String[] packages = mContext.getPackageManager().getPackagesForUid(callerUid); - for (String name : packages) { - try { - PackageInfo packageInfo = - mContext.getPackageManager().getPackageInfo(name, 0 /* flags */); - if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { - return true; + if (packages != null) { + for (String name : packages) { + try { + PackageInfo packageInfo = + mContext.getPackageManager().getPackageInfo(name, 0 /* flags */); + if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { + return true; + } + } catch (PackageManager.NameNotFoundException e) { + return false; } - } catch (PackageManager.NameNotFoundException e) { - return false; } } return false; |