LibrePods: AirPods yang Dibebaskan
(github.com/librepods-org)- LibrePods adalah proyek yang mengimplementasikan protokol proprietari antara AirPods dan perangkat Apple, sehingga fitur AirPods yang tadinya eksklusif untuk perangkat Apple bisa digunakan di platform non-Apple seperti Linux dan Android
- Fitur yang didukung berbeda menurut platform; perubahan mode mendengarkan, deteksi pemakaian, status baterai, kesadaran percakapan, dan koneksi otomatis sudah diimplementasikan dan berfungsi baik di Linux dan Android
- Beberapa fitur memerlukan VendorID spoofing atau masih dalam tahap perencanaan, dan Head Gestures hanya didukung di Android serta tidak akan diimplementasikan di Linux
- Find My, audio spasial, pemantauan detak jantung, dan audio dua arah berkualitas tinggi masih belum selesai atau masih dieksplorasi, dan di Android beberapa fitur kemungkinan memerlukan root
- Aplikasi Android dan sebagian penulisan ulang Linux mencakup kode hasil generasi AI, dan proyek ini didistribusikan di bawah GPLv3 atau yang lebih baru, tetapi hak penggunaan nama, logo, dan branding LibrePods dibatasi secara terpisah
Apa yang dilakukan LibrePods
- LibrePods mengimplementasikan protokol proprietari yang bertukar data antara AirPods dan perangkat Apple
- Dengan implementasi ini, fitur-fitur AirPods berikut dapat digunakan juga di platform non-Apple
- Mengubah mode kontrol kebisingan
- Deteksi pemakaian cepat
- Status baterai yang akurat
- Head Gestures
- Conversational Awareness
- Fitur pengaturan AirPods lainnya
- Dokumentasi instalasi dipisahkan menurut platform
Dukungan fitur per platform
-
Fitur yang sudah diimplementasikan dan berfungsi baik di Linux dan Android
- Mengubah mode mendengarkan
- Deteksi pemakaian
- Status baterai
- Mengganti nama AirPods
- Di Android, setelah mengganti nama mungkin perlu melakukan pairing ulang
- Conversational Awareness
- Koneksi otomatis AirPods
-
Fitur yang hanya didukung di Android
- Head Gestures
- Pengaturan aksesibilitas lainnya
- Kecepatan tekan
- Durasi tekan dan tahan
- Noise Cancellation dengan satu AirPod
- Kontrol volume saat swipe
- Kecepatan swipe volume
- Pengaturan umum lainnya
- Siklus mode mendengarkan atau memanggil asisten digital dengan Press and Hold
- Pengaturan kontrol panggilan
- Personalized volume
- Sisi mikrofon
- Menjeda media saat tertidur
- Mengaktifkan
Off listening mode
- Fitur yang memerlukan VendorID spoofing
- Loud Sound Reduction
- Hearing Aid
- Kustomisasi Transparency Mode
- Multi-device connectivity
- Kriteria penanda status adalah sebagai berikut
- ✅: sudah diimplementasikan dan berfungsi baik
- ⚪: memerlukan VendorID spoofing, risiko ditanggung pengguna
- 🔴: belum diimplementasikan, direncanakan
- ⛔: tidak akan diimplementasikan
- ❓: tidak diketahui
VendorID spoofing dan fitur tambahan
- VendorID spoofing adalah cara mengubah VendorID pada DID Profile ke nilai milik Apple untuk mengakses berbagai fitur khusus
- Di Linux, ini bisa digunakan dengan mengubah DeviceID pada
/etc/bluetooth/main.conf- Baris konfigurasi:
DeviceID = bluetooth:004C:0000:0000
- Baris konfigurasi:
- Di Android, jika Xposed tersedia dan modul LibrePods aktif, opsi
act as Apple devicebisa diaktifkan di pengaturan aplikasi - Multi-device Connectivity memungkinkan hingga 2 perangkat terhubung ke AirPods secara bersamaan sehingga audio dan kontrol bisa dipakai pada keduanya
- Jika Android mengambil alih AirPods, pada perangkat Apple akan muncul notifikasi seperti perangkat Apple
"Move to iPhone" - Jika perangkat lain mengambil alih, popup juga akan muncul di Android
- Jika Android mengambil alih AirPods, pada perangkat Apple akan muncul notifikasi seperti perangkat Apple
- Pengaturan terkait aksesibilitas dan alat bantu dengar juga dapat dikonfigurasi
- amplification, balance, tone, conversation boost, ambient noise reduction pada Transparency Mode
- Loud Sound Reduction
- Kustomisasi Hearing Aid dan pengaturan hasil audiogram
- Aplikasi tidak menyediakan fitur tes pendengaran karena membutuhkan presisi yang lebih tinggi
Fitur yang masih belum selesai dan batas cakupan
- Fitur terkait Find My sudah direncanakan tetapi memerlukan reverse engineering tambahan, dan di Android mungkin memerlukan root
- Menambahkan AirPods ke jaringan Find My
- Memutar suara dari casing pengisi daya
- Notifikasi saat tertinggal
- Toggle suara pengisian casing
- Spatial Audio saat ini tidak memberikan informasi head tracking ke Android agar OS melakukan HRTF
- Belum dieksplorasi sepenuhnya dan mungkin memerlukan root
- Fitur untuk membuat suara stereo menjadi spasial berada di luar cakupan proyek dan tidak akan disediakan
- Banyak OEM sudah memiliki implementasi sendiri
- Heart Rate Monitoring sedang dikerjakan untuk model setelah AirPods Pro 3
- Meski nantinya diimplementasikan, di Android kemungkinan besar akan memerlukan root
- High quality two-way audio terkait dengan kemampuan AirPods di iOS/iPadOS untuk tetap menggunakan A2DP saat mengirim stream audio mikrofon melalui AACP
- Di Android, ini memerlukan integrasi audio yang lebih dalam sehingga kemungkinan memerlukan root
Protokol, reverse engineering, penggunaan AI
- Informasi protokol dapat merujuk ke plugin dissector Wireshark buatan Nojus pabloaul/apple-wireshark
- Sebagian besar implementasi LibrePods tidak menggunakan dissector tersebut, dan penulis proyek melakukan reverse engineering protokol secara langsung sebelum dissector itu dibuat
- Namun, ia menyatakan bahwa untuk fitur mendatang seperti audio dua arah berkualitas tinggi dan audio spasial, pekerjaan reverse engineering tersebut memang diperlukan
- Bagian yang sepenuhnya dihasilkan AI di aplikasi Android
- Seluruh logika dan UI Head Gestures
- Kedua versi offset setup menggunakan modul r2 dan Xposed
- Troubleshooter dan LogCollector
- Sisa bagian utama aplikasi Android ditulis secara manual
- background service
- kelas manajer Bluetooth AACP dan ATT
- seluruh UI dan komponen kecil
- Dalam penulisan ulang Linux,
aacp.rsdanatt.rsditerjemahkan oleh AI dari Kotlin ke Rust- Sebagian
media_controller.rs, terutama integrasi Pulse, juga dihasilkan AI
- Sebagian
- Beberapa komponen UI diambil dari aplikasi demo Kyant0 berlisensi Apache License 2.0
Aplikasi alternatif, lisensi, pemberitahuan merek dagang
- Aplikasi alternatif yang dapat digunakan di platform atau kondisi lain juga disarankan
- CAPod: aplikasi pendamping AirPods untuk Android, direkomendasikan bila menggunakan Android 16 QPR3 atau lebih rendah dan tanpa root
- MagicPods for Steam Deck: website
- MagicPods: alternatif jika mencari LibrePods untuk Windows
- LibrePods didistribusikan sebagai perangkat lunak bebas dengan ketentuan GPLv3 atau yang lebih baru
- GPL tidak memberikan hak untuk menggunakan nama, logo, atau branding LibrePods
- Nama dan logo LibrePods tidak boleh digunakan tanpa izin dengan cara yang menyiratkan afiliasi, dukungan, atau keterkaitan dengan proyek resmi
- Font SF Pro yang digunakan di aplikasi Android adalah aset milik Apple Inc. dan direncanakan akan diganti dengan alternatif terbuka pada versi mendatang
- AirPods, AirPods Pro, AirPods Max, dan logo AirPods adalah merek dagang Apple Inc., dan proyek LibrePods tidak berafiliasi dengan atau didukung oleh Apple Inc.
librepods.orgbukan situs web resmi proyek LibrePods, dan diperingatkan bahwa situs itu secara keliru mengklaim sebagai situs resmi lewat klaim hak cipta di footer dan penggunaan logo LibrePods
1 komentar
Opini Hacker News
Sekadar tambahan agar tidak membingungkan, AirPods memang sudah berfungsi sebagai earbud Bluetooth biasa di perangkat lain
Proyek ini mengimplementasikan beberapa fitur tambahan dan antarmuka yang terintegrasi dengan produk Apple
Tertulis “LibrePods allows you to use AirPods features that are exclusive to Apple devices. It implements the proprietary protocol used to exchange data between AirPods and Apple devices”, lalu diikuti tabel fitur
Ada produk yang suaranya lebih bagus dengan harga lebih murah, tetapi kualitas audio mungkin adalah bagian paling kecil dari cerita produk ini
Begitu juga untuk fitur-fitur penting selain sekadar tersambung sebagai perangkat output/input audio Bluetooth biasa
Proyek ini bagus. Semoga suatu hari AirDrop juga dibebaskan
https://github.com/seemoo-lab/opendrop dulu terlihat menjanjikan, tetapi sepertinya berhenti; semoga suatu hari bisa terwujud
https://www.android.com/quick-share/
Kalau saya tidak yakin Apple ke depannya akan berusaha menutup sebanyak mungkin semua jalur yang memungkinkan ini bekerja, ini mungkin bisa menjadi alasan untuk membeli AirPods
Ini lebih seperti seseorang mengimplementasikan antarmuka untuk fitur tambahan yang sudah terintegrasi di sistem operasi Apple
Untuk mengunci versi, Anda harus memastikan AirPods tidak pernah terhubung ke produk Apple
Namun kalau Anda belum menjadi pengguna komputer atau ponsel Apple, saya akan merekomendasikan Sony WF-1000XM6. Katanya pengalaman pengguna lebih buruk dan sedikit buggy, tetapi kemungkinan besar suaranya lebih bagus
Namun mungkin lebih baik memberi imbalan kepada produsen yang tidak mengharuskan bypass seperti ini hanya untuk memakai hardware yang saya beli
Diskusi sebelumnya: https://news.ycombinator.com/item?id=45941596
Saya menghargai pekerjaan dan hacking yang masuk ke proyek ini
Namun saya tidak tahu mengapa kita harus mendukung perusahaan yang begitu bermusuhan ini dengan membeli AirPods. Saya tidak akan terkejut kalau ada patch untuk memblokirnya
Meski bisa diakali dan di-hack, budaya yang memandang pengguna sebagai pihak yang harus dikendalikan dan diasuh itu mengganggu saya
Yang tidak berjalan di platform non-Apple adalah hal seperti pengaturan, mengubah aksi tekan/remas, dan memuat pembaruan firmware
Bluetooth standar saja tidak menyediakan cara untuk melakukan hal-hal ini, jadi diperlukan aplikasi khusus. Apple hanya tidak membuat aplikasi khusus untuk platform lain, dan tidak ada alasan bagi Apple untuk peduli jika seseorang menghabiskan sumber daya untuk membuat aplikasi. Bagaimanapun, AirPods sudah terjual dan biaya pembuatan aplikasi ditanggung orang lain, jadi Apple menang
Apakah tidak boleh menambahkan fitur di atas koneksi Bluetooth biasa, tetapi memilih hanya menyediakannya di platform yang bisa mereka kendalikan sepenuhnya dan jamin kualitasnya?
Apakah menyediakan fitur secara eksklusif saja benar-benar bermusuhan? Apakah sebuah perusahaan tidak boleh menawarkan keuntungan saat beberapa produknya digunakan bersama?
Atau maksudnya bermusuhan karena diasumsikan Apple akan menambal ini?
Saya sudah memakai beberapa pasang AirPods selama bertahun-tahun, tetapi beberapa fiturnya baru saya ketahui sekarang
Sampai-sampai saya berpikir seharusnya ada kolom ketiga yang menunjukkan apakah Apple mendukungnya. Tentu saja bercanda
Bagi orang yang saat ini tidak punya AirPods dan tidak terlalu mengikuti dunia Apple, akan berguna jika dijelaskan fitur apa saja yang hilang saat AirPods dipasangkan ke perangkat non-Apple
Saya sempat berharap ini memungkinkan AirPods digunakan di Linux sebagai speaker dan headset secara bersamaan
Saya sudah mencobanya sendiri dan tampaknya berfungsi dengan baik. Semoga tidak terhalang paten
Namun profil Bluetooth harus diubah ke HFP (Hands-Free Profile) atau HSP (Headset Profile)
Perlu dicatat juga bahwa ini memang default demi kualitas yang lebih baik. Ini karena spesifikasi Bluetooth, bukan Linux
Fitur utama yang saya cari dan berguna adalah memakai multipoint tanpa batas di perangkat lain juga
Dua koneksi yang disediakan sebagian besar perangkat lain itu sangat kurang. Kadang saya ingin bisa cepat terhubung ke telepon meja VoIP kantor