自动配置Boot2Gecko设备。如此简单!
项目描述
自动配置一个Boot2Gecko设备。如此简单!
这是一个命令行脚本,方便在B2G上进行开发,您需要定期将新构建闪存到您的设备上,并立即开始编写代码。
功能
自动下载最新构建并闪存
配置您的设备的WiFi
预装您常用的应用程序
在您的设备上放置自定义首选项
简单直观的命令行
您可以使用配置文件进行所有操作
无摩擦的约定胜于配置
您真的需要这个吗?可能不需要!ezboot是为B2G平台开发者设计的。如果您是B2G 应用程序 开发者,请先尝试Firefox OS模拟器,因为它将为您提供更好的功能(例如,Push To Device)。
要求
Mac或Linux。
在Mac上,您可能需要从https://developer.apple.com/downloads/安装XCode的命令行工具
Windows可能支持,但请准备好发送补丁。
您必须使用已启用Marionette的B2G构建。更多详情请见下文。
Python 2.7或更高版本(目前不支持Python 3)
使用pip命令安装Python包
adb需要存在于您的$PATH中。从Android SDK中获取。
一些额外的Python模块将作为依赖项安装
注意事项
当Marionette启用时,您不应在B2G上启用远程调试设置。这将创建冲突的调试器监听器。有关信息,请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=764913。
内容
安装
您需要pip来安装ezboot。对于B2G 1.2及以上版本,安装当前版本
pip install ezboot
对于较老的B2G版本,安装1.0版本
pip install ezboot1
安装过程会拉取一些依赖项,因此您可能希望使用一个通用的virtualenv,并调整您的$PATH,以便您可以为任何项目使用ezboot,例如/path/to/.virtualenvs/ezboot/bin。
警告:如果您想在系统上同时运行ezboot1和ezboot,必须在virtualenv中分别安装它们。
从源代码安装
git clone git://github.com/kumar303/ezboot.git cd ezboot python setup.py develop
源代码
Marionette
为了使此脚本工作,您必须使用具有Marionette启用的B2G构建闪存您的设备。闪存命令会为您完成此操作。如果您想自己构建带有Marionette支持的B2G的各种版本,请阅读此内容。
初学者
您至少会尝试一次任何事情,对吧?第一次运行ezboot flash时,您可能需要先通过设置 > 设备信息 > 更多信息 > 开发者启用远程调试。否则,adb将无法连接。这仅适用于您使用未启用Marionette的B2G构建进行闪存的情况。如果您从未安装过B2G,则需要启用Android上的调试器连接。
用法
运行此命令以快速参考
ezboot --help
使用Ezboot与Marketplace支付合作
为了刺激您的兴趣,这里有一个ezboot预期使用的完整示例。此文档向您展示了如何创建本地配置文件,并使用ezboot快速准备B2G设备以在Firefox Marketplace支付系统中进行破解。
配置文件
您可以通过在工作目录中创建一个ezboot.ini文件来设置所有参数值的默认值。为每个子命令创建一个部分,使用长参数名作为键。例如
[setup] wifi_ssid = mywifi wifi_key = WPA-PSK wifi_pass = my secure password with spaces apps = https://marketplace-dev.allizom.org/manifest.webapp https://marketplace.allizom.org/manifest.webapp [flash] flash_user = ... flash_pass = ...
使用配置文件可以大大简化ezboot,因为您不必设置常用选项值。
命令
bind
此命令将您的B2G设备上的主机名绑定到运行ezboot的工作站的本地IP地址。参考
ezboot bind --help
这里的用例是您想连接到 http://fireplace.local 或您手机上的某个URL,并访问在您的工作站上运行的开发服务器 http://0.0.0.0:80/。
如果您遇到连接问题,请确保您的移动设备处于同一网络中(您可能需要WiFi)并且您的开发服务器绑定到您的公网IP。如果是Django应用,请确保您以类似以下方式开始
python manage.py runserver 0.0.0.0:8000
因为默认设置,如
python manage.py runserver localhost:8000
将不会绑定到您的公网IP。
如果您有多个接口,ezboot bind 将显示所有可能的选项,您可以从列表中选择一个。
如果您想始终使用特定的接口,则可以使用
ezboot bind --bind_int=...
或者,如果您想设置特定的IP,可以这样做
ezboot bind --bind_ip=...
同样,对于主机也是如此
ezboot bind --bind_host=...
桌面
这将从桌面下载最新的B2G构建并安装以供使用。以下是一个完整的参考
ezboot desktop --help
使用默认参数,它将获取最新的B2G18构建。如果您需要安装不同的构建,只需设置特定平台的URL。例如,如果您在Mac上,并想获取1.0.1版本,设置如下
ezboot desktop --mac64-url http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g18_v1_0_1/b2g-18.0.multi.mac64.dmg
dl
这将从设备下载构建并将其保存到自定义目录。构建将不会闪存到设备,并且任何后续的 reflash 命令都不会尝试使用它。这只是在不登录的情况下获取构建的一种方便方式;flash 命令中的相同用户/密码选项也适用于此。
以下是一个完整的参考
ezboot dl --help
您可以使用 ezboot dl --location=... 设置自定义位置。默认情况下,它将构建保存到 ~/Downloads。
闪光
这将从设备下载构建并将其闪存到您的设备。以下是一个完整的参考
ezboot flash --help
您将需要指定您想闪存的设备,因为每个设备都有一个单独的构建,必须使用该构建来闪存它。您可以这样做
ezboot flash --flash_device unagi
或者,如果您有构建的URL,可以这样做
ezboot flash --flash_url http://pvtbuilds.mozilla.org/...
您还可以在您的 ezboot.ini 配置文件中设置这些
[flash] flash_device = unagi/inari
或者
[flash] flash_url = http://pvtbuilds.mozilla.org/...
注意,如果您同时设置了 flash_url 和 flash_device,则提供的 flash_url 的值将覆盖您提供的设备值默认URL。请参阅完整参考。
其余的默认设置可能适用于您。如果您不想每次都提示输入用户名/密码,您可以将它们保存在一个 ezboot.ini 配置文件中
[flash] flash_user = the_user flash_pass = secret$password
显然船长说不要将密码提交到公共仓库。
http
这将在 暂时 启用HTTP日志记录的情况下重新启动您的手机。以下是一个完整的参考
ezboot http --help
这将在设备上运行B2G,直到您中断它(^C)。完成后,控制台将告诉您在哪里可以找到所有HTTP请求/响应的日志。当您查看文件时,它可能会警告您文件包含二进制内容,但这通常只是在文件的开始处。继续翻页。
安装
从Firefox Marketplace安装应用。
ezboot install --help
这是在 setup 中指定清单URL的替代方法,并允许您按名称安装应用。示例
ezboot install --app 'Sliding Puzzle' --browser
install_mkt
安装 packaged Marketplace 应用的预生产版本。这需要您首先运行 mkt_certs。
ezboot install_mkt --help
示例
ezboot install_mkt --dev
因为需要一些初始化,所以它将从您的B2G浏览器安装应用。
杀死
这会杀死所有正在运行的应用,这在需要重新加载样式、js或其他资源时可能很有用。
ezboot kill --help
recss 命令可能更快。
登录
确保在设备上打开一个 Persona 屏幕,然后输入 ezboot login。以下是一个参考
ezboot login --help
这允许您从您舒适的桌面键盘输入新 Persona 账户的用户名/密码,而不是设备键盘。在现实世界中,这不会那么令人烦恼,因为 Persona 会记住你是谁,但在开发过程中,您将不断输入新账户进行测试。
mkt_certs
这会将证书文件推送到您的设备,以便您可以使用提升权限安装 Marketplace 打包的应用程序(开发版本)并从该 Marketplace 安装已签名的应用程序。如果您只想使用设备上预装的 Marketplace 生产版本,显然不需要这样做。
ezboot mkt_certs --help
向某人索要证书文件(参见 这个问题),下载它,并解压它。您可以像这样为 Marketplace 开发打包应用程序安装证书
ezboot mkt_certs --dev --certs_path ~/Downloads/certdb.tmp/
此命令需要设备 ID,除非您正在使用 unagi。您可以这样配置
[flash] flash_device = <device> flash_device_id = <whatever is reported by adb devices>
如果您使用的是 inari 或设备标识符看起来像 MAC 地址,它可能会失败。如果遇到问题,请运行:adb devices -l 并使用以 usb: 开头的字符串作为 flash_device_id。例如
ezboot mkt_certs --flash_device_id 'usb:1D111300' --dev --certs_path ~/Downloads/certdb.tmp/
重闪光
这会闪烁最后下载的构建,而无需下载新的构建。这是清除设备上 cookie 和其他已保存文物的简单方法。
ezboot reflash --help
有关更多信息,请参阅 flash 命令。
recss
这将在当前框架上重新加载所有样式表。更多信息
ezboot recss --help
设置
这将为您的闪存设备设置使用环境。以下为完整参考
ezboot setup --help
它可以执行以下操作
配置 WiFi
预装一些应用程序
在设备上放置自定义首选项
--apps 参数可以接受多个值。在配置文件中,将它们添加到 ezboot.ini 配置文件中,每行一个,如下所示
[setup] apps = https://marketplace-dev.allizom.org/manifest.webapp https://marketplace.allizom.org/manifest.webapp wifi_ssid = ... wifi_key = WPA-PSK wifi_pass = ...
按照惯例,如果您将自定义首选项文件放在 ./ezboot/custom-prefs.js(其中点代表工作目录),则它将被推送到设备上的 /data/local/user.js。任何现有的自定义首选项都不会保留。
为什么?
虽然自动功能测试很棒,但我还想确保开发者在具有最新构建的实设备上手动测试他们的更改。自己维护开发设备是一件痛苦的事情,所以这创造了一个必须解决的问题。B2G 脚本有很多先例,但每个都有自己的目标,或者它们是用神秘的 bash 魔法完成的。
项目详情
ezboot-2.0.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ac33790526cadcfbde68d5e8fcc6b9bca379e2841b5ff809d9ebfd50f7d1947a |
|
MD5 | ed6e33a4861208fe20fc6faa9fd3e6aa |
|
BLAKE2b-256 | fcfc934c6bc4872b72343ce2ea062d67597cce7448e91d4094c104f05efb6b66 |