mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-15 02:36:12 -04:00
b396ce457d2e63e889230224b26b42785ce5b6d1
Extends the previous commit's classifier so it only judges evidence it can actually attribute to our own write. The classifier judged whatever mode happened to be current when the deadline fired, and never looked at timing, despite the refusal-versus-misreport distinction resting on it. A delayed answer to an earlier write, or a mode change made on the pods themselves mid-request, could be taken for the answer to the outstanding write. Now the first report after a write is recorded with its latency, and that recorded frame is what gets classified. A write is left alone entirely when it was superseded by another listening mode write or by a stem press, since its echoes can no longer be attributed. An answer arriving faster than 500ms is a refusal, never a change: captures put refusals at 25-267ms and real changes at 815-1010ms. A re-send restamps its own send time and drops the previous attempt's echo, so a retry is never judged on stale evidence. Latency is measured with the monotonic clock, so a wall clock correction cannot turn a fast refusal into an apparent change. A misattribution is still possible, because AAP reports carry no correlation id and a change made from iOS or another paired phone is invisible here. That is why nothing is learned or persisted from this: the worst case is one wrong reading that the device's next report corrects. An earlier version of this work also carried a session-scoped remap, so that a stem-initiated switch could be read correctly after our own write had proven the device mislabels a value (issue #594). It is not included. The same unattributability that bounds the classifier to a single wrong reading would have let one misattribution rewrite every later report in the session, and a wrongly resolved Off could persist AllowOffOption into the device profile, outliving the session that produced it. Stem-initiated switches on an affected session are therefore still not shown correctly. Refs #594
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%






