18 votes

Pourquoi le binaire de su ne peut-il pas être simplement copié (réponse technique s'il vous plaît) ?

J'ai rooté plusieurs appareils Samsung et le "but" sous-jacent, pour ainsi dire, semble être d'obtenir l'adresse de l'appareil. su binaire en /system/xbin et installer Superuser.apk .

Ma question est la suivante : pourquoi faut-il passer par tous ces obstacles pour Rooter le téléphone (installer une restauration personnalisée et flasher une ROM pré-enracinée ou exploiter l'installation actuelle) ? Ne pourrait-on pas simplement télécharger un su précompilé, le déplacer sur la carte SD, et le lancer via adb ? La chose qui semble rendre une ROM "pré-enracinée" est qu'elle a Superuser et le binaire su dans leurs chemins système respectifs. Je ne vois pas pourquoi il est si important qu'il soit exécuté à partir de /system/xbin .

24voto

David Negron Points 971

Le binaire su a besoin à la fois du bit de permission execution et setuid. Le premier est nécessaire pour que le fichier puisse être exécuté et le second pour qu'il s'exécute automatiquement avec les droits du propriétaire du fichier (set user id, ou setuid. Dans ce cas, le propriétaire est Root. Lire la suite ici ).

Les fichiers sur le stockage externe n'ont pas les bits d'autorisation executable et setuid et ils ne peuvent pas être accordés sans les droits Root. Notez également que la carte SD est montée avec le drapeau 'noexec' pour empêcher l'exécution générale au démarrage :

shell@android:/sdcard $ ./su
/system/bin/sh: ./su: can't execute: Permission denied
126|shell@android:/sdcard $ chmod 4755 su
Unable to chmod su: Operation not permitted
10|shell@android:/sdcard $ mount | grep /mnt/sdcard
/dev/block/mmcblk0p1 /mnt/sdcard vfat [...],noexec,[...]

C'est en gros pourquoi tu ne peux pas juste copier su sur la carte SD, puis lancez-le pour vous accorder le Root.

5voto

Nick Pierpoint Points 7976

Le rooting consiste à exploiter la faiblesse dépendant de la version d'Android, d'où " sauter à travers tous les cerceaux pour Root le téléphone "

C'est une question de poule et d'œuf !

Afin d'exploiter Root, vous avez besoin d'un démon adb non sécurisé (c'est-à-dire la capacité de remonter les données de l'ordinateur). /system ) sur le combiné, et afin d'avoir un adb non sécurisé, vous avez besoin de Root ! ET aussi, vous avez besoin d'un bootloader déverrouillé.

Jetez un coup d'œil à l'un d'entre eux exploit appelé zergRush trouvé sur github ; la fonction d'intérêt est appelée do_fault() où l'on tente de "casser" le cadre de l'empilement de la vold en se connectant au tuyau qu'il possède, et le faire planter en écrasant le pointeur de pile pour qu'il pointe sur une version copiée du shell boomsh qui passe ensuite de /data/local/tmp .

Après avoir lu la source, vous comprendrez maintenant, pourquoi copier la su Le binaire n'est pas suffisant pour que le combiné soit "rooté" et pourquoi il faut sauter des obstacles. Et aussi, comme le bit exécutable au niveau du système de fichiers pour la carte SD est bloqué, donc pas question d'y aller - c'est là pour des raisons évidentes ! :)

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