Introduction

Il n’y a même pas la possibilité par défaut sur un Kindle de changer les images de veille. Rien que pour cette raison, on est tenté de rooter/jailbreaker son Kindle afin d’en reprendre un peu le controle. (My device, my rules).

Quand je me le suis procuré il y a quelques mois, il est arrivé en version 5.6 quelquechose et il n’est pas possible à l’heure où sont écrites ces lignes, de le rooter/jailbreaker de manière uniquement logicielle.

Dans des versions précédentes, il était possible de faire passer le JailBreak pour une mise à jour, mais ceci a été “corrigé” par Amazon.

La seule solution est pour l’instant d’ouvrir le Kindle, et d’accèder au port série. (Au moins il y en a un, c’est déjà çà).

IMG_20151107_220727.jpg-s_m

La technique dans les grandes lignes:

  • Ouvrir le Kindle et se connecter sur le port série
  • Booter sur la 2ème partition de debug/diag
  • Trouver le mot de passe de cette partition de debug/diag et se connecter en root dessus
  • Une fois root sur la partion de debug/diag, monter la partition “principale” pour éditer le fichier /etc/passwd pour en débloquer l’accès root.
  • Rebooter sur la 1ère partition et s’y connecter en root.
  • Lancer le script de JailBreak

Si j’ai bien compris, Amazon n’autorise que les applications qu’ils ont signés eux (avec leur clé privée) à s’installer. Le JailBreak consiste à ajouter une autre clé publique (dont la communauté connait la clé privée) rendant donc possible l’installation d’applications non authorisée par Amazon.

uggy-kindle-pubKey.png-s_m

Connaitre sa version de firmare

Menu/Paramètres/Menu/Infos sur l’appareil/Version du micrologiciel

Trouver son numéro de série/modèle

http://wiki.mobileread.com/wiki/Kindle_Serial_Numbers

Avoir un accès console avec niveaux logiques 1.8V

Le port série des Kindles (au moins mon PW2) communique avec des niveaux logiques 1.8V.

Il faut donc utiliser un port série qui utilise ces niveaux logiques et non les classiques 3.3V et 5V

J’ai utilisé un PL2303HXrevD (dans les 4€ sur Ebay)

PIN4 The power pin for the serial port signals.
The range can be from 1.8V~3.3V

(Attention, le PL2303HX (pas révision D) ne supporte pas le 1.8V d’après la datasheet)

Il suffit de décoller doucement la PIN4 du chip (par exemple avec une petit aiguille) afin de pouvoir la connecter ensuite à du 1.8V (ou 3V3 ou 5V pour d’autres usages)

IMG_20151108_190546.jpg-s_m

Trouver le mot de passe de la partition diag (2ème partition)

J’avais initialement utilisé le code suivant trouvé sur le forum http://www.mobileread.com/forums/

#!/usr/bin/env python  
import hashlib  
print("fiona%s"%hashlib.md5("XXXYOURSERIALXXX\n".encode('utf-8')).hexdigest()[7:11])

Mais dans mon cas, le mot de passe ainsi trouvé n’a ensuite PAS fonctionné.
Même problème avec le site https://www.sven.de/kindle/ qui utilise le même “algo”.

J’ai donc utilisé kindletool qui lui m’a donné un mot de passe différent qui a fonctionné sur mon Kindle.

$ ./kindletool info XXXYOURSERIALXXX  
Platform is Wario or newer  
Root PW fionaXXX  
Recovery PW fionaXXXX  

Démonter le Kindke pour accéder au port console

Je me suis basé sur cette vidéo

Si vous acheter le PL2303HXrevD à HongKong sur un site d’enchère (environ 4€), cà vaut peut être le coup d’acheter en même temps les “Metal spudger” (2€ les 2) mais sinon un couteau avec une lame fine peut faire l’affaire.

Le plus difficile est de ne pas laisser de trace pour passer le spudger sous la coque au tout début.
La suite du démontage est triviale.
Faire cependant attention à la bande de plastique blanche au niveau des LEDs car elle joue sur la répartition de la lumière sur la dalle.

Connecter le port série

uggy-serial-kindle.png-s_m

Les pins sont toutes petites, donc à souder avec précaution

IMG_20151107_220202.jpg-s_m

Pour les branchements, TX sur RX, RX sur TX, Gnd sur Gnd, le fil vert sur le bouton vert etc..

Les paramètres sont: 8N1 115200

J’ai utilisé screen

$ screen /dev/ttyUSB0 115200

Sortir de “veille” le kindle

Si tout se passe bien le port série devrait s’afficher comme ceci

uggy-kindle-Serial.png-s_m

Il dit “Welcome”, c’est qu’on a le droit de se connecter ;)

Boot de la partition diag

Rebooter le Kindle, tapez sur n’importe quelle touche au début du boot pour arreter la séquence (il y a un créneau que de quelques secondes), allez en mode diag en tapant bootm 0xE41000

uggy-kindle-bootm.png-s_m

Choisir “Exit, Reboot or Disable Diags” puis “Exit to login prompt” etc…

uggy-kindle-menu1.png-s_m

uggy-kindle-menu2.png-s_m

uggy-kindle-menu3.png-s_m

uggy-kindle-menu4.png-s_m

Se logguer

Utiliser le compte de la partition diag trouvé à l’une des étapes précédentes: root/fionaXXX

uggy-kindle-root-diag.png-s_m

Monter la partition principale (la 1ère partition) et éditer le fichier etc/passwd

uggy-kindle-passwd1.png-s_m

Modifier la ligne pour root

root:*: -> Indique un mot de passe chiffré dans /etc/shadow
root:: -> Indique qu’il n’y a pas de mot de passe

uggy-kindle-passwd2.png-s_m

uggy-kindle-passwd3.png-s_m

Pour l’instant on choisi d’enlever le mot de passe

Rebooter, tester l’accès root à la partition principale

uggy-kindle-root-main.png-s_m

Télécharger les fichiers de jailBreak

http://www.mobileread.com/forums/showthread.php?t=186645

Connecter l’USB, copier les fichiers à la racine sur le Kindle (USB classique) puis déconnecter l’USB

Executer le scipt de jaibreak avec l’acces root (partition principale, pas diag)

uggy-kindle-jb.png-s_m

Conclusion

Ce billet de couvre pas l’installation des outils que l’on peut alors utiliser.

Mais j’ai commencé par personnaliser l’écran de “veille”…

IMG_20151108_191509.jpg-s_s

Crédit: De nombreux posts et personnes de http://www.mobileread.com/forums/