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
This commit is contained in:
Brian Lindahl
2022-02-20 07:58:07 +01:00
parent 86388ef921
commit 4db40fcb72
2 changed files with 6 additions and 5 deletions

View File

@@ -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 {

View File

@@ -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