🎯 FindMy.py v0.9.0
Welcome to the biggest release of FindMy.py yet! This release is packed with news, hot new features, breaking changes and fixes. Let's dive in right away!
Highlights
- 🎯 Official AirTag support has finally been fixed! A brand new key alignment algorithm has been implemented that will hopefully fix issues with tracking AirTag and iDevice once and for all.
- ❌☁️ Local Anisette is now officially supported! Using Anisette.py, FindMy.py is now able to generate Anisette data locally on-device. This means that FindMy.py will simply work out-of-the-box and you won't have to set up an external Anisette server anymore. The examples have already been updated to use this new feature by default.
- 💬 We now have an official Discord server! Come join us over on Discord to chat, discuss, suggest changes or simply post pictures of your cute pets. Don't want to join? Don't worry, all important information related to the project will stay right where it is. I will have to warn you though, you will miss out on pictures of my rabbits.
- 📖 The docs have had an overhaul. The new documentation website looks easier on the eyes, contains more info on how to get started and should be your go-to place for any questions regarding FindMy.py. Missing something? We're always working on improving information accessibility, so create an issue or shoot me a message on Discord and I'll add it to the docs. Or add it yourself and create a pull request!
⚠️ Breaking changes
This release is a major leap towards the first stable version of FindMy.py. Breaking changes always suck, so I've tried to condense most of the necessary ones into this release so that we can hopefully avoid them in the future.
I won't be documenting all of these changes in great detail. Instead refer to the example scripts to see what has changed exactly and which changes you will need to make.
⚠️ Sessions created using older versions of FindMy.py may or may not properly be restored in this version. If anything breaks, remove your old file and sign in again. If you want to switch to Local Anisette, you must also do this.- Instantiation, saving and restoration of
AppleAccountinstances has slightly changed to accommodate new features in the library. account.jsonfiles are now self-contained. When using a remote anisette server, the URL of the server will be stored in this file and cannot be changed after instantiation, unless you modify the file manually. When using local anisette, anisette data is stored in this file as well.FindMyAccessoryobjects are now stateful and their state may change after each fetch. Refer to the documentation or example scripts to learn how to manage this additional state.- The example scripts can no longer operate on
.plistfiles directly. A new example script namedplist_to_json.pyhas been added to migrate to the new file format. - Some other minor changes which may or may not be breaking depending on your use case.
Fixes / PRs merged
- chore(deps): update dependency sphinx-autoapi to v3.6.0 by @renovate[bot] in #126
- feat(reports): implement local Anisette provider by @malmeloo in #147
- repo: add assets by @malmeloo in #150
- [ImgBot] Optimize images by @imgbot[bot] in #151
- feat!(reports): Migrate to new acsn API by @malmeloo in #144
- Scanner improvements by @malmeloo in #153
- Add BLE ad data generation method by @shreyasminocha in #113
- chore: update dependencies by @malmeloo in #152
- build: constrain Python version to >= 3.11 for building docs by @malmeloo in #157
- chore(deps): update dependency sphinx to v8 by @renovate[bot] in #69
- Fix unclosed aiohttp client session warnings in session management by @paulb-firebolt in #156
- Make more objects
Serializableby @malmeloo in #148 - Better documentation by @malmeloo in #7
- Fixed uv build by @franga2000 in #158
- Add option to align FindMyAccessories key generation by @pajowu in #125
- fix(examples): fix plist loading error by @malmeloo in #146
- Resolve versioned tests and update the required dependencies for python <3.11 by @pablobuenaposada in #164
- Fix accessory key drift by @malmeloo in #160
- Make classes available in top-level package by @malmeloo in #172
- Feat/docs by @malmeloo in #178
- Feat/docs by @malmeloo in #179
New Contributors
- @imgbot[bot] made their first contribution in #151
- @shreyasminocha made their first contribution in #113
- @paulb-firebolt made their first contribution in #156
- @franga2000 made their first contribution in #158
- @pajowu made their first contribution in #125
- @pablobuenaposada made their first contribution in #164
Full Changelog: v0.8.0...v0.9.0