Skip to content

Commit 53c7501

Browse files
Amit MahajanAndroid (Google) Code Review
authored andcommitted
Merge "Add OrSelf to privileged permission check." into mnc-dev
2 parents 00f7cb9 + a9e72a7 commit 53c7501

2 files changed

Lines changed: 13 additions & 10 deletions

File tree

services/core/java/com/android/server/TelephonyRegistry.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,10 @@ public void addOnSubscriptionsChangedListener(String callingPackage,
362362
}
363363

364364
try {
365-
mContext.enforceCallingPermission(
365+
mContext.enforceCallingOrSelfPermission(
366366
android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
367367
"addOnSubscriptionsChangedListener");
368-
// SKIP checking for run-time permission since obtained PRIVILEGED
368+
// SKIP checking for run-time permission since caller or self has PRIVILEGED permission
369369
} catch (SecurityException e) {
370370
mContext.enforceCallingOrSelfPermission(
371371
android.Manifest.permission.READ_PHONE_STATE,
@@ -481,9 +481,10 @@ private void listen(String callingPackage, IPhoneStateListener callback, int eve
481481

482482
if ((events & ENFORCE_PHONE_STATE_PERMISSION_MASK) != 0) {
483483
try {
484-
mContext.enforceCallingPermission(
484+
mContext.enforceCallingOrSelfPermission(
485485
android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, null);
486-
// SKIP checking for run-time permission since obtained PRIVILEGED
486+
// SKIP checking for run-time permission since caller or self has PRIVILEGED
487+
// permission
487488
} catch (SecurityException e) {
488489
if (mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),
489490
callingPackage) != AppOpsManager.MODE_ALLOWED) {
@@ -661,10 +662,10 @@ private void listen(String callingPackage, IPhoneStateListener callback, int eve
661662
}
662663

663664
private boolean canReadPhoneState(String callingPackage) {
664-
if (mContext.checkCallingPermission(
665+
if (mContext.checkCallingOrSelfPermission(
665666
android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) ==
666667
PackageManager.PERMISSION_GRANTED) {
667-
// SKIP checking for run-time permission since obtained PRIVILEGED
668+
// SKIP checking for run-time permission since caller or self has PRIVILEGED permission
668669
return true;
669670
}
670671
boolean canReadPhoneState = mContext.checkCallingOrSelfPermission(
@@ -1589,9 +1590,10 @@ private void checkListenerPermission(int events) {
15891590

15901591
if ((events & ENFORCE_PHONE_STATE_PERMISSION_MASK) != 0) {
15911592
try {
1592-
mContext.enforceCallingPermission(
1593+
mContext.enforceCallingOrSelfPermission(
15931594
android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, null);
1594-
// SKIP checking for run-time permission since obtained PRIVILEGED
1595+
// SKIP checking for run-time permission since caller or self has PRIVILEGED
1596+
// permission
15951597
} catch (SecurityException e) {
15961598
mContext.enforceCallingOrSelfPermission(
15971599
android.Manifest.permission.READ_PHONE_STATE, null);

services/core/java/com/android/server/net/NetworkPolicyManagerService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1668,8 +1668,9 @@ void addNetworkPolicyLocked(NetworkPolicy policy) {
16681668
public NetworkPolicy[] getNetworkPolicies(String callingPackage) {
16691669
mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
16701670
try {
1671-
mContext.enforceCallingPermission(READ_PRIVILEGED_PHONE_STATE, TAG);
1672-
// SKIP checking run-time OP_READ_PHONE_STATE since using PRIVILEGED
1671+
mContext.enforceCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE, TAG);
1672+
// SKIP checking run-time OP_READ_PHONE_STATE since caller or self has PRIVILEGED
1673+
// permission
16731674
} catch (SecurityException e) {
16741675
mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, TAG);
16751676

0 commit comments

Comments
 (0)