From 443894f8bbf4a2f7db403d889b5a388906b5621e Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Fri, 12 Oct 2018 15:34:15 -0700 Subject: [PATCH 1/4] [GraphicsEnvironment] Add whitelist support. This patch adds the ability to load whitelist from updatable graphcis driver apk. Typically a whitelist is part of the graphics driver apk, and the name is set by overwriting ro.gfx.driver.whitelist.0 BUG: 117241379 Test: Build, flash and boot, whitelist an app and verify. Change-Id: Ie36ca0173a90a8e48acaca2979ab64bbf92eeaed Merged-In: Ie36ca0173a90a8e48acaca2979ab64bbf92eeaed --- core/java/android/os/GraphicsEnvironment.java | 67 +++++++++++++++++-- core/proto/android/os/system_properties.proto | 4 +- 2 files changed, 64 insertions(+), 7 deletions(-) diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java index f2e0bddb93aa3..b1408f46635ea 100644 --- a/core/java/android/os/GraphicsEnvironment.java +++ b/core/java/android/os/GraphicsEnvironment.java @@ -19,6 +19,7 @@ package android.os; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.content.res.AssetManager; import android.opengl.EGL14; import android.os.Build; import android.os.SystemProperties; @@ -27,7 +28,13 @@ import android.util.Log; import dalvik.system.VMRuntime; +import java.io.BufferedReader; import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashSet; +import java.util.Set; /** @hide */ public class GraphicsEnvironment { @@ -44,6 +51,7 @@ public class GraphicsEnvironment { private static final boolean DEBUG = false; private static final String TAG = "GraphicsEnvironment"; private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0"; + private static final String PROPERTY_GFX_DRIVER_WHITELIST = "ro.gfx.driver.whitelist.0"; private ClassLoader mClassLoader; private String mLayerPath; @@ -146,6 +154,15 @@ public class GraphicsEnvironment { if (DEBUG) Log.v(TAG, "ignoring driver package for privileged/non-updated system app"); return; } + Set whitelist = loadWhitelist(context, driverPackageName); + + // Empty whitelist implies no updatable graphics driver. Typically, the pre-installed + // updatable graphics driver is supposed to be a place holder and contains no graphics + // driver and whitelist. + if (whitelist == null || whitelist.isEmpty()) { + return; + } + ApplicationInfo driverInfo; try { driverInfo = context.getPackageManager().getApplicationInfo(driverPackageName, @@ -154,6 +171,22 @@ public class GraphicsEnvironment { Log.w(TAG, "driver package '" + driverPackageName + "' not installed"); return; } + if (!whitelist.contains(context.getPackageName())) { + if (DEBUG) { + Log.w(TAG, context.getPackageName() + " is not on the whitelist."); + } + return; + } + + // O drivers are restricted to the sphal linker namespace, so don't try to use + // packages unless they declare they're compatible with that restriction. + if (driverInfo.targetSdkVersion < Build.VERSION_CODES.O) { + if (DEBUG) { + Log.w(TAG, "updated driver package is not known to be compatible with O"); + } + return; + } + String abi = chooseAbi(driverInfo); if (abi == null) { if (DEBUG) { @@ -164,12 +197,6 @@ public class GraphicsEnvironment { } return; } - if (driverInfo.targetSdkVersion < Build.VERSION_CODES.O) { - // O drivers are restricted to the sphal linker namespace, so don't try to use - // packages unless they declare they're compatible with that restriction. - Log.w(TAG, "updated driver package is not known to be compatible with O"); - return; - } StringBuilder sb = new StringBuilder(); sb.append(driverInfo.nativeLibraryDir) @@ -215,6 +242,34 @@ public class GraphicsEnvironment { return null; } + private static Set loadWhitelist(Context context, String driverPackageName) { + String whitelistName = SystemProperties.get(PROPERTY_GFX_DRIVER_WHITELIST); + if (whitelistName == null || whitelistName.isEmpty()) { + return null; + } + try { + Context driverContext = context.createPackageContext(driverPackageName, + Context.CONTEXT_RESTRICTED); + AssetManager assets = driverContext.getAssets(); + InputStream stream = assets.open(whitelistName); + BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); + Set whitelist = new HashSet<>(); + for (String line; (line = reader.readLine()) != null; ) { + whitelist.add(line); + } + return whitelist; + } catch (PackageManager.NameNotFoundException e) { + if (DEBUG) { + Log.w(TAG, "driver package '" + driverPackageName + "' not installed"); + } + } catch (IOException e) { + if (DEBUG) { + Log.w(TAG, "Failed to load whitelist driver package, abort."); + } + } + return null; + } + private static native void setLayerPaths(ClassLoader classLoader, String layerPaths); private static native void setDebugLayers(String layers); private static native void setDriverPath(String path); diff --git a/core/proto/android/os/system_properties.proto b/core/proto/android/os/system_properties.proto index 8bf3772a6a5d2..973fa5a5e1bd3 100644 --- a/core/proto/android/os/system_properties.proto +++ b/core/proto/android/os/system_properties.proto @@ -460,7 +460,9 @@ message SystemPropertiesProto { optional int32 vts_coverage = 43; optional string zygote = 44; - // Next Tag: 45 + optional string gfx_driver_whitelist_0 = 45; + + // Next Tag: 46 } optional Ro ro = 21; From e23f59aa5ad5f25b697905c9b956bfee47c79ed3 Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Wed, 7 Nov 2018 21:10:07 -0800 Subject: [PATCH 2/4] Add global property to store opt-in application package name. We provide a way in developer option to opt-in an application to use updated graphics driver. To make sure we set up the graphics environment correctly, we need to access the package name of the selected application. This patch introduces a global property to store the package name. BUG: 119221883 Test: Build, flash and boot, verify with prototype Change-Id: I49dfcccf387169c072fb9345f7a50c00fcdb0737 Merged-In: I49dfcccf387169c072fb9345f7a50c00fcdb0737 --- core/java/android/app/ActivityThread.java | 2 +- core/java/android/os/GraphicsEnvironment.java | 51 ++++++++++--------- core/java/android/provider/Settings.java | 7 +++ .../android/providers/settings/global.proto | 3 ++ .../android/provider/SettingsBackupTest.java | 1 + packages/SettingsLib/res/values/strings.xml | 3 ++ .../settings/SettingsProtoDumpUtil.java | 3 ++ .../server/am/CoreSettingsObserver.java | 2 + 8 files changed, 48 insertions(+), 24 deletions(-) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index a6f19f4c8f27c..f453289b4bc5f 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -5594,7 +5594,7 @@ public final class ActivityThread extends ClientTransactionHandler { } } - GraphicsEnvironment.getInstance().setup(context); + GraphicsEnvironment.getInstance().setup(context, mCoreSettings); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); } diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java index b1408f46635ea..60003d3aa7d71 100644 --- a/core/java/android/os/GraphicsEnvironment.java +++ b/core/java/android/os/GraphicsEnvironment.java @@ -33,8 +33,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.HashSet; -import java.util.Set; /** @hide */ public class GraphicsEnvironment { @@ -60,9 +58,9 @@ public class GraphicsEnvironment { /** * Set up GraphicsEnvironment */ - public void setup(Context context) { + public void setup(Context context, Bundle coreSettings) { setupGpuLayers(context); - chooseDriver(context); + chooseDriver(context, coreSettings); } /** @@ -141,11 +139,12 @@ public class GraphicsEnvironment { /** * Choose whether the current process should use the builtin or an updated driver. */ - private static void chooseDriver(Context context) { + private static void chooseDriver(Context context, Bundle coreSettings) { String driverPackageName = SystemProperties.get(PROPERTY_GFX_DRIVER); if (driverPackageName == null || driverPackageName.isEmpty()) { return; } + // To minimize risk of driver updates crippling the device beyond user repair, never use an // updated driver for privileged or non-updated system apps. Presumably pre-installed apps // were tested thoroughly with the pre-installed driver. @@ -154,12 +153,16 @@ public class GraphicsEnvironment { if (DEBUG) Log.v(TAG, "ignoring driver package for privileged/non-updated system app"); return; } - Set whitelist = loadWhitelist(context, driverPackageName); - // Empty whitelist implies no updatable graphics driver. Typically, the pre-installed - // updatable graphics driver is supposed to be a place holder and contains no graphics - // driver and whitelist. - if (whitelist == null || whitelist.isEmpty()) { + String applicationPackageName = context.getPackageName(); + String devOptInApplicationName = coreSettings.getString( + Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP); + boolean devOptIn = applicationPackageName.equals(devOptInApplicationName); + boolean whitelisted = onWhitelist(context, driverPackageName, ai.packageName); + if (!devOptIn && !whitelisted) { + if (DEBUG) { + Log.w(TAG, applicationPackageName + " is not on the whitelist."); + } return; } @@ -171,12 +174,6 @@ public class GraphicsEnvironment { Log.w(TAG, "driver package '" + driverPackageName + "' not installed"); return; } - if (!whitelist.contains(context.getPackageName())) { - if (DEBUG) { - Log.w(TAG, context.getPackageName() + " is not on the whitelist."); - } - return; - } // O drivers are restricted to the sphal linker namespace, so don't try to use // packages unless they declare they're compatible with that restriction. @@ -242,10 +239,18 @@ public class GraphicsEnvironment { return null; } - private static Set loadWhitelist(Context context, String driverPackageName) { + private static boolean onWhitelist(Context context, String driverPackageName, + String applicationPackageName) { String whitelistName = SystemProperties.get(PROPERTY_GFX_DRIVER_WHITELIST); + + // Empty whitelist implies no updatable graphics driver. Typically, the pre-installed + // updatable graphics driver is supposed to be a place holder and contains no graphics + // driver and whitelist. if (whitelistName == null || whitelistName.isEmpty()) { - return null; + if (DEBUG) { + Log.w(TAG, "No whitelist found."); + } + return false; } try { Context driverContext = context.createPackageContext(driverPackageName, @@ -253,11 +258,11 @@ public class GraphicsEnvironment { AssetManager assets = driverContext.getAssets(); InputStream stream = assets.open(whitelistName); BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); - Set whitelist = new HashSet<>(); - for (String line; (line = reader.readLine()) != null; ) { - whitelist.add(line); + for (String packageName; (packageName = reader.readLine()) != null; ) { + if (packageName.equals(applicationPackageName)) { + return true; + } } - return whitelist; } catch (PackageManager.NameNotFoundException e) { if (DEBUG) { Log.w(TAG, "driver package '" + driverPackageName + "' not installed"); @@ -267,7 +272,7 @@ public class GraphicsEnvironment { Log.w(TAG, "Failed to load whitelist driver package, abort."); } } - return null; + return false; } private static native void setLayerPaths(ClassLoader classLoader, String layerPaths); diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 34e9eb30721ff..734df0dd36a48 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -11445,6 +11445,13 @@ public final class Settings { */ public static final String GPU_DEBUG_APP = "gpu_debug_app"; + /** + * App that is selected to use updated graphics driver. + * @hide + */ + public static final String UPDATED_GFX_DRIVER_DEV_OPT_IN_APP = + "updated_gfx_driver_dev_opt_in_app"; + /** * Ordered GPU debug layer list * i.e. ::...: diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto index 99f3034310559..c8cf8c306c158 100644 --- a/core/proto/android/providers/settings/global.proto +++ b/core/proto/android/providers/settings/global.proto @@ -384,6 +384,9 @@ message GlobalSettingsProto { // App allowed to load GPU debug layers. optional SettingProto debug_app = 1; optional SettingProto debug_layers = 2 [ (android.privacy).dest = DEST_AUTOMATIC ]; + // App opt in to load updated graphics driver instead of + // native graphcis driver through developer options. + optional SettingProto updated_gfx_driver_dev_opt_in_app = 6; } 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 8e383a56297d2..8976f45fc4e30 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -444,6 +444,7 @@ public class SettingsBackupTest { Settings.Global.ENABLE_GPU_DEBUG_LAYERS, Settings.Global.GPU_DEBUG_APP, Settings.Global.GPU_DEBUG_LAYERS, + Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP, 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/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index d5b121768a660..4684ab99586c0 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -1131,4 +1131,7 @@ + + + Opt in app to use updated graphcis driver in developement diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index d5efcb549e648..34448f567ad82 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -647,6 +647,9 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, Settings.Global.GPU_DEBUG_LAYERS, GlobalSettingsProto.Gpu.DEBUG_LAYERS); + dumpSetting(s, p, + Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP, + GlobalSettingsProto.Gpu.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP); 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 160c753d95405..ee3d3a1ddee6b 100644 --- a/services/core/java/com/android/server/am/CoreSettingsObserver.java +++ b/services/core/java/com/android/server/am/CoreSettingsObserver.java @@ -55,6 +55,8 @@ final class CoreSettingsObserver extends ContentObserver { // add other system settings here... sGlobalSettingToTypeMap.put(Settings.Global.DEBUG_VIEW_ATTRIBUTES, int.class); + sGlobalSettingToTypeMap.put(Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP, + String.class); // add other global settings here... } From be09eef81827c5fd51ed0f33188544c440c5b763 Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Wed, 2 Jan 2019 17:46:55 -0800 Subject: [PATCH 3/4] [GUP] Hard code the name of the whitelist file. Allowing customized whitelist filename could result in inconsistency and fragmentations in toolings. BUG: 120870520 Test: Build, flash and boot Change-Id: Ibe9337b358b6a67600048f1661d73574d7bea607 Merged-In: Ibe9337b358b6a67600048f1661d73574d7bea607 --- core/java/android/os/GraphicsEnvironment.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java index 60003d3aa7d71..2773c0e2e25d6 100644 --- a/core/java/android/os/GraphicsEnvironment.java +++ b/core/java/android/os/GraphicsEnvironment.java @@ -49,7 +49,7 @@ public class GraphicsEnvironment { private static final boolean DEBUG = false; private static final String TAG = "GraphicsEnvironment"; private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0"; - private static final String PROPERTY_GFX_DRIVER_WHITELIST = "ro.gfx.driver.whitelist.0"; + private static final String GUP_WHITELIST_FILENAME = "whitelist.txt"; private ClassLoader mClassLoader; private String mLayerPath; @@ -241,22 +241,11 @@ public class GraphicsEnvironment { private static boolean onWhitelist(Context context, String driverPackageName, String applicationPackageName) { - String whitelistName = SystemProperties.get(PROPERTY_GFX_DRIVER_WHITELIST); - - // Empty whitelist implies no updatable graphics driver. Typically, the pre-installed - // updatable graphics driver is supposed to be a place holder and contains no graphics - // driver and whitelist. - if (whitelistName == null || whitelistName.isEmpty()) { - if (DEBUG) { - Log.w(TAG, "No whitelist found."); - } - return false; - } try { Context driverContext = context.createPackageContext(driverPackageName, Context.CONTEXT_RESTRICTED); AssetManager assets = driverContext.getAssets(); - InputStream stream = assets.open(whitelistName); + InputStream stream = assets.open(GUP_WHITELIST_FILENAME); BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); for (String packageName; (packageName = reader.readLine()) != null; ) { if (packageName.equals(applicationPackageName)) { From 8eeb14e639358c5b667a8c11785f7a690bc966f7 Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Wed, 26 Dec 2018 13:22:52 -0800 Subject: [PATCH 4/4] Rename updatable graphics driver to Game Update Package. We have rebranded this project to Game Update Package, and GUP for short. BUG: 119221883 Test: Build, flash and boot. Verify by going to developer options. Change-Id: If284bd3e0b29cb025833be29fa33179011c151d7 Merged-In: If284bd3e0b29cb025833be29fa33179011c151d7 --- core/java/android/os/GraphicsEnvironment.java | 2 +- core/java/android/provider/Settings.java | 11 ++++++++--- core/proto/android/providers/settings/global.proto | 8 +++++--- .../src/android/provider/SettingsBackupTest.java | 3 ++- packages/SettingsLib/res/values/strings.xml | 2 +- .../providers/settings/SettingsProtoDumpUtil.java | 7 +++++-- .../com/android/server/am/CoreSettingsObserver.java | 4 ++-- 7 files changed, 24 insertions(+), 13 deletions(-) diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java index 2773c0e2e25d6..606c8f398563c 100644 --- a/core/java/android/os/GraphicsEnvironment.java +++ b/core/java/android/os/GraphicsEnvironment.java @@ -156,7 +156,7 @@ public class GraphicsEnvironment { String applicationPackageName = context.getPackageName(); String devOptInApplicationName = coreSettings.getString( - Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP); + Settings.Global.GUP_DEV_OPT_IN_APPS); boolean devOptIn = applicationPackageName.equals(devOptInApplicationName); boolean whitelisted = onWhitelist(context, driverPackageName, ai.packageName); if (!devOptIn && !whitelisted) { diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 734df0dd36a48..bf33e06193045 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -11446,11 +11446,16 @@ public final class Settings { public static final String GPU_DEBUG_APP = "gpu_debug_app"; /** - * App that is selected to use updated graphics driver. + * Apps that are selected to use Game Update Package. * @hide */ - public static final String UPDATED_GFX_DRIVER_DEV_OPT_IN_APP = - "updated_gfx_driver_dev_opt_in_app"; + public static final String GUP_DEV_OPT_IN_APPS = "gup_dev_opt_in_apps"; + + /** + * Apps on the black list that are forbidden to useGame Update Package. + * @hide + */ + public static final String GUP_BLACK_LIST = "gup_black_list"; /** * Ordered GPU debug layer list diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto index c8cf8c306c158..7c9176aa9eb72 100644 --- a/core/proto/android/providers/settings/global.proto +++ b/core/proto/android/providers/settings/global.proto @@ -384,9 +384,11 @@ message GlobalSettingsProto { // App allowed to load GPU debug layers. optional SettingProto debug_app = 1; optional SettingProto debug_layers = 2 [ (android.privacy).dest = DEST_AUTOMATIC ]; - // App opt in to load updated graphics driver instead of - // native graphcis driver through developer options. - optional SettingProto updated_gfx_driver_dev_opt_in_app = 6; + // Apps opt in to load graphics driver from Game Update Package + // instead of native graphcis driver through developer options. + 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; } 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 8976f45fc4e30..7b729284a063d 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -444,7 +444,8 @@ public class SettingsBackupTest { Settings.Global.ENABLE_GPU_DEBUG_LAYERS, Settings.Global.GPU_DEBUG_APP, Settings.Global.GPU_DEBUG_LAYERS, - Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP, + Settings.Global.GUP_DEV_OPT_IN_APPS, + Settings.Global.GUP_BLACK_LIST, 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/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 4684ab99586c0..2c4abaeb9949f 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -1133,5 +1133,5 @@ - Opt in app to use updated graphcis driver in developement + Opt in app to use Game Update Package in developement diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 34448f567ad82..759b51c853da8 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -648,8 +648,11 @@ class SettingsProtoDumpUtil { Settings.Global.GPU_DEBUG_LAYERS, GlobalSettingsProto.Gpu.DEBUG_LAYERS); dumpSetting(s, p, - Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP, - GlobalSettingsProto.Gpu.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP); + Settings.Global.GUP_DEV_OPT_IN_APPS, + GlobalSettingsProto.Gpu.GUP_DEV_OPT_IN_APPS); + dumpSetting(s, p, + Settings.Global.GUP_BLACK_LIST, + GlobalSettingsProto.Gpu.GUP_BLACK_LIST); 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 ee3d3a1ddee6b..63300a1c05cd4 100644 --- a/services/core/java/com/android/server/am/CoreSettingsObserver.java +++ b/services/core/java/com/android/server/am/CoreSettingsObserver.java @@ -55,8 +55,8 @@ final class CoreSettingsObserver extends ContentObserver { // add other system settings here... sGlobalSettingToTypeMap.put(Settings.Global.DEBUG_VIEW_ATTRIBUTES, int.class); - sGlobalSettingToTypeMap.put(Settings.Global.UPDATED_GFX_DRIVER_DEV_OPT_IN_APP, - String.class); + sGlobalSettingToTypeMap.put(Settings.Global.GUP_DEV_OPT_IN_APPS, String.class); + sGlobalSettingToTypeMap.put(Settings.Global.GUP_BLACK_LIST, String.class); // add other global settings here... }