A Magisk / KernelSU Zygisk module that forces selected apps to render via the
OpenGL backend instead of Vulkan. It works by PLT-hooking
android::base::GetProperty() inside each target app's libhwui.so and making
the property read of debug.hwui.renderer return skiagl (OpenGL) instead of
skiavk (Vulkan), which is useful as a workaround for apps with buggy Vulkan
drivers.
⚠️ Anti-Cheat DisclaimerOpenGeLify works by hooking into app processes to force the OpenGL renderer. Online games with anti-cheat protection may detect this as tampering, which can result in temporary or permanent bans of your account or device.
Proceed with caution. TLDR: Only force OpenGL on apps that DO NOT HAVE ANTI-CHEAT.
- Device: arm64 (arm64-v8a)
- Runtime: KernelSU Manager or Magisk with Zygisk enabled
- Host (to build):
- Android NDK (with
ndk-buildonPATH) - Node.js >= 18 and npm
zipandsh
- Android NDK (with
The module ships with the WebUI source (webroot/src/) and the Zygisk module
source (zygisk_src/). Everything is compiled into place before packaging.
cd zygisk_src
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./jni/Android.mk NDK_APPLICATION_MK=./jni/Application.mk
cp libs/arm64-v8a/libopengelify.so ../zygisk/arm64-v8a.soThis produces libs/libopengelify.so, the module's hook library. It must be
regenerated whenever zygisk_src/jni/opengelify.cpp changes; it should be renamed
into the abi (for example arm64-v8a) and put into the "zygisk" directory.
cd webroot
npm install
npm run buildThis runs Parcel on src/script.js and emits webroot/script.js (the file that
actually ships in the module).
cd ..
./release.shThis zips the module into OpenGeLify.zip at the repo root, excluding dev-only
files (zygisk_src/, webroot/src/, node_modules, walkthrough.md,
release.sh, the README, and the images/ screenshot).
- Transfer
OpenGeLify.zipto the device. - Enable Zygisk in magisk settings or install a Zygisk implementation module (zygisk-next or rezygisk).
- Flash
OpenGeLify.zipin KernelSU Manager or Magisk. - Reboot.
- Open the module's WebUI (via the manager) and toggle which apps should be forced to render via OpenGL.
Config is stored at /data/adb/opengelify/packages.txt (persists across module
updates/uninstalls).
