PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Cyrille BORNE : ZTE OPEN C, téléphone sous FirefoxOS

mardi 16 décembre 2014 à 08:00

Présentation du produit, un achat philosophique ou pour une recherche de vraie simplicité

J'ai acheté mon téléphone ZTE OPEN C au début du mois de juillet 2014, il s'agit d'un téléphone qu'on doit pouvoir trouver aux environs de 50 € actuellement et qui d'un point de vue technique est une véritable bouse. Il s'agit d'un téléphone 4 pouces avec une résolution de 480x800, qui embarque 512 Mo de Ram pour 4 Go de stockage, un processeur dual-core Cortex A7 cadencé à 1.2 GHZ. L'appareil photo c'est un bien grand mot, c'est du 2 Mo Pixel, il n'y a pas de caméra frontale de façon à réaliser des selfies, ce qui est terrible. Pour rester dans la photo, la qualité est convenable compte tenu des spécificités techniques pour les extérieurs, pour les intérieurs c'est particulièrement médiocre cela dit ça dépanne.

Il s'agit du seul téléphone Firefox OS sorti en France, son prix de lancement était de 70 €, à ce prix on a du Android avec des qualités techniques supérieures, on a même du téléphone Windows Phone, la motivation ne peut donc venir du hardware. Le système d'exploitation Firefox OS est limité par rapport à la concurrence, le market est pauvre, les jeux sont quasiment inexistants, il n'y a pas de GPS voiture ce qui est la plus grosse limitation du téléphone pour ma part. En effet, dans le téléphone est embarqué l'application Here de Nokia mais celle-ci est d'une part très imprécise et d'autre part ne guide pas, aucune application de type openstreet map en pilotage n'est apparue. Voici ce que donne mon itinéraire pour aller à Clermont l'Hérault, l'appareil me propose un détour de plus de 25 km pour aller à un village qui est à 7 km. La batterie à l'instar des téléphones d'entrée de gamme ne tient pas 24 heures.

Donc avec le ZTE OPEN C, on ne joue pas ou presque pas, on ne fait pas de selfie, on ne peut pas trouver une adresse si bien qu'il faut se promener avec un GPS dans sa voiture. Comprenez que cela limite particulièrement le nombre d'utilisateurs potentiels pour ce téléphone. Pourtant le système d'exploitation ne manque pas de qualité, il est très fluide comparativement à Android, il est simple, intuitif, et il est surtout libre à des années lumières d'un Google qui vous traque, qui vous impose la création d'un compte et le reste.

Si on achète donc un téléphone Firefox OS c'est parce qu'on veut un smartphone simple ou qu'on veut un smartphone libre et éventuellement évolutif. Le téléphone est livré dans une version 1.3 de Firefox OS, on peut le faire passer sous Android ou dans la version 2.2 de Firefox OS.

ZTE OPEN C Français et Européens ne sont pas les mêmes appareils, attention.

J'ai acheté mon appareil sur ebay en Angleterre, il s'agit de ce qu'on appelle la version EU de l'appareil. On se rend compte de la version de l'appareil en allant dans paramètres, informations sur l'appareil, vous avez alors un truc du genre : EU_EBAY_OPENCV1.0.0B06. Notez le EU dans le nom du firmware, si votre téléphone a un FR c'est qu'il s'agit d'un téléphone acheté en France. Notez qu'il existe aussi une version US et c'est là que les problèmes commencent. Les téléphones d'un point de vue hardware au moins sont différents pour les versions françaises et européennes au niveau de l'appareil photo si bien que les images que vous allez trouver sur le web, les procédures de compilation vont fonctionner pour un téléphone et pas pour l'autre. Soyez donc TRÈS vigilants dans les manipulations que vous allez réaliser avec votre téléphone.

Dans le cas d'un téléphone Français, je ne peux que vous inviter à vous diriger vers les images communautaires qui vous permettent d'avoir des mises à jour régulières sur votre téléphone. Il faut savoir en effet que ZTE a déjà distribué des mises à jour pour ce téléphone mais on reste dans la branche 1.3. Une mise à jour officielle vers la 1.4 devrait être d'actualité mais elle n'est toujours pas là, si bien que je ne peux que vous conseiller de bricoler le téléphone pour profiter des versions 2.x qui apportent une expérience utilisateur largement supérieure.

Attention, tout ce qui suit concerne uniquement la version EU du téléphone, si je venais à acheter un nouveau téléphone, ce serait certainement un FR pour profiter des images communautaires et arrêter de me casser la tête à compiler. De plus vous entrez dans la zone dangereuse, toutes les manipulations à venir peuvent tuer le téléphone.

Rooter son téléphone, l'étape Windows.

Pas de root, pas de possibilité de mise à jour, pas de possibilité d'accéder au répertoire data, cela reste tout de même une étape sensible qui risque de bricker votre téléphone. A l'époque, puisque j'ai routé mon téléphone en moins de 24 heures, cette opération bloquait les mises à jour officielles. Un retour en arrière est possible en chargeant une image du téléphone non rooté.

La procédure se passe par ici et se fait exclusivement sous Windows : http://en.comebuy.com/developer-firefox-os-open-c.html

Pour se faire il faut impérativement le pilote usb du ZTE qui n'est pas reconnu par défaut : http://www.ztedevices.com/support/smart_phone/b5a2981a-1714-4ac7-89e1-630e93e220f8.html

La procédure est comme on peut le voir très classique, il faut en outre penser à retirer la carte SIM.

Passer le téléphone sous Android 4.4

Dans les mises en avant sur la vente de ce téléphone il y avait la possibilité de faire une bascule vers Android 4.4, c'est désormais possible à partir du moment où le téléphone est rooté. On récupère l'image à cette adresse et on la colle dans la carte MicroSD de l'appareil. Il faut redémarrer le téléphone en mode recovery c'est à dire au démarrage du téléphone sur le bouton marche et le bouton de volume +, on arrive à un écran de ce type :

Il suffit de faire une install from zip et de pointer vers l'image disque, le redémarrage se fait sous Android, comme peuvent en témoigner les écrans suivants

adb, la commande miracle pour communiquer avec son téléphone, et bien plus encore.

Sous Linux pour mettre en place adb, la première chose à faire est d'autoriser le debogage distant de votre téléphone, vous le trouvez dans les paramètres, informations sur le téléphone, plus d'informations, développeurs, deboggage distant. Vous aurez besoin de android-tools-adb, android-tools-fastboot. Il y a un problème de reconnaissance auquel je n'ai absolument rien compris, si bien que j'ai suivi le tutorial de rom1v sans me poser de questions. Désormais adb devices me donne List of devices attached a17ed6 device, a17ed6 étant mon smartphone.

Quelques exemple de commandes

Compilation

Pour compiler Firefox OS, je vous renvoie vers la page de Mozilla pour les dépendances elles sont détaillées selon la distribution que vous utilisez. Il faut comprendre le principe de la compilation, si j'ai un nexus, je fais ./config.sh nexus. La problématique c’est que dans la doc officielle le fameux nom, nexus dans mon exemple, n’existe pas pour l’OPEN C. Il faut donc compiler pour l’OPEN C comme on compilerait pour le flame sauf qu’on va communiquer un fichier xml qui rajoute une description matérielle pour l’OPEN C que vous trouverez dans cet archive : openc.xml (la solution est issue d’ici : https://bugzilla.mozilla.org/show_bug.cgi?id=1016867)

git clone git://github.com/mozilla-b2g/B2G.git (à réaliser si c'est pour une première fois)
cd B2G

git fetch origin

git checkout origin/master
git show HEAD (il s'agit d'une option qui permet de voir la date de la dernière livraison et les modifications)

rm -rf objdir-gecko/ out/ backup-flame/

export PRODUCTION=1 (ces deux options servent à supprimer les programmes de développement et ils sont très nombreux)
export GAIA_APP_TARGET=production
./config.sh flame openc.xml
./build.sh gecko -j1 (l'option -j1 si j'ai bien compris permet de faire une compilation en mono-core. Il se trouve que j'ai eu des plantages de façon systématique sans l'option -j1)
./flash.sh gecko
cd gaia
make reset-gaia

adb shell stop b2g (stoppe b2g)

adb shell stop gaia (stoppe gaia)

adb push /home/user/data /data (remise en place des données sauvegardées)

Choisir sa version lorsqu'on compile Firefox OS.

Par défaut lorsqu'on compile Boot2Gecko on se retrouve avec la dernière version c'est à dire la branche très instable, 2.2 au moment où j'écris ces lignes. Je tourne actuellement sur la version 2.1, qui est correcte, pour choisir la version qu'on vise à compiler, il faut éditer le fichier openc.xml et y apporter les modifications suivantes

 

 
 
   
 

 
 
 
 
 
 
 
 
 
 

Contourner le problème des certificats auto-signés.

Ce problème ne concerne pas la version 2.1 sur laquelle je tourne, je l'avais en version 1.3. Le problème en fait c'est que si des gros sites comme Yahoo, Gmail, Outlook et d'autres passent sans problème, pour des sites plus petits, mon hébergeur o2switch par exemple, les certificats auto-signés ne passent pas, si bien qu'il est impossible de récupérer les mails depuis le client de FirefoxOS. Pour contourner le problème. L'idée c'est de rappatrier la base des certificats et d'y injecter le ou les certificats désiré(s) afin de pouvoir accéder à des services comme le mail ou le calendrier sur lequel Firefox OS bute en donnant un problème de sécurité. Il sera nécessaire d'installer les paquets libnss3-tools et adb. Ceci ne pourra fonctionner que si le téléphone est rooté.

La première chose, identifier le répertoire firefox où sont contenus les fichiers à éditer : adb shell "ls -d /data/b2g/mozilla/*.default" chez moi j'ai le retour : /data/b2g/mozilla/j2v7h43b.default

Récupérer les fichiers par la commande pull

adb pull /data/b2g/mozilla/XYZ.default/cert9.db .
adb pull /data/b2g/mozilla/XYZ.default/key4.db .
adb pull /data/b2g/mozilla/XYZ.default/pkcs11.txt .

où XYZ.default chez moi = j2v7h43b.default

Saisir la commande : nss-certutil -d 'sql:.' -N  à la demande de mot de passe, appuyer sur entrée. (si la commande nss-certutil ne fonctionne pas, saisir certutil)

Pour importer les certificats au format pem présents dans le /home de l'utilisateur :

for i in ~/*.pem; do nss-certutil -d 'sql:.' -A -n "`basename $i`" -t "C,C,TC" -i $i; done

Il ne reste plus qu'à remettre les bases modifiées dans le téléphone :

adb push cert9.db /data/b2g/mozilla/XYZ.default/
adb push key4.db /data/b2g/mozilla/XYZ.default/ 

Gravatar de Cyrille BORNE
Original post of Cyrille BORNE.Votez pour ce billet sur Planet Libre.