Opendrop هي أداة سطر الأوامر تتيح مشاركة الملفات بين الأجهزة مباشرة عبر Wi-Fi. ميزةها الفريدة هي أنها متوافقة مع البروتوكول مع Apple Airdrop والتي تسمح بمشاركة الملفات مع أجهزة Apple التي تعمل على iOS و MacOS. حاليًا (وربما أيضًا في المستقبل المنظور) ، يدعم Opendrop فقط إرسال إلى أجهزة Apple التي يمكن اكتشافها من قبل الجميع لأن وضع جهات الاتصال الافتراضية فقط يتطلب شهادات موقعة من Apple. نحن ندعم أجهزة جهات الاتصال فقط باستخدام بيانات اعتماد Airdrop المستخرجة (المفاتيح والشهادات) من MacOS عبر مستخرج سلسلة المفاتيح لدينا.
Opendrop هو برنامج تجريبي ونتيجة لجهود الهندسة العكسية من قبل مشروع الارتباط اللاسلكي المفتوح. لذلك ، فإنه لا يدعم جميع ميزات Airdrop أو قد تكون غير متوافقة مع إصدارات Airdrop المستقبلية. لا يتم تمييز Opendrop إلى Apple Inc..
لتحقيق التوافق مع Apple Airdrop ، يتطلب OpenDrop من النظام الأساسي المستهدف لدعم طبقة وصلة Wi-Fi محددة. بالإضافة إلى ذلك ، يتطلب Python> = 3.6 بالإضافة إلى العديد من المكتبات.
رابط Apple Wireless Direct. نظرًا لأن Airdrop يعمل بشكل حصري عبر Apple Wireless Direct Link (AWDL) ، فإن Opendrop مدعوم فقط على MacOS أو على أنظمة Linux التي تدير إعادة تنفيذ مفتوحة لـ AWDL مثل OWL.
المكتبات. يعتمد Opendrop على نسخة حالية من Libarchive. يشحن MacOS مع إصدار قديم إلى حد ما ، لذلك ستحتاج إلى تثبيت إصدار أحدث ، على سبيل المثال ، عبر Homebrew:
brew install libarchive
يقوم OpenDrop تلقائيًا بتعيين DYLD_LIBRARY_PATH
للبحث عن الإصدار المنزلي. قد تحتاج إلى تحديث المتغير بنفسك إذا قمت بتثبيت المكتبات بشكل مختلف.
يجب أن تشحن توزيعات Linux بمزيد من الإصدارات الحديثة ، لذلك لن يكون هذا ضروريًا.
تركيب إصدار حزمة Python واضح ومباشر باستخدام pip3
:
pip3 install opendrop
يمكنك أيضًا تثبيت إصدار التطوير الحالي عن طريق استنساخ هذا المستودع الأول ، ثم تثبيته عبر pip3
:
git clone https://github.com/seemoo-lab/opendrop.git
pip3 install ./opendrop
نوضح بإيجاز كيفية إرسال واستقبال الملفات باستخدام opendrop
. لمشاهدة جميع خيارات سطر الأوامر ، قم بتشغيل opendrop -h
.
عادةً ما يكون إرسال ملف إجراء من خطوتين. يمكنك اكتشاف الأجهزة أولاً في قربها باستخدام أمر 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
وفشل إذا لم يتم العثور على تطابق.
إرسال رابط ويب. منذ V0.13 ، يدعم Opendrop إرسال روابط الويب ، أي عناوين URL ، بحيث يتم استلام أجهزة Apple على الفور على متصفحها عند قبولها. (لاحظ أن أجهزة استقبال Opendrop لا تزال تدعم فقط تلقي الملفات العادية.)
$ opendrop send -r 0 -f https://owlink.org --url
الاستلام أسهل بكثير. ببساطة استخدم أمر receive
. سيقبل Opendrop جميع الملفات الواردة تلقائيًا ووضع الملفات المستلمة في الدليل الحالي.
$ opendrop receive
Opendrop هو نتيجة لمشروع بحثي ، وبالتالي ، له العديد من القيود (قائمة غير شاملة أدناه). ليس لدي القدرة على العمل عليهم بنفسي ، لكنني سعيد بتقديم المساعدة إذا أراد شخص آخر أن يأخذها.
تسبب أجهزة استقبال MacOS/iOS عبر الطاقة المنخفضة بلوتوث. تبدأ أجهزة Apple واجهة AWDL وخادم Airdrop فقط بعد تلقي إعلان مخصص عبر Bluetooth LE (انظر ورقة Usenix للحصول على التفاصيل). هذا يعني أنه قد لا يتم اكتشاف أجهزة استقبال Apple Airdrop حتى لو كانت قابلة للاكتشاف من قبل الجميع .
مرسل/مصادقة المتلقي وحالة الاتصال. حاليًا ، لا توجد مصادقة نظير كما هو الحال في Aprop من Apple ، على وجه الخصوص ، (1) لا يتحقق Opendrop من أن شهادة TLS موقعة بواسطة جذر Apple و (2) أن سجل التحقق من معرف Apple صحيح (انظر ورقة Usenix للحصول على التفاصيل) . بالإضافة إلى ذلك ، يقبل OpenDrop تلقائيًا أي ملف يتلقاه بسبب حالة اتصال مفقودة.
إرسال ملفات متعددة. تدعم Apple Airdrop إرسال ملفات متعددة في وقت واحد ، لا يتطلب OpenDrop (سيتطلب إضافة المزيد من الملفات إلى الأرشيف ، وتعديل طلب HTTP /طلب ، إلخ).
تم ترخيص Opendrop بموجب ترخيص GNU General Public V3.0 .