Merge "Fix multi-user handling in PermissionPolicyService." into udc-dev
This commit is contained in:
@@ -194,27 +194,38 @@ public final class PermissionPolicyService extends SystemService {
|
|||||||
|
|
||||||
mPackageManagerInternal.getPackageList(new PackageListObserver() {
|
mPackageManagerInternal.getPackageList(new PackageListObserver() {
|
||||||
@Override
|
@Override
|
||||||
public void onPackageAdded(String packageName, int uid) {
|
public void onPackageAdded(String packageName, int appId) {
|
||||||
final int userId = UserHandle.getUserId(uid);
|
final int[] userIds = LocalServices.getService(UserManagerInternal.class)
|
||||||
if (isStarted(userId)) {
|
.getUserIds();
|
||||||
synchronizePackagePermissionsAndAppOpsForUser(packageName, userId);
|
for (final int userId : userIds) {
|
||||||
|
if (isStarted(userId)) {
|
||||||
|
synchronizePackagePermissionsAndAppOpsForUser(packageName, userId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPackageChanged(String packageName, int uid) {
|
public void onPackageChanged(String packageName, int appId) {
|
||||||
final int userId = UserHandle.getUserId(uid);
|
final int[] userIds = LocalServices.getService(UserManagerInternal.class)
|
||||||
if (isStarted(userId)) {
|
.getUserIds();
|
||||||
synchronizePackagePermissionsAndAppOpsForUser(packageName, userId);
|
for (final int userId : userIds) {
|
||||||
resetAppOpPermissionsIfNotRequestedForUid(uid);
|
if (isStarted(userId)) {
|
||||||
|
synchronizePackagePermissionsAndAppOpsForUser(packageName, userId);
|
||||||
|
final int uid = UserHandle.getUid(userId, appId);
|
||||||
|
resetAppOpPermissionsIfNotRequestedForUid(uid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPackageRemoved(String packageName, int uid) {
|
public void onPackageRemoved(String packageName, int appId) {
|
||||||
final int userId = UserHandle.getUserId(uid);
|
final int[] userIds = LocalServices.getService(UserManagerInternal.class)
|
||||||
if (isStarted(userId)) {
|
.getUserIds();
|
||||||
resetAppOpPermissionsIfNotRequestedForUid(uid);
|
for (final int userId : userIds) {
|
||||||
|
if (isStarted(userId)) {
|
||||||
|
final int uid = UserHandle.getUid(userId, appId);
|
||||||
|
resetAppOpPermissionsIfNotRequestedForUid(uid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user