mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-15 02:36:12 -04:00
cc99ad59abf2215225f6b570224f5bd154204e40
On at least one vendor stack the address handed up by the BLE scan callback and the identity key stored for a profile disagree on octet order: the key resolves the address only when its octets are reversed. Identity resolution then fails on every advertisement, so no frame is attributed to the profile and the case popup, connection popup, encrypted 1% battery granularity and session reconnection all go with it. RPAChecker gains resolve(), which reports the order that resolved. The standard-order attempt is unchanged and ungated, so no currently-resolving device can start failing. The reversed attempt only runs when the reversed form carries the resolvable-private-address type marker (top bits 01), which skips roughly three quarters of the extra comparisons for generic random addresses. verify() is now a thin wrapper over resolve(). Address parsing is validated explicitly: exactly six components, each in 0..255. A seven-component string used to be silently mis-sliced, and "15A:..." truncated to a valid octet — both cases could resolve. The failure log no longer prints the identity key. A malformed address or key wrote an identity-tracking secret into exactly the debug logs users mail to support; the event and its level stay, the key is reduced to its length and the address goes through redactedForLogs(). The history lookup that recovers a device by key now skips candidates bound to a different profile. A 24-bit forward collision could already select the wrong history; attempting two orders roughly doubles that exposure. Test vectors are synthetic and derived from the key already committed in RPACheckerTest. Two of them are complementary: one has an RPA-shaped reversed form that fails the hash (proving the comparison runs), the other has a reversed form that resolves cryptographically but carries marker 00 (proving the gate runs).
Companion App for AirPods (CAPod)
A companion app that adds support for AirPod specific features to Android:
- Battery level for pods & cases.
- Charging status for pods & case.
- Additional infos about connection, microphone & case.
- Can receive and show all nearby devices.
- Ear detection with automatic play/pause.
- Automatically connect phone & AirPods.
- Show popup when case is opened.
- Widgets
CAPod is ad-free. Some additional features require an in-app purchase.
Currently supported models:
- AirPods 1. Generation
- AirPods 2. Generation
- AirPods 3. Generation
- AirPods 4. Generation
- AirPods 4. Generation with ANC
- AirPods Pro 1. Generation
- AirPods Pro 2. Generation
- AirPods Pro 2. Generation (USB-C)
- AirPods Pro 3. Generation
- AirPods Max
- AirPods Max (USB-C)
- AirPods Max 2. Generation
- Power Beats Pro
- Power Beats Pro 2
- Power Beats 3
- Power Beats 4
- Beats Solo 3
- Beats Solo Pro
- Beats Solo 4
- Beats Solo Buds
- Beats Studio 3
- Beats Studio Buds
- Beats Studio Buds+
- Beats Studio Pro
- Beats X
- Beats Flex
- Beats Fit Pro
- Fake AirPods 1. Generation 🎭
- Fake AirPods 2. Generation 🎭
- Fake AirPods 3. Generation 🎭
- Fake AirPods Pro1 🎭
- Fake AirPods Pro2 🎭
Download
| Source | Status |
|---|---|
| Google Play | |
| Google Play Beta | |
| Github (Release) | |
| Github (Pre-Release) | |
| F-Droid | |
| F-Droid (IzzyOnDroid) |
Support the project
- Buy the CAPod Pro In-App purchase on Google Play
- Sponsor development on GitHub
- Help translate CAPod on Crowdin
Get help
Screenshots
Thanks to
- The OpenPods project, specifically @adolfintel and @Electric1447
- Martin, Jeremy & Alpuche, Douglas & Bodeman, Kristina & Brown, Lamont & Fenske, Ellis & Foppe, Lucas & Mayberry, Travis & Rye, Erik & Sipes, Brandon & Teplov, Sam. (2019). Handoff All Your Privacy – A Review of Apple’s Bluetooth Low Energy Continuity Protocol. Proceedings on Privacy Enhancing Technologies. 2019. 34-53. 10.2478/popets-2019-0057.
- Celosia, Guillaume. (2020). Privacy Challenges in Wireless Communications of the Internet of Things.
- The MagicPods project. If you are looking for "CAPod for Windows", check it out.
- @kavishdevar and his LibrePods project for sharing a lot of cool stuff.
- Crowdin for supporting open-source projects.
License
CAPod's code is available under a GPL v3 license, this excludes:
- CAPod icons, logos, mascots and marketing materials/assets.
- CAPod animations and videos.
- CAPod documentation.
- Google Play screenshots.
- Google Play texts & descriptions.
- Translations.
Description
Mirror of capod from GitHub (https://github.com/d4rken-org/capod)
Readme
GPL-3.0
139 MiB
Languages
Kotlin
99.1%
Shell
0.8%






