[libgraphicsenv] Add an API to enable profiling features
Set PR_SET_DUMPABLE for process that wishes to
inject Vk/GL layers via metadata. This signals the
graphics driver to enable profiling features.
Bug: 138204026
Test: Add <meta-data android:name="com.android.graphics.injectLayers.enable" android:value="true" />
to the <application> xml in the manifest of a GL/Vk app. Call
prctl(PR_GET_DUMPABLE) in a native app to verify.
Change-Id: Ife7d18f77775499629d830376a76c4599afd9c15
diff --git a/libs/graphicsenv/GraphicsEnv.cpp b/libs/graphicsenv/GraphicsEnv.cpp
index 30f5f73..2859111 100644
--- a/libs/graphicsenv/GraphicsEnv.cpp
+++ b/libs/graphicsenv/GraphicsEnv.cpp
@@ -307,6 +307,13 @@
}
}
+bool GraphicsEnv::setInjectLayersPrSetDumpable() {
+ if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) {
+ return false;
+ }
+ return true;
+}
+
void* GraphicsEnv::loadLibrary(std::string name) {
const android_dlextinfo dlextinfo = {
.flags = ANDROID_DLEXT_USE_NAMESPACE,