ZTE open phone – upgrading to firefoxOS 1.1 / 1.3 how to

Update: I’ve realized that I actually compiled and installed FirefoxOS v1.3 instead of 1.1, so this instructions will actually cause you to install v1.3.
for me v1.3 is working fine but if you need to install v1.1 just be sure to configure the right branch

If you read my previous post about the ZTE Overview, you know I was planning to upgrade my phone to version 1.1 after finding instructions on MDN I thought its going to be easy, but apparently its not as straight forward as one might think.

this guide is basically going to organize the information from the mozilla.dev group thread – Updating ZTE Open to 1.1 and the MDN ZTE Open page

Please note that I take no responsibility if you brick your device following this instructions.

To compile FirefoxOS you’ll need about 30 Giga of free space on your hard drive, downloading and compiling every thing took me about 5 hours on a new desktop with fast Internet connection so you might want to do the download and compilation at night…

Tho its probably possible to upgrade your phone without an SD card some of the following steps require one.

I’m only going to write how to do the compile from Ubuntu 13.04 and up, if your using other OS (and even previous version on Ubuntu please check the reference links to see how to set your environment)

OK before starting to do anything you should fetch the boot 2 gecko source files, we don’t need them just now but since this might take several hours depending on your Internet connection its better to do it sooner than later ( the repo is about 8 Giga).
Lets make a folder to all our FirefoxOS stuff-

if you don’t have git install it –

and lets download the base repository and configure to to our ZTE phone (inari device)

if you want a specific version like 1.1 and not the latest, change the last line to

the last command can take several hours so lets open a new shell and keep setting up our environment.
from now on I’ll refer the B2G folder as [B2G-src].

You should make sure your phone is at least version FFOS_V1.0.0B02 to be able to fastboot into it –
check on your device in – Settings > Device Information > Software
if it’s not you can update your phone with from ZTE ->
US/Hong Kong phones
UK phones
download the zip file and read the pdf with instructions inside.

lets go back for setting our build environment

if your using ubuntu 13.04 ->

if your using different OS see Mozilla guide – Firefox OS build prerequisites

install adb –

add the following lines to your udev rules –

lets make sure the rules readable to all users and restart udev

enable remote debugging on your device –
Settings -> Device information -> More Information -> Developer -> Remote debugging
and connect the phone with USB to the computer

you should now see your device

and you should be able to open a shell on it.
if it fails you might need to restart adbd as root on your system

* Root your device and back your system
this step is optional but since my device didn’t boot after my first attempt I would advice you to follow it.
first use this great guide that will explain how to root your phone and install of clockwork recovery on it.
once its rooted reboot into clockwork recovery (volume up + power button) and use the backup and restore option to fully backup your phone.
if you’ll need, you can later restore your phone directly from the SD card but keep a copy of this files on your computer just in case.

now if you finished downloading the repos you can build your OS
go to the [B2G-src] folder and run the build script.

it would probably take an hour or two to compile the source so just be sure your not getting any errors and go do something else.

unfortunately once compilation is done we still cannot flash the device because we need a new boot.img and the compilation process doesn’t create one. frankly at this point I didn’t even tried to see how to compile my own boot image and just graved the file from Eduardo González blog, if you decide to compile your own image let me know how you did it 🙂
once you have the image file copy it to [B2G-src]/out/target/product/inari/boot.img

you are now ready to flash your device

if every thing went OK after flashing your phone will boot into firefoxOS 1.1

I must say this is a really bad experience for a phone which suppose to be Open.
I had much more easy time changing ROMs on my Samsung S II. the ZTE phone is not only awful mobile phone from a user perspective (I used it for two days now and except making calls its completely useless) its also offers a very bad first experience to any one trying to hack the on it.
ZTE should not advertise this phone as Open.
I guess Mozilla really wanted to get vendors to start shipping this phone but they should require vendors to follow specific guidelines and make sure they keep the OS open and accessible to users and developers

Update: You can download my v1.3 builds. Of course I take no responsibility if they mess up or brick your device

126 thoughts on “ZTE open phone – upgrading to firefoxOS 1.1 / 1.3 how to

  1. MaTachi says:

    It sucks that there are so few alternatives available. :-\ ZTE Open seems like the easiest one to pick up, but if it’s not going to get updated I wonder how nice of a dev phone it will be. In what sense is it completely useless, just slow?

  2. n0 says:

    Well for now the upgrade seems to be working. its not easy but its possible.
    we just have to hope it will still be ok in future versions (for now the only real issue is the boot.img).

    the phone is useless as a user phone and I guess it’s mainly because of Firefox OS 1.0.1 is not really production ready. its very hard to import contacts,
    the bluetooth isn’t working properly, the browser keeps crashing, and the Hebrew keyboard is missing a letter (it has another letter twice).
    Firefox OS 1.1 seems to be in way better shape tho, but you can’t expect any normal user to do the upgrade.
    so if ZTE is any way shipping a developer only phone they should at least make it easy to hack and replace.

  3. MaTachi says:

    Are you experiencing those problems with 1.1 too?

    I’m a little disappointed that you don’t think Firefox OS is ready for daily use, or at least this phone. I have really been looking forward towards getting a Firefox OS phone, but Geeksphone are having problems with production of their Peak+ and the lack of updates to ZTE Open is bumming me out. Alcatel One Touch Fire I’m not even sure if it’s available for purchase. I guess I will have to wait a little longer. Hopefully Geeksphone manage to deliver some phones soon.

  4. n0 says:

    Version 1.1 is way better than 1.0.1
    You could import contacts by default, they fixed the keyboard layout and I haven’t yet tested my bluetooth speakers but I hope they’ll work to.
    You still need to remember its in early stages and I wouldn’t yet replace my day to day phone. also even when firefox OS will be mature and will surpass any other mobile OS
    we’ll still have issues that the ZTE is very low spec phone.
    if your really serious about getting a working Firefox OS phone for daily use, I would suggest trying one of the Tier 2 phones.
    some of this devices you can probably get second hand and they would be cheaper than the ZTE.
    just check to see how well supported is the specific device your planing to buy.

  5. Mathieu says:

    Hi n0,

    Can you upload the build ?

  6. Sven says:

    Thanks, I was able to flash the phone using your guide. But neither wifi nor 3G would work after that, rendering the phone completely useless.

    I opened a bug at Mozilla and was advised to flash differently (https://bugzilla.mozilla.org/show_bug.cgi?id=928869). Besides that this does not work for me (“permission denied” when trying to copy to /data), do your builds work?

  7. n0 says:

    yes. but I take no responsibility if this will work or not

    also notice that I actually compiled version 1.3 instead of 1.1

  8. n0 says:

    Reading your bug I realized I actually built version 1.3 instead of 1.1
    but for me everything works (3g, wifi)
    if you want you can try using my ROMs (just uploaded them, see previous comment)
    just note that I have a US phone (I guess it matters since ZTE release different updates to each phone)

  9. Aaron says:

    Thanks. I used these steps copying over the modified boot.img and am now running 1.3 (mozilla-central) on my ZTE Open.

  10. Flow says:


    I just want to know how use your build (ZIP file) for install firefox os 1.3 on zte open !

  11. n0 says:

    I only used the flash.sh script that comes with the source to update my device.
    I guess your best bet is to try and compile every thing and if for some reason it fails replace the compiled images with this ones.

    but you can also try flashing the image with adb as shown in the rooting guide for the boot img.
    I think this should also work but I haven’t actually tried it

  12. Gianfranco says:

    The branch now it’s called v1.1.0hd

    So the command is:

    BRANCH=v1.1.0hd ./config.sh inari

  13. n0 says:

    fixed it

  14. ffuser says:

    Hi, thanks for your manual, I’m considering to flash your image if.
    Is there a sms forwarding feature in the 1.3 ?

  15. n0 says:

    No I don’t think there is

  16. thecore says:

    Good day.
    May be you answer, in 1.3 exist Russian language of interface?

  17. udi says:


    (i don’t know if my previous comment is pending but here we go, Please delete this if so.)

    I tried to flash your build on EU ZTE Open, and it was OK with no issues, but the “Contacts” was not working, which is a showstopper to me. Now I try to build my own. My error is: make: *** No rule to make target `kernel/AndroidKernel.mk’. Stop.

    Probably because: device/qcom/msm7627a/AndroidBoard.mk:32: kernel/AndroidKernel.mk: Nincs ilyen fájl vagy könyvtár <– No such file

    Could you help me where to get? Google failed me so far!

    Thank you!

  18. n0 says:

    Are you getting the error when using the build script ?
    maybe you can try to only build and flash gaia ?

    any way if not I would go over the configuration steps again you might missed something.
    also before building reflash your device with the original firmware and make sure its connected.
    during the build the processes uses some drivers from the original firmware so it might help you to get a working build.

  19. n0 says:

    I don’t have Russian on my build, but you should check the Mozilla forums and see if there might be
    some branch or repo with Russian local.

  20. udi says:

    I did everything by the book. Also tried some hacking, and making it to compile without building the kernel, no luck til now. I’m thinking on pulling the code again.

    btw, your build installs well on EU ZTE Open, but creating and syncing contacts doesn’t work. Did not test forther as this was a blocker for me 😉

  21. n0 says:

    Did you try compiling and flashing only Gaia ?

    I can’ t think of any reason why the contacts shouldn’t work (I had no problem importing them to the device but I did it from the SD)

    let me know once you find a solution.

  22. thecore says:

    Thank you, for answer.
    I too compile FF OS 1.3 for ZTE Open US- works great!
    Much better, then original ZTE firmware.
    And add russian language(who need- may add needed language in build)

    After command ./config.sh inari
    $ cd gaia/locales
    $ hg clone ssh://hg.mozilla.org/gaia-l10n/ru/ <– may change on needed language
    open in locales dir file – languages_all.json
    and check then it's have string
    "ru" : "Russian"
    After this
    $ cd .. <- back to B2G/gaia directory
    $ make profile LOCALE_BASEDIR=locales/ LOCALES_FILE=locales/languages_all.json GAIA_DEFAULT_LOCALE=ru
    and – ./build.sh etc.
    (localisation based on https://wiki.mozilla.org/L10n:B2G/Localizers)
    All the best!
    P.S. boot.img not compile too, and i get from you instruction
    P.P.S. If rerun ./config.sh inari after add locales- need before this in dir B2G/gaia run command
    $ git stash
    $./config.sh inari
    and add locales again etc

  23. n0 says:

    I’m happy to hear it works.
    And thank you for writing the information.

  24. patjeremlinux says:

    I had the same problem. ZTE (ebay US-store) keep trying to import contacts from the sim-card but didn’t get any.

    Therefore I build myself a v1.1hd in virtualbox.

  25. Marc says:

    Anyone has the boot_adapted_for_zte_open_commertial_editions.img mirrored?
    The download is temporary not available.

    Thanks in Advance.

  26. n0 says:

    check the link at the end of the post. I uploaded a zip file with all the builds

  27. Julien says:

    I was gonna say this.

    For 1.1 we had 2 different branches depending whether the target phone has an HD screen (eg: Peak) or not (eg: ZTE Open).

    That means:
    * for Peak, you need BRANCH=v1.1.0hd
    * for others, you need BRANCH=v1-train

    Starting with v1.2 the branches are merged.

  28. Julien says:

    Well, the feature just landed 2 days ago 😉 So if you follow the instruction _now_, you’ll have this feature.

  29. Julien says:

    To anyone who installs 1.3:
    * you’re using a work-in-progress version, this can break any day
    * we generally don’t support migrating data between several versions of 1.3. I mean, we try to take care of it (after all, we’re using this too), but there might be bugs, since our QA team has not done all the usual tests. So you might lose data.
    * Try to stay uptodate by yourself, since you won’t get any automatic nightly update
    * please file bugs on bugzilla if you encounter bugs, this would be much appreciated

    n0: do you know if there is a filed bug about providing a working boot.img ? Can you file one if there is not any ? You’re probably the most qualified to tell what you need.

    Thanks for this great article! Probably most of this information should go to MDN too!

  30. n0 says:

    thanks. updated the post.

  31. n0 says:

    I don’t know if any one filled a bug for the boot.img.
    But I think Eduardo González has a better knowlge about what exactly needed, since he the one modified the boot.img to work.


  32. urKh says:

    How to update manually? The automatic nightly’s channel dont work 🙁

    I’m on the v1.3


  33. n0 says:

    You can’t. You’ll have to rebuild and flash the system for each upgrade

  34. Eduardo says:

    adb remount
    echo ‘pref(“app.update.channel”, “nightly”);’ > updates.js
    echo ‘pref(“app.update.url.override”, “http://update.boot2gecko.org/inari/1.2.0/%CHANNEL%/update.xml?build_id=%BUILD_ID%&version=%VERSION%”);’ >> updates.js
    adb push updates.js /system/b2g/defaults/pref/updates.js
    adb reboot
    rm updates.js

    Chance 1.2.0 to 1.1.0 or 1.3.0 depending of b2g version you are using

  35. azureus says:

    Hallo have you a HowTo for install your image FFOS1.3 with adb ??? I have only a ppc-maschine to work with adb !!! I have NO git on it….

  36. n0 says:

    not really.
    Read the roooting instractions.
    You’ll see how to flash the recovery image.
    flashing the other images should be similar

  37. n0 says:

    thanks I’ll try that.

  38. patjeremlinux says:

    When I build and flash successfully v1train for my US based ZTE open my touchscreen won’t work. It is not responsive to touches. The sound ,home and power keys works. What could be the problem? I do everything as described in this blog on a linux 13.04 PC

  39. azureus says:



    adb push system.img /sdcard/cwm.img
    adb shell flash_image recovery /sdcard/cwm.img

  40. Aki says:

    You should push file “melf-touchscreen.idc” to device :
    In working directory where you have copied file “melf-touchscreen.idc”, do the following
    $ adb shell
    $ su
    # dd if=melf-touchscreen.idc of=/system/usr/idc/melf-touchscreen.idc
    And then restart device by removing and replacing battery.

    You can pull file melf-touchscreen.idc from original rom. Before flashing, do the following:
    $ adb pull /system/usr/idc/melf-touchscreen.idc
    and you’ll find file in working directory.

  41. n0 says:

    You’d probably best changing the names to system.img on the device as well (so you have all the images on the device and you’ll know what your flashing)
    also I think it should probably be “flash_image system” and not recovery

  42. azureus says:

    Only the system.img ???

    or all 4 in your .zip ?!?

    adb push system.img /sdcard/system.img
    adb push boot.img /sdcard/boot.img
    adb push ramdisk.img /sdcard/ramdisk.img
    adb push userdata.img /sdcard/userdata.img

    adb shell flash_image sytem /sdcard/system.img

    adb shell flash_image boot /sdcard/boot.img

    ….userdata…. …ramdisk….

  43. n0 says:

    yea all 4.
    if you flashed clockwork the recovery img make a full backup to your sd card so you can restore original images if something goes wrong

  44. Thomas de Graaff says:

    My ZTE Open eu version phone from the UK store has a problem with the 1.1 installation following this tutorial. The touchscreen is not working.

  45. Aki says:

    This is a known bug. See my reply above for resolving this problem.

  46. azureus says:

    Have the same probleme

  47. azureus says:

    Not work on my ZTE OPEN from Spain. I flashed back with update-zte-recovery6.zip from http://pof.eslack.org/2013/07/05/zte-open-firefoxos-phone-root-and-first-impressions/#comment-1695 . This is the Only One that Boots on my device But my Touchscreen is not working . I make all steps from Aki`s Post now i have a working touchscreen but No other Buttons give any reaction…. I hate my Phone…… F**k FFOS ….

  48. thecore says:

    Provided nightly build is multilocale or no?

  49. zauf says:

    hello , i installed firefox os 1.0.1 in my zte kis plus, which had android 2.3.5, but is total disaster, the phone is so wrong while working, i need to know if its possible to restore android, i have try many things but i cant find a solution.

  50. azureus says:

    Any Infos to Bring the Volume on/off and Home-Button Back???

  51. patjeremlinux says:

    When I do “hg clone ssh://hg.mozilla.org/gaia-l10n/nl ” I get permission denied(publickey). How can i get permission?
    I want to build in dutch language 🙂

  52. Aki says:

    I have successfully flashed my ZTE Open with my home-made Branch v1-train build. Everything seems to work OK (I had to copy a file however, to activate touchscreen, see my above comment), except for a problem with the radio app: there is no sound coming out of the earphones 🙁
    I’ve tried to increase the volume with the side buttons, but this didn’t help.
    Can anybody help me with this issue?

  53. Julien says:

    From internal information, we can’t make a working boot.img from the sources, because of legal issues.

  54. Aki says:

    Use “hg clone https://hg.mozilla.org/gaia-l10n/nl” instead 😉

  55. Aki says:

    Or better :
    hg clone https://hg.mozilla.org/releases/gaia-l10n/v1_1 (or v1_2 depending on what branch you want to build)

  56. Samuel says:

    hello, please find a zip for the missing file “melf-touchscreen.idc”, it requires a CWM recovery

  57. azureus says:

    Its Over!!! After a Reboot my ZTEOpen Hang in Bootscreen (Blue with Fox). When i Press Vol Up and Power I have not the Rooted Menu

    And Every Update Cant install on It

    and with ADB cant rerooted the device

    Connect your phone to USB, then:
    Settings Device -> Information -> More In....... and enable "remote Debugging"

    But I cant In my Menü It Hangs on Bootscreen…..


  58. n0 says:

    I this clockwork recovery ?
    did you backup your device ?

    how about installing original zte rom ?

    make sure the device is not stuck in fastboot.
    also try to clear cache

  59. patjeremlinux says:

    I have build v1.2 with dutch local and works. Thank you for the help. 🙂

  60. thecore says:

    Very nice 🙂
    But i never buy another ZTE Phone. Not liked when manufacturer not support own devices.

  61. udi says:

    Sorry for not replying for so long I’ve put this project on hold.

    So today I was planing to flash Gaia only, before that I did a git pull and a repo sync. What suprised to me that NOW it pulled the Kernel sorces, and I was able to do a full build. Works like a charm.

    I play around with a bit, and if needed I can share the prebuilt image for an EU phone.

  62. udi says:


    Now the keyboard does not pop up when using the browser. 1.3 is too fresh apparently, I’ll try 1.2 now 😉

  63. Miguel says:

    Am about to give this a try, just want to say thanks in advance 🙂

    Don’t really care if this gets bricked, I should’ve waited for the Peak+. Nothing really gets to my area, though, so it was the best I could do.

    Props again, and thanks 🙂

  64. Thomas says:

    Thanks very lot for the good description. I own a ZTE-Open from the UK-Store.

    My first try was a build of v1-train, however there seems to be a problem with the contacts (they get imported, hoewer do not show up in the list).

    Hence I tried v1.2.0, which works very good for my device. I also sucessfully managed to build a German version of Gaia, following the instructions on

  65. azureus says:


    kannst du dein Deutsches Image hochladen???

  66. Thomas says:

    I had to take the following additional steps in order to add the German language (it should work with different / several languages too):

    1) Download file “de….gz” from http://hg.mozilla.org/gaia-l10n
    2) Open shell and enter B2G dir
    $ git pull; ./repo sync gaia # refresh everything
    $ mkdir gaia-l10n # create dir for locales
    $ cd gaia-l10n
    $ tarx -xzfv
    $ mv de-8b217baa4803 de # rename directory
    $ cd ..
    $ cp gaia/shared/resources/languages.json .
    $ vi languages.json # delete all other entries, just leave the “de” entry
    $ export LOCALE_BASEDIR=$PWD/gaia-l10n
    $ export LOCALES_FILE=$PWD/languages.json
    $ ./build.sh -j1 gaia
    $ ./flash.sh gaia
    3) Change the language to “Deutsch” in the settings menu – that’s it
    4) You could also do a complete flash in order to erase all your data and start the phone “wie nageleu” 😉

    Good luck – viel Erfolg!

  67. Philip Wright says:

    thank you for this, if you build master now, the keyboard in the browser works, anyone got email working?

  68. MeLame says:


    I have a problem flashing my device (unlocked ZTE Open) with a new build of 1.3.. i made using this awesome blog entry. I have rooted my device, its got CWM properly running and i have made backups. The issue is as follows:

    /home/mela/firefoxOS/B2G# ./flash.sh

    erasing ‘cache’…
    OKAY [ 0.524s]
    finished. total time: 0.524s
    erasing ‘userdata’…
    OKAY [ 1.383s]
    finished. total time: 1.383s
    sending ‘userdata’ (53728 KB)…
    OKAY [ 4.928s]
    writing ‘userdata’…
    FAILED (status read failed (No such device))
    finished. total time: 10.231s

    After this the device is factory reset and reboots. Works like its booted for the first time, but with no new OS.

    I read from https://bugzilla.mozilla.org/show_bug.cgi?id=915697 comment 20 that someone else also has this issue, but i can’t find any solution for it.

    Any help would be appreciated 🙂

  69. n0 says:

    whats the size of your userdata.img ?
    according to the bug it might be too big to flash.
    tho I can’t think why it would be larger than any other build that works.
    did you add some extra stuff to this build ?

  70. MeLame says:

    No, nothing added. Its actually quite small, just 113MB. About the same size as whats described by the other in the bug report. The bug reports last comment suggest its a different issue than size, but i did not find a new bug report about this issue.

    Would it be possible to some how make a ROM zip and try to flash it from CWM with install from zip?

  71. n0 says:

    are you talking about userdata.img ?
    mine is only 53M.
    I uploaded a zip with my images. you can install each image with adb shell as you installed CWM recovery image. but its a bit out of date.
    I would try to completely remove the out folder and rebuild just to be sure

  72. MeLame says:

    Sry, i mixed up userdata and system.
    Userdata.img is 53MB and system.img is 113MB

  73. MeLame says:

    Is there a certain order that the images should be flashed if done manually with flash_image? I tried to flash my system.img and it did flash it, but then it started to give this error for everything (commands, or when trying to connect with adb)

    link_image[1936]: 14924 could not load needed library ‘libc.so’ for ‘/system/bin/sh’ (link_image[1908]: 14924 missing essential tables)CANNOT LINK EXECUTABLE

    This error made it impossible to flash anything else, and the device locked itself up so i had to remove the battery to get it running again. After a recovery with CWM i’m all good to try something again 🙂

  74. n0 says:

    I don’t think there should be an order but try to flash from recovery.
    I never actually done a full system flash from adb shell since the flash script worked for me
    I guess rebuild didn’t helped ?

  75. Mehul Ved says:

    I got following error and device has entered into bootloop

    # flash_image ramdisk ramdisk.img
    can’t find ramdisk partitionfailed with error: -1

    I have installed CWM and can’t flash your image or ZTE image. Is there any CWM compatible file around or should I restore my original recovery and flash the ZTE image?

  76. n0 says:

    did you backup your device witch CWM ?
    you can tell CWM to restore from backup.

  77. Mehul Ved says:

    I didn’t have anything to backup, I got the phone to play around with. I did manage to flash the old recovery and zte image again and got the device working.
    But, once again I am not able to flash the ramdisk. The other 3 are fine. Any idea what could be going wrong?

  78. MeLame says:

    I did a re-build from new downloads, but with the same result. Now i tried to flash from adb shell, in the order:
    So the ramdisk gave the missing ramdisk partition error, the same as Mehul Ved got, and system still gives the same error as i described earlier…

    Not so easy updating this phone ;D

  79. MeLame says:

    From CWM i restored only system, so boot.img and userdata.img does work ok.
    I tried to flash your system.img that i downloaded, but it gives the same error as my system.img file… I am confused now.

  80. Petit Etre Malfaisant says:

    When is execute : adb shell flash_image sytem /sdcard/system.img
    I get : “can’t find sytem partition: No such file or directory”

    Whereas I didn’t get error message while pushing the 4 images.

    Any help would be welcome

  81. Petit Etre Malfaisant says:

    figured out the correct way :
    $ adb shell
    # su
    # flash_image system /sdcard/system.img

    but I get this near the => mtd: not writing bad block at 0x066e0000 (ret 1 errno 2)
    And then the phone is briked.
    Hopefully I backed up the phone and the restoration saved my day.

    I tried both pushing with shell and copying via file explorer, via Ubuntu and Win7.

  82. Thomas says:

    In the meantime, I also got a good version of v1-train with working contacts. In order to get them back to life, I had to replace


    with an older version available per download:


  83. Wes Frazier says:

    I don’t suppose anybody here thats actually building v1-train could post their images? I just want to update to 1.1 to fix some email bugs…

  84. Petit Etre Malfaisant says:

    I totally messed up my phone and delete my backup (Yes, I’m stupid…)
    Can someone spare a clockworkmod save of a UK phone?

    Thx by advance

  85. Tibor Peak says:

    The info available here is really useful.

    I’m using Ubuntu 13.10, 32 bit. I could build the images on this platform with some modifications:

    1. There were some packages that could not be installed, there was one the was needed and I have to install “libncurses5-dev” instead of “lib32ncurses5-dev”.

    2. I had to add the “-fpermissive” flag to the following mk files (information gathered from: http://forum.xda-developers.com/showthread.php?t=1980379):

    $ gedit frameworks/base/tools/aapt/Android.mk
    Add ‘-fpermissive’ to line 31:
    LOCAL_CFLAGS += -Wno-format-y2k -fpermissive

    $ gedit frameworks/base/libs/utils/Android.mk
    Add ‘-fpermissive’ to line 64:

    $ gedit development/tools/emulator/opengl/Android.mk
    Add ‘-fpermissive’ to line 25:
    EMUGL_COMMON_CFLAGS := -DWITH_GLES2 -fpermissive

    $ gedit frameworks/base/libs/rs/Android.mk
    Add ‘-fpermissive’ to line 184:
    LOCAL_CFLAGS += -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fpermissive

    $ gedit external/gtest/src/Android.mk
    Add ‘-fpermissive’ to lines 52 and 69 (both lines contain same info)
    LOCAL_CFLAGS += -O0 -fpermissive

    After all this I could build and flash the version 1.1, 1.2 and 1.3.
    I also made the modification to have the hungarian locale. I had to go to ‘Settings’ –> ‘KeyBoards’ and add a chosen keyboard (and reboot) to have the keyboard.

    Thanks again for this detailed info.


  86. Tibor Peak says:

    I uploaded a backup, it is the last official version from ZTE home page:



  87. Alex says:

    Hi, did you have any luck? I also ca not get my phone to flash

  88. Petit Etre Malfaisant says:

    I just got the time to try. And…
    It’s working again !!!

    Thanks a lot !!!! You just saved my phone !!!!!

  89. Akmal Irfan says:

    ZTE already push the official update for ZTE Open!
    US/Hong Kong phones
    UK phones

  90. Eric Brady says:

    Problem trying to update 1.1.0 from ZTE website:

    assert failed: getprop_new(“ro.build.display.id”) == “OPEN_US_DEV_FFOS_”
    E:Error in /sdcard/update.zip
    (Status 7)
    Installation aborted.

    What now?

    I tried building Firefox OS on a Ubuntu 13.04 virtual machine in Parallels, and always get build errors. Not sure why…

  91. Thomas says:

    I strongly recommend NOT to install this update!

    I tried version 1.1.0B04 from ZTE for my UK phone, the update process itself from sd card was fine….

    First problem: there is only support for English language, i could not find any options to install further languages

    Second problem: when not finding my own language I tried to flash my own images again – but FASTBOOT IS NOT WORKING after the upgrade! I reproduced this with a brand new phone from the UK-store. Also recovering an older version from sd card was impossible, for both phones I got an signature error.

    In order to unbrick the phone I took the recovery.img from the V1.0.0B02 image and flashed it using adb:

    adb push recovery.img /sdcard/rec.img
    adb shell flash_image recovery /sdcard/rec.img

    After that I could restore the complete V1.0.0B02 image from sd card…

  92. Eric Brady says:

    The ClockWorkMod recovery image apparently was the culprit. I flashed the stock recovery image back, and the update installed fine.

  93. AKiNO says:

    I can confirm, fastboot is broken again in official 1.1, Zte guys locked it

  94. urKh says:

    how you do to flash?

    adb shell flash_image recovery /sdcard/rec.img says “error writing recovery: Permission Denied”

    I’m not root, the exploit not work for me on v1.1.0B04 🙁

  95. Thomas says:

    Perhaps you are able to remount your drive:
    adb remount

    Good luck!

  96. Paul says:

    Not sure if I want to upgrade to the official 1.1 update after reading some comments, but I was just going through some of the preparation by attempting to backup my data. However, when I try to pull /data in adb then I get the following message :-

    pull: building file list…
    0 files pulled. 0 files skipped.

    As a test I can pull /system fine, which brought back 1270 files, but where is the data which I need to backup ? Can anyone point me in the right direction ?

  97. urKh says:


    adb says: “remount failed: Operation not permitted”

    I think its the rom installed, i’ll try with the version of UK


  98. Yaron Shahrabani says:

    Hey there!
    I must say that this tutorial is great but not perfect, there are some things I had to do differently in order to make it work.

    Bottom line:
    I backed up my initial configuration, after that I combined the new files into a new custom backup changing the md5 sums in nandroid.md5 and the required files (names are different, for example: system.yaffs2.img instead of system.img).

    Then I used the restore option on CWM to load the device, worked like a charm, sometimes the bottom of the screen is unresponsive but I’m sure I’ll be able to fix that.

    Anyways I came up with an idea of generating such images with a script and load them with CWM, this way we can have nightly versions for example.

    The entire process should be copying the files from the build (out) folder, changing their names and generating md5 sums to nandroid.md5, worked for me even with the bigger boot.img file.
    If someone can give me a hint maybe we could generate a zip file to install with CWM directly.

    Kind regards,
    Yaron Shahrabani.

  99. John Blake says:

    ZTE Open (US- E-Bay): Root, CMR and update to Firefox OS 1.1

    Here are the steps I used to update my ZTE Open using Windows 7

    1. Obtain Android SDK
    2. Put Android in windows “Path” I used this guide: http://www.youtube.com/watch?v=Khrxo0-NieM (thank you to Reverendkjr)
    3. Used Pof.HQ ( http://pof.eslack.org/2013/07/05/zte-open-firefoxos-phone-root-and-first-impressions/ ) method to root and install CMR. However run.bat file did not work (permission denied message) so opened it in notepad and ran commands separately using cmd.exe to open command line window:
    a. adb wait-for-device
    b. adb push root-zte-open /data/local/tmp/
    c. adb shell
    d. su (This was the missing step in the run.bat file)
    e. adb /data/local/tmp/root-zte-open. (If you do not add “su” line after opening shell command, you will not have superuser privileges and get “permission denied” error.)

    4. recovery-clockwork-
    a. # first backup your existing recovery
    adb shell su
    adb busybox dd if=/dev/mtd/mtd0 of=/sdcard/stock-recovery.img bs=4k
    adb pull /sdcard/stock-recovery.img

    b. # then flash clockworkmod recovery
    adb push recovery-clockwork- /sdcard/cwm.img
    adb shell su
    adb flash_image recovery /sdcard/cwm.img

    5. Next I downloaded FirefoxOS update from ZTE: http://www.ztedevices.com/support/smart_phone/b5a2981a-1714-4ac7-89e1-630e93e220f8.html

    Tried to copy to SD card and install via CMR but got a:
    assert failed: getprop_new(“ro.build.display.id”) == “OPEN_US_DEV_FFOS_”
    E:Error in /sdcard/update.zip
    (Status 7)
    Installation aborted.

    More research found I was lucky it failed as it will unroot and remove CMR.

    So need to make following mods
    6. Look in US_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip (do not extract files)
    Find updater-script in Meta-inf/com/google/android
    7. Open in word/notepad etc and delete first 3 lines
    assert(getprop(“ro.product.device”) == “roamer2” ||
    getprop(“ro.build.product”) == “roamer2”);
    assert(getprop_new(“ro.build.display.id”) == “OPEN_EU_DEV_FFOS”);
    8. I saved file to desktop and then open it with Notepad++
    a. Under edit menu look for EOL conversion and convert to UNIX/OSX format
    b. Save again
    c. Now click and drag it back to Meta-inf/com/google/android after deleting original version.(windows compress it automatically- takes time- be patient)
    (May want to reopen it in notepad++ just to make sure the changes “took”)
    To retain root and retain CMR
    9. Locate recovery.img in US_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip and delete it.
    10. Rename recovery-clockwork- to recovery.img
    11. Click and drag recovery.img you just created into US_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip and allow windows to comress it.
    12. Copy US_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip onto SD card of ZTE Open
    13. Safely remove ZTE open from computer and reboot into recovery (Power +volume up)
    a. Once in CMR select update from SD card and select US_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip
    b. Once done reboot ZTE open and enjoy FirefoxOS 1.1 with retained root and CMR

  100. AKiNO says:

    Does anybody have a problem with simcard on ZTE Open UK?

    I flashed 1.3 according to this guide (BRANCH=v1.3 ./config.sh inari && ./build.sh, put patched boot.img and ./flash.sh). Now my phone doesn’t recognize the simcard. With stock firware simcard is recognized and I’am able to make calls. Any suggestions?

  101. AKiNO says:

    Addition: WiFi also down. Looks like gonsalez’s kernel is not compatible with UK version 🙁

  102. hecatae says:

    I still have fastboot after updating to 1.1 from ZTE

  103. salvatore says:

    I bought a ZTE open UK version from ebay on August. At the moment I have version 1.1 from ZTE. I’m not expert about compiling and flashing the device. Can you provide a file.zip with stable version (1.2)? So the users like me are able to upgrade from SD.

    Thank you very much

  104. diggn says:

    My build is finished after a few seconds and doesn’t generate userdata.img, system.img etc. What could this be?

  105. Mister_W says:

    I’m on the brink of returning my phone to ZTE. They sent me this:


    I was expecting something more user friendly, but… What do you lot make of it?


  106. Mister_W says:

    Are they finally getting their act together?

  107. Thomas says:

    I’ve just had a look into the ZIP files provided by ZTE. To my point of view, it is not possible to build a ZIP file out of the self-build images, as the installer checks a signature.
    The second problem is that once you have installed a self-build image, you won’t get any automated updates from ZTE.
    Sorry for the bad news…

  108. diggn says:

    i just want to be able to receive my *!”$(%§ emails…. never buying anything from zte again. i’ve been wanting the geeksphone all along. but since they only accept payment by credit card, i bought the shitty open!!

  109. Richard Lee says:

    I’ve just upgraded to Firefox 1.3 from 1.01 on at UK ZTE Open using this guide. Super useful and it worked first time. Thanks!

    1.3 seems pretty stable so far… certainly no worse than 1.01. Keyboard is better, screen navigation is zippy, able to import contacts from a variety of sources, receive emails on hourly basis. All in all a massive improvement. Am looking forward to further upgrades.

  110. Salvatore says:

    I have updated my ZTE OPEN UK version (bought from ebay) from the official ZTE web set with version 1.1.0 rev02 http://www.ztedevices.com/support/smart_phone/cba40ed6-d3ab-44c0-bdee-3a15803dc187.html?type=software. Then I tried to flash my device with the pre-compiled version of firefox OS 1.3 available in this site and the devices starts reboot-loop. Then I compiled with success from source the latest version from the repository of Mozilla: also in this case I can flash the device with success but it starts reboot-loop. Do you have any hints?

  111. aBx says:

    Do the downgrade first.

    Download the files:
    adb push 1recovery.img / sdcard / rec.img
    adb shell flash_image recovery / sdcard / rec.img

    copy to the memory card: update-signed.zip
    Power + volume up / from menu – install the update.
    Downgrade ready.

    Now you can install 1.3.

  112. Salvatore says:


    I tried your procedure, but now the phone is blocked. It starts to boot and remains blocked with firefox os screen. I can only enter in Power + volume up / from menu but I cannot install neither the previous version from ZTE http://www.ztedevices.com/support/smart_phone/cba40ed6-d3ab-44c0-bdee-3a15803dc187.html?type=software nor the your update-signed.zip. The phone says E: failed to verify whole-file E: signature verification failed signature Installation aborted.

    Thank you

  113. Salvatore says:

    I’m able to resurrect my phone :).
    The command adb shell flash_image recovery / sdcard / rec.img does not work. Only for root user. How can I do it? Is this http://pof.eslack.org/2013/07/05/zte-open-firefoxos-phone-root-and-first-impressions/ reliable?

  114. aBx says:

    This exploit does not work with 1.1.

    adb shell flash_image recovery/sdcard/rec.img — remove the spaces and try again.

  115. Aversario says:

    where did you got this? From ZTE or ebay dealer? Because I wrote to ZTE ([email protected]) and they didn’t (yet) send me something like this.
    I also wrote to some dealers on ebay, but they don’t wanna hear anything if you didn’t get your phone in their shop.


  116. Mister_W says:

    Got it from zte_uk on ebay.

  117. Vladimir says:

    Да, поддержка multilocale есть!

  118. Aversario says:

    and did you manage to successfully reflash the phone?

  119. Mister_W says:

    Yeah, it’s not a great build of 1.2, but it works. In addition to what the instruction sheet says, I ticked ‘SYSTEM’ too.

    You may want to have a look here, if you haven’t already.



  120. Aversario says:

    Can someone be really nice and please dump the bootloader from working ZTE Open in send it to me?

    I’ve found some guy, who maybe can help me write bootloder with JTAG.

  121. Snowmean says:

    Can you share your firmware?

  122. Niidhope says:

    Updated my zte open to 1.3 then 2.0 (pre release) with this tuto.
    Everything worked well both times, huge thanks for this how-to !

Comments are closed.