Loading core/java/android/os/GraphicsEnvironment.java +27 −4 Original line number Original line Diff line number Diff line Loading @@ -33,11 +33,13 @@ import android.widget.Toast; import dalvik.system.VMRuntime; import dalvik.system.VMRuntime; import java.io.BufferedReader; import java.io.File; import java.io.File; import java.io.FileDescriptor; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileNotFoundException; import java.io.IOException; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Arrays; import java.util.HashMap; import java.util.HashMap; Loading Loading @@ -72,6 +74,7 @@ public class GraphicsEnvironment { "android.app.action.ANGLE_FOR_ANDROID_TOAST_MESSAGE"; "android.app.action.ANGLE_FOR_ANDROID_TOAST_MESSAGE"; private static final String INTENT_KEY_A4A_TOAST_MESSAGE = "A4A Toast Message"; private static final String INTENT_KEY_A4A_TOAST_MESSAGE = "A4A Toast Message"; private static final String GAME_DRIVER_WHITELIST_ALL = "*"; private static final String GAME_DRIVER_WHITELIST_ALL = "*"; private static final String GAME_DRIVER_SPHAL_LIBRARIES_FILENAME = "sphal_libraries.txt"; private static final int VULKAN_1_0 = 0x00400000; private static final int VULKAN_1_0 = 0x00400000; private static final int VULKAN_1_1 = 0x00401000; private static final int VULKAN_1_1 = 0x00401000; Loading Loading @@ -822,10 +825,7 @@ public class GraphicsEnvironment { .append("!/lib/") .append("!/lib/") .append(abi); .append(abi); final String paths = sb.toString(); final String paths = sb.toString(); final String sphalLibraries = getSphalLibraries(context, driverPackageName); final String sphalLibraries = coreSettings.getString(Settings.Global.GAME_DRIVER_SPHAL_LIBRARIES); if (DEBUG) { if (DEBUG) { Log.v(TAG, Log.v(TAG, "gfx driver package search path: " + paths "gfx driver package search path: " + paths Loading Loading @@ -862,6 +862,29 @@ public class GraphicsEnvironment { return null; return null; } } private static String getSphalLibraries(Context context, String driverPackageName) { try { final Context driverContext = context.createPackageContext(driverPackageName, Context.CONTEXT_RESTRICTED); final BufferedReader reader = new BufferedReader(new InputStreamReader( driverContext.getAssets().open(GAME_DRIVER_SPHAL_LIBRARIES_FILENAME))); final ArrayList<String> assetStrings = new ArrayList<>(); for (String assetString; (assetString = reader.readLine()) != null;) { assetStrings.add(assetString); } return String.join(":", assetStrings); } 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 '" + GAME_DRIVER_SPHAL_LIBRARIES_FILENAME + "'"); } } return ""; } private static native int getCanLoadSystemLibraries(); private static native int getCanLoadSystemLibraries(); private static native void setLayerPaths(ClassLoader classLoader, String layerPaths); private static native void setLayerPaths(ClassLoader classLoader, String layerPaths); private static native void setDebugLayers(String layers); private static native void setDebugLayers(String layers); Loading services/core/java/com/android/server/gpu/GpuService.java +0 −8 Original line number Original line Diff line number Diff line Loading @@ -64,7 +64,6 @@ public class GpuService extends SystemService { private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0"; private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0"; private static final String GAME_DRIVER_WHITELIST_FILENAME = "whitelist.txt"; private static final String GAME_DRIVER_WHITELIST_FILENAME = "whitelist.txt"; private static final String GAME_DRIVER_SPHAL_LIBRARIES_FILENAME = "sphal_libraries.txt"; private static final int BASE64_FLAGS = Base64.NO_PADDING | Base64.NO_WRAP; private static final int BASE64_FLAGS = Base64.NO_PADDING | Base64.NO_WRAP; private final Context mContext; private final Context mContext; Loading Loading @@ -230,9 +229,6 @@ public class GpuService extends SystemService { // Reset the whitelist. // Reset the whitelist. Settings.Global.putString(mContentResolver, Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_WHITELIST, ""); Settings.Global.GAME_DRIVER_WHITELIST, ""); // Reset the sphal libraries Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_SPHAL_LIBRARIES, ""); mGameDriverVersionCode = driverInfo.longVersionCode; mGameDriverVersionCode = driverInfo.longVersionCode; try { try { Loading @@ -241,10 +237,6 @@ public class GpuService extends SystemService { assetToSettingsGlobal(mContext, driverContext, GAME_DRIVER_WHITELIST_FILENAME, assetToSettingsGlobal(mContext, driverContext, GAME_DRIVER_WHITELIST_FILENAME, Settings.Global.GAME_DRIVER_WHITELIST, ","); Settings.Global.GAME_DRIVER_WHITELIST, ","); assetToSettingsGlobal(mContext, driverContext, GAME_DRIVER_SPHAL_LIBRARIES_FILENAME, Settings.Global.GAME_DRIVER_SPHAL_LIBRARIES, ":"); } catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) { if (DEBUG) { if (DEBUG) { Slog.w(TAG, "driver package '" + mDriverPackageName + "' not installed"); Slog.w(TAG, "driver package '" + mDriverPackageName + "' not installed"); Loading Loading
core/java/android/os/GraphicsEnvironment.java +27 −4 Original line number Original line Diff line number Diff line Loading @@ -33,11 +33,13 @@ import android.widget.Toast; import dalvik.system.VMRuntime; import dalvik.system.VMRuntime; import java.io.BufferedReader; import java.io.File; import java.io.File; import java.io.FileDescriptor; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileNotFoundException; import java.io.IOException; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Arrays; import java.util.HashMap; import java.util.HashMap; Loading Loading @@ -72,6 +74,7 @@ public class GraphicsEnvironment { "android.app.action.ANGLE_FOR_ANDROID_TOAST_MESSAGE"; "android.app.action.ANGLE_FOR_ANDROID_TOAST_MESSAGE"; private static final String INTENT_KEY_A4A_TOAST_MESSAGE = "A4A Toast Message"; private static final String INTENT_KEY_A4A_TOAST_MESSAGE = "A4A Toast Message"; private static final String GAME_DRIVER_WHITELIST_ALL = "*"; private static final String GAME_DRIVER_WHITELIST_ALL = "*"; private static final String GAME_DRIVER_SPHAL_LIBRARIES_FILENAME = "sphal_libraries.txt"; private static final int VULKAN_1_0 = 0x00400000; private static final int VULKAN_1_0 = 0x00400000; private static final int VULKAN_1_1 = 0x00401000; private static final int VULKAN_1_1 = 0x00401000; Loading Loading @@ -822,10 +825,7 @@ public class GraphicsEnvironment { .append("!/lib/") .append("!/lib/") .append(abi); .append(abi); final String paths = sb.toString(); final String paths = sb.toString(); final String sphalLibraries = getSphalLibraries(context, driverPackageName); final String sphalLibraries = coreSettings.getString(Settings.Global.GAME_DRIVER_SPHAL_LIBRARIES); if (DEBUG) { if (DEBUG) { Log.v(TAG, Log.v(TAG, "gfx driver package search path: " + paths "gfx driver package search path: " + paths Loading Loading @@ -862,6 +862,29 @@ public class GraphicsEnvironment { return null; return null; } } private static String getSphalLibraries(Context context, String driverPackageName) { try { final Context driverContext = context.createPackageContext(driverPackageName, Context.CONTEXT_RESTRICTED); final BufferedReader reader = new BufferedReader(new InputStreamReader( driverContext.getAssets().open(GAME_DRIVER_SPHAL_LIBRARIES_FILENAME))); final ArrayList<String> assetStrings = new ArrayList<>(); for (String assetString; (assetString = reader.readLine()) != null;) { assetStrings.add(assetString); } return String.join(":", assetStrings); } 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 '" + GAME_DRIVER_SPHAL_LIBRARIES_FILENAME + "'"); } } return ""; } private static native int getCanLoadSystemLibraries(); private static native int getCanLoadSystemLibraries(); private static native void setLayerPaths(ClassLoader classLoader, String layerPaths); private static native void setLayerPaths(ClassLoader classLoader, String layerPaths); private static native void setDebugLayers(String layers); private static native void setDebugLayers(String layers); Loading
services/core/java/com/android/server/gpu/GpuService.java +0 −8 Original line number Original line Diff line number Diff line Loading @@ -64,7 +64,6 @@ public class GpuService extends SystemService { private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0"; private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0"; private static final String GAME_DRIVER_WHITELIST_FILENAME = "whitelist.txt"; private static final String GAME_DRIVER_WHITELIST_FILENAME = "whitelist.txt"; private static final String GAME_DRIVER_SPHAL_LIBRARIES_FILENAME = "sphal_libraries.txt"; private static final int BASE64_FLAGS = Base64.NO_PADDING | Base64.NO_WRAP; private static final int BASE64_FLAGS = Base64.NO_PADDING | Base64.NO_WRAP; private final Context mContext; private final Context mContext; Loading Loading @@ -230,9 +229,6 @@ public class GpuService extends SystemService { // Reset the whitelist. // Reset the whitelist. Settings.Global.putString(mContentResolver, Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_WHITELIST, ""); Settings.Global.GAME_DRIVER_WHITELIST, ""); // Reset the sphal libraries Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_SPHAL_LIBRARIES, ""); mGameDriverVersionCode = driverInfo.longVersionCode; mGameDriverVersionCode = driverInfo.longVersionCode; try { try { Loading @@ -241,10 +237,6 @@ public class GpuService extends SystemService { assetToSettingsGlobal(mContext, driverContext, GAME_DRIVER_WHITELIST_FILENAME, assetToSettingsGlobal(mContext, driverContext, GAME_DRIVER_WHITELIST_FILENAME, Settings.Global.GAME_DRIVER_WHITELIST, ","); Settings.Global.GAME_DRIVER_WHITELIST, ","); assetToSettingsGlobal(mContext, driverContext, GAME_DRIVER_SPHAL_LIBRARIES_FILENAME, Settings.Global.GAME_DRIVER_SPHAL_LIBRARIES, ":"); } catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) { if (DEBUG) { if (DEBUG) { Slog.w(TAG, "driver package '" + mDriverPackageName + "' not installed"); Slog.w(TAG, "driver package '" + mDriverPackageName + "' not installed"); Loading