$ show librepods-org/librepods
LibrePods is a cross-platform application suite whose verified purpose is to liberate Apple AirPods from the Apple ecosystem, providing full accessory management on non-Apple hardware. The Android app (Kotlin/Jetpack Compose) offers battery monitoring via BLE manufacturer-data parsing, noise-control mode switching, ear detection, head-gesture recognition, hearing aid adjustments, custom EQ, device takeover, home-screen widgets, Quick Settings tiles, and iOS-style popup overlays. The Linux companion (Qt6/QML) delivers the same control surface through a system tray app backed by BlueZ and PulseAudio, with a Rust rewrite in progress per the ci-linux-rust.yml workflow.
The LLM identified 5 files worth highlighting for reuse:
Standalone Python tool that extracts the IRK (Identity Resolving Key) and ENC_KEY from AirPods over L2CAP PSM 0x1001, using either the Bumble library or raw sockets. It solves the recurring problem of pairing-parameter recovery for Apple BLE accessories and can be reused directly by any project needing Apple BLE authentication keys.
Self-contained Kotlin utility implementing AES-128/ECB operations used to verify Bluetooth Random Private Addresses and decrypt proprietary proximity messages. The RPA-verification-with-IRK pattern is the standard approach for identifying Apple BLE devices and is directly reusable in any BLE scanner or accessory-management app.
Factory that vends the correct BillingProvider implementation (FOSSBillingProvider for GitHub Sponsors verification vs PlayBillingProvider for Google Play) behind a single interface. This is a clean demonstration of the strategy/factory pattern for dual-channel monetization, decoupling the UI and ViewModel layers from billing SDK specifics — an architecture worth copying for any freemium FOSS app.
A Compose slider component that renders consistently across two coexisting design systems (Apple and Material) selected via a CompositionLocal, and adds a custom momentum-drag animation (rememberMomentumAnimation) with haptic feedback. This demonstrates non-trivial Compose skill — custom pointer-input handling, spring animation state, and theme abstraction — and could be lifted into any Compose app needing a themable, gesture-rich slider.
Encapsulates the notoriously complex libpulse asynchronous mainloop into a simple controller for switching audio profiles (A2DP vs HFP), managing sinks/cards, and routing calls. Reusable for any Linux desktop project needing programmatic audio-profile switching (e.g., headset auto-switching).