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

Commit 1976c21a authored by Hall Liu's avatar Hall Liu Committed by android-build-merger
Browse files

Merge "Add an app-ops check when registering for location" am: b376f022

am: be935934

Change-Id: I2490e155ca7436b1e38e5539f4215ba65b666b3e
parents 5e828f57 be935934
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -203,6 +203,10 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
    private PreciseDataConnectionState mPreciseDataConnectionState =
                new PreciseDataConnectionState();

    static final int ENFORCE_COARSE_LOCATION_PERMISSION_MASK =
            PhoneStateListener.LISTEN_CELL_LOCATION
                    | PhoneStateListener.LISTEN_CELL_INFO;

    static final int ENFORCE_PHONE_STATE_PERMISSION_MASK =
                PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR |
                PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR |
@@ -1721,16 +1725,13 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
    }

    private boolean checkListenerPermission(int events, String callingPackage, String message) {
        if ((events & PhoneStateListener.LISTEN_CELL_LOCATION) != 0) {
        if ((events & ENFORCE_COARSE_LOCATION_PERMISSION_MASK) != 0) {
            mContext.enforceCallingOrSelfPermission(
                    android.Manifest.permission.ACCESS_COARSE_LOCATION, null);

            if (mAppOps.noteOp(AppOpsManager.OP_COARSE_LOCATION, Binder.getCallingUid(),
                    callingPackage) != AppOpsManager.MODE_ALLOWED) {
                return false;
            }

        if ((events & PhoneStateListener.LISTEN_CELL_INFO) != 0) {
            mContext.enforceCallingOrSelfPermission(
                    android.Manifest.permission.ACCESS_COARSE_LOCATION, null);

        }

        if ((events & ENFORCE_PHONE_STATE_PERMISSION_MASK) != 0) {