Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
acf2b9b
android(i18n): added ukrainian translation (#245)
henmalib Nov 13, 2025
7356e57
linux: Use white text for tray icon battery percentage (#243)
xxmathias Nov 13, 2025
3696a4e
docs(linux): use GitHub warning text for warning note (#248)
t3hmrman Nov 16, 2025
4a44941
update license to GPLv3
kavishdevar Nov 16, 2025
e8e1650
docs: add dark themed star history
kavishdevar Nov 16, 2025
944195b
docs: add linux screenshots to readme
kavishdevar Nov 16, 2025
f4fbcc9
remove CoC and contributing
kavishdevar Nov 16, 2025
55d1a69
docs: fix linux app pr link
kavishdevar Nov 16, 2025
e3eab3e
docs: update root requirement
kavishdevar Nov 17, 2025
938f0d5
docs: Add Airpods Max to README (#260)
clepdn Nov 17, 2025
1dbb36a
docs: fix grammar in README (#277)
unpleased Nov 19, 2025
141f1e7
android(fix): do not require phone's MAC for service start (#253)
kavishdevar Nov 19, 2025
be362c5
docs: fixed grammar in AAP definitions (#287)
ternera Nov 19, 2025
0a608af
refactor: Add Python type annotations wherever appropriate (#269)
mikomikotaishi Nov 19, 2025
8fbdfd8
android(refactor): remove unused textColor property and related prefe…
iscle Nov 20, 2025
f12fe90
docs: clarify root requirement for oxygen/coloros
kavishdevar Nov 20, 2025
8a5d608
linux: AirPods Max battery status support (#272)
tyrone-sudeium Nov 20, 2025
0123449
docs: it's vendorid not manufacturerid
kavishdevar Nov 20, 2025
5231b12
docs: add supporters and acknowledgments to README
kavishdevar Nov 20, 2025
ecfbcd1
android: set min version to 13
kavishdevar Nov 20, 2025
aa0898a
android: remove sponsor dialog
kavishdevar Nov 21, 2025
93ac06b
linux(docs): add missing dependencies (#300)
bradloh Nov 21, 2025
36c5516
android(i18n): add tr-TR (#303)
kararliadam Nov 21, 2025
a80680f
docs: fix broken link to hearing aid gist (#304)
SubhrajyotiSen Nov 21, 2025
a06c673
android(i18n): add pt translation (#297)
oliveiragabriel1 Nov 21, 2025
de82cdd
android(fix): parse and send hearing aid data properly (#286)
kavishdevar Nov 22, 2025
e192dc1
android(i18n): add Italian translation (#307)
albanobattistella Nov 22, 2025
10bf2fe
android(i18n): add Spanish translations (#310)
sergylm Nov 22, 2025
574c193
linux: improve conversation detect logging (#302)
ozan956 Nov 22, 2025
826e395
android: use setConnectionProfile instead of (dis)connect on Bluetoot…
kavishdevar Nov 23, 2025
fa30d3c
linux: fix single-instance logic (#314)
ozan956 Nov 24, 2025
345b7b9
android(fix): set HSP/HFP policy to allow when connecting to audio (#…
kavishdevar Nov 24, 2025
8088594
android(i18n): add Vietnamese language (#322)
rudolphtran25 Nov 25, 2025
b5f0c32
android(i18n): add French translations (#342)
Falluck Dec 1, 2025
f3b1db2
docs: turn absolute links to relative links in readme (#340)
dragsbruh Dec 1, 2025
0e1f784
linux(fix): hearing aid bug (#355)
ressiwage Dec 7, 2025
a75557d
linux(i18n): add Turkish translations (#361)
muminkoykiran Dec 10, 2025
287163e
i18n: add Traditional Chinese translations (#365)
abc0922001 Dec 11, 2025
e5836c9
docs: fix low-skies URL (#373)
Ba3a-G Dec 11, 2025
dcbbb2c
linux(i18n): add Italian translations (#375)
fccapria Dec 11, 2025
b4deccf
android(i18n): complete Chinese Simplified translations (#368)
lunasaw Dec 14, 2025
e10fe21
docs: clarify +1 instructions in README (#391)
Entropy512 Dec 15, 2025
5cd7db5
android: remove unused permission from AndroidManifest (#372)
MaverickNyk Dec 17, 2025
c9dd79b
docs: add development paused note in README
kavishdevar Dec 28, 2025
339c478
docs: fix typo in README date
kavishdevar Dec 29, 2025
fd33528
fix: update radare2 download source to GitHub releases (#444)
MaizeShark Feb 3, 2026
b81e420
docs: update root requirements in README
kavishdevar Mar 30, 2026
af2622b
feat(linux): add librepods-ctl CLI tool for IPC control (#494)
fabianmoor Mar 31, 2026
8ef839d
linux: update icon
kavishdevar Mar 31, 2026
7fbbe07
docs: refactor and add alternates to README
kavishdevar Mar 31, 2026
3c714c2
docs: add discord invite and other badges
kavishdevar Apr 5, 2026
1f2d707
docs: fix spelling error in Android version requirements (#507)
SaladStik Apr 6, 2026
b762fbb
Fix linux/rust tray fallback and ANC/battery reporting
harsharajkumar Apr 14, 2026
063c9de
Merge branch 'kavishdevar:main' into linux/rust-state-reporting-fixes
harsharajkumar Apr 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ indent_size = 4
trim_trailing_whitespace = false
max_line_length = off

[*.{py,java,r,R,kt,xml,kts}]
[*.{py,java,r,R,kt,xml,kts,h,hpp,cpp,qml}]
indent_size = 4
21 changes: 2 additions & 19 deletions AAP Definitions.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ If primary is removed, mic will be changed and the secondary will be the new pri

## Conversational Awareness

AirPods send conversational awareness packets when the person wearing them start speaking. The packet format is as follows:
AirPods send conversational awareness packets when the person wearing them starts speaking. The packet format is as follows:

```plaintext
04 00 04 00 4B 00 02 00 01 [level]
Expand Down Expand Up @@ -307,7 +307,7 @@ All values are formatted as IEEE 754 floats in little endian order.

## Configure Stem Long Press

I have noted all the packets sent to configure what the press and hold of the steam should do. The packets sent are specific to the current state. And are probably overwritten everytime the AirPods are connected to a new (apple) device that is not synced with icloud (i think)... So, for non-Apple device too, the configuration needs to be stored and overwritten everytime the AirPods are connected to the device. That is the only way to keep the configuration.
I have noted all the packets sent to configure what the press and hold of the steam should do. The packets sent are specific to the current state. And are probably overwritten everytime the AirPods are connected to a new (apple) device that is not synced with icloud (i think)... So, for non-Apple devices too, the configuration needs to be stored and overwritten everytime the AirPods are connected to the device. That is the only way to keep the configuration.

This is also the only way to control the configuration as the previous state needs to be known, and then the new state can be set.

Expand Down Expand Up @@ -403,20 +403,3 @@ Once tracking is active, the AirPods stream sensor packets with the following co
| orientation 3 | 47 | 2 |
| Horizontal Acceleration | 51 | 2 |
| Vertical Acceleration | 53 | 2 |

# LICENSE

LibrePods - AirPods liberated from Apple’s ecosystem
Copyright (C) 2025 LibrePods contributors

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. If not, see <https://www.gnu.org/licenses/>.
128 changes: 0 additions & 128 deletions CODE_OF_CONDUCT.md

This file was deleted.

70 changes: 0 additions & 70 deletions CONTRIBUTING.md

This file was deleted.

Loading