mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
734e15c94ddb8dcf0e7057741e640c30859f7406
Follow-up to the previous commit, which left the wrong half of this in place. Distrusting the report only while the request was outstanding meant that four seconds later the rejection cleared the pending mode, the bogus value came back, and the user was shown an error for a mode change that had actually worked. The two cases have different signatures, both readable from state the engine already holds: - A refusal echoes the mode the device is staying in, quickly. Captured Off refusals answer in 25-267ms with the previous mode. - The Pro 3 misreport answers with a third mode, neither the one requested nor the one it was in, at normal change latency (815-1010ms). So an echo that is neither the requested nor the previous mode is treated as an unusable report rather than a refusal: no re-send of a write that already took effect, no rejection, no error, and the requested mode is recorded as current. Refusals still work, which is what the Off rejection message and the Allow Off learning depend on. This is deliberately engine-local. Seeding the cycle mask and Allow Off belief from the device profile into the session would have encoded the rule directly, but it inverts the current engine-to-profile data flow and creates a belief that no device report can ever correct, since AirPods never report 0x1A or 0x34. librepods keeps the same knowledge in its service layer and preferences, not in its protocol manager. The fault is per-session rather than per-request: across four sessions today the pods either misreported every Adaptive write or none of them. The heuristic is covered by unit tests but has not yet been observed handling a live bad session.
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%






