• Skip to main content
  • Select language
  • Skip to search
MDN Web Docs
  • Technologies
    • HTML
    • CSS
    • JavaScript
    • Graphics
    • HTTP
    • APIs / DOM
    • WebExtensions
    • MathML
  • References & Guides
    • Learn web development
    • Tutorials
    • References
    • Developer Guides
    • Accessibility
    • Game development
    • ...more docs
B2G OS
  1. MDN
  2. Archive of obsolete content
  3. B2G OS
  4. B2G OS phone guide
  5. Best practices for open reference devices

Best practices for open reference devices

In This Article
  1. Easily accessible and installable builds
  2. Completely unlocked operating system
  3. Worldwide availability
  4. Feature support equivalent to consumer phones
  5. Availability of replacement batteries
  6. Easily enabled language choices

The following article aims to provide a set of best practices that we believe should come highly recommended for any widely available open reference devices. All of the recent Firefox OS reference devices have followed these practices, including the forthcoming Flame.

Devices should have:

  • Easily accessible and installable builds
  • Completely unlocked operating system
  • Worldwide availability
  • Feature support equivalent to consumer phones
  • Availability of replacement batteries
  • Easily enabled language choices

Easily accessible and installable builds

Reference devices are largely aimed at developers and other groups with a greater degree of technical knowledge than average device consumers. But even so, we shouldn't expect users of these devices to compile their own builds if they don't wish to — for many of them this is a complete waste of time.

Open reference devices should have a maintained set of unlocked builds for current and future releases that are easy to access and install. This means having multiple tiers of builds available, at least:

  • Release/Current
  • Stable/Beta
  • Nightly

They should be made easily available on a dedicated download page, and updated regularly and often. Devices should also have OTA updates made available to them.

The OEMs should be responsible for providing these builds since they are the only ones who can legally distribute all the required binaries, etc.

It may make sense to follow a similar model to the Firefox browser, where each of the release, stable and nightly channels are based on subsequent versions of the source code.

Completely unlocked operating system

The device operating system platform should be completely unlocked, so that app and platform developers can have the necessary freedom of control available over their devices to perform any desired tests and development work. This includes:

  • SIM unlocked
  • Bootloader unlocked
  • Root access

Worldwide availability

If you want your reference devices to be a universal standard, then it follows that you should make them available worldwide. If this is not the case, people in different locales will have to make do with different devices, which may carry different behaviours.

Feature support equivalent to consumer phones

There is no point in creating a reference device that does not have support for the same technologies and associated features as the consumer devices you will ultimately be distributing Firefox OS builds and open web apps on.

These include:

  • AGPS/other associated geolocation hardware
  • Phone compass/gyroscope/accelerometer
  • Phone camera(s) with image and video capabilities
  • Vibration hardware
  • SDCard storage
  • Phone ringer
  • Appropriate hardware buttons
  • 3G or better connectivity

Availability of replacement batteries

Replacement batteries can often be really hard to obtain for different devices, and can lead to otherwise useful devices being rendered useless. It is therefore a good idea to make replacement batteries as available as possible.

Easily enabled language choices

Since these device will be distributed worldwide, it is important to make localised builds available for as many languages as possible,  taking into account availability of resources and most popular target market locales.

The most likely solution to this is localised Gaia builds or language packs that can be flashed onto the device separately, and Mozilla is working on a solution to make creation and installation of these as easy as possible.

Document Tags and Contributors

Tags: 
  • Best practices
  • Devices
  • Firefox OS
  • Phones
  • reference device
 Contributors to this page: chrisdavidmills, rbrandao
 Last updated by: chrisdavidmills, Feb 27, 2017, 3:02:07 AM
See also
  1. Build and install
    1. Build and install overview
    2. B2G OS build process summary
    3. Build prerequisites
    4. Preparing for your first build
    5. Building B2G OS
    6. B2G installer add-on
    7. Building B2G OS for Flame on Mac OS X
    8. Choosing how to run Gaia or B2G OS
    9. Compatible Devices
    10. Installing B2G OS on a mobile device
    11. Creating and applying B2G OS update packages
    12. Building and installing FOTA community builds
    13. B2G build variables reference sheet
  2. Porting B2G OS
    1. Porting overview
    2. Porting basics
    3. Porting on CyanogenMod
  3. Developing Gaia
    1. Developing Gaia overview
    2. Running the Gaia codebase
    3. Run Gaia on desktop using Mulet
    4. Understanding the Gaia codebase
    5. Making Gaia code changes
    6. Testing Gaia code changes
    7. Submitting a Gaia patch
    8. Gaia build system primer
    9. Different ways to run Gaia
    10. Make options reference
    11. Gaia tools reference
  4. B2G OS APIs