From 32d4cc9f218c94730bb445882fa5281bba3b16ed Mon Sep 17 00:00:00 2001 From: Amy Date: Wed, 11 Mar 2020 16:31:44 -0700 Subject: [PATCH 1/2] Add TUNER_PERMISSION and DESCRAMBLER_PERMISSION check on related tmr apis Test: make Bug: 151186028 Bug: 149785806 Change-Id: I145477ae237a412e2d17e0703efeaeecac069372 --- .../TunerResourceManagerService.java | 48 +++++++++++++++---- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java index b43d8b7daf4a4..5f65287f4f972 100644 --- a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java +++ b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java @@ -96,7 +96,7 @@ public class TunerResourceManagerService extends SystemService { public void registerClientProfile(@NonNull ResourceClientProfile profile, @NonNull IResourcesReclaimListener listener, @NonNull int[] clientId) throws RemoteException { - enforceAccessPermission(); + enforceTrmAccessPermission("registerClientProfile"); if (profile == null) { throw new RemoteException("ResourceClientProfile can't be null"); } @@ -120,7 +120,7 @@ public class TunerResourceManagerService extends SystemService { @Override public void unregisterClientProfile(int clientId) throws RemoteException { - enforceAccessPermission(); + enforceTrmAccessPermission("unregisterClientProfile"); synchronized (mLock) { if (!checkClientExists(clientId)) { Slog.e(TAG, "Unregistering non exists client:" + clientId); @@ -132,7 +132,7 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean updateClientPriority(int clientId, int priority, int niceValue) { - enforceAccessPermission(); + enforceTrmAccessPermission("updateClientPriority"); synchronized (mLock) { return updateClientPriorityInternal(clientId, priority, niceValue); } @@ -140,7 +140,7 @@ public class TunerResourceManagerService extends SystemService { @Override public void setFrontendInfoList(@NonNull TunerFrontendInfo[] infos) throws RemoteException { - enforceAccessPermission(); + enforceTrmAccessPermission("setFrontendInfoList"); if (infos == null) { throw new RemoteException("TunerFrontendInfo can't be null"); } @@ -151,6 +151,7 @@ public class TunerResourceManagerService extends SystemService { @Override public void updateCasInfo(int casSystemId, int maxSessionNum) { + enforceTrmAccessPermission("updateCasInfo"); if (DEBUG) { Slog.d(TAG, "updateCasInfo(casSystemId=" + casSystemId @@ -160,6 +161,7 @@ public class TunerResourceManagerService extends SystemService { @Override public void setLnbInfoList(int[] lnbIds) { + enforceTrmAccessPermission("setLnbInfoList"); if (DEBUG) { for (int i = 0; i < lnbIds.length; i++) { Slog.d(TAG, "updateLnbInfo(lnbId=" + lnbIds[i] + ")"); @@ -170,7 +172,8 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean requestFrontend(@NonNull TunerFrontendRequest request, @NonNull int[] frontendId) throws RemoteException { - enforceAccessPermission(); + enforceTunerAccessPermission("requestFrontend"); + enforceTrmAccessPermission("requestFrontend"); if (frontendId == null) { throw new RemoteException("frontendId can't be null"); } @@ -185,6 +188,8 @@ public class TunerResourceManagerService extends SystemService { @Override public void shareFrontend(int selfClientId, int targetClientId) { + enforceTunerAccessPermission("shareFrontend"); + enforceTrmAccessPermission("shareFrontend"); if (DEBUG) { Slog.d(TAG, "shareFrontend from " + selfClientId + " with " + targetClientId); } @@ -193,6 +198,8 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean requestDemux(@NonNull TunerDemuxRequest request, @NonNull int[] demuxHandle) { + enforceTunerAccessPermission("requestDemux"); + enforceTrmAccessPermission("requestDemux"); if (DEBUG) { Slog.d(TAG, "requestDemux(request=" + request + ")"); } @@ -202,6 +209,8 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean requestDescrambler(@NonNull TunerDescramblerRequest request, @NonNull int[] descrambleHandle) { + enforceDescramblerAccessPermission("requestDescrambler"); + enforceTrmAccessPermission("requestDescrambler"); if (DEBUG) { Slog.d(TAG, "requestDescrambler(request=" + request + ")"); } @@ -211,6 +220,7 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean requestCasSession( @NonNull CasSessionRequest request, @NonNull int[] sessionResourceId) { + enforceTrmAccessPermission("requestCasSession"); if (DEBUG) { Slog.d(TAG, "requestCasSession(request=" + request + ")"); } @@ -220,6 +230,8 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean requestLnb(@NonNull TunerLnbRequest request, @NonNull int[] lnbId) { + enforceTunerAccessPermission("requestLnb"); + enforceTrmAccessPermission("requestLnb"); if (DEBUG) { Slog.d(TAG, "requestLnb(request=" + request + ")"); } @@ -228,6 +240,8 @@ public class TunerResourceManagerService extends SystemService { @Override public void releaseFrontend(int frontendId) { + enforceTunerAccessPermission("releaseFrontend"); + enforceTrmAccessPermission("releaseFrontend"); if (DEBUG) { Slog.d(TAG, "releaseFrontend(id=" + frontendId + ")"); } @@ -235,6 +249,8 @@ public class TunerResourceManagerService extends SystemService { @Override public void releaseDemux(int demuxHandle) { + enforceTunerAccessPermission("releaseDemux"); + enforceTrmAccessPermission("releaseDemux"); if (DEBUG) { Slog.d(TAG, "releaseDemux(demuxHandle=" + demuxHandle + ")"); } @@ -242,6 +258,8 @@ public class TunerResourceManagerService extends SystemService { @Override public void releaseDescrambler(int descramblerHandle) { + enforceTunerAccessPermission("releaseDescrambler"); + enforceTrmAccessPermission("releaseDescrambler"); if (DEBUG) { Slog.d(TAG, "releaseDescrambler(descramblerHandle=" + descramblerHandle + ")"); } @@ -249,6 +267,7 @@ public class TunerResourceManagerService extends SystemService { @Override public void releaseCasSession(int sessionResourceId) { + enforceTrmAccessPermission("releaseCasSession"); if (DEBUG) { Slog.d(TAG, "releaseCasSession(sessionResourceId=" + sessionResourceId + ")"); } @@ -256,6 +275,8 @@ public class TunerResourceManagerService extends SystemService { @Override public void releaseLnb(int lnbId) { + enforceTunerAccessPermission("releaseLnb"); + enforceTrmAccessPermission("releaseLnb"); if (DEBUG) { Slog.d(TAG, "releaseLnb(lnbId=" + lnbId + ")"); } @@ -264,6 +285,7 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean isHigherPriority( ResourceClientProfile challengerProfile, ResourceClientProfile holderProfile) { + enforceTrmAccessPermission("isHigherPriority"); if (DEBUG) { Slog.d(TAG, "isHigherPriority(challengerProfile=" + challengerProfile @@ -592,8 +614,18 @@ public class TunerResourceManagerService extends SystemService { return mClientProfiles.keySet().contains(clientId); } - private void enforceAccessPermission() { - getContext().enforceCallingOrSelfPermission( - "android.permission.TUNER_RESOURCE_ACCESS", TAG); + private void enforceTrmAccessPermission(String apiName) { + getContext().enforceCallingPermission("android.permission.TUNER_RESOURCE_ACCESS", + TAG + ": " + "apiName"); + } + + private void enforceTunerAccessPermission(String apiName) { + getContext().enforceCallingPermission("android.Manifest.permission.ACCESS_TV_TUNER", + TAG + ": " + "apiName"); + } + + private void enforceDescramblerAccessPermission(String apiName) { + getContext().enforceCallingPermission("android.Manifest.permission.ACCESS_TV_DESCRAMBLER", + TAG + ": " + "apiName"); } } From cd0e8ae101509fa29fd1f20ece8adffe36cd4de9 Mon Sep 17 00:00:00 2001 From: Amy Date: Wed, 11 Mar 2020 19:25:54 -0700 Subject: [PATCH 2/2] Return handle instead of resource id to the client in trm Test: atest Bug: 150952662 Change-Id: I9bb741e4d1328ee44148bf41b3a1e8772272ebfa --- .../TunerResourceManager.java | 5 -- .../TunerResourceManagerService.java | 58 ++++++++++--- .../TunerResourceManagerServiceTest.java | 83 ++++++++++--------- 3 files changed, 92 insertions(+), 54 deletions(-) diff --git a/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java b/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java index 524b6c2e26e12..9dddcd4eaa3b6 100644 --- a/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java +++ b/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java @@ -60,11 +60,6 @@ public class TunerResourceManager { private static final String TAG = "TunerResourceManager"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - public static final int INVALID_FRONTEND_ID = -1; - public static final int INVALID_CAS_SESSION_RESOURCE_ID = -1; - public static final int INVALID_LNB_ID = -1; - public static final int INVALID_TV_INPUT_DEVICE_ID = -1; - public static final int INVALID_TV_INPUT_PORT_ID = -1; public static final int INVALID_RESOURCE_HANDLE = -1; private final ITunerResourceManager mService; diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java index 5f65287f4f972..6c55926d65be1 100644 --- a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java +++ b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java @@ -16,6 +16,7 @@ package com.android.server.tv.tunerresourcemanager; +import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; @@ -40,6 +41,8 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.server.SystemService; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -70,9 +73,31 @@ public class TunerResourceManagerService extends SystemService { private TvInputManager mManager; private UseCasePriorityHints mPriorityCongfig = new UseCasePriorityHints(); + // An internal resource request count to help generate resource handle. + private int mResourceRequestCount = 0; + // Used to synchronize the access to the service. private final Object mLock = new Object(); + /** + * Tuner resource type to help generate resource handle + */ + @IntDef({ + TUNER_RESOURCE_TYPE_FRONTEND, + TUNER_RESOURCE_TYPE_DEMUX, + TUNER_RESOURCE_TYPE_DESCRAMBLER, + TUNER_RESOURCE_TYPE_LNB, + TUNER_RESOURCE_TYPE_CAS_SESSION, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface TunerResourceType {} + + public static final int TUNER_RESOURCE_TYPE_FRONTEND = 0; + public static final int TUNER_RESOURCE_TYPE_DEMUX = 1; + public static final int TUNER_RESOURCE_TYPE_DESCRAMBLER = 2; + public static final int TUNER_RESOURCE_TYPE_LNB = 3; + public static final int TUNER_RESOURCE_TYPE_CAS_SESSION = 4; + public TunerResourceManagerService(@Nullable Context context) { super(context); } @@ -171,15 +196,15 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean requestFrontend(@NonNull TunerFrontendRequest request, - @NonNull int[] frontendId) throws RemoteException { + @NonNull int[] frontendHandle) throws RemoteException { enforceTunerAccessPermission("requestFrontend"); enforceTrmAccessPermission("requestFrontend"); - if (frontendId == null) { + if (frontendHandle == null) { throw new RemoteException("frontendId can't be null"); } synchronized (mLock) { try { - return requestFrontendInternal(request, frontendId); + return requestFrontendInternal(request, frontendHandle); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -219,7 +244,7 @@ public class TunerResourceManagerService extends SystemService { @Override public boolean requestCasSession( - @NonNull CasSessionRequest request, @NonNull int[] sessionResourceId) { + @NonNull CasSessionRequest request, @NonNull int[] sessionResourceHandle) { enforceTrmAccessPermission("requestCasSession"); if (DEBUG) { Slog.d(TAG, "requestCasSession(request=" + request + ")"); @@ -229,7 +254,7 @@ public class TunerResourceManagerService extends SystemService { } @Override - public boolean requestLnb(@NonNull TunerLnbRequest request, @NonNull int[] lnbId) { + public boolean requestLnb(@NonNull TunerLnbRequest request, @NonNull int[] lnbHandle) { enforceTunerAccessPermission("requestLnb"); enforceTrmAccessPermission("requestLnb"); if (DEBUG) { @@ -393,13 +418,13 @@ public class TunerResourceManagerService extends SystemService { } @VisibleForTesting - protected boolean requestFrontendInternal(TunerFrontendRequest request, int[] frontendId) + protected boolean requestFrontendInternal(TunerFrontendRequest request, int[] frontendHandle) throws RemoteException { if (DEBUG) { Slog.d(TAG, "requestFrontend(request=" + request + ")"); } - frontendId[0] = TunerResourceManager.INVALID_FRONTEND_ID; + frontendHandle[0] = TunerResourceManager.INVALID_RESOURCE_HANDLE; if (!checkClientExists(request.getClientId())) { Slog.e(TAG, "Request frontend from unregistered client:" + request.getClientId()); return false; @@ -435,17 +460,20 @@ public class TunerResourceManagerService extends SystemService { // Grant frontend when there is unused resource. if (grantingFrontendId > -1) { - frontendId[0] = grantingFrontendId; - updateFrontendClientMappingOnNewGrant(frontendId[0], request.getClientId()); + frontendHandle[0] = generateResourceHandle( + TUNER_RESOURCE_TYPE_FRONTEND, grantingFrontendId); + updateFrontendClientMappingOnNewGrant(grantingFrontendId, request.getClientId()); return true; } // When all the resources are occupied, grant the lowest priority resource if the // request client has higher priority. if (inUseLowestPriorityFrId > -1 && (requestClient.getPriority() > currentLowestPriority)) { - frontendId[0] = inUseLowestPriorityFrId; - reclaimFrontendResource(getFrontendResource(frontendId[0]).getOwnerClientId()); - updateFrontendClientMappingOnNewGrant(frontendId[0], request.getClientId()); + frontendHandle[0] = generateResourceHandle( + TUNER_RESOURCE_TYPE_FRONTEND, inUseLowestPriorityFrId); + reclaimFrontendResource(getFrontendResource( + inUseLowestPriorityFrId).getOwnerClientId()); + updateFrontendClientMappingOnNewGrant(inUseLowestPriorityFrId, request.getClientId()); return true; } @@ -614,6 +642,12 @@ public class TunerResourceManagerService extends SystemService { return mClientProfiles.keySet().contains(clientId); } + private int generateResourceHandle(@TunerResourceType int resourceType, int resourceId) { + return (resourceType & 0x000000ff) << 24 + | (resourceId << 16) + | (mResourceRequestCount++ & 0xffff); + } + private void enforceTrmAccessPermission(String apiName) { getContext().enforceCallingPermission("android.permission.TUNER_RESOURCE_ACCESS", TAG + ": " + "apiName"); diff --git a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java index 8da3bdfdf38c3..1b98fa85f926b 100644 --- a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java @@ -92,6 +92,13 @@ public class TunerResourceManagerServiceTest { } }; + private static int getResourceIdFromHandle(int resourceHandle) { + if (resourceHandle == TunerResourceManager.INVALID_RESOURCE_HANDLE) { + return resourceHandle; + } + return (resourceHandle & 0x00ff0000) >> 16; + } + @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -229,14 +236,15 @@ public class TunerResourceManagerServiceTest { public void requestFrontendTest_ClientNotRegistered() { TunerFrontendRequest request = new TunerFrontendRequest(0 /*clientId*/, FrontendSettings.TYPE_DVBT); - int[] frontendId = new int[1]; + int[] frontendHandle = new int[1]; try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isFalse(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isFalse(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(TunerResourceManager.INVALID_FRONTEND_ID); + assertThat(getResourceIdFromHandle(frontendHandle[0])) + .isEqualTo(TunerResourceManager.INVALID_RESOURCE_HANDLE); } @Test @@ -256,14 +264,15 @@ public class TunerResourceManagerServiceTest { TunerFrontendRequest request = new TunerFrontendRequest(clientId[0] /*clientId*/, FrontendSettings.TYPE_DVBT); - int[] frontendId = new int[1]; + int[] frontendHandle = new int[1]; try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isFalse(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isFalse(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(TunerResourceManager.INVALID_FRONTEND_ID); + assertThat(getResourceIdFromHandle(frontendHandle[0])) + .isEqualTo(TunerResourceManager.INVALID_RESOURCE_HANDLE); } @Test @@ -287,14 +296,14 @@ public class TunerResourceManagerServiceTest { TunerFrontendRequest request = new TunerFrontendRequest(clientId[0] /*clientId*/, FrontendSettings.TYPE_DVBT); - int[] frontendId = new int[1]; + int[] frontendHandle = new int[1]; try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isTrue(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isTrue(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(0); + assertThat(getResourceIdFromHandle(frontendHandle[0])).isEqualTo(0); } @Test @@ -322,26 +331,26 @@ public class TunerResourceManagerServiceTest { new TunerFrontendInfo(2 /*id*/, FrontendSettings.TYPE_DVBS, 1 /*exclusiveGroupId*/); mTunerResourceManagerService.setFrontendInfoListInternal(infos); - int[] frontendId = new int[1]; + int[] frontendHandle = new int[1]; TunerFrontendRequest request = new TunerFrontendRequest(clientId1[0] /*clientId*/, FrontendSettings.TYPE_DVBT); try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isTrue(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isTrue(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(infos[0].getId()); + assertThat(getResourceIdFromHandle(frontendHandle[0])).isEqualTo(infos[0].getId()); request = new TunerFrontendRequest(clientId0[0] /*clientId*/, FrontendSettings.TYPE_DVBT); try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isTrue(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isTrue(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(infos[1].getId()); + assertThat(getResourceIdFromHandle(frontendHandle[0])).isEqualTo(infos[1].getId()); assertThat(mTunerResourceManagerService.getFrontendResource(infos[1].getId()) .isInUse()).isTrue(); assertThat(mTunerResourceManagerService.getFrontendResource(infos[2].getId()) @@ -382,10 +391,10 @@ public class TunerResourceManagerServiceTest { TunerFrontendRequest request = new TunerFrontendRequest(clientId0[0] /*clientId*/, FrontendSettings.TYPE_DVBT); - int[] frontendId = new int[1]; + int[] frontendHandle = new int[1]; try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isTrue(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isTrue(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -393,8 +402,8 @@ public class TunerResourceManagerServiceTest { request = new TunerFrontendRequest(clientId1[0] /*clientId*/, FrontendSettings.TYPE_DVBT); try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isFalse(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isFalse(); assertThat(listener.isRelaimed()).isFalse(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); @@ -403,8 +412,8 @@ public class TunerResourceManagerServiceTest { request = new TunerFrontendRequest(clientId1[0] /*clientId*/, FrontendSettings.TYPE_DVBS); try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isFalse(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isFalse(); assertThat(listener.isRelaimed()).isFalse(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); @@ -444,24 +453,24 @@ public class TunerResourceManagerServiceTest { TunerFrontendRequest request = new TunerFrontendRequest(clientId0[0] /*clientId*/, FrontendSettings.TYPE_DVBT); - int[] frontendId = new int[1]; + int[] frontendHandle = new int[1]; try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isTrue(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isTrue(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(infos[0].getId()); + assertThat(getResourceIdFromHandle(frontendHandle[0])).isEqualTo(infos[0].getId()); request = new TunerFrontendRequest(clientId1[0] /*clientId*/, FrontendSettings.TYPE_DVBS); try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isTrue(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isTrue(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(infos[1].getId()); + assertThat(getResourceIdFromHandle(frontendHandle[0])).isEqualTo(infos[1].getId()); assertThat(mTunerResourceManagerService.getFrontendResource(infos[0].getId()) .isInUse()).isTrue(); assertThat(mTunerResourceManagerService.getFrontendResource(infos[1].getId()) @@ -493,14 +502,14 @@ public class TunerResourceManagerServiceTest { TunerFrontendRequest request = new TunerFrontendRequest(clientId[0] /*clientId*/, FrontendSettings.TYPE_DVBT); - int[] frontendId = new int[1]; + int[] frontendHandle = new int[1]; try { - assertThat(mTunerResourceManagerService.requestFrontendInternal(request, frontendId)) - .isTrue(); + assertThat(mTunerResourceManagerService + .requestFrontendInternal(request, frontendHandle)).isTrue(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - assertThat(frontendId[0]).isEqualTo(infos[0].getId()); + assertThat(getResourceIdFromHandle(frontendHandle[0])).isEqualTo(infos[0].getId()); assertThat(mTunerResourceManagerService.getFrontendResource(infos[0].getId()) .isInUse()).isTrue(); assertThat(mTunerResourceManagerService.getFrontendResource(infos[1].getId())