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

Commit 2e1da5b8 authored by Weilin Xu's avatar Weilin Xu Committed by Cherrypicker Worker
Browse files

Add dump permission check in broadcastradio

Bug: 283007554
Test: atest CtsSecurityTestCases:android.security.cts.ServicePermissionsTest#testDumpProtected
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:95f4f4afeb841b3df882f980d5a628ec37da29a6)
Merged-In: I496475cea43713c72aed104a4c51a47613646a7a
Change-Id: I496475cea43713c72aed104a4c51a47613646a7a
parent a4ddddd2
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.broadcastradio;

import android.Manifest;
import android.content.pm.PackageManager;
import android.hardware.broadcastradio.IBroadcastRadio;
import android.hardware.radio.IAnnouncementListener;
import android.hardware.radio.ICloseHandle;
@@ -23,6 +25,7 @@ import android.hardware.radio.IRadioService;
import android.hardware.radio.ITuner;
import android.hardware.radio.ITunerCallback;
import android.hardware.radio.RadioManager;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -112,6 +115,13 @@ final class IRadioServiceAidlImpl extends IRadioService.Stub {

    @Override
    protected void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
        if (mService.getContext().checkCallingOrSelfPermission(Manifest.permission.DUMP)
                != PackageManager.PERMISSION_GRANTED) {
            printWriter.println("Permission Denial: can't dump AIDL BroadcastRadioService from "
                    + "from pid=" + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid()
                    + " without permission " + Manifest.permission.DUMP);
            return;
        }
        IndentingPrintWriter radioPrintWriter = new IndentingPrintWriter(printWriter);
        radioPrintWriter.printf("BroadcastRadioService\n");

+10 −0
Original line number Diff line number Diff line
@@ -16,12 +16,15 @@

package com.android.server.broadcastradio;

import android.Manifest;
import android.content.pm.PackageManager;
import android.hardware.radio.IAnnouncementListener;
import android.hardware.radio.ICloseHandle;
import android.hardware.radio.IRadioService;
import android.hardware.radio.ITuner;
import android.hardware.radio.ITunerCallback;
import android.hardware.radio.RadioManager;
import android.os.Binder;
import android.os.RemoteException;
import android.util.IndentingPrintWriter;
import android.util.Log;
@@ -129,6 +132,13 @@ final class IRadioServiceHidlImpl extends IRadioService.Stub {

    @Override
    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        if (mService.getContext().checkCallingOrSelfPermission(Manifest.permission.DUMP)
                != PackageManager.PERMISSION_GRANTED) {
            pw.println("Permission Denial: can't dump HIDL BroadcastRadioService from "
                    + "from pid=" + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid()
                    + " without permission " + Manifest.permission.DUMP);
            return;
        }
        IndentingPrintWriter radioPw = new IndentingPrintWriter(pw);
        radioPw.printf("BroadcastRadioService\n");