OONI Probe 是一款自由且开源的软件,旨在测量互联网审查及其他形式的网络干扰。
这是 OONI Probe 的桌面版实现。
我们的两个主要目标平台是:
此外,由于它是用 electron 编写的,我们计划也支持 Linux 桌面用户。
关于选择使用 electron 以及我们所选用库的一些背景信息,请参阅:编写一个现代跨平台桌面应用。
为了开始对此进行开发,我们假设你已经安装了 node 和 yarn。
然后你可以运行:
yarn install
你还需要将编译好的 probe-cli 和 tor 二进制文件复制到你计划进行开发的平台对应的目录中。
要验证下载的 tor 二进制文件,你应按如下方式导入 tor 开发者的 PGP 密钥(可从以下地址验证: https://support.torproject.org/tbb/how-to-verify-signature/):
gpg --recv-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
然后,你可以通过运行以下命令来下载这些资源:
yarn run download:probe-cli
yarn run download:tor
要构建并运行开发模式的 electron 实例,请执行:
yarn run start
data/lang-en.csvnode scripts/update-translations.jsdata/lang-en.csv、lang/*.json 和 renderer/static/translations.js 提交到 git从另一位有权访问的 OONI 开发者处获取我们团队(YWCG8FZTLT)的开发证书和私钥。他们需要确保不仅导出证书,还要导出相关的私钥。你应该会收到一个包含两者的、经过密码加密的 .p12 文件。只需双击该文件并提供密码,即可将证书和密钥导入你的钥匙串。完成后,使用 rm -P 处置该 .p12 文件。
在根目录下创建一个 .env 文件,内容如下:
GH_TOKEN=TOKEN
[email protected]
OONI_APPLEIDPASS=XXXX
OONI_TEAMID=YWCG8FZTLT
其中 TOKEN 是个人 github token,需具备 repository 权限范围;[email protected] 是你在我们团队中使用的 Apple ID;XXXX 是通过访问 appleid.apple.com 并以 [email protected] 登录后创建的专用应用密码;YWCG8FZTLT 是 OONI 使用的团队 ID。
然后,运行:
yarn install
yarn pack:mac
这将构建 ./dist/OONI Probe-$VERSION.dmg。
你需要一份以 .p12 结尾的 Windows 代码签名密钥副本。
要生成已签名的构建,你必须设置以下环境变量:
WIN_CSC_LINK=/path/to/key.p12
WIN_CSC_KEY_PASSWORD=KEY_PASSWORD
然后你就可以运行:
yarn install
yarn run pack:win
运行:
yarn install
yarn run publish:mac
yarn run publish:win
重要提醒:在 yarn run publish 命令成功运行之前,请务必不要推送即将发布的版本的标签。如果提前推送,OONI Probe Desktop 应用的用户在启动应用时会遇到错误,因为自动更新系统会尝试获取与该标签关联的元数据。