Loading core/java/android/app/ActivityThread.java +5 −10 Original line number Diff line number Diff line Loading @@ -2215,16 +2215,11 @@ public final class ActivityThread extends ClientTransactionHandler { public final LoadedApk getPackageInfo(String packageName, CompatibilityInfo compatInfo, int flags, int userId) { final boolean differentUser = (UserHandle.myUserId() != userId); ApplicationInfo ai; try { ai = getPackageManager().getApplicationInfo(packageName, ApplicationInfo ai = PackageManager.getApplicationInfoAsUserCached( packageName, PackageManager.GET_SHARED_LIBRARY_FILES | PackageManager.MATCH_DEBUG_TRIAGED_MISSING, (userId < 0) ? UserHandle.myUserId() : userId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } synchronized (mResourcesManager) { WeakReference<LoadedApk> ref; if (differentUser) { Loading core/java/android/app/ApplicationPackageManager.java +18 −27 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; import android.permission.IOnPermissionsChangeListener; import android.permission.IPermissionManager; import android.permission.PermissionManager; import android.provider.Settings; import android.system.ErrnoException; import android.system.Os; Loading Loading @@ -191,17 +192,16 @@ public class ApplicationPackageManager extends PackageManager { @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { try { PackageInfo pi = mPM.getPackageInfo(packageName, updateFlagsForPackage(flags, userId), userId); if (pi != null) { return pi; } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } PackageInfo pi = getPackageInfoAsUserCached( packageName, updateFlagsForPackage(flags, userId), userId); if (pi == null) { throw new NameNotFoundException(packageName); } return pi; } @Override public String[] currentToCanonicalPackageNames(String[] names) { Loading Loading @@ -410,21 +410,15 @@ public class ApplicationPackageManager extends PackageManager { @Override public ApplicationInfo getApplicationInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { try { ApplicationInfo ai = mPM.getApplicationInfo(packageName, updateFlagsForApplication(flags, userId), userId); if (ai != null) { // This is a temporary hack. Callers must use // createPackageContext(packageName).getApplicationInfo() to // get the right paths. return maybeAdjustApplicationInfo(ai); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } ApplicationInfo ai = getApplicationInfoAsUserCached( packageName, updateFlagsForApplication(flags, userId), userId); if (ai == null) { throw new NameNotFoundException(packageName); } return maybeAdjustApplicationInfo(ai); } private static ApplicationInfo maybeAdjustApplicationInfo(ApplicationInfo info) { // If we're dealing with a multi-arch application that has both Loading Loading @@ -680,11 +674,8 @@ public class ApplicationPackageManager extends PackageManager { @Override public int checkPermission(String permName, String pkgName) { try { return mPermissionManager.checkPermission(permName, pkgName, getUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return PermissionManager .checkPackageNamePermission(permName, pkgName); } @Override Loading core/java/android/app/ContextImpl.java +2 −21 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; import android.permission.IPermissionManager; import android.permission.PermissionManager; import android.system.ErrnoException; import android.system.Os; import android.system.OsConstants; Loading Loading @@ -1941,27 +1942,7 @@ class ContextImpl extends Context { if (permission == null) { throw new IllegalArgumentException("permission is null"); } final IActivityManager am = ActivityManager.getService(); if (am == null) { // Well this is super awkward; we somehow don't have an active // ActivityManager instance. If we're testing a root or system // UID, then they totally have whatever permission this is. final int appId = UserHandle.getAppId(uid); if (appId == Process.ROOT_UID || appId == Process.SYSTEM_UID) { Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " holds " + permission); return PERMISSION_GRANTED; } Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " does not hold " + permission); return PackageManager.PERMISSION_DENIED; } try { return am.checkPermission(permission, pid, uid); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return PermissionManager.checkPermission(permission, pid, uid); } /** @hide */ Loading core/java/android/app/LoadedApk.java +5 −11 Original line number Diff line number Diff line Loading @@ -1001,17 +1001,11 @@ public final class LoadedApk { */ private void initializeJavaContextClassLoader() { IPackageManager pm = ActivityThread.getPackageManager(); android.content.pm.PackageInfo pi; try { pi = pm.getPackageInfo(mPackageName, PackageManager.MATCH_DEBUG_TRIAGED_MISSING, android.content.pm.PackageInfo pi = PackageManager.getPackageInfoAsUserCached( mPackageName, PackageManager.MATCH_DEBUG_TRIAGED_MISSING, UserHandle.myUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } if (pi == null) { throw new IllegalStateException("Unable to get package info for " + mPackageName + "; is package not installed?"); } /* * Two possible indications that this package could be * sharing its virtual machine with other packages: Loading core/java/android/app/PropertyInvalidatedCache.java +1 −1 Original line number Diff line number Diff line Loading @@ -445,7 +445,7 @@ public abstract class PropertyInvalidatedCache<Query, Result> { SystemProperties.set(name, newValueString); } private Result maybeCheckConsistency(Query query, Result proposedResult) { protected Result maybeCheckConsistency(Query query, Result proposedResult) { if (VERIFY) { Result resultToCompare = recompute(query); boolean nonceChanged = (getCurrentNonce() != mLastSeenNonce); Loading Loading
core/java/android/app/ActivityThread.java +5 −10 Original line number Diff line number Diff line Loading @@ -2215,16 +2215,11 @@ public final class ActivityThread extends ClientTransactionHandler { public final LoadedApk getPackageInfo(String packageName, CompatibilityInfo compatInfo, int flags, int userId) { final boolean differentUser = (UserHandle.myUserId() != userId); ApplicationInfo ai; try { ai = getPackageManager().getApplicationInfo(packageName, ApplicationInfo ai = PackageManager.getApplicationInfoAsUserCached( packageName, PackageManager.GET_SHARED_LIBRARY_FILES | PackageManager.MATCH_DEBUG_TRIAGED_MISSING, (userId < 0) ? UserHandle.myUserId() : userId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } synchronized (mResourcesManager) { WeakReference<LoadedApk> ref; if (differentUser) { Loading
core/java/android/app/ApplicationPackageManager.java +18 −27 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; import android.permission.IOnPermissionsChangeListener; import android.permission.IPermissionManager; import android.permission.PermissionManager; import android.provider.Settings; import android.system.ErrnoException; import android.system.Os; Loading Loading @@ -191,17 +192,16 @@ public class ApplicationPackageManager extends PackageManager { @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { try { PackageInfo pi = mPM.getPackageInfo(packageName, updateFlagsForPackage(flags, userId), userId); if (pi != null) { return pi; } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } PackageInfo pi = getPackageInfoAsUserCached( packageName, updateFlagsForPackage(flags, userId), userId); if (pi == null) { throw new NameNotFoundException(packageName); } return pi; } @Override public String[] currentToCanonicalPackageNames(String[] names) { Loading Loading @@ -410,21 +410,15 @@ public class ApplicationPackageManager extends PackageManager { @Override public ApplicationInfo getApplicationInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { try { ApplicationInfo ai = mPM.getApplicationInfo(packageName, updateFlagsForApplication(flags, userId), userId); if (ai != null) { // This is a temporary hack. Callers must use // createPackageContext(packageName).getApplicationInfo() to // get the right paths. return maybeAdjustApplicationInfo(ai); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } ApplicationInfo ai = getApplicationInfoAsUserCached( packageName, updateFlagsForApplication(flags, userId), userId); if (ai == null) { throw new NameNotFoundException(packageName); } return maybeAdjustApplicationInfo(ai); } private static ApplicationInfo maybeAdjustApplicationInfo(ApplicationInfo info) { // If we're dealing with a multi-arch application that has both Loading Loading @@ -680,11 +674,8 @@ public class ApplicationPackageManager extends PackageManager { @Override public int checkPermission(String permName, String pkgName) { try { return mPermissionManager.checkPermission(permName, pkgName, getUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return PermissionManager .checkPackageNamePermission(permName, pkgName); } @Override Loading
core/java/android/app/ContextImpl.java +2 −21 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; import android.permission.IPermissionManager; import android.permission.PermissionManager; import android.system.ErrnoException; import android.system.Os; import android.system.OsConstants; Loading Loading @@ -1941,27 +1942,7 @@ class ContextImpl extends Context { if (permission == null) { throw new IllegalArgumentException("permission is null"); } final IActivityManager am = ActivityManager.getService(); if (am == null) { // Well this is super awkward; we somehow don't have an active // ActivityManager instance. If we're testing a root or system // UID, then they totally have whatever permission this is. final int appId = UserHandle.getAppId(uid); if (appId == Process.ROOT_UID || appId == Process.SYSTEM_UID) { Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " holds " + permission); return PERMISSION_GRANTED; } Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " does not hold " + permission); return PackageManager.PERMISSION_DENIED; } try { return am.checkPermission(permission, pid, uid); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return PermissionManager.checkPermission(permission, pid, uid); } /** @hide */ Loading
core/java/android/app/LoadedApk.java +5 −11 Original line number Diff line number Diff line Loading @@ -1001,17 +1001,11 @@ public final class LoadedApk { */ private void initializeJavaContextClassLoader() { IPackageManager pm = ActivityThread.getPackageManager(); android.content.pm.PackageInfo pi; try { pi = pm.getPackageInfo(mPackageName, PackageManager.MATCH_DEBUG_TRIAGED_MISSING, android.content.pm.PackageInfo pi = PackageManager.getPackageInfoAsUserCached( mPackageName, PackageManager.MATCH_DEBUG_TRIAGED_MISSING, UserHandle.myUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } if (pi == null) { throw new IllegalStateException("Unable to get package info for " + mPackageName + "; is package not installed?"); } /* * Two possible indications that this package could be * sharing its virtual machine with other packages: Loading
core/java/android/app/PropertyInvalidatedCache.java +1 −1 Original line number Diff line number Diff line Loading @@ -445,7 +445,7 @@ public abstract class PropertyInvalidatedCache<Query, Result> { SystemProperties.set(name, newValueString); } private Result maybeCheckConsistency(Query query, Result proposedResult) { protected Result maybeCheckConsistency(Query query, Result proposedResult) { if (VERIFY) { Result resultToCompare = recompute(query); boolean nonceChanged = (getCurrentNonce() != mLastSeenNonce); Loading