Add permission check functions to NetworkStatsService
This is shameless copied from ConnectivityService and plan to be used in follow-up change. For long term perspective we should have a permission util that contains those util in one place. Test: m -j Change-Id: I837545b54f36c8f21c878cbb1fd028ff23be6cb8
This commit is contained in:
@@ -23,6 +23,7 @@ import static android.content.Intent.ACTION_SHUTDOWN;
|
|||||||
import static android.content.Intent.ACTION_UID_REMOVED;
|
import static android.content.Intent.ACTION_UID_REMOVED;
|
||||||
import static android.content.Intent.ACTION_USER_REMOVED;
|
import static android.content.Intent.ACTION_USER_REMOVED;
|
||||||
import static android.content.Intent.EXTRA_UID;
|
import static android.content.Intent.EXTRA_UID;
|
||||||
|
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||||
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
|
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
|
||||||
import static android.net.ConnectivityManager.isNetworkTypeMobile;
|
import static android.net.ConnectivityManager.isNetworkTypeMobile;
|
||||||
import static android.net.NetworkStack.checkNetworkStackPermission;
|
import static android.net.NetworkStack.checkNetworkStackPermission;
|
||||||
@@ -1766,6 +1767,24 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: It is copied from ConnectivitySerivce, consider refactor these check permission
|
||||||
|
// functions to a proper util.
|
||||||
|
private boolean checkAnyPermissionOf(String... permissions) {
|
||||||
|
for (String permission : permissions) {
|
||||||
|
if (mContext.checkCallingOrSelfPermission(permission) == PERMISSION_GRANTED) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void enforceAnyPermissionOf(String... permissions) {
|
||||||
|
if (!checkAnyPermissionOf(permissions)) {
|
||||||
|
throw new SecurityException("Requires one of the following permissions: "
|
||||||
|
+ String.join(", ", permissions) + ".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a custom provider of {@link android.net.NetworkStats} to combine the network
|
* Registers a custom provider of {@link android.net.NetworkStats} to combine the network
|
||||||
* statistics that cannot be seen by the kernel to system. To unregister, invoke the
|
* statistics that cannot be seen by the kernel to system. To unregister, invoke the
|
||||||
|
|||||||
Reference in New Issue
Block a user