We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS


The ZTE Open C Firefox OS phone is an enhanced Firefox OS offering from ZTE featuring higher end hardware, including a 3MP camera and 4-inch WVGA screen, and also comes installed with Firefox OS 1.3. This article provides information about it, including updating and troubleshooting details.

Note: The instructions are not valid for the ZTE Open device. If you have a ZTE Open device you should go to our ZTE Open page instead.

Note: The upgrade tool that you need to unlock the phone (see below) is only available for Windows at this time. However, there is a more involved way to unlock the device from OS X or Linux that is described below.

The ZTE Open C was the first phone with the latest updates to Firefox OS circa mid 2014, offering many new features including direct music player access from the lock screen or notifications bar and advanced Bluetooth sharing, allowing multiple files to be transferred simultaneously. Users can now navigate the phone quicker with smart folders which automatically arrange apps or app searches into categories, enhanced scrolling performance, and faster system app (e.g., calendar, address book, camera) startup times.

Get a device

The phone is available to buy on eBay and priced at US $69.99.

Note: Customers from France should take a look at the MDN french page to get provider stores.

Note: The phones won’t come preinstalled with any network-specific apps or services and are unlocked global variants targeted at early adopters.

Device specifications

You can find more of the device specifications listed on our Phone and device specs page.

Updating & upgrading the software

Note: The French Mozilla community provides updated community builds for the ZTE Open C.

To upgrade your Open C's Firefox OS software, the easiest way is to use the builds available on ZTE's website. To find these, go to ZTE's Software support page, select your region in the left hand column, Smart Phones in the center column, and Open C(European Standard) or Open C(American Standard), depending on where you bought the phone from. We were only able to find the Open C(ebay) under Spain as of August 2014. Next click the Selected button to get to your download page.

When you've downloaded your build, you'll find a PDF in the ZIP file explaining how to install the build.

"Manual" updates

If you want to update Gecko or Gaia yourself, the process is a little trickier, as the phone is locked by default (no root privileges). To unlock the phone, you can use the Open_C_upgrade_Tool found at comebuy.com. Installing this tool upgrades the firmware to provide root access and enable fastboot, and allows you to flash your phone with new software components.

Note: This upgrade tool is only available for Windows at this time.

If you want to unlock the phone from OS X or Linux, here is how to do it:

  1. Download the engineering build from the above link at comebuy.com.
  2. Unzip the build from step 1 and you should find a boot.img there.
  3. Add the following lines in /etc/udev/android.rules :

    SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1350", MODE="0666", GROUP="plugdev"
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d00d", MODE="0666", GROUP="plugdev"
  4. To enter fastboot mode use the following command in your terminal:
     adb reboot-bootloader
  5. To flash the boot.img image from step 2 to the device use this command:
     fastboot flash boot boot.img
    If you prefer, to verify it works first before flashing, you could use:
     fastboot boot boot.img 
  6. To reboot the device use:
     fastboot reboot 
  7. You should now have an unlocked device and running:
    adb shell getprop ro.secure
    should return 0.

Upgrading Gecko and Gaia

Once your phone has fastboot enabled, you will then be able to build and install new Firefox OS/B2G Gecko and Gaia components on it.

  1. Start at the build prerequisite instructions, and treat the Open C like it is a Flame device for the purposes of configuration: this is because the Flame and Open C are both based on the Android Jellybean basesystem.

    Warning: That does not mean you can just flash a flame image! Doing that means permanently bricking your phone in a way that can't be fixed.

  2. During the configuration step, you need to reference a custom manifest file for the Open C. Download the attachment on this bug and save it somewhere easily referenceable on your local drive, as openc.xml.
  3. Clean up the B2G directory, removing the unneeded directories:
    rm -rf objdir-gecko/ out/ backup-flame/
  4. Optional: Before the next steps, you can choose the version you want to build. To do that, open your openc.xml file, locate the gecko.git, rilproxy, librecovery, fake-libdvm, gaia, gonk-misc, and moztt project tags, and modify the value of their revision attribute to match the version you want. For example, you can build version 2.2 using the following:
    <project name="gecko.git" path="gecko" remote="mozillaorg" revision="v2.2"/>
    <project name="rilproxy" path="rilproxy" remote="b2g" revision="v2.2"/>
    <project name="librecovery" path="librecovery" remote="b2g" revision="v2.2"/>
    <project name="fake-libdvm" path="dalvik" remote="b2g" revision="v2.2"/>
    <project name="gaia" path="gaia" remote="mozillaorg" revision="v2.2"/>
    <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="v2.2"/>
    <project name="moztt" path="external/moztt" remote="b2g" revision="v2.2"/>

    Warning: Currently, building versions 2.5 and newer for the ZTE Open C breaks bluetooth.

  5. Now configure Firefox OS with the following command: (Note that the path cannot contain spaces, otherwise it won't work).
    ./config.sh flame /PATH/TO/openc.xml
  6. You can then build the Gecko component and flash it to your phone using the following:
    ./build.sh gecko
    ./flash.sh gecko

    Note: The last step of the flash.sh command is to reboot the device but the boot sequence won't complete (it stops at the animated fox splash screen). Don't worry, this is normal.

  7. You should now upgrade Gaia as well, so the upgraded version of Gecko works with the version of Gaia on the device:
    cd gaia
    make reset-gaia
  8. Finally, you may need to update the fonts.

Warning: Trying to flash a full Flame image onto the device would brick it, so is not recommended. (That's why flash.sh uses adb push instead of fastboot flash.)


Upgrading Gaia


To update Gaia only, leaving Gecko alone, you need to fork and clone the Gaia repo from Github, then Flash it onto your device.

  1. Make sure you have ADB installed.
  2. Go to https://github.com/mozilla-b2g/gaia, then click the "fork" button in the top right corner to fork to your own repository.
  3. Clone the code from your forked repository on your dekstop/laptop by executing the following on your Terminal:
    git clone https://github.com/your-github-username/gaia.git
  4. cd into the resulting directory.
  5. On your phone, enable remote debugging (choose the ADB and Devtools option).
  6. Now connect your phone to your computer via USB; check that it is recognized by entering adb devices into your terminal.
  7. Run the following command to reboot your phone and update it with the new Gaia source code:
    make reset-gaia

Font fix

After updating Gecko/Gaia, you may find there is a mismatch between the fonts that Gecko and Gaia expects and what the images have provided. To fix this, download our font update package, extract it, navigate into the directory created by extracting, and run the supplied flash.sh script.

Another option is to use the update_system_fonts.sh script, which will download and flash the system fonts automatically.

System images from Mozilla

If you're not into compiling Gecko and Gaia by yourself you can use the compatible images provided by Mozilla for the Flame device. Provided that you unlocked the phone with the tool from ZTE you can flash a system image from the nightly builds directory. This process will erase all your data; to backup your user profile please use this script before flashing the new images but after root.

Get your favourite flavor between mozilla-central, aurora, or vanilla and choose Gecko runtime. Every image directory is named like "2014-10-06-xx-yy-zz-mozilla-your_flavor-device_codename" so you will need to search for "2014-10-06-xx-yy-zz-mozilla-your_flavor-flame". The B2G image inside the directory specify Gecko's version and basic language, "b2g-34.0a2.en-US.android-arm.tar.gz" is Gecko 34 and american english as default, download "Gaia.zip" if you want to update Gaia too.

To flash these files to your phone you need a script called shallow_flash; you can find it here, download the script, and run it via terminal.

On Mac and Cygwin:

./shallow_flash.sh -g gaia.zip -G b2g-XX.XX.en-US.android-arm.tar.gz

On Linux:

./shallow_flash.sh -ggaia.zip -Gb2g-XX.XX.en-US.android-arm.tar.gz


I bricked my phone

If your phone becomes unresponsive, you should be able to unbrick it using the official builds and instructions for flashing via SD Card, on ZTE's website:

However, if your system partition is defective, you will have to repair the phone using direct fastboot access. Assuming you are using Ubuntu GNU/Linux:

  1. Download the recovery system image from the ZTE support page and extract the update.zip archive on your desktop (~/Desktop/).
  2. Extract the recovery.img file from the update.zip archive and put it on your desktop.
  3. Create a small-system/ directory on the desktop and copy into it the build.prop file, lib/ and bin/ directories you'll find in the update.zip archive inside the system directory.
  4. Install the android-tools-fsutils package (or install ext4_utils from sources by following this XDAdevelopers page).
  5. Create your small-system.img:
    make_ext4fs -l 53M small-system.img ~/Desktop/small-system/
  6. Move your small-system.img to the desktop and boot your device into fastboot mode pressing power + volume down buttons.
  7. Connect the device to your computer (fastboot devices should then show the device) and flash small-system.img:
    fastboot flash system small-system.img
  8. Then boot into recovery mode using recovery.img:
    fastboot boot recovery.img
  9. In the boot menu, select the apply update from ADB entry (using volume up and volume down to nagivate and power to select) and then:
    adb sideload update.zip
  10. At the end of the process, just restart your phone.

Note: You can reference this support entry for more information.