B2G OS

B2G OS is a complete, standalone operating system for the open web. It is an open source project developed by the Mozilla community and forms the basis of Firefox OS products.

B2G OS is a complete, standalone operating system for the open web. It is an open source project developed by the Mozilla community and forms the basis of Firefox OS products.

B2G OS is a community maintained open source operating system for smartphones, tablets, smart TVs and other connected devices. The project was started in 2011 and is based on the Linux kernel and Gecko rendering engine. The entire user interface is built using web technologies (HTML, CSS and JavaScript) and can be used to launch and use web applications. Since Mozilla discontinued their commercial Firefox OS smartphone program the smartphone part of the project is entirely maintained by Mozilla's volunteer community, and branded as B2G OS.

Index of pages

Automated Testing of B2G OS
This page offers articles that provide information about various aspects of testing B2G OS, including running different tests, automation, and result reporting and tracking.
B2G OS add-ons
You should follow the below steps to get set up to start developing extensions.
B2G OS APIs
List of B2G OS APIs
B2G OS architecture
This article is a high-level overview of the architecture of the B2G OS platform, introducing key concepts and explaining how its components interact at a basic level.
B2G OS build prerequisites
Before obtaining the code to build B2G OS, even if you are simply trying to build Gaia, you need a properly configured build system — this page shows you how. You can currently build on 64-bit Linux distributions and OS X.
B2G OS phone guide
This section contains developer information relevant to specific phones that run B2G OS — both developer and consumer devices.
Building and installing B2G OS
The articles listed on this page will guide you through building and installing B2G OS on an emulator or compatible device, or the Gaia user interface in the Firefox browser.
Building B2G OS
Once you've set up your build system and performed your initial pull and configure  the code, you can build Boot to Gecko. This guide explains how.
Building the B2G OS Simulator
Just like Firefox Nightlies, the B2G OS simulator desktop client (identified by b2g-) is automatically built every day from the latest source code. The latest build is available from the Mozilla FTP server. Be sure to pick the latest version and the right archive for your operating system. This lets you bypass having to build it yourself. In addition, you don't have to download Gaia on your own either.
Choosing how to run Gaia or B2G
Depending on your specific needs, you have an assortment of options to consider when experimenting with Firefox OS or the Gaia user interface. You can choose among the following options; each has its advantages and disadvantages to consider, and some are more flexible than others.
Customization with the .userconfig file
The .userconfig file isn't checked into source code control, so your changes won't be overwritten when you update your source tree. It needs to be created in the root of the B2G tree; that is, in the same directory as flash.sh, build.sh, and so forth. You should add this before you run your config and build steps.
Debugging on Firefox OS
There are two main types of debugging you'll want to with Firefox OS: debugging apps, and debugging other aspects of the system.
Developer Mode
The current Firefox OS permissions model precludes modification and installation of certified/internal apps, which makes some device APIs completely unavailable to Marketplace and web apps. Developer Mode (DM) allows the user to indicate that they would like to relax the permissions model and expose all device APIs to content, as well as setting a group of related preferences. This article provides a high-level overview.
Developing Firefox OS
This section provides useful documentation covering different ways in which Firefox OS (codename Boot2Gecko, or B2G) can be modified/customized during the build process, and how you can help to develop the low level platform areas such as Gecko and Gonk.
Firefox OS apps
This section of the Firefox OS docs covers the specific techniques required — and available tools — for building Firefox OS apps. You'll find a number of details below, from Firefox OS building blocks/web components, to device APIs and App installation.
Firefox OS board guide
This section contains developer information relevant to specific phones that run Firefox OS — both developer and consumer devices.
Firefox OS developer release notes
This section provides articles covering each new release of Gaia and Gecko for Firefox OS, explaining what features were added and bugs eliminated in each update. There is also a linked summary table showing what APIs are supported by each version of Firefox OS.
Firefox OS security
The following articles cover security-related topics about Firefox OS. This includes overall security features as well as application security and how the install process is kept secure.
Firefox OS Simulator
The Firefox OS Simulator is a version of the higher layers of Firefox OS that simulates a Firefox OS device, but runs on the desktop. This means that in many cases, you don't need a real device to test and debug your app. It runs in a window the same size as a Firefox OS device, includes the Firefox OS user interface and built-in apps, and simulates many of the Firefox OS device APIs.
Firefox OS usage tips
Explains all of the developer features on the phone and what they do (Settings > Device information > More information > Developer)
Gaia
Gaia is B2G OS's user interface and suite of default apps: it includes the lock screen, home screen, dialer, and other applications. Essentially, Gaia is a set of complex web apps that runs on top of the B2G OS platform. This set of articles covers all you need to know to contribute to the Gaia project.
Installing B2G OS on a mobile device
Once you've built Boot to Gecko for a supported mobile device, you can install it. This article will guide you through the process.
Introduction to Firefox OS
This set of documentation is aimed mainly at web developers and platform developers who want to learn how Firefox OS works, how to contribute to the project, and how to build their own custom versions of the software and install it on devices. For those who want to create and distribute their own web apps, the App Center and Marketplace Zone are good places to go.
Mulet
Following this guide you're going to run Gaia inside of a special build of Firefox called Firefox Mulet. This gives you the advantages of having a rapid development cycle, as well as standard web development tools and debuggers available to work with. First of all, you need to have the Gaia repo cloned on your machine and build your own profile. Then, you have to install mulet and run it, passing your Gaia profile as the profile to use.
Open web apps quickstart
Quickstart information on coding Open Web Apps.
Pandaboard
This is a guide to setting up Firefox OS on a PandaBoard. The PandaBoard is a low-cost OMAP 4 based development board for developing mobile operating systems.
PasscodeHelper Internals
PasscodeHelper is a Gaia helper library for modifying and checking the Firefox OS lockscreen passcode (i.e., pin) from within Gaia, performing functions such as checking whether an entered passcode is correct, and changing the code. This article documents how PasscodeHelper works.
Porting B2G OS
This page lists the available resources for porting B2GOS.
Preparing for your first B2G build
Depending on your internet connection, the configuration steps may take several hours to download everything you need to build B2G OS. Waiting is not as fun as doing, so after you have read through this page and have kicked off the configure script, consider using the time to set up and try out the B2G OS simulator, begin familiarizing yourself with Documentation for app developers including Designing and Building an App, or familiarize yourself with the information on upcoming steps.
Resources
Resources for App hackers, as generated from our workshops
Running tests on Firefox OS: A guide for developers
If you are a Gecko developer, then you should review the Firefox OS-specific documentation for the test automation you are already familar with: mochitest, reftest, and xpcshell.
The B2G OS platform
The B2G OS platform consists of many components. While you don't need to understand its architecture in order to build applications that run on B2G OS, if you're working on developing or porting the platform — or are simply curious — the following documentation may be of interest to you.
Troubleshooting B2G OS
This article provides tips for resolving common problems you may have while using B2G OS.
Using the App Manager
Editorial review completed.
Using the B2G emulators
This article provides a brief guide to some key things you should know when using the boot to Gecko emulators. This doesn't appear to be a complete user manual; instead, it simply tells you a few useful things that you might not learn on your own.
Web applications
This page is intended to be a first, non thorough, attempt to collect web apps.
Web Bluetooth API (Firefox OS)
The Web Bluetooth API lets an open web app discover, pair with, and connect to Bluetooth devices. As it is a completely experimental and non-standard API, the Bluetooth API is currently available for certified applications only. However, there is some traction to have such an API available for regular Web content; this will be discussed as part of the W3C's System Applications Working Group.
Web Telephony API
Web Telephony is an API that makes it possible for web content to handle voice phone calls using JavaScript.

Old page content

NoteCall for contribution & Call for App adoption has been made to gather more people, feel free to share it !

How you can help

  • File & fix bugs (meta bug is bug 1252143)
  • Help us fix failing tests
  • Port a gaia smartphone app:
    1. Turn it into a webapp (or)
    2. Turn it into chrome:// (why?) & report back  
  • Port B2G OS to your phone or help us to maintain a port
  • Help improve translate this documentation & wiki
  • Propose & implement new smartphone features

   Get involved

To participate in meetings and community Working Groups meetings, register on this Calendar. They are announced on Discourse, where you can find information about how to attend & notes.

Compatible devices

For more information see this page.
Flash you device easily with B2G installer.
Your device is not in the list ? Try Mulet on desktop.

*WIP = Work In Progress.