10 ms·
OpenDrop: An Open Source AirDrop Implementation
- em3rgent0rdr 7y agoThis is great, especially considering that AirDrop is used for instance by Hong Kong protesters to bypass the great firewall [1]. [1] https://qz.com/1660460/hong-kong-protesters-use-airdrop-to-breach-chinas-firewall/ https://qz.com/1660460/hong-kong-protesters-use-airdrop-to-b...
- deleted 7y ago[deleted]
- est 7y agoGFW is only implemented in the mainland China, not Hong Kong. China == (mainland + (Hongkong SAR + Macau SAR) + (... possibly other de jure claims)) To use Airdrop the main advantage is it can be used to spam everyone nearby. If it can be used by protestors it also can be used by advertisers.
- arghwhat 7y agoThey are not using AirDrop to bypass the GFW for themselves, they are using it to spread information to citizens that are otherwise normally subject to GFW and therefore only have government-approved or government-generated information available to them. Mainland news put HK protesters as violent, rebellious youngsters that are causing trouble and injury to everyone else by having greedy demands of something better than what mainland has. Such story leads to minimal sympathy and curiosity. Even knowing that this information is filtered, few will end up truly questioning it, and thus even when they leave GFW, they will not know that there is conflicting information to find.
- gruez 7y agoThat’s a very loose definition of the word “evade” and the headline is definitely misleading. The average person was probably expecting to find some sort of censorship evasion while current being censored.
- arghwhat 7y agoCensorship evasion is doable within minutes for most, which is well known for those interested in it. However, many do not feel compelled to evade it, and have no idea of what happens "on the outside".
- sjnair96 7y agoCensorship evasion is no longer trivial. Deep Packet Inspection (DPI) exists and makes it difficult to use even VPNs. Shadowsocks works but has limited UDP support out of the box iirc.
- arghwhat 7y agoThere are massive regional variations, so what I say is likely not universal, but my non-techie acquaintances still successfully use VPNs, in their case to use services like Facebook and WhatsApp. I do not know what provider they use, but their knowledge of VPNs go no further than knowing that "VPN = facebook access", so it would seem that "commoners" still manage at least in some bigger regions.
- pashky 7y agoAnd in UK it’s used to send dickpics to strangers on the train... opendrop requires to set security level to everybody instead of contacts. If you forget to switch back to default you get instant reminder once you get onto public transport.
- yipeedipee 7y agoNo way! I didnt realise it was able to do that. Pretty cool tbh!
- devtanna 7y agoI wish we had something like AirDrop to work between android and iOS devices.
- jbverschoor 7y agoThere it is
- jeroenhd 7y agoKnowing Apple, such an effort would likely be destroyed by an army of lawyers the moment you bring out an app that provides such features. The Apple ecosystem is very closed and Apple will fight tooth and nail to keep it that way. Removing vendor lock-in would, after all, allow users to try switching to another brand without an enormous amount of hassle.
- michaelkw 7y agoApple's open-source mDNS/DNS-SD implementation mDNSResponder underlies Android's NSD API, so I could one day see seamless interoperability over Wi-Fi Aware being a thing. I wouldn't bet on it happening, but given Windows (which ships with an mDNS/DNS-SD stack) and Android will be doing it before too long, I wouldn't be surprised to see Apple join the party.
- kingosticks 7y agoI hope we'll one day see proper support for mdns in Android. Devs shouldn't have to go out of their way to use the special NSD API to provide mdns functionally in their apps. It should just work at the system level, which to be clear, it does not. It's been years and years in this state, so I can't be as positive.
- neilalexander 7y agoIncidentally, Wi-Fi Aware is based heavily on AWDL but the Wi-Fi Alliance made a number of breaking protocol changes in the Wi-Fi Aware standard. This isn’t exactly Apple’s fault - it could have been interoperable.
- postcynical 7y agoCould this technology be used to create a "shadow" internet/network/messaging service where devices connect and communicate directly with each other. This way governments can't just block internet access or services during demonstrations.
- rlpb 7y ago> this technology XMPP over Zeroconf (https://xmpp.org/extensions/xep-0174.html https://xmpp.org/extensions/xep-0174.html) has already existed for many years and at least previously has been trivial to enable on Ubuntu (I haven't tried it recently).
- oarsinsync 7y agoRequires an underlying network infrastructure to communicate over. Not quite the same as disparate peer to peer wireless mesh.
- rlpb 7y agoIt works with ad-hoc wifi with no other infrastructure requirement or Internet connection, just the same as AirDrop. What more do you require to meet your definition of "disparate peer to peer wireless mesh"?
- bennofs 7y agoI think the point is that most clients probably don't configure the ad-hoc network for you? Or do they?
- rlpb 7y agoI thought we were talking about enabling technologies, rather than specific clients, and that it's a given that a suitable and widely deployed client doesn't currently exist. I consider automatic configuration of an ad-hoc network to be a relatively trivial client implementation detail :)
- new_here 7y agoNot all heroes wear capes.
- krtkush 7y agoI haven't looked at the OP yet but as convenient as AirDrop is, I find its reliance on both BT and WiFi confusing. One needs both the devices to be connected to the same network to be able to able to drop stuff. Few days back my home router broke down and I was unable to send URLs from my iPhone to Mac just because there was no common network. I wish for AirDrop to be more like Pushbullet.
- trollied 7y agoIt doesn't need a wifi network, it's direct device-to-device. In fact, it can be much faster than copying using traditional file shares etc, as wireless routers can slow things down.
- jtbayly 7y agoYes. I've been surprised how very fast it is when sharing videos between devices.
- dannyw 7y agoYou just have to be within bluetooth distance; AirDrop doesn't require the same wifi network. It does require wifi to be enabled, because AirDrop creates its own wifi network side channel for the actual transferring of files.
- krtkush 7y agoReally? I'll give it a try again. It was clearly not working for me when the router was down.
- lawtalkinghuman 7y agoYes, I’ve used it to send photos/videos I’ve taken to friends while outside in places where there are no wifi networks.
- tonyedgecombe 7y ago
- micheljansen 7y agoI wonder if it's more reliable than Apple's own implementation for MacOs. It used to be rock solid – and between iOS devices it still is – but between Macs I regularly have to switch both to "Search for an older Mac" to make them see each other, with no explanation why.
- shimms 7y agoI was complaining about this with a coworker today. AirDrop 1 was flawless, since 2.0 it has been more often than not unreliable between Macs. I’d love to know if anyone knows the technical details about what caused this regression?
- flixic 7y agoInteresting, my own experience has been the opposite. From what I remember v1 was constantly broken, initial v2 was not much better but now everything is very smooth all the time.
- AndrewStephens 7y agoI had the same experience. The first AirDrop worked about 30% of the time, once AirDropv2 came along it works 90% of the time. The "Share Only With Your Contacts" option still seems broken to me, I usually have to temporarily allow all access before AirDropping something.
- knolan 7y agoI had massive issues with Airdrop 2 when it first came out. After many lengthy chats with Apple support it managed to resolve itself. All I can offer and a working solution is signing out and back into iCloud on each affected device. This of course comes with the resync penalty.
- lostgame 7y agoAirDrop 1 never worked for me, ever. With any combination of iOS or MacOS devices. AirDrop 2 is still so finicky I just much rather put stuff on a USB key.
- ekwogefee 7y agoCross-platform local file transfer alternative with resumable file transfer: https://feem.io https://feem.io
- amq 7y agoLooks great, I wonder why it doesn't have more traction.
- flixic 7y agoThe killer feature of AirDrop is that it's built in. Impossible to compete against network effects like that.
- elcomet 7y agoMaybe because it's not free: 5$ a year for 4 devices but only the same type, you cannot install it on your Mac and your iPhone With only one licence. So if you want to transfer between Mac and iPhone, it's at least 10$ a year.
- jclardy 7y agoAnd the other big problem - that is $5 a year just for your own devices. I have plenty of ways to move files from one machine to another, but if I have a file that I want to give to a family member sitting next to me, or a co-worker across the table the chances of him having the same service is zero unless I sell them on it. With AirDrop I just look at what hardware they have and immediately know if it is compatible.
- skrowl 7y agoBecause not only is it not free, but it also has an annual license to use it.
- deleted 7y ago[deleted]
- nesadi 7y agoThis looks interesting. I'm a bit confused though. It seems like all the pricing plans are structured in a way that you're either only paying for iOS devices or for every kind of device except iOS ones. Does this mean transfers between iOS and non-iOS devices aren't supported? Or do I have to buy two plans in order to do it? edit: Okay, on a closer look, it seems like you do need two licenses, because the iOS license can only be purchased through the iOS app. Just wish they'd provide a brief trial so I could test it. edit2: Nevermind, apparently, if you install the apps, you can use them in a limited fashion before buying. It doesn't say anywhere what the limits are, but it says there are limits.
- Fnoord 7y agoInterestingly the article on the bottom links to a Usenix 2019 (held Aug 14 - 16) paper with the title "A Billion Open Interfaces for Eve and Mallory: MitM, DoS, and Tracking Attacks on iOS and macOS Through Apple Wireless Direct Link" Abstract: "Apple Wireless Direct Link (AWDL) is a key protocol in Apple's ecosystem used by over one billion iOS and macOS devices for device-to-device communications. AWDL is a proprietary extension of the IEEE 802.11 (Wi-Fi) standard and integrates with Bluetooth Low Energy (BLE) for providing services such as Apple AirDrop. We conduct the first security and privacy analysis of AWDL and its integration with BLE. We uncover several security and privacy vulnerabilities ranging from design flaws to implementation bugs leading to a man-in-the-middle (MitM) attack enabling stealthy modification of files transmitted via AirDrop, denial-of-service (DoS) attacks preventing communication, privacy leaks that enable user identification and long-term tracking undermining MAC address randomization, and DoS attacks enabling targeted or simultaneous crashing of all neighboring devices. The flaws span across AirDrop's BLE discovery mechanism, AWDL synchronization, UI design, and Wi-Fi driver implementation. Our analysis is based on a combination of reverse engineering of protocols and code supported by analyzing patents. We provide proof-of-concept implementations and demonstrate that the attacks can be mounted using a low-cost ($20) micro:bit device and an off-the-shelf Wi-Fi card. We propose practical and effective countermeasures. While Apple was able to issue a fix for a DoS attack vulnerability after our responsible disclosure, the other security and privacy vulnerabilities require the redesign of some of their services." [1] I got nothing to add regarding OpenDrop other than that I love interoperability, and that I love it when FOSS enables this. [1] https://www.usenix.org/conference/usenixsecurity19/presentation/stute https://www.usenix.org/conference/usenixsecurity19/presentat...
- toxik 7y agoI can’t hep but think that these seemingly numerous security flaws are a product of proprietary software development. There is the old “many eyes” idea for software bugs, but even on a standards level. Did Apple not send out an RFC? Isn’t this type of architectural level screw up exactly what you want to avoid with an RFC? I’m glad Apple are taking the privacy issue to heart, but for every inch we’ve won in privacy, we lost an inch in openness and interoperability. Apple is perhaps one of the worst offenders when it comes to vendor lock-in. I use almost only Apple products out of sheer laziness (and honestly inertia.) At least their war with Qualcomm and NVIDIA creates some competition in their respective markets...
- andrewstuart 7y agoI'm guessing someone will take a $10 esp32 chip and put this code on it and just drop the esp32 in some hidden location and it just sending images to any open airdrop that passes by.
- dvcrn 7y agoI had it a couple times in trains that people tried airdropping me porn when I forgot to turn it off
- tcxqy 7y agoGood things never happen to me.
- perillamint 7y agoESP32 theoretically can provide all of the hardware requirements (WLAN monitor mode, BLE) but there is one missing part: > Triggering macOS/iOS receivers via Bluetooth Low Energy. Apple devices start their AWDL interface and AirDrop server only after receiving a custom advertisement via Bluetooth LE (see USENIX paper for details). This means, that Apple AirDrop receivers may not be discovered even if they are discoverable by everyone. If someone reverse engineer BLE advertisement, yes they can build such hardware.
- Kliment 7y agoThis has been reversed - see https://hexway.io/blog/apple-bleee/ https://hexway.io/blog/apple-bleee/
- NKCSS 7y agoThanks, I did not know about this; looks like something fun to play with :)
- mstute 7y agoThe reverse engineering was already done and everything is described our the paper (https://www.usenix.org/conference/usenixsecurity19 https://www.usenix.org/conference/usenixsecurity19). We just have not implemented it yet.
- andrewstuart 7y agoIs there any valid use cases for something like "legitimate airdrop"? Maybe things like hyper local advertisements.
- azinman2 7y agoI wouldn’t consider that legitimate at all. Legitimate airdrop is its exact intended use case: p2p transfer between people who are both consenting into it.
- mobilemidget 7y agoWould it also be possible to share contacts and links to sites? Thinking of a new reception desk feature (lots of apple customers)
- Fickry 7y agoNo cross platform is mean same sh*t
- edandersen 7y agoHow hard would it be to use this to spam iOS devices where AirDrop is set to "Everyone"?
- epixcz 7y agoXiaomi, Oppo And Vivo just introduced their own version of AirDrop. https://www.forbes.com/sites/bensin/2019/08/19/xiaomi-oppo-and-vivo-team-up-introduces-own-version-of-iphones-airdrop/ https://www.forbes.com/sites/bensin/2019/08/19/xiaomi-oppo-a...
- dijit 7y agoSeems like theirs is not cross-compatible with airdrop. But OpenDrop is.
- rektide 7y agoIf there's a standard for this new thing, apple can stuff it.
- Darman 7y agoYeah typical of isheep, they create biased title for money and traffic. Their pattern for non apple product "XXX (other company) Introduces Own Version Of iPhone's AirDrop". And for apple their title will be like "Apple Introduce Their Very Own Swipe Keyboard".
- mxuribe 7y agoIt is 2019, and it is quite surprising - and disappointing - that we STILL haven't universally solved the means to easily, securely, and (yes, I'll use this term again) universally share files. I wish we could share files in a peer-to-peer fashion securely without hindrance of mobile platform, nor blockage of network MiTM, etc. </sigh>
- staticvoidmaine 7y agoRather than the google solution suggested by a sibling comment, I’d suggest a look at send.firefox.com.
- ahmedfromtunis 7y agoThey don't offer the same solution; Google's works on a peer to peer manner, no internet needed. Firefox's is more like Wetransfer.
- badumtss 7y agoI just wish they'd hurry up and make the android app useable. I signed up for the beta and was pretty disappointed as my uploads were cancelled if my screen locked or, horribly enough, rotated ...
- lostgame 7y agoI never understood coders who don't separate UI threads and network calls - which is exactly what it sounds like is happening, here.
- _underfl0w_ 7y agoWilling to bet their devs came from iOS. That would explain the android-specific quirks.
- lucb1e 7y agoAndroid is Linux, you can always just install it the normal way and use it from a terminal. Maybe that's what you mean by unusable (a terminal isn't very user-friendly, but it solves the file transfer / app availability problem). If I remember correctly, you can configure (I don't know what the default is) to power save or even turn off WiFi on Android when you turn off the screen. Are you sure that's not interfering with this beta app?
- smurfpandey 7y agoAn HTML5 alternative: https://github.com/cowbell/sharedrop https://github.com/cowbell/sharedrop Uses WebRTC for file transfer.
- theomega 7y agoJust to make it more obvious: You don’t have to self host it, there is a free (no registration) Version deployed at https://sharedrop.io https://sharedrop.io Works perfect between IOS, Android, Linux, MacOS and Windows.
- explorigin 7y agoWhy does it need firebase? That doesn't seem to tic the "not-google" box. :-)
- kozziollek 7y agoFilePizza also uses WebRTC without Firebase - https://file.pizza/ https://file.pizza/
- felipeerias 7y agoIf you are interested in possible uses for this kind of technology, my R&D work until recently has been to find use cases for WiFi Aware and bring them to life. Some examples: * 1-tap file transfers: https://darker.ink/static/media/uploads/08_awarebeam_1.mp4 https://darker.ink/static/media/uploads/08_awarebeam_1.mp4 * Sharing presentations, images and drawings: https://darker.ink/static/media/uploads/05_meshpresenter_1.mp4 https://darker.ink/static/media/uploads/05_meshpresenter_1.m... * Playing Quake 3 (OpenArena): https://darker.ink/static/media/uploads/02_openarena_1.mp4 https://darker.ink/static/media/uploads/02_openarena_1.mp4 If you want to know more details, this talk is a good starting point: https://fosdem.org/2019/schedule/event/device_to_device_networks/ https://fosdem.org/2019/schedule/event/device_to_device_netw... https://darker.ink/blog/mobile-design-with-device-to-device-networks/ https://darker.ink/blog/mobile-design-with-device-to-device-...
- bborud 7y agoGod, I wish people would stop using Python for these sorts of things. It is an okay language, but after tracking down why it doesn't build and considering messing around in my system and making either installing older versions of libraries or messing around with symlinks I stopped and asked myself "really? I want to spend my time fixing this?" and just deleted the entire clone of the git repos. Python is a nice language and all, but it is not a language suitable for writing applications that you distribute. (I wish the Python core developer would devote some time to making Python less horrible for distributing applications, but after around 30 years, I don't think so).
- djsumdog 7y agoI honestly haven't run into this issue in a long time. `pip install --user` is one of your friends. Just using the official python:3 docker container is another. If you really want, you can even go back to virtualenvs. npm was also really bad about nothing building or working a few years back. It's improved, and there are alternatives like yarn. Rust/Cargo has this issue as well (whenever I attempted to pick up some Rust; every example I found would break -- constant language changes were an issue; not sure if that's still the case). Package management is a big problem in general, but we have solutions like the ones I've mentioned. This is a bad argument against not using Python. I honestly thing this type of application is fine in Python (you might need a privileged container if you go the docker route; wasn't sure how low level the Wi-Fi stuff it needs is). What language do you recommend for this type of application and why?
- bborud 7y agoPrimarily any language that can produce executable binaries. Preferably statically linked binaries so that you can ship a unit that will not depend on the state of the system you try to run things on. (With disk and memory sizes, dynamically linked binaries aren't really as relevant anymore since the often trivial cost of size more than makes up for the nontrivial cost of having to fiddle around to make things actually work)
- packetlost 7y ago
- rektide 7y agoBalls in Android's court to deliver some kind of p2p connectivity that works beyond Android2android. Can't happen soon enough. Stop playing with yourself & start doing real computing, Android.
- rolltiide 7y agoGet this into Android at the OS level and I would consider one of those sexy flagship devices But it would also need to seamlessly mix bluetooth and wifi discovery too.
- shireboy 7y agoLet's talk for a minute about why all the Apple things aren't open. There is zero about iMessage or AirDrop that should be proprietary. The only reason I know of is vendor lock-in, and that stinks for users. It would be way more helpful to way more people if these features were ubiquitous, open, and standards-based like SMTP or IMAP is for email. We wouldn't except an Apple-only iMail, why do we accept iChat and iPhotoShare?
- lawnchair_larry 7y agoI agree that they should be open, but there are some advantages to the current model besides vendor lock-in. Requiring a device certificate to communicate puts a pretty high bar on the integrity of the system. Being closed also allows unrestricted innovation at a faster pace. It’s very difficult to add features once an open standard is out. Just look at the evolution of the major web browsers for example.
- rtkwe 7y ago> Being closed also allows unrestricted innovation at a faster pace. Theoretically but has there been any new actual development in AirDrop though? From the outside it seems like it's been the same since it was released but my only Apple device is my iPad Pro so I don't really have a use for it.
- Terretta 7y ago
- neop1x 7y agoIt's sad there is a certificate involved so it can't be 100% compatible open alternative. I use Linux with KDE and KDE Connect which offers "send file" functionality from Android and it's enough for my use case.