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

Commit 4db40fcb authored by Brian Lindahl's avatar Brian Lindahl
Browse files

Expose permission MEDIA_RESOURCE_OVERRIDE_PID as a system API and allow

vendor services to use it

The MEDIA_RESOURCE_OVERRIDE_PID permission is needed to create codecs on
behalf of other processes. The protection level is elevated to allow for
Vendor and OEM processes, specifically for Vendor/OEM TvInputService
which manages inputs for broadcast and cable TV apps.

Bug: 217746837
Fixes: 219768766
Test: atest MediaCodecResourceTest
Change-Id: I8b2f4da91be120250f6f37c5623a8a0afe0e1c82
parent 86388ef9
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -197,6 +197,7 @@ package android {
    field public static final String MANAGE_WEAK_ESCROW_TOKEN = "android.permission.MANAGE_WEAK_ESCROW_TOKEN";
    field public static final String MANAGE_WIFI_COUNTRY_CODE = "android.permission.MANAGE_WIFI_COUNTRY_CODE";
    field public static final String MARK_DEVICE_ORGANIZATION_OWNED = "android.permission.MARK_DEVICE_ORGANIZATION_OWNED";
    field public static final String MEDIA_RESOURCE_OVERRIDE_PID = "android.permission.MEDIA_RESOURCE_OVERRIDE_PID";
    field public static final String MODIFY_APPWIDGET_BIND_PERMISSIONS = "android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS";
    field public static final String MODIFY_AUDIO_ROUTING = "android.permission.MODIFY_AUDIO_ROUTING";
    field public static final String MODIFY_CELL_BROADCASTS = "android.permission.MODIFY_CELL_BROADCASTS";
@@ -6267,7 +6268,7 @@ package android.media {
  }
  public final class MediaCodec {
    method @NonNull @RequiresPermission("android.permission.MEDIA_RESOURCE_OVERRIDE_PID") public static android.media.MediaCodec createByCodecNameForClient(@NonNull String, int, int) throws java.io.IOException;
    method @NonNull @RequiresPermission(android.Manifest.permission.MEDIA_RESOURCE_OVERRIDE_PID) public static android.media.MediaCodec createByCodecNameForClient(@NonNull String, int, int) throws java.io.IOException;
  }
  public class MediaPlayer implements android.media.AudioRouting android.media.VolumeAutomation {
+4 −4
Original line number Diff line number Diff line
@@ -4318,13 +4318,13 @@
    <permission android:name="android.permission.TUNER_RESOURCE_ACCESS"
         android:protectionLevel="signature|privileged|vendorPrivileged" />

    <!-- This permission is required by Media Resource Manager Service when
         accessing its overridePid Api.
         <p>Protection level: signature
    <!-- @SystemApi This permission is required by Media Resource Manager Service when
         system services create MediaCodecs on behalf of other processes and apps.
         <p>Protection level: signature|privileged|vendorPrivileged
         <p>Not for use by third-party applications.
         @hide -->
    <permission android:name="android.permission.MEDIA_RESOURCE_OVERRIDE_PID"
         android:protectionLevel="signature" />
         android:protectionLevel="signature|privileged|vendorPrivileged" />
    <uses-permission android:name="android.permission.MEDIA_RESOURCE_OVERRIDE_PID" />

    <!-- This permission is required by Media Resource Observer Service when