24 votes

Comment fonctionne l'enracinement ?

Ou, comment puis-je Rooter mon appareil sans un Rooter ?

Les instructions de rootage pour les appareils Android que j'ai vues sont généralement de la forme suivante :

  1. Télécharger Gingerbreak.apk
  2. Lancez Gingerbreak, cliquez sur "Root device".
  3. Observez que Superuser.apk a été installé comme par magie, peut-être avec busybox et d'autres choses, et profitez de votre bon goût de racine.

Ce que je veux savoir est le suivant : comment le rooting se passe-t-il réellement ? Que fait Gingerbreak ?

Je comprends le résultat final de l'enracinement :

  • su est présent et fonctionne
  • Superuser.apk est installé et contrôle l'accès à su
  • Divers utilitaires sont présents, fournis par BusyBox (facultatif ?)

Je pense également comprendre l'idée de base de la façon dont Gingerbreak démarre - il exploite une vulnérabilité locale d'escalade de privilèges et utilise ses nouveaux pouvoirs pour déployer Superuser et tout ce qui est nécessaire.

Donc, à moins que je ne me trompe dans la compréhension que j'ai exposée ci-dessus, le cœur de la chose que je veux savoir est ce que l'installateur Root fait pour déployer et activer Superuser. Il semble que le fait de mettre Superuser.apk au bon endroit ne suffirait pas - comment est-il autorisé à accéder à Root ? Comment est-elle connectée 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 ?

16voto

Sparx Points 10852

Ce que l'APK et l'exploit font (généralement) est le suivant :

  • L'APK met les bons fichiers au bon endroit pour exécuter l'exploit.
  • L'APK exécute l'exploit
  • L'exploit tente d'obtenir l'accès Root
  • S'il réussit, l'exploit remonte /system en lecture-écriture et lance le script d'installation
  • Le script d'installation tente d'installer le binaire su et l'APK superuser, puis redémarre.

A titre d'exemple, cette page détaille comment l'exploit rageagainstthecage tente d'obtenir des privilèges élevés.

10voto

JavaRocky Points 141

Après avoir beaucoup creusé, j'ai finalement trouvé la solution. Je m'étais trompé sur l'endroit où se trouve la magie - ce n'est pas dans le script d'installation ; il suffit de mettre la balise su y Superuser.apk au bon endroit et définir leurs permissions. Il suffit donc de déposer les fichiers au bon endroit et de définir les permissions. Pas de câblage magique.

La magie opère dans le su binaire (voir le source et aussi cette question ). Je pensais (à tort) que su était un standard su et que les choses étaient en quelque sorte câblées pour modérer l'accès à ce binaire à travers Superuser.apk .

Faux. Ce qui se passe réellement est beaucoup plus simple : Superuser fournit une implémentation personnalisée de la fonction su qui authentifie l'accès par Superuser et sa base de données d'applications autorisées.

Donc le processus d'enracinement est aussi simple que @Sparx l'a dit. Le logiciel déployé contient la magie.

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