Loading libs/graphicsenv/GraphicsEnv.cpp +2 −6 Original line number Original line Diff line number Diff line Loading @@ -124,12 +124,8 @@ static const std::string getSystemNativeLibraries(NativeLibrary type) { return env; return env; } } int GraphicsEnv::getCanLoadSystemLibraries() { bool GraphicsEnv::isDebuggable() { if (property_get_bool("ro.debuggable", false) && prctl(PR_GET_DUMPABLE, 0, 0, 0, 0)) { return prctl(PR_GET_DUMPABLE, 0, 0, 0, 0) > 0; // Return an integer value since this crosses library boundaries return 1; } return 0; } } void GraphicsEnv::setDriverPathAndSphalLibraries(const std::string path, void GraphicsEnv::setDriverPathAndSphalLibraries(const std::string path, Loading libs/graphicsenv/include/graphicsenv/GraphicsEnv.h +10 −2 Original line number Original line Diff line number Diff line Loading @@ -33,8 +33,16 @@ class GraphicsEnv { public: public: static GraphicsEnv& getInstance(); static GraphicsEnv& getInstance(); // Check if device is debuggable. // Check if the process is debuggable. It returns false except in any of the int getCanLoadSystemLibraries(); // following circumstances: // 1. ro.debuggable=1 (global debuggable enabled). // 2. android:debuggable="true" in the manifest for an individual app. // 3. An app which explicitly calls prctl(PR_SET_DUMPABLE, 1). // 4. GraphicsEnv calls prctl(PR_SET_DUMPABLE, 1) in the presence of // <meta-data android:name="com.android.graphics.injectLayers.enable" // android:value="true"/> // in the application manifest. bool isDebuggable(); /* /* * Apis for updatable driver * Apis for updatable driver Loading opengl/libs/EGL/egl_layers.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -337,7 +337,7 @@ void LayerLoader::LoadLayers() { // Only enable the system search path for non-user builds // Only enable the system search path for non-user builds std::string system_path; std::string system_path; if (property_get_bool("ro.debuggable", false) && prctl(PR_GET_DUMPABLE, 0, 0, 0, 0)) { if (android::GraphicsEnv::getInstance().isDebuggable()) { system_path = kSystemLayerLibraryDir; system_path = kSystemLayerLibraryDir; } } Loading vulkan/libvulkan/api.cpp +4 −2 Original line number Original line Diff line number Diff line Loading @@ -124,7 +124,8 @@ class OverrideLayerNames { }; }; void AddImplicitLayers() { void AddImplicitLayers() { if (!is_instance_ || !driver::Debuggable()) if (!is_instance_ || !android::GraphicsEnv::getInstance().isDebuggable()) return; return; GetLayersFromSettings(); GetLayersFromSettings(); Loading Loading @@ -370,7 +371,8 @@ class OverrideExtensionNames { private: private: bool EnableDebugCallback() const { bool EnableDebugCallback() const { return (is_instance_ && driver::Debuggable() && return (is_instance_ && android::GraphicsEnv::getInstance().isDebuggable() && property_get_bool("debug.vulkan.enable_callback", false)); property_get_bool("debug.vulkan.enable_callback", false)); } } Loading vulkan/libvulkan/driver.cpp +0 −4 Original line number Original line Diff line number Diff line Loading @@ -753,10 +753,6 @@ void FreeDeviceData(DeviceData* data, const VkAllocationCallbacks& allocator) { } // anonymous namespace } // anonymous namespace bool Debuggable() { return prctl(PR_GET_DUMPABLE, 0, 0, 0, 0) > 0; } bool OpenHAL() { bool OpenHAL() { return Hal::Open(); return Hal::Open(); } } Loading Loading
libs/graphicsenv/GraphicsEnv.cpp +2 −6 Original line number Original line Diff line number Diff line Loading @@ -124,12 +124,8 @@ static const std::string getSystemNativeLibraries(NativeLibrary type) { return env; return env; } } int GraphicsEnv::getCanLoadSystemLibraries() { bool GraphicsEnv::isDebuggable() { if (property_get_bool("ro.debuggable", false) && prctl(PR_GET_DUMPABLE, 0, 0, 0, 0)) { return prctl(PR_GET_DUMPABLE, 0, 0, 0, 0) > 0; // Return an integer value since this crosses library boundaries return 1; } return 0; } } void GraphicsEnv::setDriverPathAndSphalLibraries(const std::string path, void GraphicsEnv::setDriverPathAndSphalLibraries(const std::string path, Loading
libs/graphicsenv/include/graphicsenv/GraphicsEnv.h +10 −2 Original line number Original line Diff line number Diff line Loading @@ -33,8 +33,16 @@ class GraphicsEnv { public: public: static GraphicsEnv& getInstance(); static GraphicsEnv& getInstance(); // Check if device is debuggable. // Check if the process is debuggable. It returns false except in any of the int getCanLoadSystemLibraries(); // following circumstances: // 1. ro.debuggable=1 (global debuggable enabled). // 2. android:debuggable="true" in the manifest for an individual app. // 3. An app which explicitly calls prctl(PR_SET_DUMPABLE, 1). // 4. GraphicsEnv calls prctl(PR_SET_DUMPABLE, 1) in the presence of // <meta-data android:name="com.android.graphics.injectLayers.enable" // android:value="true"/> // in the application manifest. bool isDebuggable(); /* /* * Apis for updatable driver * Apis for updatable driver Loading
opengl/libs/EGL/egl_layers.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -337,7 +337,7 @@ void LayerLoader::LoadLayers() { // Only enable the system search path for non-user builds // Only enable the system search path for non-user builds std::string system_path; std::string system_path; if (property_get_bool("ro.debuggable", false) && prctl(PR_GET_DUMPABLE, 0, 0, 0, 0)) { if (android::GraphicsEnv::getInstance().isDebuggable()) { system_path = kSystemLayerLibraryDir; system_path = kSystemLayerLibraryDir; } } Loading
vulkan/libvulkan/api.cpp +4 −2 Original line number Original line Diff line number Diff line Loading @@ -124,7 +124,8 @@ class OverrideLayerNames { }; }; void AddImplicitLayers() { void AddImplicitLayers() { if (!is_instance_ || !driver::Debuggable()) if (!is_instance_ || !android::GraphicsEnv::getInstance().isDebuggable()) return; return; GetLayersFromSettings(); GetLayersFromSettings(); Loading Loading @@ -370,7 +371,8 @@ class OverrideExtensionNames { private: private: bool EnableDebugCallback() const { bool EnableDebugCallback() const { return (is_instance_ && driver::Debuggable() && return (is_instance_ && android::GraphicsEnv::getInstance().isDebuggable() && property_get_bool("debug.vulkan.enable_callback", false)); property_get_bool("debug.vulkan.enable_callback", false)); } } Loading
vulkan/libvulkan/driver.cpp +0 −4 Original line number Original line Diff line number Diff line Loading @@ -753,10 +753,6 @@ void FreeDeviceData(DeviceData* data, const VkAllocationCallbacks& allocator) { } // anonymous namespace } // anonymous namespace bool Debuggable() { return prctl(PR_GET_DUMPABLE, 0, 0, 0, 0) > 0; } bool OpenHAL() { bool OpenHAL() { return Hal::Open(); return Hal::Open(); } } Loading