From 8e2c345f2f1eb33be2da5d7a3c0f3555d671c07e Mon Sep 17 00:00:00 2001 From: Guojing Yuan Date: Tue, 10 Jan 2023 18:25:17 +0000 Subject: [PATCH] Catch NetworkPolicy exception when uid is system Fix: 264286830 Test: m build Change-Id: I997f6f131b5d02121c49ae50ceec2d8709fc0f02 --- .../CompanionDeviceManagerService.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index d34fc595ea5e2..37b49a2233f1a 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -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);