Artisan Numérique

/développement/android/ Rooter le LG G Pad 7.0

Lorsque l'on achète un device Android, se pose toujours le même problème 'comment vais-je rooter ce machin là'.

Voici donc comment faire pour la tablette LG GPad 7.0.

Pourquoi faire ?

Comme mon sujet pour l'année 2015 est clairement le développement d'applications mobile (allez zouh, un peu de pub ;-), après m'être commis à acheter un Mac Mini et un iPad Mini, j'ai aussi dut faire l'acquisition d'un fairphone (pour me racheter un peu...) et d'une tablette Android, le LG G Pad 7.0 (le Windows Phone... m'a été gracieusement donné, ouf !! ;-).

Concernant les deux devices Android, seul le fairphone a le bon goût d'être rooté en sortie d'usine. En revanche, le LG, c'est prison dorée... Or pour développer sous Android, rooter est l'étape nécessaire. Car outre l'aspect philosophique (je ne supporte pas l'idée qu'on m'empêche de faire ce que je veux de ce que j'achète), l'accès root me permet d'utiliser ADB en mode réseau (c'est à dire sans cable USB). Et ça, je ne sais pas m'en passer...

Bref, trêve de blabla, voyons comment casser la bête...

Passer en mode développeur

La première étape consiste déjà à activer le mode développeur, ce qui n'est pas aussi évident que l'on pourrait se l'imaginer. Pour cela vous devrez aller dans les réglages, puis dans le menu à propos de la tablette, et enfin dans information sur le logiciel. Arrivé là, accrochez-vous bien, vous devez taper plusieurs fois sur le Numéro de build.

La tablette vous demande alors si vous êtes certain de votre action (non, non, j'ai tapé 20 fois là dessus par pur hasard...), puis fera apparaître, à la positive, le menu tant utile pour les développeurs.

Dans ce menu, vous allez devoir vous rendre dans la section debuggage pour activer le debuggage de la connection USB. Ce qui est le pré-requis indispensable pour pouvoir utiliser ADB mais aussi pour pouvoir rooter l'appareil.

Cas n°1, KitKat

Récupération de Purple Drake

Pour ceux qui ont acquis leur tablette à sa sortie, la version Android de base est KitKat. Pour rooter cette version, le sésame s'appelle Purple Drake. Purple Drake Pour le rooting à proprement parlé, le sésame s'appelle Purple Drake. Téléchargez donc la dernière version (R3 dans mon cas) et décompressez là en local.

Pour ceux qui utilisent (encore) Wheezy

Pour ceux qui sont sur une version récente du kernel, cette étape peut être zappée. Dans mon cas, la version de GLibC incluse dans Debian Wheezy ne me permet de lancer le script tel quel avec les versions binaires d'adb incluse dans l'archive.

Cela se règle cependant simplement en installant la version debian d'adb par sudo apt-get install android-adb. Ceci fait, allez dans le dossier assets de l'archive décompressée de Purple Drake et éditez le fichier purpledrake_main.sh pour remplacer en ligne 16, $1 par /usr/bin.

Lorsque tout est en ordre, il ne reste plus qu'à lancer l'outil. Assurez-vous que la tablette n'a aucune application de lancée (rebootez là si nécessaire), que le cable USB est bien connecté, et que dans la barre de status de la tablette vous voyez bien que la connection USB se fait en mode debuggage.

root !

Si tout est OK, lancez le rooting par sudo ./purpledrake_linux.sh. La raison du sudo ici est que sous Debian, en standard, seul root a accès au device USB. Cela peut se configurer au niveau d'udev mais ça me saoule un peu d'avoir à faire cela à chaque fois, sur chaque machine et pour chaque device. Et c'est d'ailleurs l'une des raisons qui me fait passer ADB en mode réseau.

Une fois l'outil lancé il suffit de se laisser guider par le script. Il va d'abord rebooter le device, puis installer un root temporaire, puis l'utiliser, si vous le désirez, pour mettre en place le root permanent.

Lorsque la tablette a redémarré, tout application qui demande l'accès root devrait ainsi l'obtenir. C'est une première étape mais ce n'est pas très sécurisé, loin de là.

Super pouvoirs à la demande

Pour aller un cran plus loin, rendez vous sur le market et téléchargez SuperSU. Cette application au démarrage va remplacer la commande su fournie par Purple Drake, par une version qui vous demandera si telle application a bien le droit d'obtenir l'accès root.

Au premier lancement, SuperSU va vous proposer une procédure de remplacement de la commande en mode normal ou recovery. J'ai personnellement pris l'option normal.

Et après une installation avec succès suivi d'un redémarrage de l'engin, tout était opérationnel.

Félicitation, votre device vous appartient !

Cas n°2, Lollipop

Si vous avez acheté votre LG plus récemment, ou si, comme moi, vous avez clické sur "mettre à jour" sans faire tourner votre cerveau, vous n'êtes pas sous Kitkat mais sous Lollipop. Et là, le purple drake il marche plus du tout !

Alors heureusement il y a une autre méthode qui fonctionne parfaitement mais elle nécessite... windows. Je sais, c'est pas cool, mais je n'ai pas trouvé mieux.

Pour rooter, petite liste de courses :

  1. Les pilotes Android de chez LG. Perso, je les ai trouvés .
  2. Une petite application toute mignonette qui va vous simplifier le rootage, et que vous trouverez ici

Première étape, installer les pilotes sur le windows. Je ne sais pas pour vous mais chez moi cela a pris des plombes !!!

Ceci fait, connectez votre LG par le câble USB et lancez l'application puis clickez sur ROOT DEVICE. Cela va lancer une console et le script associé va redémarrer le device. Si après ce redémarrage vous vous retrouvez à nouveau sous votre home Android, c'est que quelque chose n'aura pas marché. Dans ce cas le script va (sans doute) vous dire (je traduis ;-) "désolé, mais j'ai échoué salement à passer le device en mode série, fait le toi-même, moi j'attends".

En effet, le script a besoin que le device soit dans un mode très spécial de mise à jour du firmeware qui place le port USB en mode "port série". Dans ce mode, il lui sera possible de lire un numéro de série qui permettra par la suite de rooter l'engin.

Pour faire cela manuellement procédez comme suit sans toucher au script côté windows qui doit afficher un waiting device. Qu'il attende donc...

  1. Débranchez le cable,
  2. Éteignez le device par une longue pression sur le bouton d'allumage, puis Éteindre,
  3. Pressez le bouton qui monte le volume (c'est celui qui est prêt du bouton d'allumage),
  4. Tout en maintenant ce bouton pressé, rebranchez le cable USB
  5. Là le device doit s'allumer et après un temps il va se stabiliser dans un mode étrange avec une sorte de barre de progression pour la mise à jour du firmware.
  6. Le script côté windows doit logiquement se réveiller et recommencer à vous causer,
  7. Lorsque le script a terminé son boulot, le device a redémarré en mode Android classique.
  8. Le script vous demande (en anglais) de l'arrêter (???) en pressant les touches Control+C , puis de pressez N puis Enter.
  9. Ceci fait, vous êtes de retours sur l'interface graphique.

À ce stage, normalement c'est tout bon et le LG est rooté. Pour tester, déverrouillez la home et sur l'interface côté Windows pressez le bouton "ADB SHELL". Vous devriez voir apparaître une console avec quelque chose comme 'shell@e7wifi:/ $'. Maintenant tapez su puis validez. Et là, côté Android, une boite de dialogue doit apparaître pour vous demander si vous authoriser ce passage en mode root. Acceptez. De retour sous Windows, dans la console, devrait alors s'afficher root@e7wifi:/ #.

C'est bon, vous êtes root !

Tester le tout

Pour tester, le plus simple est d'installer ADB Wifi à partir du market et de le lancer. Si les étapes précédentes ont fonctionnées, lorsque vous activerez la ADB en mode réseau, une boite de dialogue doit apparaître pour valider l'accès.

Ceci fait, ADB Wifi doit vous indiquer qu'il est en écoute et vous fournis l'IP de connection. Vous n'avez alors plus qu'à vous connecter de votre machine comme ceci :

$sudo adb connect 192.168.154.21
connected to 192.168.154.21:5555
$sudo adb shell

Conclusion

Il est toujours navrant d'avoir à perdre du temps sur quelque chose d'aussi trivial.

Espérons que peu à peu les constructeurs s'inspire de FairPhone et arrêtent ainsi de prendre leurs clients pour des crétins... On peut toujours rêver ;-)