この記事では、Gaia での作業のための利用可能な便利なツールを紹介します。
Note: You can find a number of very useful tips and tricks on debugging Firefox OS at the B2G QA Tips and tricks page.
MozITP
MozITP is an all-in-one package bundle for Gaia related tools. It contains pre-configured flash tool (b2g_util), b2g-installer and Gaia Integration Test environment. You can use MozITP to test Gaia Integration Test on Mulet, emulator or real devices. You can also flash builds from TaskCluster or b2g-installer blob-free builds.
Foxbox
Foxbox is a build automation script that builds a full Gaia development environment with the Gaia build hosted inside a VM, which is also accessible from the host machine (meaning you can still workon it using your favourite text editor, etc.) This works on all platforms, but should be especially useful to Windows users as the regular Gaia build procedure doesn't work on a standard Windows environment.
Backup/restore/flashing tools
Tools to backup your profile, etc.
b2g_util
The b2g_util tools package provides a variety of tools to help you with debugging Firefox OS. It can:
- Check the installed b2g version
- Get the crash report link
- Reset the device
- Enable/disable the cert apps for WebIDE
- Backup/restore your profile (currently not complete, but a workaround is provided for now.)
To install it, you first need Python 2.7, pip, and setuptools. then you can run:
sudo pip install -U b2g_util
Once installation is complete, you can connect your device and test it by issuing the following command to get the installed b2g version:
b2g_check_versions
pc-sync-tool
The pc-sync-tool is an app available in the Firefox Marketplace that backs up your data/profile. It must be used in conjunction with the Firefox OS assistant add-on for desktop.
Backup and restore profile
To backup and restore data you can use our backup_restore_profile.py
tool, which is contained in the B2G-flash-tool Git repo.
- Clone the above repo (
git clone https://github.com/Mozilla-TWQA/B2G-flash-tool
.) - Make sure that your phone is connected via USB to your computer, and that ADB (see Important steps to follow first above) and Debugging via USB (in your device's Developer settings) are enabled.
- cd into the cloned directory
To backup data:
python backup_restore_profile.py -b
This should save your device profile to a directory called mozilla-profile
, in the same directory as the script is located. To restore your backup:
python backup_restore_profile.py -r
Note: To display a full list of options for the tool, run it with a -h
or --help
flag.
B2G-flash-tool
The B2G-flash-tool repo also contains many other tools for rapid flashing of new builds to devices and related tasks — ideal for QA work. For example:
- flash_pvt.py — The main tool for flashing new builds.
- change_channel.sh — Allows you to quickly change a phone's update channel.
- check_versions.py — Returns the version og B2G installed on a device.
- shallow_flash.sh — Shallow flashes Gaia and/or Gecko onto a device (shallow_flash.bat available for Windows, too).
- update_system_fonts.sh — Updates the system fonts on B2G v2.1 (バグ 1032874).
Debugging tools
Tools that perform debugging functions.
WebIDE
Firefox's WebIDE tool deserves a special mention here — as well as just testing and debugging apps, it is also useful for monitoring performance, memory usage, etc. (see Monitoring performance.)
get_crashreports.sh
Contained with the the B2G-flash-tool repo, get_crashreports.sh retrieves device crash reports (/data/b2g/mozilla/Crash Reports/
.)
B2G root directory tools
There are a number of scripts in the B2G root directory that perform various useful debugging functions, such as:
- run-gdb.sh: Runs the gdb command line debugger (see Debugging B2G using gdb and related tools for more details.)
- run-valgrind.sh: Runs the Valgrind debugger (see Debugging B2G using Valgrind for more information.)
- watch-procrank.sh: Returns memory consumption information via the procrank tool.
Other misc tools
There are a number of helpful tools located in the gaia/tools/ directory, and other places
png_recompress.sh
Located at gaia/tools/, png_recompress.sh is a PNG image compressor. You can run it with the following command structure:
$ ./tools/png_recompress.sh -v bg.png
This will remove unnecessary metadata and further compress the png; it can save up to 99.5% of the file size, which has a very measurable impact on an app's ZIP size and memory footprint.
svg_recompress.sh
Located at gaia/tools/, svg_recompress.sh is an SVG compressor.
cache_sync.py
Located at gaia/tools/, cache_sync.py synchronizes the offline cache of an external app into a local directory structure. This should be run from the base directory of an app in gaia/external-apps. It builds a directory for each known origin in the offline cache.
edit_prefs.sh
Located in the B2G root directory, edit_prefs.sh provides an easy way to retrieve device prefs.