
Instalador KSU para firmware compatível com CVE-2026-43499
Um fork de BuSung-dev/Root-My-Galaxy, sob a Licença Apache 2.0 — consulte LICENSE e Credits.
Root My Device é um instalador de um clique para builds de firmware explicitamente suportadas. A aplicação em si é mantida separada dos offsets de dispositivo, payloads de exploit nativos e artefatos de build do KernelSU.
O feed de dispositivos e os payloads nativos são mantidos em
Root-My-Device-Payloads.
Cada push para seu branch main compila os payloads e os publica como uma
release do GitHub sob uma tag exclusiva para essa execução. O app resolve o
releases/latest desse repositório, lê o asset targets-v2.json a partir dele e
baixa cada artefato nele nomeado — assim, o conjunto de payloads que ele instala é
imutável uma vez publicado, e nada é commitado como binário.
O app seleciona automaticamente uma correspondência exata para a versão do kernel, o ID de exibição completo da build, o SDK, a ABI e o tamanho de página. O modo avançado pode selecionar um perfil manualmente e apresenta avisos separados de versão de kernel e de build.
Um perfil permanece fora do feed até que a própria rota do app tenha sido concluída naquele dispositivo, e o feed é o que o app lê — portanto, a execução que estabeleceria se essa rota funciona não tem nada para baixar. O modo de depuração serve para esse caso: um interruptor separado do modo avançado, desativado por padrão, que lê o payload a partir de uma pasta no dispositivo. Ativá-lo revela a pasta para a qual apontá-lo, que contém três arquivos em seu nível superior:
profile.json
cve-2026-43499-app.release.so
ksud
Os dois artefatos são o que o repositório de payload compila, e esses nomes são
os padrões. Um daemon carregado sob o nome ksud-<id> que as releases desse repositório
usam precisa ser renomeado, ou nomeado no manifesto como kernelsu.name
(exploit.name para o payload).
profile.json carrega apenas o que não pode ser obtido do dispositivo, sob os
nomes de chave do próprio feed:
{
"profileId": "xig07-jp-OS3.0.7.0.WNEJPKD",
"kernelsu": { "kmi": "android14-6.1", "managerPackage": "me.weishu.kernelsu" }
}
Esses três campos são obrigatórios. Todos os campos com os quais o feed corresponde a um dispositivo —
versão do kernel, ID de exibição da build, SDK, ABI, tamanho de página — vêm deste dispositivo,
já que um perfil local não é comparado com nada. Nomear
kernelRelease ou buildDisplay de qualquer forma é opcional e verificado em relação ao
dispositivo, o que torna seguro manter as pastas de vários alvos lado a
lado.
Nenhuma das verificações aplicadas a um payload baixado se aplica aqui, e o app informa isso. Uma
execução a partir de uma pasta é marcada como tal no log, na visão geral e como
local:<folder> em sua entrada de histórico, para que nenhuma execução concluída possa ser lida posteriormente
como uma execução de feed.
Requisitos:
O APK contém um programa nativo que não é compilado a partir do código-fonte próprio deste repositório, então clone com 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
Não há conteúdo de entrada fornecido no seu pedido — o campo "INPUT:" está vazio. Por favor, envie o texto do chunk 9/11 que deseja traduzir para português, e eu retornarei apenas a tradução em Markdown, preservando toda a estrutura, código, URLs e identificadores técnicos.
app/build/outputs/apk/debug/app-debug.apk
lib/arm64-v8a/libcve43499root.so no APK não é uma biblioteca — é o
auxiliar de bootstrap, um executável que o aplicativo executa com ProcessBuilder a partir de
nativeLibraryDir. É ele que carrega um payload baixado e, depois, o que
serve su por um socket uma vez que o payload tenha obtido root.
Ele é compilado a partir do código-fonte por app/src/main/cpp/CMakeLists.txt,
não é versionado como binário. O código-fonte, porém, não está aqui: a rota
autônoma do payload executa o mesmo programa a partir de um caminho fixo, então o repositório
do payload também precisa compilá-lo, e ele permanece sendo a única cópia. Este repositório
o alcança através do submódulo payloads, cujo commit fixado é o registro
de exatamente qual revisão um APK foi compilado.
Isso significa duas compilações de um mesmo código-fonte, deliberadamente. O repositório do payload fixa
o NDK 29 na API 35 porque seu payload de exploit é um blob de tamanho fixo cujo
toolchain faz parte de sua identidade; aqui o CMake usa o ndkVersion deste módulo
em minSdk. O auxiliar não depende de nenhum dos dois — é o mesmo programa de qualquer forma,
e a cópia que o aplicativo distribui é a compilada aqui.
Duas coisas sobre ele são essenciais e fáceis de desfazer por acidente: ele deve ser
um executável (add_executable mais -pie, para que tenha um PT_INTERP que uma
biblioteca compartilhada não teria), e deve ser nomeado lib*.so com
jniLibs.useLegacyPackaging = true, porque é isso que é extraído para
nativeLibraryDir como um arquivo real com o bit de execução definido. Ambos estão comentados
onde são definidos.
Use apenas em dispositivos que você possui ou está explicitamente autorizado a testar.
Um fork de Root-My-Galaxy por BuSung-dev, que mantém a licença Apache License 2.0 original — consulte LICENSE.
Este aplicativo baixa e executa o que Root-My-Device-Payloads publica — ele próprio um fork de Root-My-Galaxy-Payloads por BuSung-dev.
Nada do que é devido a um payload está neste repositório, e nada disso é repetido aqui. KernelSU — o que uma execução bem-sucedida carrega —, o upstream de cada core, o código-fonte do qual esses cores descendem, e os termos de licença de tudo o que é compilado ali estão creditados no README do repositório de payloads, que é onde um crédito do lado do payload pertence e onde esses artefatos são compilados.