{"id":131,"date":"2013-10-20T17:40:36","date_gmt":"2013-10-20T17:40:36","guid":{"rendered":"https:\/\/blog.non.co.il\/?p=131"},"modified":"2016-05-22T02:06:12","modified_gmt":"2016-05-22T02:06:12","slug":"zte-open-phone-upgrading-to-firefoxos-1-1-how-to","status":"publish","type":"post","link":"https:\/\/ca.non.co.il\/index.php\/zte-open-phone-upgrading-to-firefoxos-1-1-how-to\/","title":{"rendered":"ZTE open phone &#8211; upgrading to firefoxOS 1.1 \/ 1.3 how to"},"content":{"rendered":"<p class=\"info-box\">Update: I&#8217;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.<br \/>\nfor me v1.3 is working fine but if you need to install v1.1 just be sure to configure the right branch<\/p>\n<p>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.<\/p>\n<p>this guide is basically going to organize the information from the mozilla.dev group thread &#8211; <a title=\"Updating ZTE Open to 1.1\" href=\"https:\/\/groups.google.com\/forum\/#!topic\/mozilla.dev.b2g\/q20PteboREo\" target=\"_blank\">Updating ZTE Open to 1.1<\/a> and the <a title=\"MDN ZTE Open guide\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Firefox_OS\/Developer_phone_guide\/ZTE_OPEN\" target=\"_blank\">MDN ZTE Open<\/a> page<br \/>\n<!--more--><\/p>\n<div class=\"info-important\">Please note that I take no responsibility if you brick your device following this instructions.<\/div>\n<p>To compile FirefoxOS you&#8217;ll need about<strong> 30 Giga<\/strong> of free space on your hard drive, downloading and compiling every thing took me about <strong>5 hours<\/strong> on a new desktop with fast Internet connection so you might want to do the download and compilation at night&#8230;<\/p>\n<p>Tho its probably possible to upgrade your phone without an SD card some of the following steps require one.<\/p>\n<p class=\"info-box\">I&#8217;m only going to write how to do the compile from <strong>Ubuntu 13.04<\/strong> 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)<\/p>\n<p>OK before starting to do anything you should fetch the boot 2 gecko source files, we don&#8217;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).<br \/>\nLets make a folder to all our FirefoxOS stuff-<\/p>\n<pre class=\"lang:sh decode:true \" >$ mkdir firefoxOS\r\n$ cd firefoxOS<\/pre>\n<p>if you don&#8217;t have git install it &#8211;<\/p>\n<pre class=\"lang:sh decode:true \" >$ sudo apt-get install git<\/pre>\n<p>and lets download the base repository and configure to to our ZTE phone (inari device)<\/p>\n<pre class=\"lang:sh decode:true \" >$ git clone git:\/\/github.com\/mozilla-b2g\/B2G.git\r\n$ cd B2G\r\n$ .\/config.sh inari<\/pre>\n<div class=\"info-box\">\n\tif you want a specific version like 1.1 and not the latest, change the last line to<\/p>\n<pre class=\"lang:sh decode:true \" >$ BRANCH=v1-train .\/config.sh inari<\/pre>\n<\/div>\n<p>the last command can take several hours so lets open a new shell and keep setting up our environment.<br \/>\nfrom now on I&#8217;ll refer the B2G folder as [B2G-src].<\/p>\n<p class=\"info-box\">You should make sure your phone is at least version FFOS_V1.0.0B02 to be able to fastboot into it &#8211;<br \/>\ncheck on your device in &#8211; Settings &gt; Device Information &gt; Software<br \/>\nif it&#8217;s not you can update your phone with from ZTE -&gt;<br \/>\n<a title=\"zte upgrade US\" href=\"http:\/\/www.ztedevices.com\/support\/smart_phone\/b5a2981a-1714-4ac7-89e1-630e93e220f8.html\" target=\"_blank\">US\/Hong Kong phones<\/a><br \/>\n<a title=\"zte upgrade UK\" href=\"http:\/\/www.ztedevices.com\/support\/smart_phone\/cba40ed6-d3ab-44c0-bdee-3a15803dc187.html\" target=\"_blank\">UK phones<br \/>\n<\/a>download the zip file and read the pdf with instructions inside.<\/p>\n<p>lets go back for setting our build environment<\/p>\n<p>if your using ubuntu 13.04 -&gt;<\/p>\n<pre class=\"lang:sh decode:true \" >$ sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib ia32-libs lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip\r\n$ echo 'export CC=gcc-4.6' &gt;&gt; [B2G-src]\/.userconfig\r\n$ echo 'export CXX=g++-4.6' &gt;&gt; [B2G-src]\/.userconfig\r\n$ ccache --max-size 3GB<\/pre>\n<p>if your using different OS see Mozilla guide &#8211; <a title=\"Firefox OS Firefox OS build prerequisites\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Firefox_OS\/Firefox_OS_build_prerequisites\" target=\"_blank\">Firefox OS build prerequisites<\/a><\/p>\n<p>install adb &#8211;<\/p>\n<pre class=\"lang:sh decode:true \" >$ sudo apt-get install android-tools-adb<\/pre>\n<p>add the following lines to your udev rules &#8211;<br \/>\n\/etc\/udev\/rules.d\/android.rules<\/p>\n<pre class=\"lang:sh decode:true \" >SUBSYSTEM==\"usb\", ATTR{idVendor}==\"19d2\", MODE=\"0666\", GROUP=\"plugdev\"\r\nSUBSYSTEM==\"usb\", ATTR{idVendor}==\"18d1\", MODE=\"0666\", GROUP=\"plugdev\"<\/pre>\n<p>lets make sure the rules readable to all users and restart udev<\/p>\n<pre class=\"lang:sh decode:true \" >$ sudo chmod a+r \/etc\/udev\/rules.d\r\n$ sudo service udev restart<\/pre>\n<p>enable remote debugging on your device &#8211;<br \/>\nSettings -&gt; Device information -&gt; More Information -&gt; Developer -&gt; Remote debugging<br \/>\nand connect the phone with USB to the computer<\/p>\n<p>you should now see your device<\/p>\n<pre class=\"lang:sh decode:true \" >$ adb devices\r\nList of devices attached\r\nroamer2 device<\/pre>\n<p>and you should be able to open a shell on it.<br \/>\nif it fails you might need to restart adbd as root on your system<\/p>\n<pre class=\"lang:sh decode:true \" >$ adb kill-server\r\n$ sudo adb start-server<\/pre>\n<p class=\"info-box\">* Root your device and back your system<br \/>\nthis step is optional but since my device didn&#8217;t boot after my first attempt I would advice you to follow it.<br \/>\nfirst use this great guide that will explain <a title=\"ZTE Open FirefoxOS Phone, root and first impressions\" href=\"http:\/\/pof.eslack.org\/2013\/07\/05\/zte-open-firefoxos-phone-root-and-first-impressions\/\">how to root your phone and install of clockwork recovery on it<\/a>.<br \/>\nonce its rooted reboot into clockwork recovery (volume up + power button) and use the backup and restore option to fully backup your phone.<br \/>\nif you&#8217;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.<\/p>\n<p>now if you finished downloading the repos you can build your OS<br \/>\ngo to the [B2G-src] folder and run the build script.<\/p>\n<pre class=\"lang:sh decode:true \" >$ .\/build.sh<\/pre>\n<p>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.<\/p>\n<p>unfortunately once compilation is done we still cannot flash the device because we need a new boot.img and the compilation process doesn&#8217;t create one. frankly at this point I didn&#8217;t even tried to see how to compile my own boot image and just graved the file from <a title=\"Adapted boot image for use with B2G custom builds on zte open\" href=\"http:\/\/sl.edujose.org\/2013\/10\/adapted-boot-image-for-use-with-b2g.html\">Eduardo Gonz\u00e1lez blog<\/a>, if you decide to compile your own image let me know how you did it \ud83d\ude42<br \/>\nonce you have the image file copy it to [B2G-src]\/out\/target\/product\/inari\/boot.img<\/p>\n<p>you are now ready to flash your device<\/p>\n<pre class=\"lang:sh decode:true \" >$ .\/flash.sh<\/pre>\n<p>if every thing went OK after flashing your phone will boot into firefoxOS 1.1<\/p>\n<p>I must say this is a really bad experience for a phone which suppose to be Open.<br \/>\nI 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.<br \/>\nZTE should not advertise this phone as Open.<br \/>\nI 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<\/p>\n<p class=\"info-box\">Update: You can download my <a title=\"Firefox OS v1.3 builds\" href=\"https:\/\/docs.google.com\/file\/d\/0B4mXikGvIfAdYmFTamlIVXJPVjg\/edit?usp=sharing\">v1.3 builds<\/a>. Of course I take no responsibility if they mess up or brick your device<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 on how to build updated version of firefox OS and Install it on the ZTE Open<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-131","post","type-post","status-publish","format-standard","hentry","category-firefox-os","last-post"],"_links":{"self":[{"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/posts\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":30,"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/posts\/131\/revisions"}],"predecessor-version":[{"id":381,"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/posts\/131\/revisions\/381"}],"wp:attachment":[{"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ca.non.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}