Merge "Prune shared users that the system declares but does not use" into klp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0f8ec44b13
@@ -1349,6 +1349,9 @@ public class PackageManagerService extends IPackageManager.Stub {
|
|||||||
//delete tmp files
|
//delete tmp files
|
||||||
deleteTempPackageFiles();
|
deleteTempPackageFiles();
|
||||||
|
|
||||||
|
// Remove any shared userIDs that have no associated packages
|
||||||
|
mSettings.pruneSharedUsersLPw();
|
||||||
|
|
||||||
if (!mOnlyCore) {
|
if (!mOnlyCore) {
|
||||||
EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_DATA_SCAN_START,
|
EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_DATA_SCAN_START,
|
||||||
SystemClock.uptimeMillis());
|
SystemClock.uptimeMillis());
|
||||||
|
|||||||
@@ -351,6 +351,19 @@ final class Settings {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pruneSharedUsersLPw() {
|
||||||
|
ArrayList<String> removeStage = new ArrayList<String>();
|
||||||
|
for (Map.Entry<String,SharedUserSetting> entry : mSharedUsers.entrySet()) {
|
||||||
|
final SharedUserSetting sus = entry.getValue();
|
||||||
|
if (sus == null || sus.packages.size() == 0) {
|
||||||
|
removeStage.add(entry.getKey());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0; i < removeStage.size(); i++) {
|
||||||
|
mSharedUsers.remove(removeStage.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Transfer ownership of permissions from one package to another.
|
// Transfer ownership of permissions from one package to another.
|
||||||
void transferPermissionsLPw(String origPkg, String newPkg) {
|
void transferPermissionsLPw(String origPkg, String newPkg) {
|
||||||
// Transfer ownership of permissions to the new package.
|
// Transfer ownership of permissions to the new package.
|
||||||
|
|||||||
Reference in New Issue
Block a user