Merge "Add checks for READ_PRIVILEGED_PHONE_STATE." into mnc-dev
This commit is contained in:
@@ -22,6 +22,7 @@ import static android.Manifest.permission.DUMP;
|
|||||||
import static android.Manifest.permission.MANAGE_NETWORK_POLICY;
|
import static android.Manifest.permission.MANAGE_NETWORK_POLICY;
|
||||||
import static android.Manifest.permission.READ_NETWORK_USAGE_HISTORY;
|
import static android.Manifest.permission.READ_NETWORK_USAGE_HISTORY;
|
||||||
import static android.Manifest.permission.READ_PHONE_STATE;
|
import static android.Manifest.permission.READ_PHONE_STATE;
|
||||||
|
import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;
|
||||||
import static android.content.Intent.ACTION_PACKAGE_ADDED;
|
import static android.content.Intent.ACTION_PACKAGE_ADDED;
|
||||||
import static android.content.Intent.ACTION_UID_REMOVED;
|
import static android.content.Intent.ACTION_UID_REMOVED;
|
||||||
import static android.content.Intent.ACTION_USER_ADDED;
|
import static android.content.Intent.ACTION_USER_ADDED;
|
||||||
@@ -1651,11 +1652,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
@Override
|
@Override
|
||||||
public NetworkPolicy[] getNetworkPolicies(String callingPackage) {
|
public NetworkPolicy[] getNetworkPolicies(String callingPackage) {
|
||||||
mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
|
mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
|
||||||
mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, TAG);
|
try {
|
||||||
|
mContext.enforceCallingPermission(READ_PRIVILEGED_PHONE_STATE, TAG);
|
||||||
|
// SKIP checking run-time OP_READ_PHONE_STATE since using PRIVILEGED
|
||||||
|
} catch (SecurityException e) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, TAG);
|
||||||
|
|
||||||
if (mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),
|
if (mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),
|
||||||
callingPackage) != AppOpsManager.MODE_ALLOWED) {
|
callingPackage) != AppOpsManager.MODE_ALLOWED) {
|
||||||
return new NetworkPolicy[0];
|
return new NetworkPolicy[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized (mRulesLock) {
|
synchronized (mRulesLock) {
|
||||||
|
|||||||
Reference in New Issue
Block a user