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

Commit 32d26a37 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk
Browse files

Add permission check for java RadioService.

Bug: b/62264079
Test: instrumentation
Change-Id: I7656711fc07f6630dfeb32f1f4156fac8b5feea2
parent d15c9dfd
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -16,7 +16,9 @@

package com.android.server.radio;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.radio.IRadioService;
import android.hardware.radio.ITuner;
import android.hardware.radio.ITunerCallback;
@@ -65,8 +67,16 @@ public class RadioService extends SystemService {
    }

    private class RadioServiceImpl extends IRadioService.Stub {
        private void enforcePolicyAccess() {
            if (PackageManager.PERMISSION_GRANTED != getContext().checkCallingPermission(
                    Manifest.permission.ACCESS_FM_RADIO)) {
                throw new SecurityException("ACCESS_FM_RADIO permission not granted");
            }
        }

        @Override
        public List<RadioManager.ModuleProperties> listModules() {
            enforcePolicyAccess();
            synchronized (mLock) {
                if (mModules != null) return mModules;

@@ -83,6 +93,7 @@ public class RadioService extends SystemService {
        @Override
        public ITuner openTuner(int moduleId, RadioManager.BandConfig bandConfig,
                boolean withAudio, ITunerCallback callback) {
            enforcePolicyAccess();
            if (callback == null) {
                throw new IllegalArgumentException("Callback must not be empty");
            }