
Une application Android et des payloads de jailbreak/root CVE-2026-43499 pour iQOO Z9 5G et vivo T3 5G. Les deux appareils utilisent la plateforme MediaTek Dimensity 7200 (MT6886). Version du noyau 5.15.178.
Une application Android de jailbreak/root pour iQOO Z9 5G et vivo T3 5G, ainsi que les payloads correspondants. Les deux appareils utilisent la plateforme MediaTek Dimensity 7200 (MT6886).
Deux méthodes d'exécution sont prises en charge : l'APK Android avec Shizuku, ou l'assistant natif exécuté directement depuis un adb shell. Les deux méthodes utilisent le même payload spécifique à l'appareil et le même démon KernelSU.
Ce port utilise la chaîne d'exploitation du noyau Ghostlock CVE-2026-43499 pour obtenir un root bootstrap temporaire, puis effectue le late-load du démon KernelSU correspondant. Il s'agit d'une build de recherche jailbreak/root spécifique à l'appareil pour l'iQOO Z9 5G (modèle I2302) et le vivo T3 5G (modèle V2334), utilisant le noyau 5.15.178-android13-8-g0ebe6a5da65d. Il ne s'agit pas d'un outil de root Android générique et il ne doit être utilisé que sur du matériel que vous possédez ou que vous êtes autorisé à tester.
L'iQOO Z9 5G I2302 et le vivo T3 5G V2334 sont traités comme la même cible pour ce port. Leur SoC, le comportement du firmware, la version du noyau, l'ABI, les offsets d'exploitation et l'appairage KernelSU sont identiques ; l'empreinte de build est la seule différence d'identité attendue. Ils utilisent donc le même payload et le même profil de prise en charge. L'application exige toujours la version exacte du noyau listée ci-dessus : 5.15.178-android13-8-g0ebe6a5da65d.
Pour savoir comment adapter ce projet à un autre appareil, consultez le guide Portage vers un autre appareil.
Ce projet a demandé beaucoup d'efforts et d'argent pour être mené à bien. S'il vous a été utile, vous pouvez soutenir ce travail en offrant un café :
Merci à Codex pour son aide au développement.
app/ Android/Compose application source and UI resources
payload/ iQOO exploit source, target profile, build script, and release inputs
Le flux d'exécution est le suivant :
I2302 ou V2334, que le noyau en cours d'exécution est 5.15.178-android13-8-g0ebe6a5da65d et que l'appareil est en arm64.payload/src/su_daemon.c en tant que service shell (UID 2000), le contexte d'exécution nécessaire à ce port. L'application invoque le superviseur --run-payload de l'assistant, le même transfert enfant/session que celui du runbook adb validé, et suit son journal d'exploitation persistant.ksud téléchargé, effectue le late-load KernelSU protégé et vérifie le canal de contrôle.Note importante de récupération : Si le téléphone se bloque ou ne démarre pas, maintenez Volume Bas + Power enfoncés ensemble jusqu'à ce qu'il force le redémarrage.
Téléchargez la dernière APK depuis la page GitHub Releases.
Téléchargez l'APK officielle KernelSU Manager depuis la page des releases de KernelSU.
Une application Android ordinaire s'exécute dans le domaine SELinux untrusted_app. Sur cet appareil, ce domaine ne peut pas lire tracefs : lancer l'assistant directement depuis l'APK fait donc basculer le payload vers l'oracle physique et échoue généralement au niveau du pipe gate. Shizuku est par conséquent requis pour une installation APK fonctionnelle. L'application démarre le superviseur --run-payload de l'assistant via le service shell Shizuku (UID 2000), ce qui donne à la route tracefs le même contexte d'exécution et le même transfert de processus que l'exécution éprouvée via adb shell.
La page Paramètres expose toujours un interrupteur without Shizuku pour le diagnostic et le développement futur. Il est explicitement marqué comme non pris en charge ; le désactiver arrête l'installation avant que l'exploit ne démarre.
Redémarrez d'abord le téléphone ; ce port n'autorise qu'une seule tentative d'exploit par démarrage. Démarrez Shizuku, vérifiez que l'application jailbreak/root a toujours l'autorisation et que Use Shizuku (required) est activé, puis appuyez sur Install KernelSU. Le journal en direct doit contenir Shizuku permission granted avant que le payload ne démarre. Gardez le téléphone éveillé et branché à l'alimentation pendant l'exécution de l'exploit.
Si Shizuku est arrêté, si l'autorisation est révoquée ou si l'appareil est redémarré pendant une exécution en cours, arrêtez et redémarrez avant de réessayer. Ne réitérez pas l'exploit à plusieurs reprises lors du même démarrage. Le mode Shizuku ne change que la manière dont l'assistant est lancé ; il ne rend pas ce payload spécifique à l'appareil portable vers un autre modèle ou noyau.
L'APK est facultative. Un adb shell s'exécute déjà avec l'UID shell d'Android, il fournit donc l'accès tracefs que l'APK obtient via Shizuku. C'est la voie de diagnostic/runbook d'origine et elle ne nécessite pas Shizuku.
Utilisez un démarrage frais pour chaque tentative. Le stack writer est à usage unique par démarrage ; ne relancez pas l'exploit après stack writer ran; refusing retry on this boot.
Depuis la racine du dépôt, préparez les binaires iQOO correspondants :
adb reboot
# Wait for Android to finish booting, then push the payload and helper.
adb push payload/build/cve-2026-43499-app.so \
/data/local/tmp/iqoo-app.so
adb push payload/build/cve-2026-43499-root \
/data/local/tmp/cve-2026-43499-root
adb push payload/artifacts/ksud-iqoo-z9-5g \
/data/local/tmp/ksud-iqoo-z9-5g
adb shell chmod 755 \
/data/local/tmp/cve-2026-43499-root \
/data/local/tmp/ksud-iqoo-z9-5g
adb shell rm -f /data/local/tmp/iqoo-app-run.log
Démarrez le superviseur de l'assistant. Gardez ce terminal ouvert et attendez qu'il se termine ; une exécution normale peut prendre plusieurs minutes :
adb shell 'SLIDE_SOURCE=tracefs EXPLOIT_ATTEMPTS=1 \
P0_ATTEMPT_TIMEOUT_SEC=115 EXPLOIT_ATTEMPT_TIMEOUT_SEC=600 \
/data/local/tmp/cve-2026-43499-root --run-payload \
/data/local/tmp/iqoo-app.so /data/local/tmp/cve-2026-43499-root \
/data/local/tmp/iqoo-app-run.log'
L'étape d'exploitation n'est terminée que lorsque le journal contient à la fois exploit completed et root=1. Si le root bootstrap réussit, effectuez le late-load du démon KernelSU correspondant avec l'opération exacte à un argument de l'assistant :
adb shell '/data/local/tmp/cve-2026-43499-root --late-load'
N'ajoutez pas d'arguments KMI ou manager à --late-load ; l'assistant de cette cible a déjà le KMI iQOO, le chemin du loader et les options KernelSU intégrés à la compilation. Un late-load réussi affiche un message de vérification du contrôle KernelSU.
Prérequis : Android SDK 37, NDK 28.2.13676358 et CMake 3.22.1.
Définissez le chemin du NDK une seule fois, puis compilez les artefacts de payload autonomes :
export ANDROID_NDK_HOME="/path/to/android-sdk/ndk/28.2.13676358"
make -C payload all
make apk-release
La cible de release reconstruit les artefacts de payload autonomes locaux si nécessaire ; l'APK télécharge toujours ses payloads d'exécution depuis la dernière release GitHub.
L'APK signée est écrite dans app/build/outputs/apk/release/app-release.apk.
Le code source du noyau, les objets de module et les fichiers compagnons init restent en dehors de cet arbre de travail propre.
Il s'agit d'un port extrêmement spécifique à l'appareil. Les offsets d'exploitation, la logique PAC/KASLR, la géométrie de pile, l'ABI du noyau, les métadonnées de module et le démon KernelSU correspondent tous aux appareils testés iQOO Z9 5G (I2302) et vivo T3 5G (V2334) avec le noyau ci-dessus. Les binaires ne doivent pas être considérés comme fonctionnels sur un autre modèle, un autre firmware, une autre version de noyau ou un build sensiblement différent ; ils peuvent provoquer une interruption, un gel ou un panic sur un appareil incompatible. Un autre appareil nécessite son propre profil cible, son propre audit du code source et sa propre validation matérielle.
KernelSU est chargé en late-load une fois par démarrage et ne constitue pas une modification persistante de l'image de démarrage. Suivez le runbook de la documentation du port d'origine lors des tests sur l'appareil et conservez toujours un accès à la récupération (recovery).
À utiliser uniquement sur du matériel que vous possédez ou que vous êtes explicitement autorisé à tester.
Ce code source prend actuellement en charge l'iQOO Z9 5G (I2302) et le vivo T3 5G (V2334) avec la famille de noyaux listée. Pour un autre appareil de la même famille de noyaux, utilisez-le comme point de départ et remplacez les valeurs spécifiques à l'appareil après les avoir validées sur cet appareil. Pour une famille de noyaux différente, comme 5.10 ou 6.x, trouvez d'abord un code source public, un port d'exploit ou une référence correspondant sur GitHub, puis adaptez le profil à ce noyau.
Vous aurez besoin du boot.img exact de l'appareil et de l'arborescence du code source du noyau correspondant. Les agents de codage IA peuvent aider à inspecter ces fichiers, à préparer la compilation et à mettre à jour le port. Codex avec le modèle Luna est ma recommandation. Compilez et testez d'abord avec la méthode adb directe, pas avec l'APK. Lancez la compilation de l'agent, exécutez-la sur votre propre appareil, puis renvoyez la sortie complète et tous les journaux de panic à l'agent. Répétez ce cycle compilation/test/journal jusqu'à ce que le port réussisse.