1 poin oleh GN⁺ 3 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • 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
  • Di Android, jika Xposed tersedia dan modul LibrePods aktif, opsi act as Apple device bisa 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
  • 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.rs dan att.rs diterjemahkan oleh AI dari Kotlin ke Rust
    • Sebagian media_controller.rs, terutama integrasi Pulse, juga dihasilkan AI
  • 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.org bukan 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

 
GN⁺ 3 jam lalu
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

    • Saya tidak tahu bagian mana yang membingungkan. Di bagian paling atas README sudah dijelaskan
      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
    • Bukan itu alasan orang membeli AirPods. Intinya adalah transisi yang mulus dari iPhone ke Apple TV, MBP, dan Mini
      Ada produk yang suaranya lebih bagus dengan harga lebih murah, tetapi kualitas audio mungkin adalah bagian paling kecil dari cerita produk ini
    • Kalau ingatan saya benar, setidaknya sejak 2021 sudah ada beberapa aplikasi Android yang menampilkan sisa baterai AirPods
      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

  • 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

    • AirPods memang sudah berfungsi di luar ekosistem Apple
      Ini lebih seperti seseorang mengimplementasikan antarmuka untuk fitur tambahan yang sudah terintegrasi di sistem operasi Apple
    • AirPods diperbarui saat sedang diisi daya di dalam casing dan dipasangkan dengan perangkat xOS
      Untuk mengunci versi, Anda harus memastikan AirPods tidak pernah terhubung ke produk Apple
    • Mengapa Apple ingin membuat AirPods menjadi pembelian yang lebih buruk? Apple mengizinkan sistem operasi apa pun berjalan di Mac, dan di sisi itu mereka tidak secara aktif bermusuhan, meski juga tidak membantu komunitas
      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
    • AirPods adalah perangkat offline, jadi jika Anda membeli sepasang sekarang, perangkat itu akan berfungsi tanpa batas waktu
      Namun mungkin lebih baik memberi imbalan kepada produsen yang tidak mengharuskan bypass seperti ini hanya untuk memakai hardware yang saya beli
    • Kalau saya, tidak akan beli. Ini earbud paling tidak nyaman di pasar, berapa pun kisaran harganya
  • 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

    • Inilah hal yang paling mengganjal bagi saya soal Apple. Hardware-nya benar-benar hebat, tetapi sikap mereka yang menentang kebebasan pengguna pada hardware mereka sendiri membuat saya tidak akan pernah memakainya
      Meski bisa diakali dan di-hack, budaya yang memandang pengguna sebagai pihak yang harus dikendalikan dan diasuh itu mengganggu saya
    • Ini lebih mendekati malas daripada bermusuhan. AirPods menggunakan Bluetooth standar untuk semua hal yang disediakan Bluetooth
      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
    • Saya tidak tahu apa yang begitu bermusuhan
      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?
      1. Demi kesenangan
      2. Untuk memberi kebebasan tambahan kepada pembeli barang bekas, orang yang menerimanya sebagai hadiah, orang yang membelinya dulu, dan sebagainya
  • 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

    • Ada daftar kompatibilitas fitur
  • Saya sempat berharap ini memungkinkan AirPods digunakan di Linux sebagai speaker dan headset secara bersamaan

    • Ada PR untuk fitur itu: https://github.com/librepods-org/librepods/pull/655
      Saya sudah mencobanya sendiri dan tampaknya berfungsi dengan baik. Semoga tidak terhalang paten
    • Di Linux pun AirPods bisa digunakan sebagai speaker (pemutaran) dan headset (mikrofon) secara bersamaan
      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