From 51015a756b2d693c9030f5607bf146d3287051b5 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Sat, 29 Dec 2018 03:47:56 +0800 Subject: [PATCH] GUP: Update global property for the new dev opt We updated the development opt in mechanism for GUP. Now we have GUP_DEV_OPT_IN_APPS for applications selected to use GUP and GUP_DEV_OPT_OUT_APPS for applications selected not to use GUP. Bug: 119221883 Test: Build, flash and boot, verify with prototype Change-Id: I52869ecf9e411a8dbdc1146f00c82023ba41bebf --- core/java/android/os/GraphicsEnvironment.java | 19 ++++++++++++------- core/java/android/provider/Settings.java | 8 +++++++- .../android/providers/settings/global.proto | 9 +++++---- .../android/provider/SettingsBackupTest.java | 1 + packages/SettingsLib/res/values/strings.xml | 3 --- .../settings/SettingsProtoDumpUtil.java | 3 +++ .../server/am/CoreSettingsObserver.java | 1 + 7 files changed, 29 insertions(+), 15 deletions(-) diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java index d9793097fc3a7..b0b8f493e98a2 100644 --- a/core/java/android/os/GraphicsEnvironment.java +++ b/core/java/android/os/GraphicsEnvironment.java @@ -480,14 +480,19 @@ public class GraphicsEnvironment { return; } - String applicationPackageName = context.getPackageName(); - String devOptInApplicationName = coreSettings.getString( - Settings.Global.GUP_DEV_OPT_IN_APPS); - boolean devOptIn = applicationPackageName.equals(devOptInApplicationName); - boolean whitelisted = onWhitelist(context, driverPackageName, ai.packageName); - if (!devOptIn && !whitelisted) { + if (getGlobalSettingsString(coreSettings, Settings.Global.GUP_DEV_OPT_OUT_APPS) + .contains(ai.packageName)) { if (DEBUG) { - Log.w(TAG, applicationPackageName + " is not on the whitelist."); + 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; } diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 52effb3d42587..752417a77a0d8 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -11982,11 +11982,17 @@ public final class Settings { "angle_gl_driver_selection_values"; /** - * Apps that are selected to use Game Update Package. + * List of Apps selected to use Game Update Packages. * @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. + * @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. * @hide diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto index a914369a036c1..4cac2b0bf5a38 100644 --- a/core/proto/android/providers/settings/global.proto +++ b/core/proto/android/providers/settings/global.proto @@ -436,11 +436,12 @@ message GlobalSettingsProto { // Ordered GPU debug layer list for GLES // i.e. ::...: optional SettingProto debug_layers_gles = 7; - // Apps opt in to load graphics driver from Game Update Package - // instead of native graphcis driver through developer options. + // GUP - List of Apps selected to use Game Update Packages optional SettingProto gup_dev_opt_in_apps = 8; - // Apps on the black list that are forbidden to useGame Update Package. - optional SettingProto gup_black_list = 9; + // 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; } 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 ac57d20a438ad..422d017400191 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -476,6 +476,7 @@ public class SettingsBackupTest { Settings.Global.GLOBAL_SETTINGS_ANGLE_GL_DRIVER_SELECTION_PKGS, Settings.Global.GLOBAL_SETTINGS_ANGLE_GL_DRIVER_SELECTION_VALUES, Settings.Global.GUP_DEV_OPT_IN_APPS, + Settings.Global.GUP_DEV_OPT_OUT_APPS, Settings.Global.GUP_BLACK_LIST, Settings.Global.GPU_DEBUG_LAYER_APP, Settings.Global.ENABLE_GNSS_RAW_MEAS_FULL_TRACKING, diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 7dcc3acb1dae6..03c620580423a 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -1137,9 +1137,6 @@ - - Opt in app to use Game Update Package in developement - Phone speaker diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 526efcb352626..419273ee28bb7 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -707,6 +707,9 @@ class SettingsProtoDumpUtil { 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); diff --git a/services/core/java/com/android/server/am/CoreSettingsObserver.java b/services/core/java/com/android/server/am/CoreSettingsObserver.java index f9a77af631afd..d7cb2bd36bde9 100644 --- a/services/core/java/com/android/server/am/CoreSettingsObserver.java +++ b/services/core/java/com/android/server/am/CoreSettingsObserver.java @@ -68,6 +68,7 @@ final class CoreSettingsObserver extends ContentObserver { sGlobalSettingToTypeMap.put(Settings.Global.GPU_DEBUG_LAYER_APP, String.class); sGlobalSettingToTypeMap.put(Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED, 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); // add other global settings here... }