Catch NetworkPolicy exception when uid is system

Fix: 264286830

Test: m build
Change-Id: I997f6f131b5d02121c49ae50ceec2d8709fc0f02
This commit is contained in:
Guojing Yuan
2023-01-10 18:25:17 +00:00
parent 5cd7ef0fd5
commit 8e2c345f2f

View File

@@ -1160,16 +1160,20 @@ public class CompanionDeviceManagerService extends SystemService {
}
NetworkPolicyManager networkPolicyManager = NetworkPolicyManager.from(getContext());
if (containsEither(packageInfo.requestedPermissions,
android.Manifest.permission.USE_DATA_IN_BACKGROUND,
android.Manifest.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND)) {
networkPolicyManager.addUidPolicy(
packageInfo.applicationInfo.uid,
NetworkPolicyManager.POLICY_ALLOW_METERED_BACKGROUND);
} else {
networkPolicyManager.removeUidPolicy(
packageInfo.applicationInfo.uid,
NetworkPolicyManager.POLICY_ALLOW_METERED_BACKGROUND);
try {
if (containsEither(packageInfo.requestedPermissions,
android.Manifest.permission.USE_DATA_IN_BACKGROUND,
android.Manifest.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND)) {
networkPolicyManager.addUidPolicy(
packageInfo.applicationInfo.uid,
NetworkPolicyManager.POLICY_ALLOW_METERED_BACKGROUND);
} else {
networkPolicyManager.removeUidPolicy(
packageInfo.applicationInfo.uid,
NetworkPolicyManager.POLICY_ALLOW_METERED_BACKGROUND);
}
} catch (IllegalArgumentException e) {
Slog.e(TAG, e.getMessage());
}
exemptFromAutoRevoke(packageInfo.packageName, packageInfo.applicationInfo.uid);