Opendropは、 Wi-Fiを超えるデバイス間でファイルを直接共有できるコマンドラインツールです。そのユニークな機能は、Apple Airdropとプロトコル互換であり、iOSとMacOを実行しているAppleデバイスとファイルを共有できることです。現在(おそらく予見可能な将来のために)、Opendropは、デフォルトの連絡先のみがAppleに署名した証明書を必要とするため、すべての人が発見できるAppleデバイスへの送信のみをサポートします。キーチェーン抽出器を介して抽出されたエアドロップ資格情報(キーと証明書)をMacOSから使用することにより、コンタクトのみのデバイスをサポートします。
Opendropは実験ソフトウェアであり、Open Wireless Link Projectによるリバースエンジニアリングの取り組みの結果です。したがって、Airdropのすべての機能をサポートしていないか、将来のAirdropバージョンと互換性がない場合があります。 OpendropはApple Inc.に所属していない、または承認されていません。お客様の責任でこのコードを使用してください。
Apple Airdropとの互換性を実現するために、Opendropは特定のWi-Fiリンクレイヤーをサポートするためにターゲットプラットフォームを必要とします。さらに、Python> = 3.6およびいくつかのライブラリが必要です。
Appleワイヤレスダイレクトリンク。 AirDropはApple Wireless Direct Link(AWDL)のみを介して走行するため、OpendropはMacOSまたはOWLなどのAWDLのオープンな再実装を実行しているLinuxシステムでのみサポートされます。
ライブラリ。 Opendropは、Libarchiveの現在のバージョンに依存しています。 Macosはかなり古いバージョンで出荷されるため、たとえばHomeBrewを介して新しいバージョンをインストールする必要があります。
brew install libarchive
Opendropは、自動的にDYLD_LIBRARY_PATH
設定して、Homebrewバージョンを探します。ライブラリを別の方法でインストールする場合は、変数を自分で更新する必要がある場合があります。
Linuxディストリビューションは、より多くの最新のバージョンで出荷する必要があるため、これは必要ありません。
Pythonパッケージリリースのインストールは、 pip3
を使用して簡単です。
pip3 install opendrop
また、このリポジトリを最初にクローン化してから、 pip3
を介してインストールすることにより、現在の開発バージョンをインストールすることもできます。
git clone https://github.com/seemoo-lab/opendrop.git
pip3 install ./opendrop
opendrop
使用してファイルを送信および受信する方法を簡単に説明します。すべてのコマンドラインオプションを表示するには、 opendrop -h
を実行します。
ファイルの送信は通常、2段階の手順です。 find
コマンドを使用して、最初に近接してデバイスを発見します。受信機を見つけたら、プロセスを停止します。
$ opendrop find
Looking for receivers. Press Ctrl+C to stop ...
Found index 0 ID eccb2f2dcfe7 name John’s iPhone
Found index 1 ID e63138ac6ba8 name Jane’s MacBook Pro
その後、ファイル(またはリンク、以下を参照)を使用してsend
できます
$ opendrop send -r 0 -f /path/to/some/file
Asking receiver to accept ...
Receiver accepted
Uploading file ...
Uploading has been successful
index
の代わりに、 ID
またはname
を使用することもできます。 Opendropは、順序(1) index
、(2) ID
、および(3) name
の名前と故障で入力を解釈しようとします。
Webリンクの送信。 v0.13以来、OpendropはWebリンク、IE、URLSの送信をサポートしているため、Appleデバイスを受信すると、受け入れてすぐにブラウザを開きます。 (Opendropレシーバーは、通常のファイルの受信のみをサポートしていることに注意してください。)
$ opendrop send -r 0 -f https://owlink.org --url
受信ははるかに簡単です。 receive
コマンドを使用するだけです。 Opendropは、すべての着信ファイルを自動的に受け入れ、受信ファイルを現在のディレクトリに配置します。
$ opendrop receive
Opendropは研究プロジェクトの結果であるため、いくつかの制限があります(以下の非網羅的なリスト)。私は彼らに自分で取り組む能力はありませんが、他の誰かがそれらを引き受けたいなら、喜んで支援を提供します。
Bluetooth低エネルギーを介してMacOS/IOSレシーバーをトリガーします。 Appleデバイスは、Bluetooth Le経由でカスタム広告を受信した後にのみAWDLインターフェイスとAirdropサーバーを開始します(詳細については、Usenix Paperを参照)。これは、Apple Airdropレシーバーが誰でも発見可能であっても発見されない可能性があることを意味します。
送信者/受信者認証と接続状態。現在、Appleのエアドロップのようにピア認証はありません。特に、(1)Opendropは、TLS証明書がAppleのルートで署名されていることを確認していません。 。さらに、OpenDropは、接続状態が欠落しているため受信したファイルを自動的に受け入れます。
複数のファイルの送信。 Apple Airdropは、複数のファイルの送信を一度にサポートしていますが、Opendropは(アーカイブにさらにファイルを追加する必要があり、HTTP /Askリクエストを変更する必要があります)。
Opendropは、GNU General Public License v3.0に基づいてライセンスされています。