ZTE OPEN C, revenir au firmware d’origine ZTE 1.3

 La méthode que je donne ici pour le root n’est pas la bonne et je m’en explique. En fait ce que je pensais être une version officielle ne l’est pas, il s’agit d’un root fourni je suppose par comebuy, je me suis fait tromper par l’écran qui pourrait faire penser qu’on est sur le site officiel de ZTE.

Capture d'écran - 28072014 - 15:08:03Alors effectivement vous avez votre téléphone rooté mais vous ne pouvez bénéficier d’aucune mise à jour puisque vous n’êtes plus sur la « branche ZTE » ce qui explique entre autre l’incohérence qu’on a au niveau du numéro de version que je signalais dans je ne sais plus quel billet. La moralité c’est qu’on se retrouve en 1.3, on est en root, mais on n’aura pas de mises à jour par le canal normal ce qui explique mon plantage de l’upgrade de façon systématique, je trouve que cela n’a pas de sens. J’ai essayé une méthode douce pour rooter la version 1.3 sans succès, il serait intéressant tout de même de bénéficier des mises à jour de ZTE qui d’après ce que j’ai lu fournirai une 1.4 en septembre (je n’ai plus la source mais si je la retrouve je mettrai d’où ça vient). Je suis repassé en version 1.4 rootée, je tente parallèlement de compiler cette même 1.4 pour avoir l’image la plus fraîche sur la branche qui parait la plus stable mais qui n’a pas l’air tout de même d’apporter grand chose par rapport à la 1.3.

Pour faire un retour à la 1.3 officielle et au dernier firmware, le B06, il suffit d’utiliser zte-openc rootkit qui vous placera dans une version B05. Ensuite l’upgrade se fait tout seul jusqu’au message de votre téléphone qui vous indique qu’il n’y a plus de mises à jour à faire vous serez en B06.

ZTE OPEN C – compilation version 2.1

A l’heure actuelle mon ZTE OPEN C tourne sous Firefox OS 2.1, ce n’est pas le but, l’idée c’est d’être en version 1.4 ce que j’ai pu faire en utilisant l’image donnée hier, ou en version 2.0 qui s’approche de la stabilité. Pour se faire, j’ai compilé moi même boot2gecko. Je vous avertis tout de suite, la procédure est très très très très longue, elle nécessite aussi d’avoir deux ou trois tonnes de librairies installées sur le PC. Comme j’ai tendance à compiler souvent, que je suis sous debian64, il me serait difficile de vous donner la liste des dépendances nécessaires, je vous renvoie vers la page officielle de Mozilla.

La compilation chez FirefoxOS est plutôt bien foutue, il faut donner un nom pour l’appareil qu’on va compiler. Pour exemple si je veux compiler pour un nexus, je dois faire ./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.tar (la solution est issue d’ici : https://bugzilla.mozilla.org/show_bug.cgi?id=1016867)

git clone git://github.com/mozilla-b2g/B2G.git
cd B2G
$ rm -rf objdir-gecko/ out/ backup-flame/
$ ./config.sh flame openc.xml
$ ./build.sh gecko
$ ./flash.sh gecko
$ cd gaia
$ make reset-gaia

Si vous arrivez à passer toutes les étapes, vous avez votre téléphone dans la dernière version, c’est à dire une instable en 2.1. Pas si instable, j’ai passé un coup de téléphone avec pris une photo, ça a l’air de tourner correctement mais mon but recherché pour quelqu’un qui passe son temps sous debian stable c’est d’être sous une version stable, 1.4 ou 2.0. A priori si on passe la commande BRANCH=v1.4 VARIANT=userdebug ./config.sh flame openc.xml ça devrait passer en 1.4, réciproquement v2.0. Au moment où j’écris ces lignes, il y en a pour des heures et des heures de compilation, on aura la confirmation dans une édition du billet.

Indispensable ou pas ? Pour ma part je dis oui. Il faut vous rappeler que les mises à jour ne proviennent pas de Firefox mais proviennent de ZTE, il n’y a donc aucune garantie que ZTE vous propose des mises à jour régulières ou qu’un jour vous voyez la couleur de la version 2.0 et supérieure. A mon sens, plus vite on est indépendant de ZTE et mieux c’est, le problème par contre c’est la façon de mettre à jour, les compilations sont particulièrement longues et je n’ai pas encore vu de façon de faire un upgrade rapide, il faut d’abord que je règle mon problème de visée sur la bonne branche.

On commence à faire un peu le tour de la question, il nous manquera l’utilisation du téléphone, que je n’utilise pour l’instant nullement, les sources d’infos. A ce niveau là on peut quand même un peu faire ce qu’on veut avec son téléphone qu’on peut faire passer de la 1.3 à la 2.1, merci Cyrille.

Edit du matin : je viens de tenter la procédure sur la branche 2.0, j’ai une erreur à la compilation, je relance le build et ça passe. Toutefois, je me retrouve à nouveau en 2.1 ce qui n’est tout de même pas très bon. Moralité, j’ai tenté de restaurer l’image fournie par ZTE en cas de brick du téléphone, elle refuse de s’installer. J’en viens à me demander si mon téléphone n’est pas US plutôt que EU. Car, ici pour exemple, je viens d’installer une image tirée d’un forum où je ne sais pas si celui qui l’a faite est européen ou américain, l’image passe sur mon téléphone. J’ai donné assez de billes je pense pour faire des essais, dorénavant fini pour moi de mouiller la chemise, je me lance dans l’utilisation de l’appareil en attendant les retours.

ZTE OPEN C – brick, android 4.4, Firefox 1.4

J’écrivais l’aspect indispensable du root pour faire évoluer le téléphone et je donnais la méthode décrite officiellement par ZTE, il y a un problème avec ou je suis un peu malheureux si bien qu’avant toute manipulation, j’attendrais un peu. Si l’on regarde le firmware à télécharger, il s’agit d’un EU_EBAY_OPENCV1.0.0B06 or à l’installation on obtient du B04. Depuis ce firmware les mises à jour du téléphone ne se font plus. De là à dire que le firmware fournit actuellement par ZTE est daubeux, il n’y a qu’un pas que je franchis largement et pourtant ce firmware est important car il permet d’accéder au root, pas de root, pas de possibilité de compiler pour installer les nouvelles moutures de Firefox OS depuis la compilation de puis son poste. A force d’installer et de réinstaller des images pour Firefox OS j’ai fini par bricker le téléphone, écran avec Firefox OS bloqué, j’ai compris désormais comment m’en sortir en installant Android 4.4.

Il y a quelques prérequis à l’ensemble des manipulations régulières que vous allez réaliser avec votre smartphone pour communiquer avec lui, l’accès au mode recovery en est un bouton de démarrage enfoncé et vol + en même temps, l’installation de adb, fastboot une autre. Le mode recovery de votre téléphone correspond à cet écran en gros :

wpid-gp-recovery-menu3install zip from sdcard, install zip from sideload sont les deux options qui nous intéressent. Vous glissez votre image récupérée sur le net dans la sdcard au format zip, install zip from sdcard en pointant à l’endroit qui va bien et la nouvelle image est mise, install zip from sideload vous permet d’installer une image depuis votre ordinateur par le biais du cable usb en faisant la commande adb sideload nomdelimage.zip. Le problème c’est que cela ne marche pas, vous vous faites jeter à chaque fois pour un problème de signature de l’update, la version du recovery n’est pas assez puissante pour vous en sortir, il faudra donc à chaque fois passer par un autre recovery pour installer des images.

Sous debian pour mettre en place adb, la première chose à faire est d’autoriser le debogage distant de votre téléphone, vous le trouver 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. Sous debian, 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. La commande adb shell, me permet directement de naviguer dans le téléphone, pour vérifier si ce dernier est bien rooté, on fait cd data, ls, si vous avez une liste de répertoire c’est que c’est bon, si vous avez une erreur de droit, c’est qu’il n’est pas en root.

Comme précisé plus haut, le recovery de base du téléphone n’est pas fonctionnel, il faut utiliser un recovery plus puissant qui s’il contrôle la signature des fichiers vous permet d’installer n’importe quoi sur le téléphone. Il s’agit du fichier cw_recovery_dp.img.tar que vous pouvez récupérer directement sur le blog. Dès lors la procédure est la suivante :

  1. On relie le téléphone à l’usb
  2. adb reboot bootloader (le téléphone devrait rester bloqué sur l’écran Firefox)
  3. fastboot devices
  4. fastboot boot cw_recovery_dp.img (commande à réaliser à l’endroit où l’on a décompressé le fichier)
  5. Quand l’écran devient noir adb shell /sbin/black_screen_fix.sh
  6. Fermer la console et ouvrez une nouvelle console
  7. adb shell /sbin/cw_recovery.sh

Vous obtenez alors un écran de recovery qui ressemble à ceci

CWM-Recovery-Flashing-StepsOn voit bien ici la notion de toggle signature, si vous rajoutez une image alors il vous demandera si vous voulez installer alors qu’elle n’est pas signée correctement, à vous désormais les versions supérieures. J’ai pu installer pour exemple android Kit Kat 4.4 comme on peut le voir ci-dessous en prenant la ROM à cet endroit. Ensuite j’ai utilisé la ROM donnée ici pour passer l’appareil en version 1.4 rootée ce qui donne désormais une autre manière de rooter sous Linux.

Désormais l’idée c’est de compiler boot2gecko par soi même et d’installer directement une version compilée sur mon téléphone.

A l’heure actuelle les articles sur le ZTE sont réellement à l’arrache, en quasi direct live de mes découvertes. Comme je l’exprimais, la documentation est réellement disparate. N’hésitez donc pas à me faire remonter d’éventuelles incompréhensions, les fautes de français aussi qui doivent être nombreuses.

Remarque : le boot du téléphone sous Android met plus de 1 minute.