Revert the change to allow overriding any game modes through cmd

Since the game modes read from getAvailableGameModes API will not
include those in override configs, we should only allow overriding
game modes predefined for a game here.

Bug: b/240335717
Test: adb shell cmd game set --mode 2 --downscale 0.3 $PKG
Change-Id: I89d792195cf99577b0d59ec73b0a94010326d6f7
This commit is contained in:
Xiang Wang
2022-08-11 14:45:53 -07:00
parent 1579836943
commit 64eb2dbb3c

View File

@@ -220,16 +220,40 @@ public class GameManagerShellCommand extends ShellCommand {
final GameManagerService gameManagerService = (GameManagerService)
ServiceManager.getService(Context.GAME_SERVICE);
boolean batteryModeSupported = false;
boolean perfModeSupported = false;
int [] modes = gameManagerService.getAvailableGameModes(packageName);
for (int mode : modes) {
if (mode == GameManager.GAME_MODE_PERFORMANCE) {
perfModeSupported = true;
} else if (mode == GameManager.GAME_MODE_BATTERY) {
batteryModeSupported = true;
}
}
switch (gameMode.toLowerCase(Locale.getDefault())) {
case "2":
case "performance":
gameManagerService.setGameModeConfigOverride(packageName, userId,
GameManager.GAME_MODE_PERFORMANCE, fpsStr, downscaleRatio);
if (perfModeSupported) {
gameManagerService.setGameModeConfigOverride(packageName, userId,
GameManager.GAME_MODE_PERFORMANCE, fpsStr, downscaleRatio);
} else {
pw.println("Game mode: " + gameMode + " not supported by "
+ packageName);
return -1;
}
break;
case "3":
case "battery":
gameManagerService.setGameModeConfigOverride(packageName, userId,
GameManager.GAME_MODE_BATTERY, fpsStr, downscaleRatio);
if (batteryModeSupported) {
gameManagerService.setGameModeConfigOverride(packageName, userId,
GameManager.GAME_MODE_BATTERY, fpsStr, downscaleRatio);
} else {
pw.println("Game mode: " + gameMode + " not supported by "
+ packageName);
return -1;
}
break;
default:
pw.println("Invalid game mode: " + gameMode);