
インターネット検閲、トラフィック操作、その他のネットワーク干渉を検出するOONI Probeネットワーク測定テストを実行するためのクロスプラットフォームElectronデスクトップアプリ。
OONI Probe は、インターネット検閲やその他のネットワーク干渉を測定するために設計された、無料のオープンソースソフトウェアです。
その他の対応プラットフォーム: iOS、Desktop、CLI
これは OONI Probe のデスクトップ版実装です。
主なターゲットプラットフォームは次の 2 つです:
さらに、electron で書かれているため、Linux デスクトップユーザーもサポートする予定です。
electron を採用した決定や、使用するライブラリの選択に関する背景については、次を参照してください: Writing a modern cross-platform desktop app。
このプロジェクトの開発を始めるには、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.csv に保存しますnode scripts/update-translations.js を実行しますdata/lang-en.csv、lang/*.json、renderer/static/translations.js を git にコミットします私たちのチーム (YWCG8FZTLT) の開発用証明書と秘密鍵を、それらにアクセスできる別の OONI 開発者から入手します。その開発者は、証明書だけでなく関連する秘密鍵もエクスポートするようにしてください。両方を含む、パスワードで暗号化された .p12 ファイルを受け取るはずです。このファイルをダブルクリックし、パスワードを入力して証明書と鍵をキーリングにインポートします。その後、rm -P を使用して .p12 ファイルを破棄します。
ルートディレクトリに以下の内容で .env ファイルを作成します:
GH_TOKEN=TOKEN
[email protected]
OONI_APPLEIDPASS=XXXX
OONI_TEAMID=YWCG8FZTLT
ここで、TOKEN はリポジトリスコープを持つ個人用 GitHub トークンであり、[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 アプリのユーザーがアプリを起動した際にエラーが発生します。これは、自動更新システムがそのタグに関連付けられたメタデータを取得しようとするためです。