diff options
| author | 2019-01-10 10:23:09 +0800 | |
|---|---|---|
| committer | 2019-04-17 15:54:48 -0700 | |
| commit | 79c5356a076335b5b2fba524f5ecead20a7580a0 (patch) | |
| tree | 6cb00564100b0d21e2fe0166f56c77eb297403c4 | |
| parent | a35e865b97b0da2f4a63f58b833ad6bf3d863907 (diff) | |
GUP: Add a global property for genreal preference
This change also fixes typos and adds some missing comments
Bug: 119221883
Test: Build, flash and boot, verify with prototype
Change-Id: Ida976c4fb3d4af5ffc1d9b977f00fa9c7239a434
Merged-In: Ida976c4fb3d4af5ffc1d9b977f00fa9c7239a434
6 files changed, 61 insertions, 23 deletions
diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java index f09cf3fbec1e..619610e1aa58 100644 --- a/core/java/android/os/GraphicsEnvironment.java +++ b/core/java/android/os/GraphicsEnvironment.java @@ -170,21 +170,36 @@ public class GraphicsEnvironment { return; } - if (getGlobalSettingsString(coreSettings, Settings.Global.GUP_DEV_OPT_OUT_APPS) - .contains(ai.packageName)) { + // GUP_DEV_ALL_APPS + // 0: Default (Invalid values fallback to default as well) + // 1: All apps use Game Update Package + // 2: All apps use system graphics driver + int gupDevAllApps = coreSettings.getInt(Settings.Global.GUP_DEV_ALL_APPS, 0); + if (gupDevAllApps == 2) { if (DEBUG) { - Log.w(TAG, ai.packageName + " opts out from GUP."); + Log.w(TAG, "GUP is turned off on this device"); } return; } - if (!getGlobalSettingsString(coreSettings, Settings.Global.GUP_DEV_OPT_IN_APPS) - .contains(ai.packageName) - && !onWhitelist(context, driverPackageName, ai.packageName)) { - if (DEBUG) { - Log.w(TAG, ai.packageName + " is not on the whitelist."); + if (gupDevAllApps != 1) { + // GUP_DEV_OPT_OUT_APPS has higher priority than GUP_DEV_OPT_IN_APPS + if (getGlobalSettingsString(coreSettings, Settings.Global.GUP_DEV_OPT_OUT_APPS) + .contains(ai.packageName)) { + if (DEBUG) { + Log.w(TAG, ai.packageName + " opts out from GUP."); + } + return; + } + + if (!getGlobalSettingsString(coreSettings, Settings.Global.GUP_DEV_OPT_IN_APPS) + .contains(ai.packageName) + && !onWhitelist(context, driverPackageName, ai.packageName)) { + if (DEBUG) { + Log.w(TAG, ai.packageName + " is not on the whitelist."); + } + return; } - return; } ApplicationInfo driverInfo; diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 9118c91d5ccd..ae22b07a2db9 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -11446,22 +11446,33 @@ public final class Settings { public static final String GPU_DEBUG_APP = "gpu_debug_app"; /** - * List of Apps selected to use Game Update Packages. + * Game Update Package global preference for all Apps. + * 0 = Default + * 1 = All Apps use Game Update Package + * 2 = All Apps use system graphics driver + * @hide + */ + public static final String GUP_DEV_ALL_APPS = "gup_dev_all_apps"; + + /** + * List of Apps selected to use Game Update Package. + * i.e. <pkg1>,<pkg2>,...,<pkgN> * @hide */ public static final String GUP_DEV_OPT_IN_APPS = "gup_dev_opt_in_apps"; /** - * List of Apps selected not to use Game Update Packages. + * List of Apps selected not to use Game Update Package. + * i.e. <pkg1>,<pkg2>,...,<pkgN> * @hide */ public static final String GUP_DEV_OPT_OUT_APPS = "gup_dev_opt_out_apps"; /** - * Apps on the black list that are forbidden to useGame Update Package. + * Apps on the blacklist that are forbidden to use Game Update Package. * @hide */ - public static final String GUP_BLACK_LIST = "gup_black_list"; + public static final String GUP_BLACKLIST = "gup_blacklist"; /** * Ordered GPU debug layer list diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto index 187d5d645dfd..a7d9fc5ccfae 100644 --- a/core/proto/android/providers/settings/global.proto +++ b/core/proto/android/providers/settings/global.proto @@ -384,12 +384,19 @@ message GlobalSettingsProto { // App allowed to load GPU debug layers. optional SettingProto debug_app = 1; optional SettingProto debug_layers = 2 [ (android.privacy).dest = DEST_AUTOMATIC ]; - // GUP - List of Apps selected to use Game Update Packages - optional SettingProto gup_dev_opt_in_apps = 8; - // GUP - List of Apps selected not to use Game Update Packages - optional SettingProto gup_dev_opt_out_apps = 9; - // GUP - List of Apps that are forbidden to use Game Update Packages - optional SettingProto gup_black_list = 10; + // GUP - Game Update Package global preference for all Apps + // 0 = Default + // 1 = All Apps use Game Update Package + // 2 = All Apps use system graphics driver + optional SettingProto gup_dev_all_apps = 8; + // GUP - List of Apps selected to use Game Update Package + // i.e. <pkg1>,<pkg2>,...,<pkgN> + optional SettingProto gup_dev_opt_in_apps = 9; + // GUP - List of Apps selected not to use Game Update Package + // i.e. <pkg1>,<pkg2>,...,<pkgN> + optional SettingProto gup_dev_opt_out_apps = 10; + // GUP - List of Apps that are forbidden to use Game Update Package + optional SettingProto gup_blacklist = 11; } optional Gpu gpu = 59; diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index d17fbd9590bd..e84f4be4aba0 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -444,9 +444,10 @@ public class SettingsBackupTest { Settings.Global.ENABLE_GPU_DEBUG_LAYERS, Settings.Global.GPU_DEBUG_APP, Settings.Global.GPU_DEBUG_LAYERS, + Settings.Global.GUP_DEV_ALL_APPS, Settings.Global.GUP_DEV_OPT_IN_APPS, Settings.Global.GUP_DEV_OPT_OUT_APPS, - Settings.Global.GUP_BLACK_LIST, + Settings.Global.GUP_BLACKLIST, Settings.Global.ENABLE_GNSS_RAW_MEAS_FULL_TRACKING, Settings.Global.INSTALL_CARRIER_APP_NOTIFICATION_PERSISTENT, Settings.Global.INSTALL_CARRIER_APP_NOTIFICATION_SLEEP_MILLIS, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index eca009003dd0..9559b7c41e37 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -648,14 +648,17 @@ class SettingsProtoDumpUtil { Settings.Global.GPU_DEBUG_LAYERS, GlobalSettingsProto.Gpu.DEBUG_LAYERS); dumpSetting(s, p, + Settings.Global.GUP_DEV_ALL_APPS, + GlobalSettingsProto.Gpu.GUP_DEV_ALL_APPS); + dumpSetting(s, p, Settings.Global.GUP_DEV_OPT_IN_APPS, GlobalSettingsProto.Gpu.GUP_DEV_OPT_IN_APPS); dumpSetting(s, p, Settings.Global.GUP_DEV_OPT_OUT_APPS, GlobalSettingsProto.Gpu.GUP_DEV_OPT_OUT_APPS); dumpSetting(s, p, - Settings.Global.GUP_BLACK_LIST, - GlobalSettingsProto.Gpu.GUP_BLACK_LIST); + Settings.Global.GUP_BLACKLIST, + GlobalSettingsProto.Gpu.GUP_BLACKLIST); p.end(gpuToken); final long hdmiToken = p.start(GlobalSettingsProto.HDMI); diff --git a/services/core/java/com/android/server/am/CoreSettingsObserver.java b/services/core/java/com/android/server/am/CoreSettingsObserver.java index 0dc80ce05f4a..4172c9534dbe 100644 --- a/services/core/java/com/android/server/am/CoreSettingsObserver.java +++ b/services/core/java/com/android/server/am/CoreSettingsObserver.java @@ -55,9 +55,10 @@ final class CoreSettingsObserver extends ContentObserver { // add other system settings here... sGlobalSettingToTypeMap.put(Settings.Global.DEBUG_VIEW_ATTRIBUTES, int.class); + sGlobalSettingToTypeMap.put(Settings.Global.GUP_DEV_ALL_APPS, int.class); sGlobalSettingToTypeMap.put(Settings.Global.GUP_DEV_OPT_IN_APPS, String.class); sGlobalSettingToTypeMap.put(Settings.Global.GUP_DEV_OPT_OUT_APPS, String.class); - sGlobalSettingToTypeMap.put(Settings.Global.GUP_BLACK_LIST, String.class); + sGlobalSettingToTypeMap.put(Settings.Global.GUP_BLACKLIST, String.class); // add other global settings here... } |