Flash B2G
Shallow-flash Gecko and Gaia on Firefox OS devices from Mozilla's public build server with just one command.
What does it do?
- Downloads build, matched by
device
,channel
anddate
, from http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/ - Flash Gecko and Gaia, a so called shallow flash)
Shallow Flash
?
What is +-------=---+
| Gaia | ] ]
| ------- | ]- Shallow flash ]
| Gecko | ] ]- Base image flash
| ------- | ]
| Gonk | ]
| |
|-----------|
| ⊙ |
+-----------+
Firefox OS has three layers, where most development happens in the Gecko
(browser engine) and Gaia
(user interface) layers. Gonk
and lower contain proprietary bits like hardware drivers and RIL and are therefor not build by Mozilla.
For a full base image flash
check Flame software updates on MDN.
What are the alternatives?
- Download Gecko and Gaia from the Mozilla B2G Nightly FTP and use shallow_flash.sh to flash the packages on your phone.
- Build Gecko and Gaia from source and flash them on your phone.
Dependencies
- Node 10.x
- ADB from the Android SDK
Installation
Use the flash-b2g
command as global NPM command:
> npm install -g flash-b2g
Usage
> flash-b2g --help Shallow-flash Gecko and Gaia on Firefox OS devices from Mozilla's public build server (http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/).Usage: flash-b2g [device] [channel=central] Examples: flash-b2g flame-kk 2.0 Flash a flame with 2.0 build. flash-b2g flame-kk --folder ~/ Flash a flame with a nightly build (downloaded to ~/) flash-b2g flame-kk --folder ~/ --local Flash a Flame device with a previously downloaded build in ~/. flash-b2g hamachi aurora --eng Flash an Hamachi device with an aurora engineering build. Options: --device, -i Device (flame-kk [kitkat base image], flame, helix, hamachi, …) --channel, -c Channel (central, aurora, 1.4, …) [default: "central"] --date, -t Build date (for regression window testing) [default: "latest"] --eng, -e Engineering build (for marionette testing) --dir, -d Directory to keep downloads (defaults to temp) --local, -l Use local files, skipping FTP (requires --dir) --profile, -p Keep profile (no promises) --remotify, -r Set device into development mode --only-remotify Skip flashing, only set development mode --help, -h Show this help
--remotify
Settings for Making life easy for developers (read: not for consumers!). This does not only enable remote debugging but also all the little hidden preferences that make development easier, like disabling lockscreen (which would prevent remote debugging) and the annoying remote debugging prompt.
Preferences
'devtools.debugger.forbid-certified-apps': false
Enable debugging for certified apps'devtools.debugger.prompt-connection': false
Disable prompt for remote debugging'b2g.adb.timeout': 0
Disable remote debugging timeout, (bug 874484)'layout.css.report_errors': false
Disable CSS errors in logcat
Settings
'developer.menu.enabled': true
'ftu.manifestURL': null
Disable First-Time-User experience'debugger.remote-mode': 'adb-devtools'
Enable full remote debugging'screen.timeout': 600
10min screen timeout'lockscreen.locked': false
Unlock screen on launch'lockscreen.enabled': false
Disable lockscreen