mozilla

Revision 624317 of Firefox OS

  • Revision slug: Mozilla/Firefox_OS
  • Revision title: Firefox OS
  • Revision id: 624317
  • Created:
  • Creator: ziyunfei
  • Is current revision? No
  • Comment cleanup

Revision Content

Firefox OS is a new mobile operating system, developed by Mozilla, and based on Linux and the Gecko engine that powers Firefox.

Firefox OS is open source and therefore free from proprietary technology, while still providing the power to allow application developers to create excellent products. In addition, it's flexible and capable enough to make the end user happy.

For Web developers, the most important part to understand is that the entire user interface is a web app capable of displaying and launching other Web apps. Any modifications you make to the user interface and any applications you create to run on Firefox OS are web apps created using HTML, CSS, and JavaScript, albeit with enhanced access to the mobile device's hardware and services.

From a product perspective, Firefox OS is Mozilla's (and our OEM partner's) branding and support services applied on top of Boot to Gecko (B2G), which is the operating system's engineering codename. Boot to Gecko is developed by a team of engineers inside Mozilla plus many external contributors from the wider Mozilla/open source community.

Build apps for Firefox OS

Head over to our Apps Center for all the information you could possibly need on building open web apps that can be installed on Firefox OS!

Platform guide

Guides for platform developers on how the different components of the Firefox OS platform fit together and work.

Build & install

Guides covering building and installing Firefox OS on an emulator, compatible device, or desktop simulator.

Developer phones

Information on specific developer phones, such as tweaking, updating, recovering, and buying.

External resources

Note: We are keeping track of ongoing work on Firefox OS documentation on our Firefox OS documentation status page. If you want to help contribute to Firefox OS documentation, please have a look at this page to see what work needs doing!

{{CommunityBox("Firefox OS", "dev-b2g", "mozilla.dev.b2g", "b2g", "Other IRC channels|irc://irc.mozilla.org/gaia|#gaia|Discuss Gaia, the Firefox OS user experience++irc://irc.mozilla.org/openwebapps|#openwebapps|Talk with Web app developers++irc://irc.mozilla.org/webapi|#webapi|Discuss Web APIs used to create powerful Web apps")}}

  1. Introduction
  2. Platform guide
    1. Architecture overview
    2. Apps architecture
    3. Gonk
    4. Gecko
    5. Gaia
    6. Gaia apps guide
    7. Security
    8. Out of memory management on Firefox OS
    9. Feature support chart
    10. Settings list
  3. Build and install
    1. Firefox OS build overview
    2. Build prerequisites
    3. Preparing for your first build
    4. Building Firefox OS
    5. Porting Firefox OS
    6. Choosing how to run Gaia or Firefox OS
    7. Using the Firefox OS desktop client
    8. Using the Firefox OS emulators
    9. Installing Firefox OS on a mobile device
    10. Creating and applying Firefox OS update packages
    11. Runtime tools
  4. Developing Firefox OS
    1. Filing bugs against Firefox OS
    2. Market customizations guide
    3. Modifying the hosts file
    4. Customization with the .userconfig file
    5. Customizing the keyboard in Firefox OS apps
    6. Customizing the b2g.sh script
    7. Localizing Firefox OS
  5. Developing Gaia
    1. Running the Gaia codebase
    2. Understanding the Gaia codebase
    3. Making Gaia code changes
    4. Testing Gaia code changes
    5. Submitting a Gaia patch
    6. Gaia build system primer
    7. Customizing build-time apps
    8. Make options reference
    9. Gaia tools reference
  6. Developer phone guide
    1. Phone and device specs
    2. Geeksphone
    3. ZTE OPEN
    4. ZTE OPEN C
    5. Flame
    6. General device features
    7. Troubleshooting
    8. Best practices for open reference devices
  7. Firefox OS release notes
    1. Firefox OS 2.0 for developers
    2. Firefox OS 1.4 for developers
    3. Firefox OS 1.3 for developers
    4. Firefox OS 1.2 for developers
    5. Firefox OS 1.1 for developers
    6. Firefox OS 1.0.1 for developers
  8. Testing
    1. Firefox OS testing resources directory
    2. Running tests on Firefox OS: A guide for developers
    3. Gaia UI tests
    4. Gaia integration tests
    5. Gaia unit tests
    6. Gaia performance tests
    7. Mochitests
    8. Reftests
    9. WebAPI tests
    10. xpcshell tests
    11. Endurance tests
    12. MTBF test
    13. Marionette
    14. TBPL
    15. Jenkins
  9. Debugging
    1. Developer settings for Firefox OS
    2. Connecting a Firefox OS device to the desktop
    3. Setting up to debug Firefox OS using Firefox developer tools
    4. On-device console logging
    5. Installing and using ADB
    6. Taking screenshots
    7. Using the Firefox OS app manager
    8. Debugging out of memory errors on Firefox OS
    9. Debugging B2G using gdb
    10. Debugging B2G using Valgrind

Revision Source

<div class="summary">
 <p><span class="seoSummary">Firefox OS is a new mobile operating system, developed by Mozilla, and based on Linux and the Gecko engine that powers Firefox.</span></p>
</div>
<div class="column-container zone-callout">
 <p><strong>Firefox OS</strong> is open source and therefore free from proprietary technology, while still providing the power to allow application developers to create excellent products. In addition, it's flexible and capable enough to make the end user happy.</p>
 <p>For Web developers, the most important part to understand is that the <strong>entire user interface is a web app</strong> capable of displaying and launching other Web apps. Any modifications you make to the user interface and any applications you create to run on Firefox OS are web apps created using HTML, CSS, and JavaScript, albeit with enhanced access to the mobile device's hardware and services.</p>
 <p>From a product perspective, Firefox OS is Mozilla's (and our OEM partner's) branding and support services applied on top of <strong>Boot to Gecko</strong> (<strong>B2G</strong>), which is the operating system's engineering codename. Boot to Gecko is developed by a team of engineers inside Mozilla plus many external contributors from the wider Mozilla/open source community.</p>
</div>
<section class="outer-apps-box" id="sect1">
 <h2 id="Build_apps_for_Firefox_OS"><a href="/en-US/Apps">Build apps for Firefox OS</a></h2>
 <p>Head over to our Apps Center for all the information you could possibly need on building open web apps that can be installed on Firefox OS!</p>
</section>
<div class="column-container">
 <div class="column-third">
  <h2 id="Platform_guide"><a href="/en-US/docs/Mozilla/Firefox_OS/Platform">Platform guide</a></h2>
  <p>Guides for platform developers on how the different components of the Firefox OS platform fit together and work.</p>
  <ul>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk">Gonk</a></li>
   <li><a href="/en-US/docs/Mozilla/Gecko" title="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
  </ul>
 </div>
 <div class="column-third">
  <h2 id="Build_.26_install"><a href="/en-US/docs/Mozilla/Firefox_OS/Build_and_install">Build &amp; install</a></h2>
  <p>Guides covering building and installing Firefox OS on an emulator, compatible device, or desktop simulator.</p>
  <ul>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="Mozilla/Firefox_OS/Firefox OS build prerequisites">Firefox OS build prerequisites</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="Mozilla/Firefox_OS/Preparing for your first B2G build">Preparing for your first build</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Building" title="Mozilla/Firefox_OS/Building">Building Firefox OS</a></li>
  </ul>
 </div>
 <div class="column-third">
  <h2 id="Developer_phones"><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide">Developer phones</a></h2>
  <p>Information on specific developer phones, such as tweaking, updating, recovering, and buying.</p>
  <ul>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Troubleshooting">Troubleshooting</a></li>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Phone_specs">Phone and device specs</a></li>
  </ul>
 </div>
</div>
<div class="column-container equalColumnHeights">
 <div class="zone-callout">
  <h2 id="External_resources"><strong>External resources</strong></h2>
  <ul>
   <li>Written by <a href="https://twitter.com/soapdog">Andre Alves Garzia</a>, the <a href="https://leanpub.com/quickguidefirefoxosdevelopment">Quick Guide For Firefox OS App Development</a> is available for free in PDF, ePUB and MOBI formats. Check it out today.</li>
   <li>Bob Thulfram has released <a href="http://www.amazon.com/dp/B00IZUYIGO"><span id="btAsinTitle">Beginning Firefox OS HTML5 Game Programming</span></a> on Amazon (also see his <a href="http://firefoxosgaming.blogspot.co.uk/">Firefox OS gaming blog</a>.)</li>
  </ul>
 </div>
 <div class="zone-callout">
  <h2 id="Other_useful_pages"><strong>Other useful pages</strong></h2>
  <ul>
   <li><a href="http://www.mozilla.org/en-US/styleguide/products/firefox-os/">Firefox OS styleguide</a></li>
   <li><a class="link-https" href="https://wiki.mozilla.org/B2G/FAQ" title="B2G/FAQ">Mozilla wiki FAQ</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart">Feature support chart</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Geeksphone_FAQ" title="/en-US/docs/Mozilla/Firefox_OS/Geeksphone_FAQ">Geeksphone FAQ</a></li>
  </ul>
 </div>
</div>
<div class="note">
 <p><strong>Note:</strong> We are keeping track of ongoing work on Firefox OS documentation on our <a href="/en-US/docs/MDN/Doc_status/Firefox_OS">Firefox OS documentation status</a> page. If you want to help contribute to Firefox OS documentation, please have a look at this page to see what work needs doing!</p>
</div>
<p>{{CommunityBox("Firefox OS", "dev-b2g", "mozilla.dev.b2g", "b2g", "Other IRC channels|irc://irc.mozilla.org/gaia|#gaia|Discuss Gaia, the Firefox OS user experience++irc://irc.mozilla.org/openwebapps|#openwebapps|Talk with Web app developers++irc://irc.mozilla.org/webapi|#webapi|Discuss Web APIs used to create powerful Web apps")}}</p>
<h2 id="Subnav">Subnav</h2>
<ol>
 <li><a href="/en-US/Firefox_OS/Introduction">Introduction</a></li>
 <li><a href="/en-US/Firefox_OS/Platform" title="Documentation about the Firefox OS platform, including Gonk, Gaia, and everything in between.">Platform guide</a>
  <ol>
   <li><a href="/en-US/Firefox_OS/Platform/Architecture" title="An overview of how Firefox OS is structured internally; this is primarily of interest to platform developers and people doing porting work.">Architecture overview</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Apps_architecture" title="An overview of the application model on Firefox OS.">Apps architecture</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Gonk" title="Documentation about Gonk, the operating system layer underneath Gaia. This consists of a Linux kernel and a hardware abstraction layer to which Gecko communicates.">Gonk</a></li>
   <li><a href="/en-US/Gecko" title="Gecko is the layer of Firefox OS that provides the same open web standards implementation used by Firefox and Thunderbird, as well as many other applications.">Gecko</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Gaia" title="Documentation about Gaia, the user interface application for Firefox OS devices; this is a Web application running atop the Firefox OS software stack.">Gaia</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps guide</a></li>
   <li><a href="/en-US/Firefox_OS/Security" title="Documentation about security in Firefox OS">Security</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">Out of memory management on Firefox OS </a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Feature_support_chart" title="A chart of which features are available in which types of Firefox OS builds.">Feature support chart</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Settings_list" title="A list of common setting names that can be used with the settings API">Settings list</a></li>
  </ol>
 </li>
 <li><a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS" title="This includes documentation for building and installing the platform onto devices, as well as building the simulator and emulators.">Build and install</a>
  <ol>
   <li><a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_overview">Firefox OS build overview</a></li>
   <li><a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites" title="Steps to take before you build Firefox OS for the first time.">Build prerequisites</a></li>
   <li><a href="/en-US/Firefox_OS/Preparing_for_your_first_B2G_build" title="Before you can build Firefox OS, you need to clone the repository and configure your build.">Preparing for your first build</a></li>
   <li><a href="/en-US/Firefox_OS/Building" title="How to build Firefox OS.">Building Firefox OS</a></li>
   <li><a href="/en-US/Firefox_OS/Porting" title="Information about how to port Firefox OS to new devices.">Porting Firefox OS</a></li>
   <li><a href="/en-US/Firefox_OS/Choosing_how_to_run_Gaia_or_B2G" title="Using Gaia within Firefox, running Firefox OS on a mobile device, or in a desktop-based simulator. Which is best?">Choosing how to run Gaia or Firefox OS</a></li>
   <li><a href="/en-US/Firefox_OS/Using_the_B2G_desktop_client" title="Simulating the Gaia environment in a desktop application - more accurate than running Gaia in Firefox but not as accurate as the emulators.">Using the Firefox OS desktop client</a></li>
   <li><a href="/en-US/Firefox_OS/Using_the_B2G_emulators" title="A guide to building and using the Firefox OS emulators, and when to use which emulator.">Using the Firefox OS emulators</a></li>
   <li><a href="/en-US/Firefox_OS/Installing_on_a_mobile_device" title="How to install Firefox OS on a real mobile device.">Installing Firefox OS on a mobile device</a></li>
   <li><a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Creating and applying Firefox OS update packages</a></li>
   <li><a href="/en-US/Firefox_OS/Runtime_tools">Runtime tools</a></li>
  </ol>
 </li>
 <li><a href="/en-US/Firefox_OS/Developing_Firefox_OS" title="Hack the OS, customize your builds, get things the way you think they should be!">Developing Firefox OS</a>
  <ol>
   <li><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Filing bugs against Firefox OS</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Market_customizations_guide">Market customizations guide</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Firefox_OS/modifying_hosts_file" title="A guide to what can be achieved by modifying the Firefox OS hosts file.">Modifying the hosts file</a></li>
   <li><a href="/en-US/Firefox_OS/Customization_with_the_.userconfig_file" title="How to customize the build and execution of Firefox OS by changing the .userconfig file.">Customization with the .userconfig file</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Customizing_the_keyboard">Customizing the keyboard in Firefox OS apps</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Customizing_the_b2g.sh_script">Customizing the b2g.sh script</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Localizing_Firefox_OS">Localizing Firefox OS</a></li>
  </ol>
 </li>
 <li><a href="/en-US/Firefox_OS/Developing_Gaia">Developing Gaia</a>
  <ol>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/Test_Gaia_code_changes">Testing Gaia code changes</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Gaia/Build_System_Primer">Gaia build system primer</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/Customizing_build-time_apps">Customizing build-time apps</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
   <li><a href="/en-US/Firefox_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
  </ol>
 </li>
 <li><a href="/en-US/Firefox_OS/Developer_phone_guide" title="A developer's guide to the Firefox OS developer phones available.">Developer phone guide</a>
  <ol>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Phone_specs">Phone and device specs</a></li>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Geeksphone">Geeksphone</a></li>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/ZTE_OPEN">ZTE OPEN</a></li>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/ZTE_OPEN_C">ZTE OPEN C</a></li>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame">Flame</a></li>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Firefox_OS_device_features">General device features</a></li>
   <li><a href="/en-US/Firefox_OS/Troubleshooting" title="A guide to resolving common problems with Firefox OS.">Troubleshooting</a></li>
   <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Best_practices_open_reference_devices">Best practices for open reference devices</a></li>
  </ol>
 </li>
 <li><a href="/en-US/Firefox_OS/Releases" title="This section of the site contains release notes, explaining what new features and changes of significance to developers have landed in each new release of Gaia and Gecko on Firefox OS.">Firefox OS release notes</a>
  <ol>
   <li><a href="/en-US/Firefox_OS/Releases/Firefox_OS_2.0_for_developers">Firefox OS 2.0 for developers</a></li>
   <li><a href="/en-US/Firefox_OS/Releases/1.4">Firefox OS 1.4 for developers</a></li>
   <li><a href="/en-US/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li>
   <li><a href="/en-US/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li>
   <li><a href="/en-US/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li>
   <li><a href="/en-US/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li>
  </ol>
 </li>
 <li><a href="/en-US/Firefox_OS/Platform/Automated_testing">Testing</a>
  <ol>
   <li><strong><a href="/en-US/Firefox_OS/Platform/Automated_testing">Firefox OS testing resources directory</a></strong></li>
   <li><a href="/en-US/Firefox_OS/Running_Tests_on_Firefox_OS_for_Developers">Running tests on Firefox OS: A guide for developers</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/gaia-ui-tests">Gaia UI tests</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Gaia_integration_tests">Gaia integration tests</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Gaia_unit_tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests">Gaia unit tests</a></li>
   <li><a href="/en-US/Firefox_OS/Platform/Automated_testing/Gaia_performance_tests">Gaia performance tests</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Mochitests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Mochitests">Mochitests</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Reftests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Reftests">Reftests</a></li>
   <li><a href="/en-US/docs/Marionette/Marionette_JavaScript_Tests" title="/en-US/docs/Marionette/Marionette_JavaScript_Tests">WebAPI tests</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/XPCShell" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/XPCShell">xpcshell tests</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/endurance_tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/endurance_tests">Endurance tests</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/MTBF_tests">MTBF test</a></li>
   <li><a href="/en-US/docs/Marionette" title="/en-US/docs/Marionette">Marionette</a></li>
   <li><a href="/en-US/docs/Mozilla/Firefox_OS/TBPL">TBPL</a></li>
   <li><a class="external external-icon" href="https://wiki.mozilla.org/QA/Execution/Web_Testing/Automation/Jenkins">Jenkins</a></li>
  </ol>
 </li>
 <li><a href="/en-US/Firefox_OS/Debugging" title="A guide to debugging both your mobile apps and Firefox OS itself.">Debugging</a>
  <ol>
   <li><a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings for Firefox OS</a></li>
   <li><a href="/en-US/Firefox_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop">Connecting a Firefox OS device to the desktop</a></li>
   <li><a href="/en-US/Firefox_OS/Debugging/Setting_up">Setting up to debug Firefox OS using Firefox developer tools</a></li>
   <li><a href="/en-US/Firefox_OS/Debugging/On-device_console_logging">On-device console logging</a></li>
   <li><a href="/en-US/Firefox_OS/Debugging/Installing_ADB">Installing and using ADB</a></li>
   <li><a href="/en-US/Firefox_OS/Firefox_OS_usage_tips/taking_screenshots">Taking screenshots</a></li>
   <li><a href="/en-US/Firefox_OS/Using_the_App_Manager" title="A tool that allows you to install open web apps from your computer to a device capable of installing them (such as Firefox OS) - and debug any running app.">Using the Firefox OS app manager</a></li>
   <li><a href="/en-US/Firefox_OS/Debugging/Debugging_OOMs">Debugging out of memory errors on Firefox OS</a></li>
   <li><a href="/en-US/Firefox_OS/Debugging/Debugging_B2G_using_gdb">Debugging B2G using gdb</a></li>
   <li><a href="/en-US/Firefox_OS/Debugging/Debugging_B2G_using_valgrind">Debugging B2G using Valgrind</a></li>
  </ol>
 </li>
</ol>
Revert to this revision