Bringing AirPods' Apple-exclusive features on linux and android!
- AirPods Pro 2
Other devices might work too. Features like ear detection and battery should be available for any AirPods! Although the app will show unsupported features/settings. I will not be able test any other devices than the ones I already have (i.e. the AirPods Pro 2).
Check the pinned issue for a list.
Important
This feature is still in development and might not work as expected. No support is provided for this feature.
- Battery Status: Get battery status on any device when you connect your AirPods to one of them.
- Control AirPods: Control your AirPods from either of your device when you connect to one, like changing the noise control mode, toggling conversational awareness, and more.
- Automatic Device Switching: Automatically switch between your Linux and Android device, like when you receive a call, start playing music on Android while you're connected to Linux, and more!
Check out the demo below!
https://raw.githubusercontent.com/kavishdevar/aln/main/android/imgs/cd-demo-2.mp4
No support will be provided for the old version of the Linux app. The new version is still in development and might not work as expected. No support is provided for the new version either.
Check out the README file in linux folder for more info.
This tray app communicates with a daemon with the help of a UNIX socket. The daemon is responsible for the actual communication with the AirPods. The tray app is just a frontend for the daemon, that does ear-detection, conversational awareness, setting the noise-cancellation mode, and more.
Can I use aln without root?
No, it's not possible to use aln without root. You will have to root your device if you want to use aln, and there is no way around it. No exceptions.
Check out the new animations and transitions in the app!
transitions.mp4
Currently, there's a bug in the Android Bluetooth stack that prevents the app from working (upvote the issue - click the '+1' icon on the top right corner of IssueTracker).
Caution
Until Google merges the fix you will only be able to use aln if you are rooted. There are no exceptions, don't ask about it.
In order to use aln you will have to install the module using your favorite root manager in OverlayFS mode (KernelSU, Apatch, or Magisk). If you don't know what this means, no support is provided: you will have to search by yourself on Google or ask in some Android rooting communities on Telegram.
The module to install is available in the releases section under the name btl2capfix.zip
.
When you rename the Airpods using the app, you'll need to re-pair it with your phone. Currently, user-level apps cannot directly rename a Bluetooth device. After re-pairing, your phone will display the updated name!
- Active Noise Cancellation (ANC): Blocks external sounds using microphones and advanced algorithms for an immersive audio experience; ideal for noisy environments.
- Transparency Mode: Allows external sounds to blend with audio for situational awareness; best for environments where you need to stay alert.
- Off Mode: Disables noise control for a natural listening experience, conserving battery in quiet settings.
- Adaptive Transparency: Dynamically reduces sudden loud noises while maintaining environmental awareness, adjusting seamlessly to fluctuating noise levels.
Important
Due to recent AirPods' firmware upgrades, you must enable Off listening mode
to switch to Off
. This is because in this mode, louds sounds are not reduced!
Automatically lowers audio volume and enhances voices when you start speaking, making it easier to engage in conversations without removing your AirPods.
Recognizes when the AirPods are in your ears to automatically play or pause audio and adjust functionality accordingly.
Check out the packet definitions at AAP Definitions
AirPodsLikeNormal (ALN) - Bringing Apple-only features to Linux and Android for seamless AirPods functionality! Copyright (C) 2024 Kavish Devar
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program over here. If not, see https://www.gnu.org/licenses/.