Commit Graph

34 Commits

Author SHA1 Message Date
Mike A.
c9897eaaba refactor: reduce nesting 2026-01-06 00:36:35 +01:00
Mike A.
2afba5ed51 fix: more efficient key caching system 2026-01-06 00:23:15 +01:00
Mike A.
788f951b12 fix: save cached keys to correct index 2025-11-20 20:06:12 +01:00
Mike A.
c1e7673eaf fix: define __hash__ and __eq__ for FindMyAccessory 2025-11-17 21:32:52 +01:00
Mike A.
997cf8233c feat: cache more intermediate accessory keys
should improve performance for accessories that were paired a long time ago
2025-10-21 00:16:26 +02:00
Mike A.
9d1022c697 feat: support in-memory files for {from,to}_{json,plist} 2025-10-20 23:34:27 +02:00
Mike A.
3cc33f6bb0 feat: improve key alignment efficiency 2025-09-24 22:57:13 +02:00
Mike A.
e8d05b69bf refactor: combine utils into single import internally 2025-09-11 16:29:01 +02:00
Mike A.
2f1ca10def feat: export all classes in top-level package 2025-09-11 16:19:23 +02:00
Mike A.
066fd0a714 fix: resolve typing issues in scanner 2025-09-06 21:56:19 +02:00
Mike A.
fbaf57ed09 feat!: implement key alignment algorithm for accessories
BREAKING: due to fundamental issues with Apple's API, this commit also DEPRECATES the `fetch_[last_]reports` methods on Apple account instances. It has been replaced by a method named `fetch_location`, which only returns a single location report (the latest one) and does not support setting a date range.
2025-09-05 00:36:37 +02:00
Mike A.
32686a898d fix: include alignment parameters in accessory json 2025-08-07 21:21:21 +02:00
Mike A.
f771ad97d5 refactor: abstraction for plist reading 2025-08-07 21:06:48 +02:00
Mike A.
1d3affb3c2 Merge branch 'main' into pajowu/aligment 2025-08-07 20:46:31 +02:00
Mike A.
def535f819 docs: somewhat fix references in source code 2025-08-04 16:16:30 +02:00
Mike A.
9017efc7be refactor: specialize Serializable subclasses for stronger type safety 2025-08-03 21:42:08 +02:00
Mike A.
543ffe64a3 feat: make FindMyAccessory serializable 2025-08-01 18:05:07 +02:00
Nick Crews
0defad71b3 feat: add plist.py for decrypting the .plist files to FindMyAccessory 2025-05-25 16:46:12 -06:00
pre-commit-ci-lite[bot]
6c7a644897 [pre-commit.ci lite] apply automatic fixes 2025-04-15 13:24:21 +00:00
pajowu
ed098cc8ce Add option to align FindMyAccessories key generation
Sometimes the key generation diverges for example if the accessory has no power. FindMy solves this be re-aligning the key generation if a btle connection is established. FindMy.app stores there alignment records in the `KeyAlignmentRecord` directory.

This PR extends the FindMyAccessory class to read those records during `from_plist`-generation and re-sync the key generation by this
2025-04-15 15:23:36 +02:00
Mike A.
ed4ff77003 chore: make ruff / pre-commit happy 2025-02-27 22:34:30 +01:00
pre-commit-ci-lite[bot]
f40bd49ab7 [pre-commit.ci lite] apply automatic fixes 2025-02-27 21:06:51 +00:00
Mike A.
8a096230a2 keys: Add name getter/setter to accessories and keypairs 2024-09-18 16:38:59 +02:00
Mike A.
d25a7292a5 accessory: Add more properties to retrieve values 2024-09-18 00:01:06 +02:00
Mike A.
42aba78609 chore: Fix linter 2024-09-17 23:49:18 +02:00
Mimoja
8ef5774cda real_airtag: read identifier and model from plist for later resolving
Signed-off-by: Mimoja <git@mimoja.de>
2024-09-17 01:46:52 -06:00
Mike A.
1c185195b0 chore: Reformat files 2024-09-03 17:46:12 +02:00
Mike A
fe534931cf accessory: Integrate .plist reading into library 2024-04-25 19:37:01 +02:00
Mike A
184c5b822b accessory: Do not return keys for invalid timestamps or indices 2024-04-25 19:27:43 +02:00
Mike A
52952bc189 keys: add FindMyAccessory.keys_between 2024-04-24 14:56:52 +02:00
Mike A
8f2572af44 Enforce @override decorators 2024-02-10 20:10:03 +01:00
Mike A
7d09296565 Add Pyright as static type checker 2024-02-10 17:25:54 +01:00
Mike A
246b407e45 Update keygen to fix index alignment 2024-02-08 15:53:18 +01:00
Mike A
7e46afc5f3 Add experimental key derivation API for real airtags 2024-02-06 23:14:01 +01:00