EDITION: Méthode plus synthétique et générique et introduction de busybox (optionnel).
J’ai decidé d’activer l’accés root sur mon Xperia Active (que j’ai depuis hier).
La motivation: ce téléphone ne gère pas l’EAP-SIM hardware et je dois modifier un fichier de conf pour l’activer. Je pourrais ainsi me connecter au reseau freewifi de manière transparente.
ATTENTION: La plupart des tutos proposent de configurer un accés root type windows ou ubuntu avec gksudo
J’ai preferé me contenter d’un accés “possible” via su en commande puisqu’ occasionnel: modification d’un fichier de conf.
Mon support: pocketables.com/2011/06/how- … evice.html
La différence c’est que je n’installe pas superuser (couche graphique à su. equivalent à gk|ksudo) et busybox.
J’essaie de détailler un maximum pour que chacun puisse adapter à sa manière.
En resumé, pour les systèmes android, ça fait:
-obtenir l’accés root via une faille
-passer le système en lecture/ecriture, ecrire ce qui nous interesse, le repasser en lecture seule.
C’est parti!
Preparation:
Le telephone doit être en mode debogage usb (proprièté/applications/developpement) et la carte SD ne doit pas être montée sur le PC.
Sur le PC, on a besoin de:
- android-tools-adb (exclusivité sid pour l’instant -> pinning).
Permet, entre autres, d’ouvrir un shell qui communique avec le système du telephone. - DooMLoRD_v4_ROOT-zergRush-busybox-su.zip (google): Contient les fichiers qui permettront l’accés root + un .bat qu’il suffit de transposer à linux (ce qui est fait et détailler ici). Le nom de l’archive et peu engagant mais le forum xda-developpers me semble serieux.
Etape 1 (adb et 1er accés root):
Les chemins d’accés sont à adapter. Dans mon exemple, je me place à l’endroit où j’ai decompressé l’archive. En root!
- adb devices lance le deamon et permet de verfifier que le telephone est bien présent
- adb push copie les binaires sur le telephone (mémoire interne par défaut) dans un des seuls endroits accessibles en écriture.
-
chown et chmod change le propriétaire.groupe et les permissions.
Je me sers dans l’exemple de Busybox (voir bas de page) que l’on peut éventuellement intégrer au système par la suite.
[code]# adb devices
sans root, le telephone n’est pas vu chez moi -> voir N.B
je pense que l’on peut se passer de l’invite root à partir d’ici
adb push files/zergRush /data/local/tmp
adb push files/busybox /data/local/tmp
adb shell
On se retrouve sur android en utilisateur.
$ cd /data/local/tmp
$ chmod 777 zergRush
$ chmod 755 busybox
$ ./zergRush
[/code]
Si vous êtes ejecté du shell, c’est normal. Relancez adb shell.
Si tout va bien on se retrouve avec une invite root sous android. C’est temporaire mais on en profite -> étape 2.
Etape 2 (installation de su et autres):
Gràce à l’accés root, on remonte le système de fichier du telephone en lecture/ecriture.
On place su et on lui donne les droit d’execution.
Le système de fichier est ensuite repassé en lecture seule.
[code]# cd /data/local/tmp
On appelle mount implémenté par busybox (plus souple que celui fourni par android)
busybox mount -o remount,rw /system
Pour installer busybox (optionnel):
dd if=/data/local/tmp/busybox of=/system/xbin/busybox
chown root.shell /system/xbin/busybox
chmod 04755 /system/xbin/busybox
/system/xbin/busybox --install -s /system/xbin
Cette dernière ligne crée les liens vers les implémentations plus complètes de busybox:
mount
revient à faire
busybox mount
exit
adb push files/su /system/bin
adb shell
chown root.shell /system/bin/su
chmod 06755 /system/bin/su
rm /system/xbin/su
ln -s /system/bin/su /system/xbin/su
rm /data/local/tmp/*
exit
Installation de Superuser (optionnel):
adb push files/Superuser.apk /system/app/.
adb reboot[/code]
FINI!
Pour verifier:
[code]# adb shell
$ su
-> on est root sous android[/code]
FINI!
ADB (Android Data Bridge): Permet d’installer de manipuler votre système android à distance. C’est pratique pour éditer des fichiers de conf sans être obliger de passer par le terminal et le clavier de votre téléphone.
BUSYBOX: regroupe des implémentations simples des outils de base pour systèmes UNIX-Like. Sans lui le shell d’android est vraiment rude.
N.B: Il est peut être possible de demarrer adb en simple user en modifiant les regles udev.