mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
f9327930b57eeee3f58aa329f89c795183256f01
Starting a recording spans several steps — create the session directory, start the recorder, persist the trigger file, write the header — and only the last of them commits the recorder into the module's state. Anything throwing inside that window escaped the reactive collector, which then died for the rest of the process: the started recorder kept writing where nothing could stop it, the trigger file survived to re-attempt the dead session on every launch, and startRecorder() waited forever for a state nobody would publish. The debug log toggle stayed dead until reinstall. The whole start branch is now guarded. A failure rolls back first — stop the recorder, clear the log dir mirror, remove the trigger file, delete a session dir this attempt created — and only then decides what the failure means: our own scope dying still takes the collector with it, anything else (a cancellation from inside the start work included) is committed as a start failure and surfaced to the caller. shouldRecord is reset with it, so the every-state collector lands in the idle branch instead of retrying. The stop branch gets the same treatment: a recorder that cannot stop is logged and the cleared state committed anyway, so an awaiting stop completes. Recorder.stop() itself now guarantees logger removal, writer closure and reference clearing. Session directory names get a collision suffix, since a same-second retry would otherwise share a directory with the attempt it replaces, and the public start/stop entry points are serialized so two callers cannot race the same transition.
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%






