Skip to main content

B2G Utilities

Project description

https://travis-ci.org/askeing/b2g-util-python.svg?branch=master

B2G python utilities library, and some tools.

Installation

To install b2g_util, simply running then following command.

Note: You might have to add sudo for getting more permission when install it into your system.

$ pip install -U b2g_util

And the pip and setuptools should be upgraded to latest version before install.

$ sudo pip install -U pip setuptools

Tools Usages

There are some available b2g tools.

  • b2g_backup_restore_profile

  • b2g_check_versions

  • b2g_enable_certapps_devtools

  • b2g_flash_taskcluster

  • b2g_get_crashreports

  • b2g_reset_phone

  • b2g_shallow_flash

b2g_backup_restore_profile

Note: This is a workaround backup/restore solution due to b2g doesn’t have tool to backup/restore profile.

usage: b2g_backup_restore_profile [-h] [-s SERIAL] (-b | -r) [--sdcard]
                                  [--no-reboot] [-p PROFILE_DIR]
                                  [--skip-version-check] [-v]

Workaround for backing up and restoring Firefox OS profiles. (BETA)

optional arguments:
  -h, --help            show this help message and exit
  -s SERIAL, --serial SERIAL
                        Directs command to the device or emulator with the
                        given serial number. Overrides ANDROID_SERIAL
                        environment variable. (default: None)
  -b, --backup          Backup user profile. (default: False)
  -r, --restore         Restore user profile. (default: False)
  --sdcard              Also backup/restore SD card. (default: False)
  --no-reboot           Do not reboot B2G after backup/restore. (default:
                        False)
  -p PROFILE_DIR, --profile-dir PROFILE_DIR
                        Specify the profile folder. (default: mozilla-profile)
  --skip-version-check  Turn off version check between backup profile and
                        device. (default: False)
  -v, --verbose         Turn on verbose output, with all the debug logger.
                        (default: False)

b2g_check_versions

usage: b2g_check_versions [-h] [--no-color] [-s SERIAL] [--log-text LOG_TEXT]
                          [--log-json LOG_JSON] [-v]

Check the version information of Firefox OS.

optional arguments:
  -h, --help            show this help message and exit
  --no-color            Do not print with color. NO_COLOR will overrides this
                        option. (default: False)
  -s SERIAL, --serial SERIAL
                        Directs command to the device or emulator with the
                        given serial number. Overrides ANDROID_SERIAL
                        environment variable. (default: None)
  --log-text LOG_TEXT   Text ouput. (default: None)
  --log-json LOG_JSON   JSON output. (default: None)
  -v, --verbose         Turn on verbose output, with all the debug logger.
                        (default: False)

b2g_enable_certapps_devtools

usage: b2g_enable_certapps_devtools [-h] [-s SERIAL] [--disable] [-v]

Enable/disable Certified Apps Debugging.

optional arguments:
  -h, --help            show this help message and exit
  -s SERIAL, --serial SERIAL
                        Directs command to the device or emulator with the
                        given serial number. Overrides ANDROID_SERIAL
                        environment variable. (default: None)
  --disable             Disable the privileges. (default: False)
  -v, --verbose         Turn on verbose output, with all the debug logger.
                        (default: False)

Please enable "ADB and Devtools" of device.
Ref:
- https://developer.mozilla.org/en-US/docs/Tools/WebIDE
- https://developer.mozilla.org/en-US/docs/Tools/WebIDE/Running_and_debugging_apps#Debugging_apps

b2g_flash_taskcluster

usage: b2g_flash_taskcluster [-h] [--credentials CREDENTIALS] [-n NAMESPACE]
                             [-d DEST_DIR] [-v]

The simple GUI tool for flashing B2G from Taskcluster.

optional arguments:
  -h, --help            show this help message and exit
  --credentials CREDENTIALS
                        The credential JSON file
                        (default: /home/askeing/tc_credentials.json)
  -n NAMESPACE, --namespace NAMESPACE
                        The namespace of task
  -d DEST_DIR, --dest-dir DEST_DIR
                        The dest folder (default: current working folder)
  -v, --verbose         Turn on verbose output, with all the debug logger.

For more information of Taskcluster, see:
- http://docs.taskcluster.net/
- https://pypi.python.org/pypi/taskcluster_util

The tc_credentials.json Template:
    {
        "clientId": "",
        "accessToken": "",
        "certificate": {
            "version":1,
            "scopes":["*"],
            "start":xxx,
            "expiry":xxx,
            "seed":"xxx",
            "signature":"xxx"
        }
    }

Temporary Credentials

You can get your temporary credentials from https://auth.taskcluster.net/ (using Persona with LDAP account).

The temporary credentials will remain valid for 31 days.

Or you can just run taskcluster_login to get your credentials. (Note: it will remove your old credentials file.)

tc_credentials.json

You can put the credentials into tc_credentials.json file under your home folder.

$ <YOUR_EDITOR> ~/tc_credentials.json

The file format will be:

{
        "clientId": "<YOUR_CLIENTID>",
        "accessToken": "<YOUR_ACCESSTOKEN>",
        "certificate": <YOUR_CERTIFICATE>
}

b2g_get_crashreports

usage: b2g_get_crashreports [-h] [-s SERIAL] [-v]

Get the Crash Reports from Firefox OS Phone.

optional arguments:
  -h, --help            show this help message and exit
  -s SERIAL, --serial SERIAL
                        Directs command to the device or emulator with the
                        given serial number. Overrides ANDROID_SERIAL
                        environment variable. (default: None)
  -v, --verbose         Turn on verbose output, with all the debug logger.
                        (default: False)

b2g_reset_phone

usage: b2g_reset_phone [-h] [-s SERIAL] [-v]

Reset Firefox OS Phone.

optional arguments:
  -h, --help            show this help message and exit
  -s SERIAL, --serial SERIAL
                        Directs command to the device or emulator with the
                        given serial number. Overrides ANDROID_SERIAL
                        environment variable. (default: None)
  -v, --verbose         Turn on verbose output, with all the debug logger.
                        (default: False)

b2g_shallow_flash

usage: b2g_shallow_flash [-h] [-s SERIAL] [-g GAIA] [-G GECKO]
                         [--keep-profile] [-v]

Workaround for shallow flash Gaia or Gecko into device.

optional arguments:
  -h, --help            show this help message and exit
  -s SERIAL, --serial SERIAL
                        Directs command to the device or emulator with the
                        given serial number. Overrides ANDROID_SERIAL
                        environment variable. (default: None)
  -g GAIA, --gaia GAIA  Specify the Gaia package. (zip format) (default: None)
  -G GECKO, --gecko GECKO
                        Specify the Gecko package. (tar.gz format) (default:
                        None)
  --keep-profile        Keep user profile of device. Only work with shallow
                        flash Gaia. (BETA) (default: False)
  -v, --verbose         Turn on verbose output, with all the debug logger.
                        (default: False)

Development

To develop the b2g_util, fork project from Github and simply:

$ git clone https://github.com/<YOUR_ACCOUNT>/b2g-util-python.git
$ cd b2g-util-python
$ make dev-env
$ source env-python/bin/activate

Or you can run tests:

$ make test

You also can create the document, and then you can open docs/index.html to access the document.

$ make docs

SSL InsecurePlatformWarning

If you got the following error message when running the tools, please install requests[security] package.

InsecurePlatformWarning: A true SSLContext object is not available.
This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail.
For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

Install package by pip install. Please note it’s not required for Python 2.7.9+.

pip install requests[security]

If you got Setup script exited with error: command ‘gcc’ failed with exit status 1 error when install requests[security], please install libffi-dev. (Ubuntu)

sudo apt-get install libffi-dev

The Other Issues

If you meet any issues related to urllib3, SSL, or tk, please install following packages. (Ubuntu)

sudo apt-get install python python-dev python-setuptools libffi-dev libssl-dev
sudo easy_install pip
sudo pip install -U pip setuptools
sudo pip install -U requests
sudo pip install -U requests[security]

Release History

0.0.15 (2015-11-30)

Features and Improvements

  • Update taskcluster_util to 0.0.25

0.0.14 (2015-11-23)

Features and Improvements

  • Update taskcluster_util to 0.0.24

0.0.13 (2015-11-02)

Features and Improvements

  • Add b2g_flash_taskcluster

0.0.12 (2015-09-15)

Features and Improvements

  • Add space in filepath support for AdbWrapper’s pull and push.

  • Add pending/submitted filepath into result dict object for get_crashreports.

0.0.11 (2015-09-10)

Features and Improvements

  • Add keep profile feature of b2g_shallow_flash.

  • Remove gecko.mstone value from pref.js when backup profile.

0.0.10 (2015-09-09)

Features and Improvements

  • Add b2g_shallow_flash tool.

  • Add adb remount and adb wait-for-device.

  • Modify the decompressor’s method to classmethod.

0.0.9 (2015-09-09)

  • missing some files…

0.0.8 (2015-09-07)

Features and Improvements

  • Modify tools for more reusable.

  • Refactoring.

  • Add JSON output for get_crashreports.

bugfixes

  • Remove unused import.

  • Fix the docstrings from single-quoted to double-quoted string format.

0.0.7 (2015-08-20)

Features and Improvements

  • Stop backup profil when the folder already exists.

  • Refactoring all tools, move prepare() method from __init__() to run().

  • Add new argument “–skip-version-check” for backup_restore_profile.

  • Extract compare_version(), get_profile_path(), and get_version_from_profile() methods.

  • Add docstring for creating the document.

  • Add unittest for backup_restore_profile, and adb_helper.

  • Update README.

bugfixes

  • Remove unused code.

  • Remove the logger from downloader and decompressor.

0.0.6 (2015-08-14)

Features and Improvements

  • Use B2GHelper in b2g_backup_restore_profile.

  • Refactoring the check_versions.

  • Refactoring the backup_restore_profile

bugfixes

  • Skip adding setting of enable_certapps_devtools when it doesn’t need to restart.

0.0.5 (2015-08-13)

Features and Improvements

  • Add b2g_enable_certapps_devtools tool.

  • Add B2GHelper class for Firefox OS operations.

bugfixes

  • some command will stop device with no returncode. e.g. adb shell reboot recovery.

0.0.4 (2015-08-12)

Features and Improvements

  • Add b2g_get_crashreports tool

  • Refactoring the ADBWrapper, it will raise exception when command failed.

  • Return stdout and return code from device when running adb shell command.

bugfixes

  • Set backup/restore arguments as required and put them into same group.

  • Wait a moment when restarting adbd.

0.0.3 (2015-08-06)

Features and Improvements

  • Added the method AdbHelper.get_serial() for getting the adb serial number

  • Modified the classes of adb_helper

  • Modified the code of tools for making them clear

bugfixes

  • Fixed the list index out of range when adb server doesn’t start

  • Fixed the logger handle issue of tools

0.0.2 (2015-08-05)

  • Rename the tools
    • Added the prefix b2g_ of tools

  • Write the README file

0.0.1 (2015-08-05)

  • Initiate the project
    • Basic ADB commands support

    • The b2g_backup_restore_profile (workaround) tool

    • The b2g_check_versions tool

    • The b2g_reset_phone tool

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

b2g_util-0.0.15.tar.gz (29.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page