Merge "[MS26.1] Remove Process.NETWORK_STACK_UID dependency"
This commit is contained in:
commit
c938ae401e
@ -17,6 +17,7 @@
|
||||
package android.net;
|
||||
|
||||
import static android.Manifest.permission.READ_NETWORK_USAGE_HISTORY;
|
||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
import static android.net.NetworkStats.UID_ALL;
|
||||
import static android.net.TrafficStats.UID_REMOVED;
|
||||
import static android.net.TrafficStats.UID_TETHERING;
|
||||
@ -106,7 +107,7 @@ public final class NetworkStatsAccess {
|
||||
|
||||
/** Returns the {@link NetworkStatsAccess.Level} for the given caller. */
|
||||
public static @NetworkStatsAccess.Level int checkAccessLevel(
|
||||
Context context, int callingUid, String callingPackage) {
|
||||
Context context, int callingPid, int callingUid, String callingPackage) {
|
||||
final DevicePolicyManager mDpm = context.getSystemService(DevicePolicyManager.class);
|
||||
final TelephonyManager tm = (TelephonyManager)
|
||||
context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
@ -123,8 +124,12 @@ public final class NetworkStatsAccess {
|
||||
final boolean isDeviceOwner = mDpm != null && mDpm.isDeviceOwnerApp(callingPackage);
|
||||
final int appId = UserHandle.getAppId(callingUid);
|
||||
|
||||
final boolean isNetworkStack = context.checkPermission(
|
||||
android.Manifest.permission.NETWORK_STACK, callingPid, callingUid)
|
||||
== PERMISSION_GRANTED;
|
||||
|
||||
if (hasCarrierPrivileges || isDeviceOwner
|
||||
|| appId == Process.SYSTEM_UID || appId == Process.NETWORK_STACK_UID) {
|
||||
|| appId == Process.SYSTEM_UID || isNetworkStack) {
|
||||
// Carrier-privileged apps and device owners, and the system (including the
|
||||
// network stack) can access data usage for all apps on the device.
|
||||
return NetworkStatsAccess.Level.DEVICE;
|
||||
|
@ -809,7 +809,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
|
||||
private @NetworkStatsAccess.Level int checkAccessLevel(String callingPackage) {
|
||||
return NetworkStatsAccess.checkAccessLevel(
|
||||
mContext, Binder.getCallingUid(), callingPackage);
|
||||
mContext, Binder.getCallingPid(), Binder.getCallingUid(), callingPackage);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user