Loading api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android { field public static final String ACCESS_SHARED_LIBRARIES = "android.permission.ACCESS_SHARED_LIBRARIES"; field public static final String ACCESS_SHORTCUTS = "android.permission.ACCESS_SHORTCUTS"; field public static final String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER"; field public static final String ACCESS_TV_DESCRAMBLER = "android.permission.ACCESS_TV_DESCRAMBLER"; field public static final String ACCESS_TV_TUNER = "android.permission.ACCESS_TV_TUNER"; field public static final String ACCESS_VIBRATOR_STATE = "android.permission.ACCESS_VIBRATOR_STATE"; field public static final String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING"; Loading Loading @@ -4877,7 +4878,7 @@ package android.media.tv.tuner { method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities(@NonNull android.content.Context); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo(); method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Descrambler openDescrambler(); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) public android.media.tv.tuner.Descrambler openDescrambler(); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrPlayback openDvrPlayback(long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.dvr.OnPlaybackStatusChangedListener); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrRecorder openDvrRecorder(long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.dvr.OnRecordStatusChangedListener); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.filter.Filter openFilter(int, int, long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.filter.FilterCallback); Loading core/res/AndroidManifest.xml +7 −1 Original line number Diff line number Diff line Loading @@ -4941,7 +4941,13 @@ <p>Not for use by third-party applications. @hide --> <permission android:name="android.permission.ACCESS_TV_TUNER" android:protectionLevel="signature|privileged" /> android:protectionLevel="signature|privileged|vendorPrivileged" /> <!-- @SystemApi Allows an application to access descrambler of TV tuner HAL <p>Not for use by third-party applications. @hide --> <permission android:name="android.permission.ACCESS_TV_DESCRAMBLER" android:protectionLevel="signature|privileged|vendorPrivileged" /> <!-- @hide @SystemApi Allows an application to access locusId events in the usage stats. --> <permission android:name="android.permission.ACCESS_LOCUS_ID_USAGE_STATS" Loading media/java/android/media/tv/tuner/Tuner.java +2 −2 Original line number Diff line number Diff line Loading @@ -612,10 +612,10 @@ public class Tuner implements AutoCloseable { * * @return a {@link Descrambler} object. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) @Nullable public Descrambler openDescrambler() { TunerUtils.checkTunerPermission(mContext); TunerUtils.checkDescramblerPermission(mContext); return nativeOpenDescrambler(); } Loading media/java/android/media/tv/tuner/TunerUtils.java +26 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,9 @@ import android.media.tv.tuner.filter.Filter; * @hide */ public final class TunerUtils { private static final String PERMISSION = android.Manifest.permission.ACCESS_TV_TUNER; private static final String TUNER_PERMISSION = android.Manifest.permission.ACCESS_TV_TUNER; private static final String DESCRAMBLER_PERMISSION = android.Manifest.permission.ACCESS_TV_DESCRAMBLER; /** * Checks whether the caller has permission to access tuner. Loading @@ -36,9 +38,30 @@ public final class TunerUtils { * @throws SecurityException if the caller doesn't have the permission. */ public static void checkTunerPermission(Context context) { if (context.checkCallingOrSelfPermission(PERMISSION) checkPermission(context, TUNER_PERMISSION); } /** * Checks whether the caller has permission to access the descrambler. * * @param context context of the caller. * @throws SecurityException if the caller doesn't have the permission. */ public static void checkDescramblerPermission(Context context) { checkPermission(context, DESCRAMBLER_PERMISSION); } /** * Checks whether the caller has the given permission. * * @param context context of the caller. * @param permission the given permission. * @throws SecurityException if the caller doesn't have the permission. */ public static void checkPermission(Context context, String permission) { if (context.checkCallingOrSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Caller must have " + PERMISSION + " permission."); throw new SecurityException("Caller must have " + permission + " permission."); } } Loading Loading
api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android { field public static final String ACCESS_SHARED_LIBRARIES = "android.permission.ACCESS_SHARED_LIBRARIES"; field public static final String ACCESS_SHORTCUTS = "android.permission.ACCESS_SHORTCUTS"; field public static final String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER"; field public static final String ACCESS_TV_DESCRAMBLER = "android.permission.ACCESS_TV_DESCRAMBLER"; field public static final String ACCESS_TV_TUNER = "android.permission.ACCESS_TV_TUNER"; field public static final String ACCESS_VIBRATOR_STATE = "android.permission.ACCESS_VIBRATOR_STATE"; field public static final String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING"; Loading Loading @@ -4877,7 +4878,7 @@ package android.media.tv.tuner { method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities(@NonNull android.content.Context); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo(); method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Descrambler openDescrambler(); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) public android.media.tv.tuner.Descrambler openDescrambler(); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrPlayback openDvrPlayback(long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.dvr.OnPlaybackStatusChangedListener); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrRecorder openDvrRecorder(long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.dvr.OnRecordStatusChangedListener); method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.filter.Filter openFilter(int, int, long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.filter.FilterCallback); Loading
core/res/AndroidManifest.xml +7 −1 Original line number Diff line number Diff line Loading @@ -4941,7 +4941,13 @@ <p>Not for use by third-party applications. @hide --> <permission android:name="android.permission.ACCESS_TV_TUNER" android:protectionLevel="signature|privileged" /> android:protectionLevel="signature|privileged|vendorPrivileged" /> <!-- @SystemApi Allows an application to access descrambler of TV tuner HAL <p>Not for use by third-party applications. @hide --> <permission android:name="android.permission.ACCESS_TV_DESCRAMBLER" android:protectionLevel="signature|privileged|vendorPrivileged" /> <!-- @hide @SystemApi Allows an application to access locusId events in the usage stats. --> <permission android:name="android.permission.ACCESS_LOCUS_ID_USAGE_STATS" Loading
media/java/android/media/tv/tuner/Tuner.java +2 −2 Original line number Diff line number Diff line Loading @@ -612,10 +612,10 @@ public class Tuner implements AutoCloseable { * * @return a {@link Descrambler} object. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) @Nullable public Descrambler openDescrambler() { TunerUtils.checkTunerPermission(mContext); TunerUtils.checkDescramblerPermission(mContext); return nativeOpenDescrambler(); } Loading
media/java/android/media/tv/tuner/TunerUtils.java +26 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,9 @@ import android.media.tv.tuner.filter.Filter; * @hide */ public final class TunerUtils { private static final String PERMISSION = android.Manifest.permission.ACCESS_TV_TUNER; private static final String TUNER_PERMISSION = android.Manifest.permission.ACCESS_TV_TUNER; private static final String DESCRAMBLER_PERMISSION = android.Manifest.permission.ACCESS_TV_DESCRAMBLER; /** * Checks whether the caller has permission to access tuner. Loading @@ -36,9 +38,30 @@ public final class TunerUtils { * @throws SecurityException if the caller doesn't have the permission. */ public static void checkTunerPermission(Context context) { if (context.checkCallingOrSelfPermission(PERMISSION) checkPermission(context, TUNER_PERMISSION); } /** * Checks whether the caller has permission to access the descrambler. * * @param context context of the caller. * @throws SecurityException if the caller doesn't have the permission. */ public static void checkDescramblerPermission(Context context) { checkPermission(context, DESCRAMBLER_PERMISSION); } /** * Checks whether the caller has the given permission. * * @param context context of the caller. * @param permission the given permission. * @throws SecurityException if the caller doesn't have the permission. */ public static void checkPermission(Context context, String permission) { if (context.checkCallingOrSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Caller must have " + PERMISSION + " permission."); throw new SecurityException("Caller must have " + permission + " permission."); } } Loading