About JanOS

Device List

JanOS can run on any rooted device that can also run Firefox OS. This includes devices shipped with Firefox OS, as well as Android devices that received a port. If your device is not listed, but it can run Android 4 or higher, you can attempt a port yourself.

View porting instructions

Fully supported devices

These devices are fully supported. There are ready-to-flash builds available in the downloads section, and you do not need any additional configuration when building from scratch. Depending on the device they can also already expose the GPIO ports.

Partially supported devices

The following devices are not fully supported but it should be possible to build JanOS for them, if they are rooted. Below the list there are instructions on how to build JanOS for them.

To build for any of these devices, locate the device manifest file in this repository, and save it on your local hard drive under b2g-janos/janos-manifests/DEVICENAME.xml. Open the file and add under the <remote ... sections:


<remote name="jan-os" fetch="git://github.com/jan-os/" />

Then find the lines for all projects with name 'gaia'; 'gecko'; 'gonzo-misc', and remove them. In their place add:


<project name="gecko-dev" path="gecko" remote="jan-os" revision="os-module"/>
<project name="janos" path="gaia" remote="jan-os" revision="master"/>
<project name="gonk-misc" path="gonk-misc" remote="jan-os" revision="master"/>

If you manage to get a new device building, and it runs without issues, we welcome a pull request on the jan-os/b2g repository. That will help others with the same device to get started quicker.

How to build

Building for most devices only works on Linux. You'll need to install a number of build dependencies first. They are listed on the Mozilla Developer Network.

  1. Attach your device to your USB port and make sure it's visible via adb devices
  2. Clone jan-os/b2g
  3. Run ./config.sh DEVICENAME janos-manifests/DEVICENAME.xml
  4. Run ./build.sh
  5. Run ./flash.sh

If you did not disconnect the screen yet, the device will show JanOS in ASCII art on the display. If you disconnected the screen, attach the WebIDE to see if flashing succeeded.

How to build if you cannot build kernel

For some devices it is not possible to build the kernel (ZTE Open C, or the GeeksPhones on OS/X). It's still possible to get part of JanOS. You will not get any of the extra binaries or kernel-hacks like GPIO support, but most stuff works.

  1. Attach your device to your USB port and make sure it's visible via adb devices
  2. Clone jan-os/b2g
  3. Run ./config.sh DEVICENAME janos-manifests/DEVICENAME.xml
  4. Run ./build.sh gecko
  5. Run ./flash.sh gecko
  6. Run ./build.sh gaia
  7. Run ./flash.sh gaia

Now what

If you have a working build, try some of the built-in examples to see what the board can do for you.

Open the examples