Loading core/java/android/content/pm/PackageManagerInternal.java +5 −0 Original line number Diff line number Diff line Loading @@ -520,6 +520,11 @@ public abstract class PackageManagerInternal { */ public abstract @Nullable PackageParser.Package getPackage(@NonNull String packageName); /** * Returns a {@link com.android.server.pm.PackageSetting} for a given package name. */ public abstract @Nullable Object getPackageSetting(String packageName); /** * Returns a list without a change observer. * Loading services/core/java/com/android/server/pm/PackageManagerService.java +9 −3 Original line number Diff line number Diff line Loading @@ -5309,7 +5309,7 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mPackages) { final String[] packageNames = getPackagesForUid(uid); final PackageParser.Package pkg = (packageNames != null && packageNames.length > 0) ? mPackages.get(packageNames[0]) ? mSettings.getPackageLPr(packageNames[0]).getPackage() : null; return mPermissionManager.checkUidPermission(permName, pkg, uid, getCallingUid()); } Loading Loading @@ -8075,7 +8075,6 @@ public class PackageManagerService extends IPackageManager.Stub callingUid = mIsolatedOwners.get(callingUid); } final PackageSetting ps = mSettings.mPackages.get(packageName); PackageParser.Package pkg = mPackages.get(packageName); final boolean returnAllowed = ps != null && (isCallerSameApp(packageName, callingUid) Loading Loading @@ -8146,7 +8145,7 @@ public class PackageManagerService extends IPackageManager.Stub } private boolean isCallerSameApp(String packageName, int uid) { PackageParser.Package pkg = mPackages.get(packageName); PackageParser.Package pkg = mSettings.getPackageLPr(packageName).getPackage(); return pkg != null && UserHandle.getAppId(uid) == pkg.applicationInfo.uid; } Loading Loading @@ -23639,6 +23638,13 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } } @Override public Object getPackageSetting(String packageName) { synchronized (mPackages) { return mSettings.getPackageLPr(packageName); } } @Override public PackageList getPackageList(PackageListObserver observer) { synchronized (mPackages) { services/core/java/com/android/server/pm/permission/PermissionManagerService.java +3 −4 Original line number Diff line number Diff line Loading @@ -212,12 +212,11 @@ public class PermissionManagerService { return PackageManager.PERMISSION_DENIED; } final PackageParser.Package pkg = mPackageManagerInt.getPackage(pkgName); if (pkg != null && pkg.mExtras != null) { if (mPackageManagerInt.filterAppAccess(pkg, callingUid, userId)) { final PackageSetting ps = (PackageSetting) mPackageManagerInt.getPackageSetting(pkgName); if (ps != null && ps.getPackage() != null) { if (mPackageManagerInt.filterAppAccess(ps.getPackage(), callingUid, userId)) { return PackageManager.PERMISSION_DENIED; } final PackageSetting ps = (PackageSetting) pkg.mExtras; final boolean instantApp = ps.getInstantApp(userId); final PermissionsState permissionsState = ps.getPermissionsState(); if (permissionsState.hasPermission(permName, userId)) { Loading Loading
core/java/android/content/pm/PackageManagerInternal.java +5 −0 Original line number Diff line number Diff line Loading @@ -520,6 +520,11 @@ public abstract class PackageManagerInternal { */ public abstract @Nullable PackageParser.Package getPackage(@NonNull String packageName); /** * Returns a {@link com.android.server.pm.PackageSetting} for a given package name. */ public abstract @Nullable Object getPackageSetting(String packageName); /** * Returns a list without a change observer. * Loading
services/core/java/com/android/server/pm/PackageManagerService.java +9 −3 Original line number Diff line number Diff line Loading @@ -5309,7 +5309,7 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mPackages) { final String[] packageNames = getPackagesForUid(uid); final PackageParser.Package pkg = (packageNames != null && packageNames.length > 0) ? mPackages.get(packageNames[0]) ? mSettings.getPackageLPr(packageNames[0]).getPackage() : null; return mPermissionManager.checkUidPermission(permName, pkg, uid, getCallingUid()); } Loading Loading @@ -8075,7 +8075,6 @@ public class PackageManagerService extends IPackageManager.Stub callingUid = mIsolatedOwners.get(callingUid); } final PackageSetting ps = mSettings.mPackages.get(packageName); PackageParser.Package pkg = mPackages.get(packageName); final boolean returnAllowed = ps != null && (isCallerSameApp(packageName, callingUid) Loading Loading @@ -8146,7 +8145,7 @@ public class PackageManagerService extends IPackageManager.Stub } private boolean isCallerSameApp(String packageName, int uid) { PackageParser.Package pkg = mPackages.get(packageName); PackageParser.Package pkg = mSettings.getPackageLPr(packageName).getPackage(); return pkg != null && UserHandle.getAppId(uid) == pkg.applicationInfo.uid; } Loading Loading @@ -23639,6 +23638,13 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } } @Override public Object getPackageSetting(String packageName) { synchronized (mPackages) { return mSettings.getPackageLPr(packageName); } } @Override public PackageList getPackageList(PackageListObserver observer) { synchronized (mPackages) {
services/core/java/com/android/server/pm/permission/PermissionManagerService.java +3 −4 Original line number Diff line number Diff line Loading @@ -212,12 +212,11 @@ public class PermissionManagerService { return PackageManager.PERMISSION_DENIED; } final PackageParser.Package pkg = mPackageManagerInt.getPackage(pkgName); if (pkg != null && pkg.mExtras != null) { if (mPackageManagerInt.filterAppAccess(pkg, callingUid, userId)) { final PackageSetting ps = (PackageSetting) mPackageManagerInt.getPackageSetting(pkgName); if (ps != null && ps.getPackage() != null) { if (mPackageManagerInt.filterAppAccess(ps.getPackage(), callingUid, userId)) { return PackageManager.PERMISSION_DENIED; } final PackageSetting ps = (PackageSetting) pkg.mExtras; final boolean instantApp = ps.getInstantApp(userId); final PermissionsState permissionsState = ps.getPermissionsState(); if (permissionsState.hasPermission(permName, userId)) { Loading