From c1d2e899ace9306e5f8c8865e4e503dce767cafd Mon Sep 17 00:00:00 2001 From: lifr Date: Tue, 11 Jan 2022 11:17:36 +0800 Subject: [PATCH] [DU04-1]Remove NetworkPolicyManagerInternal from NetworkStatsService Expose system APIs for use by NetworkStatsService. Bug: 211843446 Test: atest NetworkStatsServiceTest NetworkPolicyManagerTest NetworkPolicyManagerServiceTest Change-Id: I56a066b7f4b4c2c8fefdd185c2e50de63b1e2629 --- core/api/module-lib-current.txt | 2 ++ core/java/android/net/INetworkPolicyManager.aidl | 2 +- core/java/android/net/NetworkPolicyManager.java | 8 ++++---- .../src/com/android/server/net/NetworkStatsService.java | 3 +-- .../android/server/net/NetworkPolicyManagerService.java | 2 +- .../server/net/NetworkPolicyManagerServiceTest.java | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt index b380e6d1393d1..1b9004ba28ca7 100644 --- a/core/api/module-lib-current.txt +++ b/core/api/module-lib-current.txt @@ -224,8 +224,10 @@ package android.net { public class NetworkPolicyManager { method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public int getMultipathPreference(@NonNull android.net.Network); method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public int getRestrictBackgroundStatus(int); + method @Nullable @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public android.telephony.SubscriptionPlan getSubscriptionPlan(@NonNull android.net.NetworkTemplate); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public boolean isUidNetworkingBlocked(int, boolean); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public boolean isUidRestrictedOnMeteredNetworks(int); + method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyStatsProviderWarningOrLimitReached(); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void registerNetworkPolicyCallback(@Nullable java.util.concurrent.Executor, @NonNull android.net.NetworkPolicyManager.NetworkPolicyCallback); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void unregisterNetworkPolicyCallback(@NonNull android.net.NetworkPolicyManager.NetworkPolicyCallback); } diff --git a/core/java/android/net/INetworkPolicyManager.aidl b/core/java/android/net/INetworkPolicyManager.aidl index 147138e6712a9..6284f56c82581 100644 --- a/core/java/android/net/INetworkPolicyManager.aidl +++ b/core/java/android/net/INetworkPolicyManager.aidl @@ -70,7 +70,7 @@ interface INetworkPolicyManager { int getMultipathPreference(in Network network); SubscriptionPlan getSubscriptionPlan(in NetworkTemplate template); - void onStatsProviderWarningOrLimitReached(); + void notifyStatsProviderWarningOrLimitReached(); SubscriptionPlan[] getSubscriptionPlans(int subId, String callingPackage); void setSubscriptionPlans(int subId, in SubscriptionPlan[] plans, String callingPackage); String getSubscriptionPlansOwner(int subId); diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java index 426fc617d5fbf..c936bfa051181 100644 --- a/core/java/android/net/NetworkPolicyManager.java +++ b/core/java/android/net/NetworkPolicyManager.java @@ -546,7 +546,7 @@ public class NetworkPolicyManager { @RequiresPermission(anyOf = { NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) - // @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public SubscriptionPlan getSubscriptionPlan(@NonNull NetworkTemplate template) { try { return mService.getSubscriptionPlan(template); @@ -565,10 +565,10 @@ public class NetworkPolicyManager { @RequiresPermission(anyOf = { NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) - // @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) - public void onStatsProviderWarningOrLimitReached() { + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) + public void notifyStatsProviderWarningOrLimitReached() { try { - mService.onStatsProviderWarningOrLimitReached(); + mService.notifyStatsProviderWarningOrLimitReached(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java b/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java index e15acf3ef6164..878056bbebc5e 100644 --- a/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java +++ b/packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java @@ -156,7 +156,6 @@ import com.android.net.module.util.BinderUtils; import com.android.net.module.util.CollectionUtils; import com.android.net.module.util.NetworkStatsUtils; import com.android.net.module.util.PermissionUtils; -import com.android.server.LocalServices; import java.io.File; import java.io.FileDescriptor; @@ -2120,7 +2119,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { public void notifyWarningOrLimitReached() { Log.d(TAG, mTag + ": notifyWarningOrLimitReached"); BinderUtils.withCleanCallingIdentity(() -> - mNetworkPolicyManager.onStatsProviderWarningOrLimitReached()); + mNetworkPolicyManager.notifyStatsProviderWarningOrLimitReached()); } @Override diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index e1cbdb7d22fe3..938c9c8668a9b 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -3472,7 +3472,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * {@link NetworkStatsProvider#onSetWarningAndLimit(String, long, long)}. */ @Override - public void onStatsProviderWarningOrLimitReached() { + public void notifyStatsProviderWarningOrLimitReached() { enforceAnyPermissionOf(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); // This API may be called before the system is ready. synchronized (mNetworkPoliciesSecondLock) { diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java index 9a6f61e7c6cff..27de6070ed7ea 100644 --- a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java @@ -1746,7 +1746,7 @@ public class NetworkPolicyManagerServiceTest { } private void triggerOnStatsProviderWarningOrLimitReached() throws InterruptedException { - mService.onStatsProviderWarningOrLimitReached(); + mService.notifyStatsProviderWarningOrLimitReached(); // Wait for processing of MSG_STATS_PROVIDER_WARNING_OR_LIMIT_REACHED. postMsgAndWaitForCompletion(); verify(mStatsManager).forceUpdate();