Voici les conditions opératoires :

1 pc sous Archlinux avec adb
1 cable usb->miniusb (normalement fournis avec le Defy+)
1 smartphone Motorola Defy+ avec la rom d'origine d'android 2.3.4 .

Je vous rassure, les modifications sont tout à fait mineure sur le système. Le but sera d'obtenir un accès root sur le téléphone qui disparait au reboot. C'est donc un root éphémère mais suffisant pour ajouter 3 fichiers dans le smartphonequi permetterons par la suite d'obtenir un accès root à la demande.


Les 3 fichiers en question sont joint à cet article, voici leur signature md5 :

  1. busybox : 5ea6873c7887cf31aac0bcafb10d7680
  2. su : eafd6ce052f80a7f217d2e6033b2ce15
  3. Superuser.apk : 4ec9e96986478cb000f9d58f374f39f5


1) préparation du pc et du Motorola Defy+

Sur le pc, il vous faut adb. Sous Archlinux, rien de bien compliqué, dans une console root :

yaourt -S adb

Recupérez busibox, su et Superuser.apk joint à cet article et votre pc est prêt.
Pour ce qui est du Motorola Defy+, allez dans "Paramètres", "Applications", "Développement" et activez "Débogage USB".

et c'est tout!.

2) hack!

Ceci ce fait en 3 étapes.

Etape 1 : Branchez le smartphone à votre pc puis ouvrez une console sur le pc et tapez :

sudo adb kill-server
sudo adb usb
adb wait-for-device
adb shell

Là, normalement vous avez un shell avec un prompt en $ (utilisateur donc), tapez ce qui suit :

mv /data/local/12m /data/local/12m.bak
ln -s /data /data/local/12m

fermez votre session avec un CTRL+d puis éteignez et rallumez le smartphone.

Etape 2: Une fois que le smartphone est prêt, rouvre une console adb :

sudo adb kill-server
sudo adb usb
adb wait-for-device
adb shell

puis tapez la suite de commande suivantes :

rm /data/local/12m
mv /data/local/12m.bak /data/local/12m
mv /data/local.prop /data/local.prop.bak
echo "ro.sys.atvc_allow_netmon_usb=0" > /data/local.prop
echo "ro.sys.atvc_allow_netmon_ih=0" >> /data/local.prop
echo "ro.sys.atvc_allow_res_core=0" >> /data/local.prop
echo "ro.sys.atvc_allow_res_panic=0" >> /data/local.prop
echo "ro.sys.atvc_allow_all_adb=1" >> /data/local.prop
echo "ro.sys.atvc_allow_all_core=0" >> /data/local.prop
echo "ro.sys.atvc_allow_efem=0" >> /data/local.prop
echo "ro.sys.atvc_allow_bp_log=0" >> /data/local.prop
echo "ro.sys.atvc_allow_ap_mot_log=0" >> /data/local.prop
echo "ro.sys.atvc_allow_gki_log=0" >> /data/local.prop

Redémarrez le smartphone.

Etape 3 : Nous allons maintenant transférer les fichiers qui permettront d'avoir un root à la demande. Quand le smartphone est prêt :

sudo adb kill-server
sudo adb usb
adb wait-for-device
adb remount
adb push busybox /system/xbin/busybox
adb push su /system/xbin/su
adb push Superuser.apk /system/app/Superuser.apk
adb shell chmod 4755 /system/xbin/su
adb shell chmod 755 /system/xbin/busybox
adb shell chown system.system /data
adb reboot


Et voilà ! votre smartphone est rooté.

Faiseons un petit test. Ouvrez une console adb :

adb shell

vous ètes en mode utilisateur ( le $ qui s'affiche le signale), tapez :

su

et il ne se passe rien : normal, votre smartphone vous affiche une notification et demande la confirmation de l'accès root pour su (vous avez 15s pour accepter) ensuite vous serez en root : votre console affiche un # .

Vous pourrez confirmer la chose avec l'appli "root checker basic" du market.

Voilà, soyez prudent, n'authorisez pas n'importe quoi à devenir root sur votre smartphone, ne donnez jamais l'accès root de façon définitive! Bon hack ;-)