Revert "Check permissions only against packagesettings"

This reverts commit b00eb6459127018ec7641f407d5873a0c417416d.

Reason for revert: Boot issues after OTA
Bug: 76228188
Fixes: 77888575
Change-Id: I5ca2605cb6befea46ce50198bc72bdd4b6e84f1a
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 33e5c7d..2c98da3 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -5304,7 +5304,7 @@
         synchronized (mPackages) {
             final String[] packageNames = getPackagesForUid(uid);
             final PackageParser.Package pkg = (packageNames != null && packageNames.length > 0)
-                    ? mSettings.getPackageLPr(packageNames[0]).getPackage()
+                    ? mPackages.get(packageNames[0])
                     : null;
             return mPermissionManager.checkUidPermission(permName, pkg, uid, getCallingUid());
         }
@@ -8070,6 +8070,7 @@
                 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)
@@ -8140,7 +8141,7 @@
     }
 
     private boolean isCallerSameApp(String packageName, int uid) {
-        PackageParser.Package pkg = mSettings.getPackageLPr(packageName).getPackage();
+        PackageParser.Package pkg = mPackages.get(packageName);
         return pkg != null
                 && UserHandle.getAppId(uid) == pkg.applicationInfo.uid;
     }
@@ -23613,13 +23614,6 @@
         }
 
         @Override
-        public Object getPackageSetting(String packageName) {
-            synchronized (mPackages) {
-                return mSettings.getPackageLPr(packageName);
-            }
-        }
-
-        @Override
         public PackageList getPackageList(PackageListObserver observer) {
             synchronized (mPackages) {
                 final int N = mPackages.size();
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index 065133b..f5b52fc 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -212,11 +212,12 @@
             return PackageManager.PERMISSION_DENIED;
         }
 
-        final PackageSetting ps = (PackageSetting) mPackageManagerInt.getPackageSetting(pkgName);
-        if (ps != null && ps.getPackage() != null) {
-            if (mPackageManagerInt.filterAppAccess(ps.getPackage(), callingUid, userId)) {
+        final PackageParser.Package pkg = mPackageManagerInt.getPackage(pkgName);
+        if (pkg != null && pkg.mExtras != null) {
+            if (mPackageManagerInt.filterAppAccess(pkg, 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)) {