Security-Distro no image

Published on October 28th, 2015 📆 | 2754 Views ⚑

0

JanOS — Turn your phone into an IoT board


Text to Speech
Current development boards for Internet of Things solutions have one big problem: they are very expensive. Boards like the Raspberry Pi or Arduino have a limited feature set and simple extensions, like a GSM shield, can cost $80. That is a shockingly high price when a full smartphone can be available for just $30. Why not break out the mainboard from a mobile phone and use that to develop embedded projects? Cheaper and more powerful.

JanOS is an operating system designed to run on the chipset of mobile phones. It runs without a screen, and allows you to access all phone functionality, from calling to the camera, through JavaScript APIs. 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.

Turn your phone into an IoT board

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.

  • GeeksPhone Keon (keon)
  • GeeksPhone Peak (peak)
  • Flame (flame-kk) (upgrade to latest base image first)

[adsense size='1']

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.

  • Samsung Galaxy S2 (galaxy-s2)
  • Samsung Galaxy Nexus (galaxy-nexus)
  • Nexus 4 (nexus-4 / nexus-4-kk)
  • Nexus 5 (nexus-5 / nexus-5-l)
  • Nexus S (nexus-s / nexus-s-4g)
  • Nexus 7 (2013) (flo)
  • ZTE Open (ikura)
  • ZTE Open C (special case)
  • GoFox F15 (dolphin)
  • Intex Cloud FX / Spice Fire One / etc. (SC6821 based) (tarako)
  • Raspberry Pi (not model 2!) (rpi)

[adsense size='1']

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:

<remotename="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:

<projectname="gecko-dev"path="gecko"remote="jan-os"revision="os-module"/><projectname="janos"path="gaia"remote="jan-os"revision="master"/><projectname="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.

[adsense size='1']

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

 

 

 

Source && Download

 



Comments are closed.