Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa17ec99 authored by sangyun's avatar sangyun
Browse files

Return false instead of throwing SecurityException for revoked case

When checking permissions such as ReadPhoneState or ReadCallLog in
TelephonyPermissions, modified so that a SecurityException is not
thrown by AppOps revoked.

Bug: 312236479
Test: atest CtsTelephonyTestCases, FrameworksTelephonyTests
Change-Id: Ia4eb99e7335ebc23c04f9fbec34001abd0bd3b6d
parent 4b07244a
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -196,7 +196,7 @@ public final class TelephonyPermissions {
        // We have READ_PHONE_STATE permission, so return true as long as the AppOps bit hasn't been
        // We have READ_PHONE_STATE permission, so return true as long as the AppOps bit hasn't been
        // revoked.
        // revoked.
        AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        return appOps.noteOp(AppOpsManager.OPSTR_READ_PHONE_STATE, uid, callingPackage,
        return appOps.noteOpNoThrow(AppOpsManager.OPSTR_READ_PHONE_STATE, uid, callingPackage,
                callingFeatureId, null) == AppOpsManager.MODE_ALLOWED;
                callingFeatureId, null) == AppOpsManager.MODE_ALLOWED;
    }
    }


@@ -249,7 +249,7 @@ public final class TelephonyPermissions {
        // We have READ_PHONE_STATE permission, so return true as long as the AppOps bit hasn't been
        // We have READ_PHONE_STATE permission, so return true as long as the AppOps bit hasn't been
        // revoked.
        // revoked.
        AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        return appOps.noteOp(AppOpsManager.OPSTR_READ_PHONE_STATE, uid, callingPackage,
        return appOps.noteOpNoThrow(AppOpsManager.OPSTR_READ_PHONE_STATE, uid, callingPackage,
                callingFeatureId, null) == AppOpsManager.MODE_ALLOWED;
                callingFeatureId, null) == AppOpsManager.MODE_ALLOWED;
    }
    }


@@ -521,7 +521,7 @@ public final class TelephonyPermissions {
        // We have READ_CALL_LOG permission, so return true as long as the AppOps bit hasn't been
        // We have READ_CALL_LOG permission, so return true as long as the AppOps bit hasn't been
        // revoked.
        // revoked.
        AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        return appOps.noteOp(AppOpsManager.OPSTR_READ_CALL_LOG, uid, callingPackage,
        return appOps.noteOpNoThrow(AppOpsManager.OPSTR_READ_CALL_LOG, uid, callingPackage,
                callingPackageName, null) == AppOpsManager.MODE_ALLOWED;
                callingPackageName, null) == AppOpsManager.MODE_ALLOWED;
    }
    }