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
diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java
index f09cf3f..619610e 100644
--- a/core/java/android/os/GraphicsEnvironment.java
+++ b/core/java/android/os/GraphicsEnvironment.java
@@ -170,21 +170,36 @@
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;
}
- 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;
+ }
}
ApplicationInfo driverInfo;
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 9118c91..ae22b07 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -11446,22 +11446,33 @@
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 187d5d6..a7d9fc5 100644
--- a/core/proto/android/providers/settings/global.proto
+++ b/core/proto/android/providers/settings/global.proto
@@ -384,12 +384,19 @@
// 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 d17fbd9..e84f4be 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -444,9 +444,10 @@
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 eca0090..9559b7c 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 @@
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 0dc80ce..4172c95 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 @@
// 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...
}