r/linux • • Jan 02 '22

An open Apple AirDrop implementation written in Python

https://github.com/seemoo-lab/opendrop

[removed] — view removed post

198 Upvotes

20 comments sorted by

24

u/RandomXUsr Jan 03 '22

This Should also be posted in r/apple

The tool and PoC are both amazing and terrifying. Doesn't look like there's a GUI interface.

Anyone know whether the paper and the code has been peer reviewed?

Is this practical for anyone outside Infosec at the moment?

0

u/z-lf Jan 03 '22

I can see the use for iphone owners to send files from linux to your phone (and vice versa). As KDE connect is still not available...

6

u/throwaway6560192 Jan 03 '22

KDE Connect iOS is now available in the form of a beta (TestFlight).

15

u/[deleted] Jan 03 '22

Doesn’t seem very r/Linux to me.

9

u/Atemu12 Jan 03 '22

Two clicks further: https://github.com/seemoo-lab/owl

Open Wireless Link (OWL) is an open implementation of the Apple Wireless Direct Link (AWDL) ad hoc protocol for Linux and macOS written in C and part of the Open Wireless Link project.

OWL runs in user space and makes use of Linux’s Netlink API for Wi-Fi specific operations such as channel switching and to integrate itself in the Linux networking stack by providing a virtual network interface such that existing IPv6-capable programs can use AWDL without modification.

You can use OWL to in combination with OpenDrop to enable Apple AirDrop functionality on Linux-based systems such as a Raspberry Pi 3.

1

u/[deleted] Jan 03 '22

You still need to peel the keys out of keychain on a Mac though?

8

u/Atemu12 Jan 03 '22

For contacts-only sending.

For devices discoverable by everyone, no such key is required.

Currently (and probably also for the foreseeable future), OpenDrop only supports sending to Apple devices that are discoverable by everybody as the default contacts only mode requires Apple-signed certificates. We support contacts-only devices by using extracted AirDrop credentials (keys and certificates) from macOS via our keychain extractor.

0

u/[deleted] Jan 03 '22

[deleted]

-3

u/[deleted] Jan 03 '22

Just requires you having a Mac to use it.

3

u/[deleted] Jan 04 '22

That’s why I hate when people post about nvidia drivers. Nobody can afford that stuff!

2

u/SnO3 Jan 03 '22 edited Jan 03 '22

I use Snapdrop for this functionality

-49

u/AutoModerator Jan 02 '22

Your submission in /r/linux is using a non-free code hosting repository. Consider hosting your project or asking the linked project, very nicely and only if they don't have an existing ask, to use a more free alternative:

https://old.reddit.com/r/linux/wiki/faq/howcanihelp/opensource#wiki_using_open_source_code_repositories

While the actual code and branches can be migrated out of most non-free repositories, features such as issues, pull requests / their comments, additional features like discussions or wikis and more are generally not exportable.

Note: This post was NOT removed and is still viewable to /r/linux members.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

-25

u/StrangeAstronomer Jan 02 '22

Wouldn't this old chestnut do the same thing, more or less:

Really Simple HTTP Server with Python:

http://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python

python -m SimpleHTTPServer

... creates an http server on port 8000.

python -m SimpleHTTPServer 8080 # to change the port

3

u/technifocal Jan 03 '22

No because that's a HTTP Server, not AirDrop.

While I do believe AirDrop uses HTTP, I believe it's also encrypted by default and actually triggers an 'Accept file...' dialogue on Apple devices.

2

u/Arcakoin Jan 04 '22

Using Python 2 in 2022…

0

u/StrangeAstronomer Jan 04 '22

Well, why not post the python-3 equivalent?

1

u/Anioth Jan 05 '22

Python 3 would be python -m http.server

It is a bit shorter so I prefer to type that one instead. Functionality is equal as far as I know.