darken 0b83e86c5e fix(aap): Correct an overstated safety claim and a test that proved nothing
Review follow-ups on the previous commit.

Its claim that "nothing is learned or persisted" was wrong. BatteryEstimator
buckets drain samples by the current listening mode and force-persists the
accumulated window whenever that mode changes, so a misattributed mode can write
a drain rate to disk under the wrong bucket, and the corrective report does not
remove it. This is not new: the misreport being fixed here already mis-buckets in
the same way, and more often, since the device claims OFF while the pods play
Adaptive. Classifying corrects the common case and only gets it wrong on the rarer
misattribution. The design stands, the claim does not.

Two other claims were also too strong. The recorded echo is the first report after
the verification was installed, which is not exactly the wire write, so write
contention above the latency boundary can still inflate a fast refusal. And a
superseded write is not left alone entirely: classification is skipped, but it
still falls through to the ordinary retry path.

The supersession regression test asserted nothing: it fed a fresh ADAPTIVE report
in before its only assertion, overwriting either outcome, so it passed whether or
not the guard existed. It now asserts on the state left by the delayed echo, and
fails with the guard removed.

Also drops an unused import and restores an indent lost when the remap argument
was removed.
2026-08-20 00:06:03 +02:00
2025-03-19 22:29:09 +01:00
2025-03-19 22:30:14 +01:00
2021-12-28 17:11:50 +01:00
2021-12-28 17:11:50 +01:00
2021-12-28 17:12:27 +01:00
2025-03-21 19:36:03 +01:00
2026-08-16 19:51:18 +00:00
2026-08-16 19:51:18 +00:00

CAPod banner

Companion App for AirPods (CAPod)

GitHub release (latest SemVer including pre-releases) RB Status Code tests & eval Crowdin Github Downloads Google Play Downloads

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 https://play.google.com/store/apps/details?id=eu.darken.capod
Google Play Beta https://play.google.com/apps/testing/eu.darken.capod
Github (Release) https://github.com/d4rken-org/capod/releases
Github (Pre-Release) https://github.com/d4rken-org/capod/releases
F-Droid https://f-droid.org/en/packages/eu.darken.capod/
F-Droid (IzzyOnDroid) https://apt.izzysoft.de/packages/eu.darken.capod/

Support the project

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 Apples 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.
Languages
Kotlin 99.1%
Shell 0.8%