diff --git a/core/java/android/service/games/IGameService.aidl b/core/java/android/service/games/IGameService.aidl index 38c8416117e03..c8d4da0c33001 100644 --- a/core/java/android/service/games/IGameService.aidl +++ b/core/java/android/service/games/IGameService.aidl @@ -23,7 +23,12 @@ import android.service.games.IGameServiceController; * @hide */ oneway interface IGameService { + @RequiresNoPermission void connected(in IGameServiceController gameServiceController); + + @RequiresNoPermission void disconnected(); + + @RequiresNoPermission void gameStarted(in GameStartedEvent gameStartedEvent); } diff --git a/core/java/android/service/games/IGameServiceController.aidl b/core/java/android/service/games/IGameServiceController.aidl index 886f519b66056..d696ec3a3afe3 100644 --- a/core/java/android/service/games/IGameServiceController.aidl +++ b/core/java/android/service/games/IGameServiceController.aidl @@ -20,5 +20,6 @@ package android.service.games; * @hide */ oneway interface IGameServiceController { + @EnforcePermission("MANAGE_GAME_ACTIVITY") void createGameSession(int taskId); -} \ No newline at end of file +} diff --git a/core/java/android/service/games/IGameSession.aidl b/core/java/android/service/games/IGameSession.aidl index 49c36c6a301c6..fca1632b1a0d1 100644 --- a/core/java/android/service/games/IGameSession.aidl +++ b/core/java/android/service/games/IGameSession.aidl @@ -20,7 +20,12 @@ package android.service.games; * @hide */ oneway interface IGameSession { + @RequiresNoPermission void onDestroyed(); + + @RequiresNoPermission void onTransientSystemBarVisibilityFromRevealGestureChanged(boolean visibleDueToGesture); + + @RequiresNoPermission void onTaskFocusChanged(boolean focused); } diff --git a/core/java/android/service/games/IGameSessionController.aidl b/core/java/android/service/games/IGameSessionController.aidl index fd994044775f6..99c66125a6c5f 100644 --- a/core/java/android/service/games/IGameSessionController.aidl +++ b/core/java/android/service/games/IGameSessionController.aidl @@ -23,7 +23,9 @@ import com.android.internal.infra.AndroidFuture; * @hide */ oneway interface IGameSessionController { + @EnforcePermission("MANAGE_GAME_ACTIVITY") void takeScreenshot(int taskId, in AndroidFuture gameScreenshotResultFuture); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_GAME_ACTIVITY)") + + @EnforcePermission("MANAGE_GAME_ACTIVITY") void restartGame(in int taskId); } diff --git a/core/java/android/service/games/IGameSessionService.aidl b/core/java/android/service/games/IGameSessionService.aidl index 37cde561f549d..c39dd48bbbe3e 100644 --- a/core/java/android/service/games/IGameSessionService.aidl +++ b/core/java/android/service/games/IGameSessionService.aidl @@ -28,6 +28,7 @@ import com.android.internal.infra.AndroidFuture; * @hide */ oneway interface IGameSessionService { + @RequiresNoPermission void create( in IGameSessionController gameSessionController, in CreateGameSessionRequest createGameSessionRequest, diff --git a/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java b/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java index 4fd739ca5e3ed..0f5aa3a089508 100644 --- a/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java +++ b/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java @@ -16,10 +16,11 @@ package com.android.server.app; -import android.Manifest; +import static android.Manifest.permission.MANAGE_GAME_ACTIVITY; + +import android.annotation.EnforcePermission; import android.annotation.NonNull; import android.annotation.Nullable; -import android.annotation.RequiresPermission; import android.app.ActivityManager.RunningTaskInfo; import android.app.ActivityManagerInternal; import android.app.ActivityTaskManager; @@ -181,10 +182,8 @@ final class GameServiceProviderInstanceImpl implements GameServiceProviderInstan private final IGameServiceController mGameServiceController = new IGameServiceController.Stub() { @Override - @RequiresPermission(Manifest.permission.MANAGE_GAME_ACTIVITY) + @EnforcePermission(MANAGE_GAME_ACTIVITY) public void createGameSession(int taskId) { - mContext.enforceCallingPermission(Manifest.permission.MANAGE_GAME_ACTIVITY, - "createGameSession()"); mBackgroundExecutor.execute(() -> { GameServiceProviderInstanceImpl.this.createGameSession(taskId); }); @@ -194,11 +193,9 @@ final class GameServiceProviderInstanceImpl implements GameServiceProviderInstan private final IGameSessionController mGameSessionController = new IGameSessionController.Stub() { @Override - @RequiresPermission(android.Manifest.permission.MANAGE_GAME_ACTIVITY) + @EnforcePermission(MANAGE_GAME_ACTIVITY) public void takeScreenshot(int taskId, @NonNull AndroidFuture gameScreenshotResultFuture) { - mContext.enforceCallingPermission(Manifest.permission.MANAGE_GAME_ACTIVITY, - "takeScreenshot()"); mBackgroundExecutor.execute(() -> { GameServiceProviderInstanceImpl.this.takeScreenshot(taskId, gameScreenshotResultFuture); @@ -206,10 +203,8 @@ final class GameServiceProviderInstanceImpl implements GameServiceProviderInstan } @Override - @RequiresPermission(Manifest.permission.MANAGE_GAME_ACTIVITY) + @EnforcePermission(MANAGE_GAME_ACTIVITY) public void restartGame(int taskId) { - mContext.enforceCallingPermission(Manifest.permission.MANAGE_GAME_ACTIVITY, - "restartGame()"); mBackgroundExecutor.execute(() -> { GameServiceProviderInstanceImpl.this.restartGame(taskId); });