đJailbreak de la liseuse Kobo Aura 2
LoadingĂtant un lecteur occasionnel (et un gros geek), jâai acquĂ©ris il y a quelques annĂ©es (en 2016 !) une liseuse afin de pouvoir me balader avec quelques centaines de livres dans un appareil de mĂȘme pas 200g. Je suis retombĂ© dessus rĂ©cemment et, ne lâutilisant plus si souvent, jâai eu envie dâen faire quelque-chose.
Quelques recherches plus tard, je me rends compte que je ne suis pas le premier Ă avoir eu ce genre dâidĂ©es, et quâil existe sur certains forums des communautĂ©s entiĂšres dĂ©diĂ©es Ă la modification de liseuses.
Lâobjectif est donc de jailbreak ma liseuse Kobo afin dâen faire une petite station mĂ©tĂ©o. Ce projet est directement inspirĂ© des projets de KevinShort et Matthew Petroff :
Sur les modĂšles ci-dessus, je trouve personnellement quâil y a un peu trop dâinformations. Quand je regarde la mĂ©tĂ©o au quotidien je regarde surtout la mĂ©tĂ©o pour le jour mĂȘme, et Ă la rigueur les tempĂ©ratures des jours suivants. On pourra donc viser une interface plus simple, et faire un peu de place pour un petit ajout personnel (vous verrez !).
1. Installation de YAWK
HonnĂȘtement, en commencant ce projet je nâavais absolument aucune idĂ©e de comment faire. Je ne savais pas comment fonctionnait une liseuse kobo, quels composants il y avait dedans, est-ce que ca utilise un OS propriĂ©taire ou une distribution lĂ©gĂšre de linux, âŠ
En faisant quelques recherches, je suis tombé sur YAWK, un projet ressemblant beaucoup à ce que je voulais faire mais beaucoup plus récent que les projets présentés précédemment !
La premiĂšre Ă©tape Ă©vidente est donc de lâinstaller, comme ca je saurais si les techniques utilisĂ©es fonctionnent sur mon modĂšle de liseuse. Pour ca, la documentation de YAWK est plutĂŽt claire, je vais rĂ©sumer rapidement le processus.
1. RĂ©initialiser la liseuse aux paramĂštres dâusine.
Cette Ă©tape est optionnelle mais elle permet de partir sur une base saine et surtout de sâassurer que la liseuse aura assez dâespace de stockage pour la suite. Si vous avez des ebooks que vous souhaitez garder pensez Ă faire une sauvegarde avant !
2. Installer NiLuJe's Stuff sur la liseuse
NiLuJe est un acteur important du modding de liseuses et est trÚs actif sur le site MobileRead. Il a notamment développé FbInk, un outil permettant de dessiner des formes et du texte simplement sur des écrans à encre, et a publié plusieurs tutoriels pour jailbreak des liseuses kobo et kindle.
Ici, je vais utiliser un package dâoutils nommĂ© âKobo-stuffâ quâil a crĂ©Ă© pour modder simplement des liseuses Kobo.
Des liens Ă jour du package peuvent ĂȘtre trouvĂ©s dans ce thread :
Pour lâinstaller sur la liseuse, rien de plus simple ! Il se trouve que le fonctionnement des liseuses kobo est un peu bĂȘte : au lancement, si un dossier compressĂ© nommĂ© âKoboRoot.tgzâ est prĂ©sent Ă la racine de la liseuse, alors un processus dâupdate se lance.
Si tout se passe bien, la liseuse redémarre normalement et rien ne semble avoir changé.
3. Installation de YAWK
Pour cette Ă©tape il est nĂ©cessaire dâavoir un client FTP comme Filezilla et un client Telnet.
Je commence par connecter la liseuse au mĂȘme wifi que mon pc, puis je rĂ©cupĂšre lâadresse IP de ma liseuse dans paramĂštres > Informations sur lâappareil > Adresse IP.
Si lâĂ©tape 2 sâest bien passĂ©e, on devrait pouvoir se connecter Ă la liseuse Ă distance.
Avec Filezilla, je crée un répertoire .apps/yawk et je copie tout le contenu du repo de YAWK dedans.
Ensuite jâouvre une session telnet avec lâip rĂ©cupĂ©rĂ©e prĂ©cĂ©demment et je tape les commandes suivantes :
- tmux new -s kobo update-kobostuff Python pour installer python3
- cd /mnt/onboard/.apps/yawk pour naviguer jusquâau rĂ©pertoire de YAWK
- sh install.sh pour lancer le script dâinstallation de YAWK
Le script dâinstallation demande une clĂ© dâapi openweathermap et lâid de la ville dont on souhaite surveiller la mĂ©tĂ©o.
A la fin du script, la liseuse redĂ©marre etâŠ
Tout fonctionne !
2. Personnalisation de lâinterface
Maintenant que je sais quâil est possible dâafficher du contenu arbitraire sur lâĂ©cran de ma liseuse et que je sais plus ou moins comment le faire, je peux expĂ©rimenter un peu et implĂ©menter mes propres features :)
Pour commencer, je vais rĂ©duire un peu la quantitĂ© dâinformations affichĂ©e Ă lâĂ©cran. Pour ca, je modifie les fichiers weather.py et yawk.py et jâarrive rapidement Ă un rĂ©sultat satisfaisant :
Les plus malins auront remarquĂ© le grand espace vide en bas de lâĂ©cran. Cette place pourrait me servir Ă loger un gros widget pour afficher Ă peu prĂšs nâimporte quoi. Jâai plusieurs idĂ©es dâailleurs :
- Ătat de ma domotique : quelles lumiĂšres sont allumĂ©es ou Ă©teintes, Ă©tat de la batterie de mon casque, mon tĂ©lĂ©phone et mon pc, suivi de ma consommation Ă©lectriqueâŠ
- DerniÚres notifications manquées
- Photos alĂ©atoires parmi mes prĂ©fĂ©rĂ©es (mĂȘme si lâĂ©cran est en noir et blanc)
- To-do list
- Prochains Ă©vĂšnements de mon calendrier
- âŠ
En lâoccurrence, ma copine mâa suggĂ©rĂ© dâintĂ©grer Ă lâinterface un petit cadre pour un message quâelle pourrait personnaliser. Ăa me semble ĂȘtre une bonne idĂ©e et ça ne demande pas trop de temps Ă faire donc je me lance !
La solution la plus simple et Ă©vidente, câest coder une petite API toute simple avec laquelle la liseuse pourra interagir, et un site pour Ă©crire le message.
Pour ça je me tourne naturellement vers ma stack habituelle : Next.js et Vercel. Ăa me permet de dĂ©velopper rapidement Ă la fois le site et lâapi, et de lâhĂ©berger en seulement un clic gratuitement. De plus, grĂące au service KV Storage de Vercel pas besoin dâhĂ©berger une grosse base de donnĂ©e !
Tant que jây suis pour garder un historique des messages, je setup un webhook simple vers un salon discord.
Voilà le résultat final :
Maintenant, plus quâĂ dĂ©velopper lâinterface sur la liseuse. Pour ça, je prototype rapidement le design sur Photoshop, jâexporte tout ce qui est statique dans un fichier PNG et je mesure lâemplacement du texte. Pour Ă©viter que le texte ne dĂ©passe pas de lâĂ©cran, jâĂ©cris une fonction qui ajoute des retours Ă la ligne automatiquement.
Je transfĂšre tout sur la liseuse, je me fais encore avoir Ă cause des formats de retour Ă la ligne, et aprĂšs quelques galĂšres, jâobtiens le rĂ©sultat suivant :
Un projet rondement mené :)