Firefox OS et le Geeksphone Peak

Avertissement

Ce billet n'aurait peut-être jamais vu le jour sans le coup de gueule de Cyrille Borne, auquel je dois beaucoup, ainsi qu'aux autres collaborateur du blog-libre : http://blog-libre.org/a-propos.

Je dois aussi remercier dada et Fla. Tu peux retrouver tous ces joyeux gais lurons, et d'autres encore, sur diaspora*, par exemple.

Introduction

Ainsi, nous allons parler de téléphone, et pire encore de téléphone portable. Jusqu'en décembre 2013, l'appareil mobile que j'utilisais, était une variante du Nokia 3310, le plus souvent en mode silencieux, caché au fond de mon sac, ou simplement resté chez moi lorsque j'étais en déplacement. Un ordinateur de poche, ou ordiphone, ne m'intéressait pas vraiment, pour plusieurs raisons. La première, c'est que je n'en ressentais pas le besoin, mes déplacements sont assez limités (j'habite en Suisse romande, déjà, et en plus je travaille à un quart d'heure de vélo de mon domicile, ce qui est un tel confort, je trouve que ça devrait être un droit fondamental), je suis connecté via mon outil de travail tout au long de la journée, et le reste du temps je suis le plus souvent chez moi, sur mon desktop, ce qui reste plus confortable et efficace que n'importe quel mobile device, d'autant que je traîne assez peu sur le canapé, et, enfin, parce que la prison dorée de la pomme ou la prison un chouia moins dorée de Google ne m'attire guère. Ou plutôt, j'essaie de m'en passer le plus possible. Bref, les smartphones, de mon point de vue et de mon utilité, c'est d'abord un jouet.

Par contre, le Web, c'est une partie non négligeable de ma vie, qu'elle soit professionnelle ou privée. Et les prison susnommées mettent en péril le Web. Quand une bibliothèque, institution publique, cherche à rendre accessible ses services, à commencer par le catalogue en ligne, aux utilisatrices et utilisateurs de mobile devices, je trouve cela tout à fait réjouissant ! Mais pourquoi le faire dans une application qui n'est utilisable que sur une seule plateforme, qui ne s'installe que depuis le site Web de cette plateforme, dont le propriétaire se réserve d'exiger ce que bon lui semble, en bon tyran privé ? Pourquoi ne pas faire un site Web, qui s'adapte aux écrans des visiteuses et visiteurs ?

Et si cette version du site Web utilisable avec un petit écran, pouvait en plus s'installer, via le navigateur Web, sur n'importe quelle plateforme, via un simple clic, soit depuis le site Web lui-même, soit depuis le catalogue mis à disposition par exemple par Mozilla ? Du coup la notion d'application ne serait plus forcément synonyme de fragmentation du Web. Et c'est bien là le pari de Firefox OS : les open webapps.

Un petit exemple. Il existe sur le catalogue de Mozilla une application permettant d'utiliser la carte d'OpenStreetMap, voire les cartes non-libres de Google : Gps Maps. En allant sur le Marketplace avec un ordiphone utilisant Firefox OS, hop, une pression de la pulpe d'un doigt, et l'application est installée. À l'utilisation, elle demande gentiment si l'on est d'accord de partager sa géolocalisation ou non. Et c'est parti.

Mais je peux également me rendre sur le Marketplace depuis mon ordinateur de bureau, avec mon navigateur Web et installer cette application, d'un simple clic. Et l'utiliser, bien entendu.

La même chose devrait être possible depuis un ordinateur fonctionnant avec Windows, mais avec le navigateur de Firefox en version récente, et également depuis un téléphone Android. J'ai choisi cette application, parce qu'avec elle ça fonctionne, ce qui n'est pas le cas de toutes.
On aurait même pu imaginer que cette application soit installable depuis le site de l'auteur, toujours en un seul clic. Enfin, il est également possible de "pousser" une application dont on aurait téléchargé le code sur son disque, en branchant le téléphone en USB sur son ordinateur de bureau, ce qui va être expliqué plus bas.

En 2013, sur les !fediverse, j'ai souvent entendu parler de téléphones sur lesquels tournait une version non terminée de Firefox OS. Peu à peu l'envie de jouer, et de participer même de loin, à l'histoire d'une défense de l'ouverture du Web, c'est-à-dire de l'une des concrétisations des idéaux des Lumières, est devenu la plus forte. À l'époque, un nom revenait souvent : Geeksphone. Ils avaient sortis le Keon, puis le Peak et ils vendaient en pré-commande le Peak+. Que je commandais en septembre 2013. Qui n'est jamais sorti. Je me suis donc retrouvé en décembre 2013 avec un Peak tout court, n'ayant pas trop envie d'attendre la future Revolution. Le téléphone est arrivé avec Firefox OS 1.1 installé. Le tout pour un peu moins de 200.- CHFrs [edit : frais de port compris], à peine 3 ZTE OPEN C.

Les tout débuts

Dans un premier temps, je devais apprivoiser ce nouvel appareil. Et d'abord me méfier avec ma carte prepaid pour toute forme d'abonnement. J'ai rapidement été en mesure de configurer mon adresse e-mail principale, fournie par mailoo.org, et qui me satisfait grandement. Pour l'e-mail du boulot, qui est un truc en Microsoft Exchange ActiveSync, à l'époque ce n'était simplement pas possible. Depuis j'y suis parvenu, parce que ActiveSync est désormais supporté. J'ai également pu configurer une adresse avec un nom de domaine en milhit.me, qui pour l'instant est hébergée par Gandi.net. J'ai aussi pas mal lutté avec mes mots de passe générés par Keepass de 30 caractères... Et, pour le moment, je ne suis pas parvenu à utiliser les deux applications pour Firefox OS, keefox et kdbreader. Et surtout, je me suis attaqué au navigateur Web. J'ai été passablement déçu, même si je me suis toujours mis en mode indulgent face à ce téléphone et surtout cet OS, mais là, c'est spartiate. L'historique est assez mince, je savais qu'il n'y avait pas de possibilités de synchronisation, pas de bloqueur de pub, heureusement on peut se faire des "marques-pages", et le moteur par défaut est Google, point à la ligne. Qu'importe, je me suis fait un signets pour Duckduckgo, puis pour Swisscows. Je me suis également fait un signets pour Wikipédia en français et en anglais, ainsi que pour OpenStreetMap, qui sont les deux sites que j'utilise le plus en déplacement, le plus souvent simplement par curiosité. En fait ce qui m'ennuie le plus, c'est de devoir scroller tout au sommet de la page pour accéder aux onglets, c'est souvent assez pénible, notamment parce qu'ainsi on va devoir rescroller au niveau de la lecture dans l'onglet qu'on a quitté précédemment. Que de mouvements inutiles...

Des applications

Loqui IM : comme son nom l'indique, une application pour les messages instantanés. Fonctionne correctement. Permet de s'enfermer dans un nombre étonnant de silos, mais aussi de configurer un compte XMPP/Jabber.

Firesea IRC : pour l'IRC, et oui. Fonctionne correctement, même si assez austère.

Mais au final, comme dans mon entourage la plupart des personnes utilisent WhatsApp, je m'en tiens au SMS, c'est bien dommage.

Dans la catégorie "GPS/Maps" qui est le grand truc rigolo d'un ordiphone, j'ai testé :

GPS Dashboard : donne un historique du déplacement en train d'être enregistré, comme la vitesse et le nombre de km, ce genre de choses. Pas très utile, mais amusant.

Where am I et I'm here : permettent de savoir où l'on est, sur une carte OpenStreetMap, et même d'envoyer le lieu par SMS ou e-mail. Fonctionne bien, je me suis toujours trouvé avec pas mal de précision.

Randonées et Hearth Mapper - Hiking helper : enregistrent une trace GPS et la position actuelle sur une carte OpenStreetMap, permet véritablement de s'orienter facilement en balade, même en montagne (du moins en Suisse). Le seul manque des cartes OpenStreetMap à cet égard sont les courbes de niveau, parce qu'un chemin tout droit à plat ou avec un dénivelé de 800m, c'est pas pareil...

Depuis hier, je teste un peu Gps Maps dont il est question plus haut et je la trouve tout à fait bien. Notamment la recherche est bien plus rapide que le sur le site Web mobile d'OpenStreetMap, du moins à mon expérience.

Schoses : une webapp de schoewilliam qui offre la possibilité de faire des listes. Si j'ai un truc à noter, c'est ce que j'utilise. Le code est sur github, si tu veux jouer avec, voir l'installer sur ton serveur Web. C'est quand même sympa une Open Webapp, non ?

Puisqu'on en est à schoewilliam, je te laisse prendre connaissance de son travail directement sur son blog, c'est tout à fait intéressant : Quant aux open web apps, petit bilan d'expérience. Personnellement j'adore son Shyhome ! Et Schmusic est vraiment un truc qui m'intéresse. Je me suis amusé à modifier le code, très basiquement, pour l'utiliser avec ma musique et le seul problème que j'ai encore, c'est avec la configuration de MPD... En passant, il y a deux applications bien pratiques pour MPD/MPC : SimpleMPC et FoxyMPD.

Dans la catégorie Média, à part l'application par défaut pour la Musique, qui lit tout de même au moins du MP3, du OGG et du FLAC, on peut mentionner EPUBReader : comme son nom l'indique, lit les fichiers EPUB, et du coup, si vraiment il le faut, je peux consulter tel ou tel ouvrage de ma bibliothèque numérique, à laquelle j'accède toujours via mon installation d'Owncloud. En matière de lecture de fichier, il y a PDF Viewer et WebOffice pour lire les PDF et les fichiers OpenDocument. C'est correct, même si FoxXapp ne m'inspire pas vraiment confiance, ne me demande pas pourquoi.

Pour gérer les fichiers, il y a File Manager et Files qui permettent de naviguer dans les répertoires, de déplacer des fichiers, de les renommer, de les supprimer et d'afficher des PDF.

TP Suisse : pour connaître les horaires des transports publiques en Suisse, super efficace. S'appuie sur les Open Data des Chemins de Fer Fédéraux. Même perdu en Engadine, j'ai pu trouver les horaires d'un Bus postal dans un bled vraiment paumé. Excellent. Le plus sympa, c'est que tu peux même héberger toi-même le serveur pour accéder aux données...

Alir : une application de Clochix qui permet de stocker des articles, des flux, des trucs Alir quoi, et de les lire hors-ligne. Fonctionne avec RemoteStorage. Au début, il fallait pousser l'application sur son téléphone soi-même, c'est entre autre pour cela que je me suis arrangé à pouvoir le faire (voir plus bas).

Con Backup, Contacts2XML et XML2Contacts : permettent de faire une sauvegarde des contacts et de les restaurer. Très utile après avoir flashé son téléphone. Y penser régulièrement.

RingTone Picker : pour pouvoir choisir des sonneries dans sa propre collection de fichiers OGG. Avoir comme sonnerie une boucle tirée de l'un de mes vinyls est pour moi un rare plaisir.

Mais ce n'est désormais plus nécessaire. Au moins dans la version 2.0 de Firefox OS, dans Paramètres > Son > Gérer les sonneries on peut en ajouter.

Il y a une application pour les flux RSS de OwnCloud, mais comme j'ai une installation de FreshRSS qui est tout à fait responsive, ça me va. Surtout avec Mozilla Persona qui simplifie pas mal les choses. Pour OwnCloud lui-même, pas vraiment besoin d'application, enfin si un jour la synchronisation fonctionne, pourquoi pas. Jusqu'à la version 6 d'Owncloud, on peut ajout l'application OwnCloud Mobile pour avoir une interface adaptée, mais je crois que depuis la version 7, toute récente, ce n'est plus nécessaire. Faut que je fasse la mise à jour d'ailleurs...

Voilà, je crois avoir fait le tour, un peu désordonné, des applications que j'utilise, en dehors des applications par défaut. Mais encore une fois, mon principal outil, c'est le navigateur. Même pour aller sur le CNRTL ! Le jour où ce site aura une interface pour mobile sera un grand jour pour moi. :) D'ailleurs, c'est ce qui m'a surpris le plus à l'utilisation d'un ordiphone : il y a somme toute assez peu de site facilement accessible sur un mobile. C'est tout l'intérêt de la démarche de Mozilla avec Firefox OS.

Connecter son téléphone

Pour connecter mon téléphone j'ai un peu galéré. Enfin, si connecter le téléphone signifie le brancher en USB sur un ordinateur sous Linux ou sous Windows (boulot), alors aucun souci, c'est du Plug'n'Play, même Windows y arrive, c'est fantastique ! Mais une fois que l'on a branché son téléphone sur un ordinateur on aimerait le connecter via la page about:app-manager de Firefox. Et là, ça se complique un peu, mais seulement un peu. On peut consulter la documentation à ce sujet : https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop.

Tout d'abord, il faut aller dans les Paramètres > Informations > Plus d'informations et cocher l'option Menu développeurs. Une fois fait, dans Paramètres > Développeurs, il faut activer Déboguer par USB. Ensuite, il faut soit installer les extensions désirées dans Firefox (adb helper, firefox OS simulator), soit installer les outils de debugging Android, soit les deux, parce que pour flasher son téléphone (voir plus bas), c'est assez utile. Pour Debian et dérivés, ça donne quelque chose comme apt-get install android-tools-adb, en root bien entendu.

À partir de là, on peut commencer à tester si on parvient à se connecter : on branche le téléphone en USB sur son poste, on ouvre la page about:app-manager, on va dans l'onglet Appareil et on clic sur le bouton connecter. Ou alors, après avoir branché le téléphone, on ouvre un terminal et on tape adb devices. Si la connection ne se fait pas (méthode navigateur), ou que le téléphone n'est pas listé (méthode terminal), alors il va falloir ajouter une étape, que l'on peut découvrir sur la page des troubleshooting de l'utilisation de l'app-manager.

Dans le cas d'une utilisation de GNU/Linux, par exemple Debian, il est nécessaire de configurer udev, le gestionnaire de périphériques. Il s'agit de créer et d'éditer, en root, le fichier /etc/udev/rules.d/51-android.rules pour y ajouter une ligne du type SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev", où la valeur du paramètre ATTR{idVendor} doit correspondre à la marque de ton téléphone, dont on trouve une liste sur le site d'ADB. La connexion devrait désormais être possible.

Pousser une application

Il peut s'agir d'une application que tu as trouvé sur le net, par exemple sur github, que tu aurais modifié, voire développé toi-même (auquel cas, je me demande bien ce que tu fais sur mon blog d'amateur...). Le principe est assez simple, tu branches ton téléphone en USB, ouvre about:app-manager dans Firefox, vas sur l'onglet Appareil, cliques sur le bouton Connecter.

Dans l'onglet Appareil, tu trouves l'option "Ajouter une application empaquetée" qui te permet de parcourir tes dossiers pour y trouver le dossier de l'application que tu veux ajouter. Une fois que tu l'as ajoutée, tu peux Mettre à jour : la première mise à jour, c'est l'installation.

Flasher son Peak.

Dans le cas des téléphones de Geeksphone, le travail est passablement pré-mâché, notamment parce qu'ils mettent à disposition des images adaptées à leurs téléphones, surtout pour le Keon et le Peak : http://downloads.geeksphone.com/. Et ils expliquent brièvement la procédure, que je juge relativement claire vu que j'ai pu la suivre (je n'ai aucune formation en informatique). D'ailleurs, j'ai rapidement documenté ma méthode : https://id-libre.org/notes/doku.php?id=informatique:firefoxos:flasher.

J'ai eu besoin de faire deux choses non expliquées dans la procédure de Geeksphone. Pour la première, j'ai trouvé la solution : il s'agit de débloquer le téléphone, se mettre en root quoi. Pour ce faire, j'ai branché le téléphone en USB, ouvert un terminal et tapé adb reboot bootloader pour redémarrer le bootloader et accéder à l'écran du firmware. Si cet écran confirme que le bootloader est bloqué, il faut entrer fastboot oem unlock pour accéder à un écran du constructeur chinois, en chinois. L'étape suivante est un peu longue, il faut apprendre le mandarin... En fait il y a deux cases à cocher, si le bootloader est bloqué, il faut changer de case, tout simplement, à l'aveugle, grâce aux boutons du volume. Pour accepter, c'est le bouton de démarrage. Dans mon cas, débloquer le téléphone a réinitialisé le téléphone, autant le faire tout de suite, donc.

Ensuite, tu télécharges l'image de chez Geeksphone qui t'intéresse, depuis un terminal, tu te places dans l'image dézippée, et tu lances le script de flashage : ./flash.sh (pour Linux, évidemment). Et chez moi, ça n'a pas fonctionné, ça ne fonctionne jamais. J'ai regardé les histoires de droits, de fichiers exécutables, rien n'y fait. Dans le fichier flash.sh, il y a des appels aux outils ADB qui sont dans l'image, avec des ./fastboot par exemple. Comme ces outils sont installés sur ma machine, j'ai remplacé dans flash.sh les ./xxx par xxx, et ça fonctionne mieux.

Le script demande si tu veux conserver les données, essaie, ça ne coûte rien, mais chez moi je n'ai pas pu redémarrer ensuite, j'ai donc dû reflasher en supprimant les données. J'ai essayé la latest nightly d'abord, ce qui m'a fait passé de la 1.1 à la 1.5.0 prerelease, qui est vite devenue la 2.0.0 prerelease, puis la 2.1.0 prerelease. Hormi quelques problèmes d'affichage, c'était jouable, jusqu'au moment, récent, où le téléphone a planté sans jamais réussir à redémarrer correctement. C'est pourquoi je l'ai flashé avec la latest 2.0, ce qui me convient pour le moment. Une fois flashé, les mises à jour systèmes se font over the air, comme on dit.

Le problème principal que j'ai eu pendant un moment, c'est que la carte SIM n'était plus reconnue. Appremment c'est un bug connu qui semble plutôt lié à Geeksphone. Il fallait se mettre en mode avion, puis sortir du mode avion pour avoir l'écran de débloquage de la carte SIM. Depuis le retour à l'image 2.0, je n'ai plus ce souci.

Voilà, ce billet est bien trop tardif, d'autant que le Peak n'est plus vendu depuis un moment, mais mieux vaut trop tard que jamais. Enfin, on s'arrange comme on peut avec sa conscience... :) Comme j'ai "vendu" un de ces Peak à un ami qui n'avait pas beaucoup besoin d'être convaincu, on aura peut-être l'occasion d'un deuxième retour, je ne promets toutefois rien. Et je vais insérer les données utiles de ce billet sur le wiki.

5 commentaires

#1 : 2014-07-27 @ 12:00
Tom a dit :

Super, merci beaucoup pour l'astuce de «pousser» des applications ! :)

#2 : 2014-07-27 @ 14:37
schoewilliam a dit :

Billet fort sympathique !

Concernant la partie où tu as dû déverrouiller ton bootloader, c'est plutôt étrange. Je n'ai jamais eu à le faire. Et d'ailleurs il me semblait que les Geeksphone Keon et Peak étaient vendus totalement déverrouillés et ouverts (car justement destinés aux développeurs et aux contributeurs mozilliens).

#3 : 2014-07-27 @ 14:52
iGor a dit :

@schoewilliam : Oui, je ne sais pas, c'est peut-être mon karma... ;) Mais il faut dire que le déverrouillage s'est fait fort facilement, une fois que j'ai trouvé que c'était mon problème et de la doc sur le sujet.

#4 : 2014-10-25 @ 10:30
22decembre a dit :

Et sinon, côté materiel ? Je veux dire, il est solide le matos ?

Et ton utilisation aujourd'hui avec du recul, t'en es content ? Ça fait combien de temps que tu l'as ?

Sinon, je tilte pas le truc des webapps : si l'app a besoin de mettre à jour des données sur le web (horaire de chemins de fer par ex…) pourquoi l'installer sur le téléphone ?
utilisation massive de javascript, pour avoir la page en hors-ligne et ne dl que la donnée exacte ?

#5 : 2014-10-25 @ 18:20
iGor a dit :

@22decembre :

Je n'irais pas jusqu'à dire qu'il est solide le matos, il n'en donne du moins pas l'impression, mais pour l'instant il tient. J'ai bien réussi à faire une petite raie sur l'écran, mais c'est pas gênant. Pour le reste, rien à dire. Bon, l'appareil n'a pas encore tout à fait une année, j'ai dû le recevoir fin novembre début décembre 2013.

Avec du recul, oui, je suis content. Mais le contexte est particulier : c'est mon premier smartphone, c'est pour moi une constante découverte et j'apprécie de participer, en tant qu'utilisateur, et un tout petit peu en tant que contributeur tout à fait anodin, à un projet de ce type. Mais j'attends toujours le retour d'une connaissance qui est passé d'un iPhone à un Firefox OS, ça sera certainement intéressant !

Pour la question de la Webapp, c'est de plus en plus difficile de faire la différence entre un site web et une app, au final. Quand on pense que certaines applications iOS ou Android, comme par exemple Instagram, ne sont en réalisté que le site web, au moins dans le cas des Open Webapps, c'est clair. J'ai des sites webs qui sont "installés", en fait ça permet de lancer le site web plus rapidement. Et depuis la version 2.2, (ou c'était la version 2.1 ?), tu ne changes plus d'onglet de navigateur, tu passes d'une "app" à une autre.

No comment.