Loading core/res/AndroidManifest.xml +0 −1 Original line number Diff line number Diff line Loading @@ -5584,7 +5584,6 @@ @hide <p>Not for use by third-party applications.</p> --> <permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG" android:protectionLevel="signature|privileged" /> <uses-permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG"/> <!-- @SystemApi Allows an app to override compat change config on release builds. Only ChangeIds that are annotated as @Overridable can be overridden on release builds. @hide --> Loading services/core/java/com/android/server/app/GameManagerService.java +24 −29 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ import android.app.ActivityManager; import android.app.GameManager; import android.app.GameManager.GameMode; import android.app.IGameManagerService; import android.compat.Compatibility; import android.app.compat.PackageOverride; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading @@ -61,13 +61,12 @@ import android.util.Slog; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.compat.CompatibilityChangeConfig; import com.android.internal.compat.CompatibilityOverrideConfig; import com.android.internal.compat.IPlatformCompat; import com.android.server.ServiceThread; import com.android.server.SystemService; import java.io.FileDescriptor; import java.util.HashSet; import java.util.List; /** Loading @@ -87,6 +86,10 @@ public final class GameManagerService extends IGameManagerService.Stub { static final int REMOVE_SETTINGS = 2; static final int POPULATE_GAME_MODE_SETTINGS = 3; static final int WRITE_SETTINGS_DELAY = 10 * 1000; // 10 seconds static final PackageOverride COMPAT_ENABLED = new PackageOverride.Builder().setEnabled(true) .build(); static final PackageOverride COMPAT_DISABLED = new PackageOverride.Builder().setEnabled(false) .build(); private final Context mContext; private final Object mLock = new Object(); Loading Loading @@ -578,17 +581,14 @@ public final class GameManagerService extends IGameManagerService.Stub { private void disableCompatScale(String packageName) { final long uid = Binder.clearCallingIdentity(); try { final HashSet<Long> disabledSet = new HashSet<>(); disabledSet.add(DOWNSCALED); final CompatibilityChangeConfig changeConfig = new CompatibilityChangeConfig( new Compatibility.ChangeConfig(new HashSet<>(), disabledSet)); // TODO: switch to new API provided by aosp/1599153 once merged final ArrayMap<Long, PackageOverride> overrides = new ArrayMap<>(); overrides.put(DOWNSCALED, COMPAT_DISABLED); final CompatibilityOverrideConfig changeConfig = new CompatibilityOverrideConfig( overrides); try { mPlatformCompat.setOverridesForTest(changeConfig, packageName); } catch (SecurityException e) { Slog.e(TAG, "Missing compat override permission", e); mPlatformCompat.setOverridesOnReleaseBuilds(changeConfig, packageName); } catch (RemoteException e) { Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesForTest", e); Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesOnReleaseBuilds", e); } } finally { Binder.restoreCallingIdentity(uid); Loading @@ -598,25 +598,20 @@ public final class GameManagerService extends IGameManagerService.Stub { private void enableCompatScale(String packageName, long scaleId) { final long uid = Binder.clearCallingIdentity(); try { final HashSet<Long> disabledSet = new HashSet<>(); final HashSet<Long> enabledSet = new HashSet<>(); disabledSet.add(DOWNSCALE_50); disabledSet.add(DOWNSCALE_60); disabledSet.add(DOWNSCALE_70); disabledSet.add(DOWNSCALE_80); disabledSet.add(DOWNSCALE_90); disabledSet.remove(scaleId); enabledSet.add(DOWNSCALED); enabledSet.add(scaleId); final CompatibilityChangeConfig changeConfig = new CompatibilityChangeConfig( new Compatibility.ChangeConfig(enabledSet, disabledSet)); // TODO: switch to new API provided by aosp/1599153 once merged final ArrayMap<Long, PackageOverride> overrides = new ArrayMap<>(); overrides.put(DOWNSCALED, COMPAT_ENABLED); overrides.put(DOWNSCALE_50, COMPAT_DISABLED); overrides.put(DOWNSCALE_60, COMPAT_DISABLED); overrides.put(DOWNSCALE_70, COMPAT_DISABLED); overrides.put(DOWNSCALE_80, COMPAT_DISABLED); overrides.put(DOWNSCALE_90, COMPAT_DISABLED); overrides.put(scaleId, COMPAT_ENABLED); final CompatibilityOverrideConfig changeConfig = new CompatibilityOverrideConfig( overrides); try { mPlatformCompat.setOverridesForTest(changeConfig, packageName); } catch (SecurityException e) { Slog.e(TAG, "Missing compat override permission", e); mPlatformCompat.setOverridesOnReleaseBuilds(changeConfig, packageName); } catch (RemoteException e) { Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesForTest", e); Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesOnReleaseBuilds", e); } } finally { Binder.restoreCallingIdentity(uid); Loading services/tests/servicestests/AndroidManifest.xml +2 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,8 @@ <uses-permission android:name="android.permission.CONTROL_DEVICE_STATE"/> <uses-permission android:name="android.permission.READ_PROJECTION_STATE"/> <uses-permission android:name="android.permission.KILL_UID"/> <uses-permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG_ON_RELEASE_BUILD"/> <!-- Uses API introduced in O (26) --> <uses-sdk android:minSdkVersion="1" Loading Loading
core/res/AndroidManifest.xml +0 −1 Original line number Diff line number Diff line Loading @@ -5584,7 +5584,6 @@ @hide <p>Not for use by third-party applications.</p> --> <permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG" android:protectionLevel="signature|privileged" /> <uses-permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG"/> <!-- @SystemApi Allows an app to override compat change config on release builds. Only ChangeIds that are annotated as @Overridable can be overridden on release builds. @hide --> Loading
services/core/java/com/android/server/app/GameManagerService.java +24 −29 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ import android.app.ActivityManager; import android.app.GameManager; import android.app.GameManager.GameMode; import android.app.IGameManagerService; import android.compat.Compatibility; import android.app.compat.PackageOverride; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading @@ -61,13 +61,12 @@ import android.util.Slog; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.compat.CompatibilityChangeConfig; import com.android.internal.compat.CompatibilityOverrideConfig; import com.android.internal.compat.IPlatformCompat; import com.android.server.ServiceThread; import com.android.server.SystemService; import java.io.FileDescriptor; import java.util.HashSet; import java.util.List; /** Loading @@ -87,6 +86,10 @@ public final class GameManagerService extends IGameManagerService.Stub { static final int REMOVE_SETTINGS = 2; static final int POPULATE_GAME_MODE_SETTINGS = 3; static final int WRITE_SETTINGS_DELAY = 10 * 1000; // 10 seconds static final PackageOverride COMPAT_ENABLED = new PackageOverride.Builder().setEnabled(true) .build(); static final PackageOverride COMPAT_DISABLED = new PackageOverride.Builder().setEnabled(false) .build(); private final Context mContext; private final Object mLock = new Object(); Loading Loading @@ -578,17 +581,14 @@ public final class GameManagerService extends IGameManagerService.Stub { private void disableCompatScale(String packageName) { final long uid = Binder.clearCallingIdentity(); try { final HashSet<Long> disabledSet = new HashSet<>(); disabledSet.add(DOWNSCALED); final CompatibilityChangeConfig changeConfig = new CompatibilityChangeConfig( new Compatibility.ChangeConfig(new HashSet<>(), disabledSet)); // TODO: switch to new API provided by aosp/1599153 once merged final ArrayMap<Long, PackageOverride> overrides = new ArrayMap<>(); overrides.put(DOWNSCALED, COMPAT_DISABLED); final CompatibilityOverrideConfig changeConfig = new CompatibilityOverrideConfig( overrides); try { mPlatformCompat.setOverridesForTest(changeConfig, packageName); } catch (SecurityException e) { Slog.e(TAG, "Missing compat override permission", e); mPlatformCompat.setOverridesOnReleaseBuilds(changeConfig, packageName); } catch (RemoteException e) { Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesForTest", e); Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesOnReleaseBuilds", e); } } finally { Binder.restoreCallingIdentity(uid); Loading @@ -598,25 +598,20 @@ public final class GameManagerService extends IGameManagerService.Stub { private void enableCompatScale(String packageName, long scaleId) { final long uid = Binder.clearCallingIdentity(); try { final HashSet<Long> disabledSet = new HashSet<>(); final HashSet<Long> enabledSet = new HashSet<>(); disabledSet.add(DOWNSCALE_50); disabledSet.add(DOWNSCALE_60); disabledSet.add(DOWNSCALE_70); disabledSet.add(DOWNSCALE_80); disabledSet.add(DOWNSCALE_90); disabledSet.remove(scaleId); enabledSet.add(DOWNSCALED); enabledSet.add(scaleId); final CompatibilityChangeConfig changeConfig = new CompatibilityChangeConfig( new Compatibility.ChangeConfig(enabledSet, disabledSet)); // TODO: switch to new API provided by aosp/1599153 once merged final ArrayMap<Long, PackageOverride> overrides = new ArrayMap<>(); overrides.put(DOWNSCALED, COMPAT_ENABLED); overrides.put(DOWNSCALE_50, COMPAT_DISABLED); overrides.put(DOWNSCALE_60, COMPAT_DISABLED); overrides.put(DOWNSCALE_70, COMPAT_DISABLED); overrides.put(DOWNSCALE_80, COMPAT_DISABLED); overrides.put(DOWNSCALE_90, COMPAT_DISABLED); overrides.put(scaleId, COMPAT_ENABLED); final CompatibilityOverrideConfig changeConfig = new CompatibilityOverrideConfig( overrides); try { mPlatformCompat.setOverridesForTest(changeConfig, packageName); } catch (SecurityException e) { Slog.e(TAG, "Missing compat override permission", e); mPlatformCompat.setOverridesOnReleaseBuilds(changeConfig, packageName); } catch (RemoteException e) { Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesForTest", e); Slog.e(TAG, "Failed to call IPlatformCompat#setOverridesOnReleaseBuilds", e); } } finally { Binder.restoreCallingIdentity(uid); Loading
services/tests/servicestests/AndroidManifest.xml +2 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,8 @@ <uses-permission android:name="android.permission.CONTROL_DEVICE_STATE"/> <uses-permission android:name="android.permission.READ_PROJECTION_STATE"/> <uses-permission android:name="android.permission.KILL_UID"/> <uses-permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG_ON_RELEASE_BUILD"/> <!-- Uses API introduced in O (26) --> <uses-sdk android:minSdkVersion="1" Loading