2 votes

Il est possible de patcher le noyau d'Android avec Root ?

Il s'agit d'un exploit de boot rom sur les puces Tegra X1, en particulier sur la Nintendo Switch, qui vous permet d'envoyer des charges utiles pendant qu'elle est en mode récupération et d'exécuter du code non signé (homebrew, firmware personnalisé, et même lancer des distros Linux). Le lanceur de charges utiles fonctionne sur PC, Mac et Linux, et a été porté sur Android, mais pour qu'il fonctionne sur Linux, il faut un correctif du noyau pour le pilote EHCI (USB 2.0). Les appareils qui prennent en charge xHCI (3.0) peuvent l'exécuter sans problème. Sur Android, cela se fait en utilisant un adaptateur USB-OTG et fonctionne sans accès Root. Je soupçonne que la seule façon de patcher le noyau est d'avoir un accès Root ou une ROM/kernel personnalisé avec le patch. Voici le patch d'une équipe de hackers (fail0verflow) sans aucune instruction : https://github.com/fail0verflow/shofel2/blob/master/linux-ehci-enable-large-ctl-xfers.patch

Quelqu'un a également écrit un script Python pour Linux qui corrige la mémoire du noyau ici : https://gist.github.com/DavidBuchanan314/41b12362cc4d8c539dc441d75155f2e9

J'ai essayé de l'exécuter en utilisant Termux avec le paquet python installé mais le résultat est cette erreur :

0x0
Traceback (most recent call last):
File "ehci_patch.py", line 70, in <module>
" " ".replace("PLACEHOLDER", hex(ksyms["ehci_urb_enqueue"])).replace("PLACE2" hex(ksyms["lookup_address"]))
KeyError: 'lookup_address' 

J'ai essayé de l'exécuter avec su d'abord, mais le message suivant s'affiche : sh : python : not found. De toute façon, je ne pense pas que le script "hotpatch" puisse fonctionner correctement sur Android, car il est destiné aux systèmes Linux de bureau.

J'apprécierais toute piste ou information sur un moyen de patcher le noyau soit avec un accès Root ou peut-être un moyen de faire fonctionner le script python. J'ai forké l'application Android dans l'espoir de l'améliorer et de la traduire dans différentes langues et je veux être en mesure de fournir une solution avec des instructions pour la faire fonctionner sur les appareils EHCI (si c'est possible sur Android). Ce serait génial si c'était possible avec un module Magisk également.

0voto

derobert Points 678

Ce script Python semble fonctionner en générant le code source, puis en compilant un module personnalisé du noyau, puis en chargeant ce module pour effectuer le patch. Il attend, entre autres choses, un compilateur C fonctionnel, make et les sources du noyau (au moins les en-têtes) pour le noyau que vous exécutez à l'adresse suivante /lib/modules/$(uname -r)/build .

Donc, non, ça ne va pas fonctionner sur Android. Typiquement, vous n'avez aucune de ces choses. Avec un environnement de compilation croisée (sur un PC) configuré pour construire le noyau de votre téléphone, vous pourriez probablement construire ce module, le copier, puis (en tant que Root sur l'appareil Android) le charger. Mais le construire directement sur le téléphone serait une véritable entreprise.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X