Loading services/java/com/android/server/PackageManagerService.java +17 −8 Original line number Diff line number Diff line Loading @@ -4223,7 +4223,7 @@ class PackageManagerService extends IPackageManager.Stub { synchronized (mPackages) { if ( (deletedPs != null) && (deletedPs.sharedUser != null)) { // remove permissions associated with package mSettings.updateSharedUserPerms (deletedPs); mSettings.updateSharedUserPermsLP(deletedPs, mGlobalGids); } // Save settings now mSettings.writeLP (); Loading Loading @@ -6011,7 +6011,15 @@ class PackageManagerService extends IPackageManager.Stub { } } private void updateSharedUserPerms (PackageSetting deletedPs) { /* * Update the shared user setting when a package using * specifying the shared user id is removed. The gids * associated with each permission of the deleted package * are removed from the shared user's gid list only if its * not in use by other permissions of packages in the * shared user setting. */ private void updateSharedUserPermsLP(PackageSetting deletedPs, int[] globalGids) { if ( (deletedPs == null) || (deletedPs.pkg == null)) { Log.i(TAG, "Trying to update info for null package. Just ignoring"); return; Loading Loading @@ -6040,9 +6048,10 @@ class PackageManagerService extends IPackageManager.Stub { } } // Update gids int newGids[] = null; for (PackageSetting pkg:sus.packages) { newGids = appendInts(newGids, pkg.gids); int newGids[] = globalGids; for (String eachPerm : sus.grantedPermissions) { BasePermission bp = mPermissions.get(eachPerm); newGids = appendInts(newGids, bp.gids); } sus.gids = newGids; } Loading Loading
services/java/com/android/server/PackageManagerService.java +17 −8 Original line number Diff line number Diff line Loading @@ -4223,7 +4223,7 @@ class PackageManagerService extends IPackageManager.Stub { synchronized (mPackages) { if ( (deletedPs != null) && (deletedPs.sharedUser != null)) { // remove permissions associated with package mSettings.updateSharedUserPerms (deletedPs); mSettings.updateSharedUserPermsLP(deletedPs, mGlobalGids); } // Save settings now mSettings.writeLP (); Loading Loading @@ -6011,7 +6011,15 @@ class PackageManagerService extends IPackageManager.Stub { } } private void updateSharedUserPerms (PackageSetting deletedPs) { /* * Update the shared user setting when a package using * specifying the shared user id is removed. The gids * associated with each permission of the deleted package * are removed from the shared user's gid list only if its * not in use by other permissions of packages in the * shared user setting. */ private void updateSharedUserPermsLP(PackageSetting deletedPs, int[] globalGids) { if ( (deletedPs == null) || (deletedPs.pkg == null)) { Log.i(TAG, "Trying to update info for null package. Just ignoring"); return; Loading Loading @@ -6040,9 +6048,10 @@ class PackageManagerService extends IPackageManager.Stub { } } // Update gids int newGids[] = null; for (PackageSetting pkg:sus.packages) { newGids = appendInts(newGids, pkg.gids); int newGids[] = globalGids; for (String eachPerm : sus.grantedPermissions) { BasePermission bp = mPermissions.get(eachPerm); newGids = appendInts(newGids, bp.gids); } sus.gids = newGids; } Loading