Ou, comment rooter mon appareil sans rooteur?
Les instructions d'enracinement pour les appareils Android que j'ai vus sont généralement sous la forme suivante:
- Télécharger
Gingerbreak.apk
- Exécutez Gingerbreak, cliquez sur "appareil racine"
- Observez ce qui
Superuser.apk
a été installé comme par magie, éventuellement avecbusybox
et d'autres choses, et profitez de votre bonté rooty.
Ce que je veux savoir, c'est ceci: comment l'enracinement se produit-il réellement? Que fait Gingerbreak?
Je comprends le résultat final de l'enracinement:
su
est présent et travailleSuperuser.apk
est installé et contrôle l'accès àsu
- Divers utilitaires sont présents, fournis par BusyBox (en option?)
Je pense également que je comprends l'idée de base de la façon dont Gingerbreak démarre - il exploite une vulnérabilité d'escalade de privilèges locale et utilise ses nouveaux pouvoirs pour déployer le superutilisateur et tout ce qui est nécessaire.
Donc, à moins que je ne me trompe dans une partie de la compréhension que j'ai exposée ci-dessus, l'essentiel de ce que je veux savoir est ce que fait le programme d'installation racine pour déployer et activer le superutilisateur. Il semble que le simple placement Superuser.apk
au bon endroit ne suffirait pas - comment obtenir un accès root autorisé? Comment est-il connecté pour modérer cet accès pour d'autres applications?
Que fait Gingerbreak après l'exploitation pour activer et sécuriser l'accès root?
Réponses:
Ce que l'APK et l'exploit font (généralement) sont les suivants:
À titre d'exemple, cette page détaille comment l'exploit rageastainecage tente d'obtenir des privilèges élevés.
la source
Après avoir creusé beaucoup, j'ai finalement compris. J'avais tort sur l'endroit où se trouve la magie - ce n'est pas dans le script d'installation; il suffit de placer les binaires
su
etSuperuser.apk
au bon endroit et de définir leurs autorisations. C'est donc aussi simple que de déposer des fichiers en place et de définir des autorisations. Pas de câblage magique.La magie opère dans le
su
binaire (voir la source et aussi cette question ). Je pensais (à tort) quesu
c'était une normesu
, et que les choses étaient en quelque sorte câblées pour un accès modéré à ce binaireSuperuser.apk
.Faux. Ce qui se passe réellement est beaucoup plus simple: Superuser fournit une implémentation personnalisée
su
qui authentifie l'accès via Superuser et sa base de données d'application autorisée.Le processus d'enracinement est donc aussi simple que l'a dit @Sparx. Le logiciel déployé contient la magie.
la source
su
n'est pas du tout de la magie, la seule magie à ce sujet est que l'OS le traite spécialement. Tout ce qu'il a à faire est de retourner "OK" ou "Pas OK" lorsque le système d'exploitation lui demande s'il autorise une application particulière à élever les autorisations. S'il est manquant ou renvoie toujours "Pas OK", les applications normales ne pourront jamais être rootées. L'enracinement est donc essentiellement le processus de placement d'unsu
binaire qui peut parfois retourner "OK", à l'emplacement protégé sur un système qui n'est pas censé permettre que cela soit fait.all that has to do is put the su and Superuser.apk binaries in the right place and set their permissions
comme si ce serait facile sans exploit, l'exploit est la magie.