
Root-My-Device v0.0.6
Instalador de KSU para firmware compatible con CVE-2026-43499
Root My Device
Un fork de BuSung-dev/Root-My-Galaxy, bajo la Licencia Apache 2.0; consulte LICENSE y Créditos.
Root My Device es un instalador de un solo clic para compilaciones de firmware explícitamente compatibles. La aplicación en sí se mantiene separada de los offsets de dispositivo, las cargas útiles de exploits nativos y los artefactos de compilación de KernelSU.
El feed de dispositivos y las cargas útiles nativas se mantienen en
Root-My-Device-Payloads.
Cada push a su rama main compila las cargas útiles y las publica como una
release de GitHub bajo una etiqueta única para esa ejecución. La aplicación
obtiene el releases/latest de ese repositorio, lee el recurso targets-v2.json
de él y descarga cada artefacto nombrado en él, por lo que el conjunto de cargas
útiles que instala es inmutable una vez publicado, y no se hace commit de nada
como binario.
Aplicación
La aplicación selecciona automáticamente una coincidencia exacta para la release del kernel, el ID de compilación completo, el SDK, la ABI y el tamaño de página. El modo avanzado puede seleccionar un perfil manualmente y presenta advertencias separadas de release del kernel y de compilación.
Modo de depuración
Un perfil permanece fuera del feed hasta que la ruta propia de la aplicación se ha completado en ese dispositivo, y el feed es lo que la aplicación lee, por lo que la ejecución que establecería si esa ruta funciona no tiene nada que descargar. El modo de depuración es para ese caso: un interruptor separado del modo avanzado, desactivado por defecto, que lee la carga útil desde una carpeta del dispositivo. Al activarlo, se revela la carpeta a la que debe apuntar, que contiene tres archivos en su nivel superior:
profile.json
cve-2026-43499-app.release.so
ksud
Los dos artefactos son lo que compila el repositorio de cargas útiles, y esos
nombres son los predeterminados. Un daemon incluido bajo el nombre ksud-<id>
que usan las releases de ese repositorio debe renombrarse, o nombrarse en el
manifiesto como kernelsu.name (exploit.name para la carga útil).
profile.json solo contiene lo que no se puede obtener del dispositivo, bajo
los nombres de clave propios del feed:
{
"profileId": "xig07-jp-OS3.0.7.0.WNEJPKD",
"kernelsu": { "kmi": "android14-6.1", "managerPackage": "me.weishu.kernelsu" }
}
Esos tres campos son obligatorios. Cada campo con el que el feed empareja un
dispositivo (release del kernel, ID de compilación, SDK, ABI, tamaño de página)
proviene en cambio de este dispositivo, ya que un perfil local no se compara
contra nada. Nombrar kernelRelease o buildDisplay de todos modos es opcional
y se verifica contra el dispositivo, que es lo que hace seguro mantener las
carpetas de varios objetivos una al lado de la otra.
Ninguna de las comprobaciones que recibe una carga útil descargada se aplica
aquí, y la aplicación lo indica. Una ejecución desde una carpeta se marca como tal
en el registro, en la vista general y como local:<folder> en su entrada de
historial, de modo que ninguna ejecución finalizada pueda leerse posteriormente
como una ejecución de feed.
Compilación
Requisitos:
- Android Studio JBR 21
- Android SDK 37
- Android NDK 28 o más reciente
- CMake 3.22.1
El APK contiene un programa nativo que no se compila a partir del código fuente de este repositorio, así que clona con submódulos:
git clone --recurse-submodules https://github.com/Witaqua-tools/Root-My-Device
# or, in an existing checkout
git submodule update --init payloads
$env:JAVA_HOME='C:\Program Files\Android\Android Studio\jbr'
.\gradlew.bat :app:assembleDebug
Salida:
app/build/outputs/apk/debug/app-debug.apk
El asistente de arranque
lib/arm64-v8a/libcve43499root.so en el APK no es una biblioteca: es el
asistente de arranque, un ejecutable que la aplicación ejecuta con
ProcessBuilder desde nativeLibraryDir. Es quien carga una carga útil
descargada y, posteriormente, quien sirve su a través de un socket una vez que
la carga útil lo ha hecho root.
Se compila desde el código fuente mediante
app/src/main/cpp/CMakeLists.txt, no se hace
commit como binario. Sin embargo, el código fuente no está aquí: la ruta
independiente de la carga útil ejecuta el mismo programa desde una ruta fija, por
lo que el repositorio de cargas útiles también debe compilarlo, y sigue siendo la
única copia. Este repositorio lo alcanza a través del submódulo payloads, cuyo
commit anclado es el registro de exactamente qué revisión se usó para compilar
un APK.
Eso significa dos compilaciones de una misma fuente, deliberadamente. El
repositorio de cargas útiles fija NDK 29 en API 35 porque su payload de
explotación es un blob de tamaño fijo cuyo toolchain es parte de su identidad;
aquí, CMake usa el ndkVersion de este módulo en minSdk. El asistente no
depende de ninguno de los dos: es el mismo programa en cualquier caso, y la copia
que la aplicación incluye es la que se compila aquí.
Dos cosas al respecto son fundamentales y fáciles de deshacer accidentalmente:
debe ser un ejecutable (add_executable más -pie, de modo que tenga un
PT_INTERP que una biblioteca compartida no tendría), y debe llamarse
lib*.so con jniLibs.useLegacyPackaging = true, porque eso es lo que se
extrae en nativeLibraryDir como un archivo real con el bit de ejecución
activado. Ambas están comentadas donde se establecen.
Utilícelo únicamente en dispositivos que posea o que esté autorizado explícitamente a probar.
Créditos
Esta aplicación
Un fork de Root-My-Galaxy de BuSung-dev, que conserva la Licencia Apache 2.0 original; consulte LICENSE.
Las cargas útiles que ejecuta
Esta aplicación descarga y ejecuta lo que publica Root-My-Device-Payloads, que a su vez es un fork de Root-My-Galaxy-Payloads de BuSung-dev.
Nada de lo que se le debe a una carga útil está en este repositorio, y nada de ello se repite aquí. KernelSU — lo que carga una ejecución exitosa — el upstream de cada núcleo, el código fuente del que descienden esos núcleos y los términos de licencia de todo lo construido allí se acreditan en el README del repositorio de cargas útiles, que es donde corresponde el crédito del lado de la carga útil y donde se construyen esos artefactos.