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

Commit cee45f10 authored by Amy's avatar Amy
Browse files

Add API getClientPid in ITvInputManager.aidl

This API is for TunerResourceManager to get the callingPid of a TIS
client from TIF with the sessionId provided by TIS when TIS requests
resources from the TunerResourceManager.

This CL is also handling the creating and storing mechanism of the
sessionId.

The sessionId is provided by TIF when TIS created session through
TIF.
The sessionId to clientPid mapping is saved in a global map
in TIF service.
It is passed to the vendor TIS through new public API
onCreateSession(inputId, sessionId)/onCreateRecordingSession(inputId,
sessionId).

Test: Run with CTS on Cuttlefish
Bug: 147380882

Change-Id: I344a812add4a9637bf7eb226e5e4e3ead5b456a2
parent 83a1f6a9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -28701,7 +28701,9 @@ package android.media.tv {
    ctor public TvInputService();
    method public final android.os.IBinder onBind(android.content.Intent);
    method @Nullable public android.media.tv.TvInputService.RecordingSession onCreateRecordingSession(String);
    method @Nullable public android.media.tv.TvInputService.RecordingSession onCreateRecordingSession(@NonNull String, @NonNull String);
    method @Nullable public abstract android.media.tv.TvInputService.Session onCreateSession(String);
    method @Nullable public android.media.tv.TvInputService.Session onCreateSession(@NonNull String, @NonNull String);
    field public static final String SERVICE_INTERFACE = "android.media.tv.TvInputService";
    field public static final String SERVICE_META_DATA = "android.media.tv.input";
  }
+3 −0
Original line number Diff line number Diff line
@@ -211,6 +211,7 @@ package android {
    field public static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS";
    field public static final String SYSTEM_CAMERA = "android.permission.SYSTEM_CAMERA";
    field public static final String TETHER_PRIVILEGED = "android.permission.TETHER_PRIVILEGED";
    field public static final String TUNER_RESOURCE_ACCESS = "android.permission.TUNER_RESOURCE_ACCESS";
    field public static final String TV_INPUT_HARDWARE = "android.permission.TV_INPUT_HARDWARE";
    field public static final String TV_VIRTUAL_REMOTE_CONTROLLER = "android.permission.TV_VIRTUAL_REMOTE_CONTROLLER";
    field public static final String UNLIMITED_SHORTCUTS_API_CALLS = "android.permission.UNLIMITED_SHORTCUTS_API_CALLS";
@@ -4537,6 +4538,7 @@ package android.media.tv {
    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating);
    method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig);
    method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(String);
    method @RequiresPermission(android.Manifest.permission.TUNER_RESOURCE_ACCESS) public int getClientPid(@NonNull String);
    method @NonNull @RequiresPermission("android.permission.DVB_DEVICE") public java.util.List<android.media.tv.DvbDeviceInfo> getDvbDeviceList();
    method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List<android.media.tv.TvInputHardwareInfo> getHardwareList();
    method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List<android.media.tv.TvContentRatingSystemInfo> getTvContentRatingSystemList();
@@ -4548,6 +4550,7 @@ package android.media.tv {
    method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public void releaseTvInputHardware(int, android.media.tv.TvInputManager.Hardware);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void removeBlockedRating(@NonNull android.media.tv.TvContentRating);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void setParentalControlsEnabled(boolean);
    field public static final int UNKNOWN_CLIENT_PID = -1; // 0xffffffff
  }
  public static final class TvInputManager.Hardware {
+8 −0
Original line number Diff line number Diff line
@@ -3386,6 +3386,14 @@
    <permission android:name="android.permission.NOTIFY_TV_INPUTS"
         android:protectionLevel="signature|privileged" />

    <!-- @SystemApi Allows an application to interact with tuner resources through
         Tuner Resource Manager.
         <p>Protection level: signature|privileged
         <p>Not for use by third-party applications.
         @hide -->
    <permission android:name="android.permission.TUNER_RESOURCE_ACCESS"
         android:protectionLevel="signature|privileged" />

    <!-- Must be required by a {@link android.media.routing.MediaRouteService}
         to ensure that only the system can interact with it.
         @hide -->
+1 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ interface ITvInputManager {
    void createSession(in ITvInputClient client, in String inputId, boolean isRecordingSession,
            int seq, int userId);
    void releaseSession(in IBinder sessionToken, int userId);
    int getClientPid(in String sessionId);

    void setMainSession(in IBinder sessionToken, int userId);
    void setSurface(in IBinder sessionToken, in Surface surface, int userId);
+3 −2
Original line number Diff line number Diff line
@@ -30,8 +30,9 @@ oneway interface ITvInputService {
    void registerCallback(in ITvInputServiceCallback callback);
    void unregisterCallback(in ITvInputServiceCallback callback);
    void createSession(in InputChannel channel, in ITvInputSessionCallback callback,
            in String inputId);
    void createRecordingSession(in ITvInputSessionCallback callback, in String inputId);
            in String inputId, in String sessionId);
    void createRecordingSession(in ITvInputSessionCallback callback, in String inputId,
            in String sessionId);

    // For hardware TvInputService
    void notifyHardwareAdded(in TvInputHardwareInfo hardwareInfo);
Loading