Merge "Fix deadlock in DPMS" into tm-dev
This commit is contained in:
@@ -1164,7 +1164,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
policy.mAdminList.remove(i);
|
policy.mAdminList.remove(i);
|
||||||
policy.mAdminMap.remove(aa.info.getComponent());
|
policy.mAdminMap.remove(aa.info.getComponent());
|
||||||
pushActiveAdminPackagesLocked(userHandle);
|
pushActiveAdminPackagesLocked(userHandle);
|
||||||
pushMeteredDisabledPackagesLocked(userHandle);
|
pushMeteredDisabledPackages(userHandle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (RemoteException re) {
|
} catch (RemoteException re) {
|
||||||
@@ -3571,7 +3571,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
for (int i = users.size() - 1; i >= 0; --i) {
|
for (int i = users.size() - 1; i >= 0; --i) {
|
||||||
final int userId = users.get(i).id;
|
final int userId = users.get(i).id;
|
||||||
mInjector.getNetworkPolicyManagerInternal().setMeteredRestrictedPackagesAsync(
|
mInjector.getNetworkPolicyManagerInternal().setMeteredRestrictedPackagesAsync(
|
||||||
getMeteredDisabledPackagesLocked(userId), userId);
|
getMeteredDisabledPackages(userId), userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14692,7 +14692,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
final List<String> excludedPkgs = removeInvalidPkgsForMeteredDataRestriction(
|
final List<String> excludedPkgs = removeInvalidPkgsForMeteredDataRestriction(
|
||||||
caller.getUserId(), packageNames);
|
caller.getUserId(), packageNames);
|
||||||
admin.meteredDisabledPackages = packageNames;
|
admin.meteredDisabledPackages = packageNames;
|
||||||
pushMeteredDisabledPackagesLocked(caller.getUserId());
|
pushMeteredDisabledPackages(caller.getUserId());
|
||||||
saveSettingsLocked(caller.getUserId());
|
saveSettingsLocked(caller.getUserId());
|
||||||
return excludedPkgs;
|
return excludedPkgs;
|
||||||
});
|
});
|
||||||
@@ -14844,21 +14844,22 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
isProfileOwnerOnOrganizationOwnedDevice);
|
isProfileOwnerOnOrganizationOwnedDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void pushMeteredDisabledPackagesLocked(int userId) {
|
private void pushMeteredDisabledPackages(int userId) {
|
||||||
|
wtfIfInLock();
|
||||||
mInjector.getNetworkPolicyManagerInternal().setMeteredRestrictedPackages(
|
mInjector.getNetworkPolicyManagerInternal().setMeteredRestrictedPackages(
|
||||||
getMeteredDisabledPackagesLocked(userId), userId);
|
getMeteredDisabledPackages(userId), userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<String> getMeteredDisabledPackagesLocked(int userId) {
|
private Set<String> getMeteredDisabledPackages(int userId) {
|
||||||
final ComponentName who = getOwnerComponent(userId);
|
synchronized (getLockObject()) {
|
||||||
final Set<String> restrictedPkgs = new ArraySet<>();
|
final Set<String> restrictedPkgs = new ArraySet<>();
|
||||||
if (who != null) {
|
final ActiveAdmin admin = getDeviceOrProfileOwnerAdminLocked(userId);
|
||||||
final ActiveAdmin admin = getActiveAdminUncheckedLocked(who, userId);
|
|
||||||
if (admin != null && admin.meteredDisabledPackages != null) {
|
if (admin != null && admin.meteredDisabledPackages != null) {
|
||||||
restrictedPkgs.addAll(admin.meteredDisabledPackages);
|
restrictedPkgs.addAll(admin.meteredDisabledPackages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return restrictedPkgs;
|
||||||
}
|
}
|
||||||
return restrictedPkgs;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -15302,13 +15303,13 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
resetGlobalProxyLocked(policy);
|
resetGlobalProxyLocked(policy);
|
||||||
}
|
}
|
||||||
pushActiveAdminPackagesLocked(userHandle);
|
pushActiveAdminPackagesLocked(userHandle);
|
||||||
pushMeteredDisabledPackagesLocked(userHandle);
|
|
||||||
saveSettingsLocked(userHandle);
|
saveSettingsLocked(userHandle);
|
||||||
updateMaximumTimeToLockLocked(userHandle);
|
updateMaximumTimeToLockLocked(userHandle);
|
||||||
policy.mRemovingAdmins.remove(adminReceiver);
|
policy.mRemovingAdmins.remove(adminReceiver);
|
||||||
|
|
||||||
Slogf.i(LOG_TAG, "Device admin " + adminReceiver + " removed from user " + userHandle);
|
Slogf.i(LOG_TAG, "Device admin " + adminReceiver + " removed from user " + userHandle);
|
||||||
}
|
}
|
||||||
|
pushMeteredDisabledPackages(userHandle);
|
||||||
// The removed admin might have disabled camera, so update user
|
// The removed admin might have disabled camera, so update user
|
||||||
// restrictions.
|
// restrictions.
|
||||||
pushUserRestrictions(userHandle);
|
pushUserRestrictions(userHandle);
|
||||||
|
|||||||
Reference in New Issue
Block a user