LibrePods: Özgürleşmiş AirPods
(github.com/librepods-org)- LibrePods, AirPods ile Apple cihazları arasındaki tescilli protokolü uygulayarak, Apple cihazlarına özel AirPods özelliklerinin Linux ve Android gibi Apple dışı platformlarda kullanılmasını sağlayan bir proje
- Desteklenen özellikler platforma göre değişiyor; dinleme modu değiştirme, takma algılama, pil durumu, Conversation Awareness ve otomatik bağlantı Linux ve Android üzerinde uygulanmış durumda ve iyi çalışıyor
- Bazı özellikler VendorID spoofing gerektiriyor ya da henüz planlama aşamasında; Head Gestures yalnızca Android’i destekliyor ve Linux’ta uygulanması planlanmıyor
- Find My, uzamsal ses, kalp atış hızı izleme ve yüksek kaliteli çift yönlü ses henüz tamamlanmamış ya da araştırma aşamasında; Android’de bazı özelliklerin root gerektirmesi olası
- Android uygulaması ve Linux yeniden yazımının bazı bölümleri AI tarafından üretilmiş kod içeriyor; proje GPLv3 veya üzeriyle dağıtılıyor ancak LibrePods adı, logosu ve markalama kullanım hakları ayrıca kısıtlanıyor
LibrePods ne yapıyor
- LibrePods, AirPods ile Apple cihazları arasında veri alışverişi yapan tescilli protokolü uygular
- Bu uygulama sayesinde Apple dışı platformlarda da aşağıdaki AirPods özellikleri kullanılabilir
- Gürültü denetimi modunu değiştirme
- Hızlı takma algılama
- Doğru pil durumu
- Head Gestures
- Conversational Awareness
- Diğer AirPods ayar özellikleri
- Kurulum belgeleri platforma göre ayrılmıştır
Platforma göre özellik desteği
-
Hem Linux hem Android’de uygulanmış ve iyi çalışan özellikler
- Dinleme modunu değiştirme
- Takma algılama
- Pil durumu
- AirPods adını değiştirme
- Android’de ad değişikliğinden sonra yeniden eşleştirme gerekebilir
- Conversational Awareness
- AirPods otomatik bağlantısı
-
Yalnızca Android’de desteklenen özellikler
- Head Gestures
- Diğer erişilebilirlik ayarları
- Press speed
- Press and Hold duration
- Noise Cancellation with single AirPod
- Volume control on swipe
- Volume swipe speed
- Diğer genel ayarlar
- Press and Hold ile dinleme modları arasında geçiş yapma veya dijital asistanı çağırma
- Arama denetimi ayarları
- Personalized volume
- Microphone side
- Uykuya dalarken medyayı duraklatma
Off listening modeetkinleştirme
- VendorID spoofing gerektiren özellikler
- Loud Sound Reduction
- Hearing Aid
- Transparency Mode customization
- Multi-device connectivity
- Durum göstergelerinin anlamı şöyle
- ✅: Uygulanmış ve iyi çalışıyor
- ⚪: VendorID spoofing gerekiyor, risk kullanıcıya ait
- 🔴: Henüz uygulanmadı, planlanıyor
- ⛔: Uygulanması planlanmıyor
- ❓: Bilinmiyor
VendorID spoofing ve ek özellikler
- VendorID spoofing, DID Profile’daki VendorID’yi Apple’ın değeriyle değiştirerek çeşitli özel özelliklere erişme yöntemi
- Linux’ta
/etc/bluetooth/main.confiçindeki DeviceID düzenlenerek kullanılabilir- Ayar satırı:
DeviceID = bluetooth:004C:0000:0000
- Ayar satırı:
- Android’de Xposed kullanılabiliyor ve LibrePods modülü etkinse uygulama ayarlarından
act as Apple deviceaçılabilir - Multi-device Connectivity, en fazla 2 cihazın aynı anda AirPods’a bağlanarak hem ses hem de denetimleri kullanmasını sağlar
- Android AirPods’u devraldığında Apple cihazında Apple cihazıymış gibi
"Move to iPhone"bildirimi gösterilir - Başka bir cihaz devraldığında Android’de de açılır pencere gösterilir
- Android AirPods’u devraldığında Apple cihazında Apple cihazıymış gibi
- Erişilebilirlik ve işitme cihazı ile ilgili ayarlar da yapılandırılabilir
- Transparency Mode için amplification, balance, tone, conversation boost, ambient noise reduction
- Loud Sound Reduction
- Hearing Aid özelleştirmesi ve audiogram sonuçlarını ayarlama
- Uygulama, daha yüksek hassasiyet gerektiği gerekçesiyle işitme testi özelliği sunmaz
Henüz tamamlanmamış özellikler ve kapsam sınırlamaları
- Find My ile ilgili özellikler planlanıyor, ancak ek tersine mühendislik gerekiyor ve Android’de root gerekebilir
- AirPods’u Find My ağına ekleme
- Şarj kutusundan ses çalma
- Geride bırakıldığında bildirim
- Kutu şarj sesini açıp kapatma
- Spatial Audio şu anda Android’e head tracking bilgisi sağlayıp işletim sisteminin HRTF gerçekleştirmesini sağlamıyor
- Tam olarak araştırılmış değil ve root gerekebilir
- Stereo sesi uzamsallaştırma özelliği proje kapsamı dışında ve sunulması planlanmıyor
- Birçok OEM’in kendi uygulaması bulunuyor
- Heart Rate Monitoring AirPods Pro 3 ve sonrası modeller için üzerinde çalışılan bir özellik
- Uygulansa bile Android’de root gerektirme olasılığı yüksek
- High quality two-way audio, iOS/iPadOS’te AirPods’un mikrofon ses akışını AACP üzerinden gönderirken A2DP’yi kullanmaya devam edebilmesiyle ilgili bir özellik
- Android’de sesle daha derin entegrasyon gerektiğinden root gerektirme olasılığı yüksek
Protokol, tersine mühendislik ve AI kullanımı
- Protokol bilgileri için Nojus’un Wireshark dissector eklentisi pabloaul/apple-wireshark referans alınabilir
- LibrePods uygulamasının büyük bölümünde bu dissector kullanılmadı; proje yazarı, dissector hazırlanmadan önce protokolü kendisi tersine mühendislikle çıkardı
- Ancak yüksek kaliteli çift yönlü ses ve uzamsal ses gibi gelecekteki özellikler için bu tersine mühendislik çalışmasının gerekli olduğu belirtiliyor
- Android uygulamasında tamamen AI tarafından üretilen bölümler
- Head Gestures’ın tüm mantığı ve kullanıcı arayüzü
- r2 ve Xposed modülü kullanan offset setup’ın iki sürümü
- Troubleshooter ve LogCollector
- Android uygulamasının geri kalan ana bölümleri elle yazıldı
- background service
- AACP ve ATT Bluetooth manager sınıfları
- Tüm kullanıcı arayüzü ve küçük bileşenler
- Linux yeniden yazımında
aacp.rsveatt.rs, Kotlin’den Rust’a AI ile çevrildimedia_controller.rsdosyasının bir kısmı, ağırlıklı olarak Pulse entegrasyonu da AI tarafından üretildi
- Bazı UI bileşenleri Apache License 2.0 lisanslı Kyant0's demo app uygulamasından alındı
Alternatif uygulamalar, lisans ve ticari marka bildirimi
- Diğer platformlarda veya koşullarda kullanılabilecek alternatif uygulamalar sunuluyor
- CAPod: Android için AirPods companion uygulaması; Android 16 QPR3 veya daha eski sürüm kullanıyorsanız ve root yoksa önerilir
- MagicPods for Steam Deck: website
- MagicPods: Windows için LibrePods arayanlara alternatif
- LibrePods, GPLv3 veya üzeri koşullarıyla özgür yazılım olarak dağıtılır
- GPL, LibrePods adını, logosunu veya markalamasını kullanma hakkı vermez
- LibrePods adı ve logosu, resmi projeyle iş birliği, onay veya ilişki ima edecek şekilde izinsiz kullanılamaz
- Android uygulamasında kullanılan SF Pro yazı tipi Apple Inc.’in mülkiyetindedir ve gelecek sürümlerde açık bir alternatifle değiştirilecektir
- AirPods, AirPods Pro, AirPods Max ve AirPods logosu Apple Inc.’in ticari markalarıdır; LibrePods projesi Apple Inc. ile bağlantılı değildir ve Apple tarafından onaylanmamıştır
librepods.orgadresinin LibrePods projesinin resmi web sitesi olmadığı; alt bilgisinde telif hakkı iddiası ve LibrePods logosu kullanımıyla kendisini hatalı biçimde resmi web sitesi olarak tanıttığı konusunda uyarıda bulunulur
1 yorum
Hacker News yorumları
Karışıklık olmasın diye ekleyeyim: AirPods zaten başka cihazlarda sıradan Bluetooth kulaklık olarak çalışıyor.
Bu proje, Apple ürünlerine entegre edilmiş bazı ek özellikleri ve arayüzleri uyguluyor.
“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” yazıyor; ardından da özellik tablosu var.
Daha ucuza daha iyi ses veren ürünler de var ama ses kalitesi bu ürünün hikâyesinin neredeyse en küçük parçası.
Sıradan Bluetooth ses çıkış/giriş cihazı olarak bağlanmanın dışındaki gerekli özellikler için de durum böyleydi.
Bu proje harika. Umarım bir gün AirDrop da özgürleşir.
https://github.com/seemoo-lab/opendrop umut verici görünüyordu ama durmuş gibi; umarım bir gün mümkün olur.
https://www.android.com/quick-share/
Apple’ın ileride bunun çalışmasını sağlayabilecek tüm yolları elinden geldiğince kapatmaya çalışacağından emin olmasaydım, AirPods almak için bir motivasyon olabilirdi.
Bu daha çok, birinin Apple işletim sistemlerine zaten entegre edilmiş ek özellikler için arayüzü uygulamasına benziyor.
Sürümü sabitlemek istiyorsanız Apple ürünlerine asla bağlanmamasını sağlamalısınız.
Yine de halihazırda Apple bilgisayarı ya da telefonu kullanıcısı değilseniz Sony WF-1000XM6 öneririm. Kullanıcı deneyiminin daha kötü ve biraz hatalı olduğu söyleniyor ama sesinin daha iyi olma ihtimali yüksek.
Yine de satın aldığım donanımı kullanmak için böyle dolambaçlı yollara ihtiyaç bırakmayan üreticileri ödüllendirmek daha iyi olabilir.
Önceki tartışma: https://news.ycombinator.com/item?id=45941596
Buraya konan emeğe ve hack’lere saygım var.
Ama bu kadar düşmanca bir şirketi AirPods satın alarak neden desteklemem gerektiğini bilmiyorum. Bunu engelleyen bir yama çıkarsa şaşırmam.
Etrafından dolaşıp hack’leyebilsem bile kullanıcıları kontrol edilmesi ve bakılması gereken varlıklar olarak gören kültürü rahatsız edici.
Apple dışı platformlarda çalışmayanlar; ayarlar, sıkma hareketini değiştirme, firmware güncellemesi yükleme gibi kısımlar.
Standart Bluetooth’la bunları yapmanın bir yolu yok; özel bir uygulama gerekiyor. Apple sadece diğer platformlar için özel bir uygulama yapmadı; birinin kaynak harcayıp uygulama yapmasını Apple’ın umursaması için de bir neden yok. Sonuçta AirPods satıldı, uygulama geliştirme maliyetini de başkası ödedi; Apple kazandı.
Sıradan Bluetooth bağlantısının üzerine özellik ekleyip bunları yalnızca tamamen kontrol edip kalite güvencesi verebildiği platformlarda sunmayı seçemez mi?
Özellikleri özel olarak sunmak tek başına gerçekten düşmanca mı? Bir şirket, kendi ürünlerinden birkaçını birlikte kullanmanın avantajlarını sunamaz mı?
Yoksa Apple’ın bunu yamayacağını varsaydığınız için mi düşmanca diyorsunuz?
Yıllardır birkaç çift AirPods kullandım; bazı özellikleri ilk kez şimdi öğrendim.
Apple desteğini gösteren üçüncü bir sütun da olsa diye düşündüm. Tabii şaka yapıyorum.
Şu anda AirPods’u olmayan ve Apple tarafını yakından takip etmeyen biri için, AirPods’u Apple dışı cihazlarla eşleştirince hangi özellikleri kaybettiğini açıklamak faydalı olurdu.
Linux’ta AirPods’u aynı anda hoparlör ve kulaklık seti olarak kullanmayı sağlıyor sandım, heyecanlanmıştım.
Kendim denedim, iyi çalışıyor gibi. Umarım patentler yüzünden engellenmez.
Ancak Bluetooth profilini HFP (Hands-Free Profile) ya da HSP (Headset Profile) olarak değiştirmeniz gerekir.
Daha iyi kalite için varsayılanın bu olduğunu da not etmek gerekir. Bu Linux’tan değil, Bluetooth spesifikasyonundan kaynaklanıyor.
Aradığım temel faydalı özellik, diğer cihazlarda da sınırsız multipoint kullanmak.
Diğer cihazların çoğunun sunduğu 2 bağlantı çok yetersiz. Bazen şirketin VoIP masa telefonuna hızlıca bağlanabilsem iyi olurdu.