Opendrop ist ein Befehlszeilen-Tool, mit dem Dateien zwischen Geräten direkt über WLAN geteilt werden können. Seine einzigartige Funktion ist, dass es mit Apple Airdrop Protokoll-kompatibel ist, mit dem Dateien mit Apple-Geräten mit iOS und macOS ausgeführt werden können. Derzeit (und wahrscheinlich auch auf absehbare Zeit) unterstützt Opendrop nur das Senden von Apple-Geräten, die von jedem entdeckt werden können, da der Standard- KONTAPTS-Modus nur von Apple-Signed-Zertifikaten erforderlich ist. Wir unterstützen Geräte nur Kontakte, indem wir extrahierte Airdrop-Anmeldeinformationen (Schlüssel und Zertifikate) von MacOS über unseren Schlüsselbund-Extraktor verwenden.
Opendrop ist experimentelle Software und das Ergebnis von Reverse Engineering -Bemühungen durch das Open Wireless Link Project. Daher unterstützt es nicht alle Merkmale von Airdrop oder ist möglicherweise mit zukünftigen Airdrop -Versionen nicht kompatibel. Opendrop ist nicht mit Apple Inc. angeschlossen oder unterstützt. Verwenden Sie diesen Code auf eigenes Risiko.
Um die Kompatibilität mit Apple Airdrop zu erreichen, benötigt Opendrop die Zielplattform, um eine bestimmte Wi-Fi-Verbindungsschicht zu unterstützen. Darüber hinaus sind Python> = 3,6 sowie mehrere Bibliotheken erforderlich.
Apple Wireless Direct Link. Da Airdrop ausschließlich über Apple Wireless Direct Link (AWDL) läuft, wird Opendrop nur auf MacOS oder Linux-Systemen unterstützt, die eine offene Neuauflagen von AWDL wie OWL ausführen.
Bibliotheken. Opendrop stützt sich auf eine aktuelle Version von Libarchive. MacOS wird mit einer ziemlich alten Version geliefert, sodass Sie eine neuere Version installieren müssen, beispielsweise über Homebrew:
brew install libarchive
Opendrop setzt automatisch DYLD_LIBRARY_PATH
so, dass sie nach der Homebrew -Version suchen. Möglicherweise müssen Sie die Variable selbst aktualisieren, wenn Sie die Bibliotheken unterschiedlich installieren.
Linux-Verteilungen sollten mit aktuelleren Versionen versendet werden, sodass dies nicht erforderlich ist.
Die Installation der Python -Paketfreigabe ist mit pip3
unkompliziert:
pip3 install opendrop
Sie können die aktuelle Entwicklungsversion auch installieren, indem Sie zuerst dieses Repository klonen und dann über pip3
installieren:
git clone https://github.com/seemoo-lab/opendrop.git
pip3 install ./opendrop
Wir erklären kurz, wie Sie Dateien mit opendrop
senden und empfangen. Um alle Befehlszeilenoptionen zu sehen, führen Sie opendrop -h
aus.
Das Senden einer Datei ist in der Regel eine zweistufige Prozedur. Sie entdecken zuerst Geräte in der Nähe mit dem Befehl find
. Stoppen Sie den Vorgang, sobald Sie den Empfänger gefunden haben.
$ 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
Sie können dann eine Datei (oder einen Link, siehe unten) send
$ opendrop send -r 0 -f /path/to/some/file
Asking receiver to accept ...
Receiver accepted
Uploading file ...
Uploading has been successful
Anstelle des index
können Sie auch ID
oder name
verwenden. Opendrop wird versuchen, die Eingabe in der Reihenfolge (1) index
, (2) ID
und (3) name
zu interpretieren und zu fehlen, wenn keine Übereinstimmung gefunden wurde.
Senden eines Weblinks. Seit V0.13 unterstützt Opendrop das Senden von Weblinks, dh URLs, so dass das Empfangen von Apple -Geräten ihren Browser beim Akzeptieren sofort öffnet. (Beachten Sie, dass Opendrop -Empfänger immer noch nur die Empfangen regelmäßiger Dateien unterstützen.)
$ opendrop send -r 0 -f https://owlink.org --url
Das Empfangen ist viel einfacher. Verwenden Sie einfach den receive
. Opendrop akzeptiert alle eingehenden Dateien automatisch und setzt empfangene Dateien in das aktuelle Verzeichnis ein.
$ opendrop receive
Opendrop ist das Ergebnis eines Forschungsprojekts und weist somit mehrere Einschränkungen auf (nicht exexhustive Liste unten). Ich habe nicht die Fähigkeit, selbst an ihnen zu arbeiten, aber freue mich, Hilfe zu leisten, wenn jemand anderes sie übernehmen möchte.
Auslösen von MacOS/iOS -Empfängern über Bluetooth niedriger Energie. Apple -Geräte starten ihre AWDL -Schnittstelle und den Airdrop -Server erst, nachdem sie eine benutzerdefinierte Anzeige über Bluetooth LE erhalten haben (Einzelheiten siehe Usenix -Papier). Dies bedeutet, dass Apple Airdrop -Empfänger möglicherweise nicht entdeckt werden, selbst wenn sie von allen erfasst werden können.
Absender/Empfängerauthentifizierung und Verbindungszustand. Derzeit gibt es keine Peer -Authentifizierung, wie bei Apple Airdrop (1) Opendrop nicht überprüft, ob das TLS -Zertifikat von Apple Root unterzeichnet wird und (2) der Aufzeichnungen über die Apple -ID -Validierung korrekt ist (siehe Usenix -Papier für Einzelheiten) . Außerdem akzeptiert Opendrop automatisch jede Datei, die sie aufgrund eines fehlenden Verbindungsstatus erhält.
Senden mehrerer Dateien. Apple Airdrop unterstützt das Senden mehrerer Dateien gleichzeitig.
Opendrop ist unter der GNU General Public Lizenz v3.0 lizenziert.