Skip to content

hajekj/FindMy.py

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

55 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FindMy.py

The all-in-one library that provides everything you need to query Apple's FindMy network!

The current "Find My-scene" is quite fragmented, with code being all over the place across multiple repositories, written by several authors. This project aims to unify this scene, providing common building blocks for any application wishing to integrate with the Find My network.

Important

This project is currently in Alpha. While existing functionality will likely not change much, the API design is subject to change without prior warning.

You are encouraged to report any issues you can find on the issue tracker!

Features

  • Cross-platform: no Mac needed
  • Fetch location reports
    • Apple acount sign-in
    • SMS 2FA support
  • Scan for nearby FindMy-devices
    • Decode their info, such as public keys and status bytes
  • Import or create your own accessory keys
  • Both async and sync APIs

Roadmap

  • Trusted device 2FA
    • Work has been done, but needs testing (I don't own any Apple devices)
  • Local anisette generation (without server)
    • Can be done using pyprovision, however I want to wait until Python wheels are available.

Installation

The package can be installed from PyPi:

pip install findmy

For usage examples, see the examples directory. Documentation coming soonβ„’.

Contributing

Want to contribute code? That's great! For new features, please open an issue first so we can discuss.

This project uses Ruff for linting and formatting. Before opening a pull request, please ensure that your code adheres to these rules. There are pre-commit hooks included to help you with this, which you can set up as follows:

pip install poetry ruff
poetry install  # this installs pre-commit into your environment
pre-commit install

After following the above steps, your code will be linted and formatted automatically before committing it.

Credits

While I designed the library, the vast majority of actual functionality is made possible by the following wonderful people and organizations:

About

🍏 + 🎯 + 🐍 = Everything you need to work with Apple's FindMy network!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%