LibrePods: AirPods ที่ได้รับการปลดปล่อย
(github.com/librepods-org)- LibrePods เป็นโปรเจกต์ที่นำโปรโตคอลเฉพาะกรรมสิทธิ์ระหว่าง AirPods กับอุปกรณ์ Apple มาใช้งาน เพื่อให้ฟีเจอร์ของ AirPods ที่เดิมใช้ได้เฉพาะกับอุปกรณ์ Apple สามารถใช้บนแพลตฟอร์มที่ไม่ใช่ Apple อย่าง Linux และ Android ได้
- ฟีเจอร์ที่รองรับแตกต่างกันไปตามแพลตฟอร์ม โดยการเปลี่ยนโหมดการฟัง, การตรวจจับการสวมใส่, สถานะแบตเตอรี่, การรับรู้การสนทนา และการเชื่อมต่ออัตโนมัติ ได้ถูกนำมาใช้งานและทำงานได้ดีบน Linux และ Android
- บางฟีเจอร์จำเป็นต้องใช้ VendorID spoofing หรือยังอยู่ในขั้นวางแผน และ Head Gestures รองรับเฉพาะ Android ส่วนบน Linux ไม่มีแผนจะนำมาใช้งาน
- Find My, เสียงตามตำแหน่ง, การตรวจวัดอัตราการเต้นของหัวใจ และเสียงสองทางคุณภาพสูง ยังไม่เสร็จสมบูรณ์หรืออยู่ระหว่างการสำรวจ และบน Android บางฟีเจอร์อาจจำเป็นต้องใช้ root
- แอป Android และบางส่วนของการเขียนใหม่บน Linux มี โค้ดที่สร้างโดย AI รวมอยู่ด้วย โปรเจกต์เผยแพร่ภายใต้ GPLv3 หรือใหม่กว่า แต่สิทธิ์การใช้ชื่อ โลโก้ และแบรนดิง LibrePods ถูกจำกัดแยกต่างหาก
LibrePods ทำอะไร
- LibrePods นำโปรโตคอลเฉพาะกรรมสิทธิ์ที่ใช้แลกเปลี่ยนข้อมูลระหว่าง AirPods กับอุปกรณ์ Apple มาใช้งาน
- การนำมาใช้งานนี้ทำให้สามารถใช้ฟีเจอร์ของ AirPods ต่อไปนี้บนแพลตฟอร์มที่ไม่ใช่ Apple ได้ด้วย
- เปลี่ยนโหมดควบคุมเสียงรบกวน
- ตรวจจับการสวมใส่อย่างรวดเร็ว
- สถานะแบตเตอรี่ที่แม่นยำ
- Head Gestures
- Conversational Awareness
- ฟีเจอร์การตั้งค่า AirPods อื่น ๆ
- เอกสารการติดตั้งแยกตามแพลตฟอร์ม
การรองรับฟีเจอร์ตามแพลตฟอร์ม
-
ฟีเจอร์ที่นำมาใช้งานและทำงานได้ดีทั้งบน Linux และ Android
- เปลี่ยนโหมดการฟัง
- ตรวจจับการสวมใส่
- สถานะแบตเตอรี่
- เปลี่ยนชื่อ AirPods
- บน Android อาจต้องจับคู่ใหม่หลังเปลี่ยนชื่อ
- Conversational Awareness
- เชื่อมต่อ AirPods อัตโนมัติ
-
ฟีเจอร์ที่รองรับเฉพาะ Android
- Head Gestures
- การตั้งค่าการช่วยการเข้าถึงอื่น ๆ
- Press speed
- Press and Hold duration
- Noise Cancellation with single AirPod
- Volume control on swipe
- Volume swipe speed
- การตั้งค่าทั่วไปอื่น ๆ
- วนโหมดการฟังหรือเรียกผู้ช่วยดิจิทัลด้วย Press and Hold
- การตั้งค่าการควบคุมสายสนทนา
- Personalized volume
- Microphone side
- หยุดสื่อชั่วคราวเมื่อหลับ
- เปิดใช้งาน
Off listening mode
- ฟีเจอร์ที่จำเป็นต้องใช้ VendorID spoofing
- Loud Sound Reduction
- Hearing Aid
- การปรับแต่ง Transparency Mode
- Multi-device connectivity
- เกณฑ์การแสดงสถานะมีดังนี้
- ✅: นำมาใช้งานแล้วและทำงานได้ดี
- ⚪: ต้องใช้ VendorID spoofing ผู้ใช้ต้องยอมรับความเสี่ยงเอง
- 🔴: ยังไม่ได้นำมาใช้งาน มีแผนทำ
- ⛔: ไม่มีแผนจะนำมาใช้งาน
- ❓: ไม่ทราบ
VendorID spoofing และฟีเจอร์เพิ่มเติม
- VendorID spoofing เป็นวิธีเข้าถึงฟีเจอร์พิเศษหลายอย่าง โดยเปลี่ยน VendorID ใน DID Profile ให้เป็นค่าของ Apple
- บน Linux สามารถใช้ได้โดยแก้ไข DeviceID ใน
/etc/bluetooth/main.conf- บรรทัดตั้งค่า:
DeviceID = bluetooth:004C:0000:0000
- บรรทัดตั้งค่า:
- บน Android หากใช้งาน Xposed ได้และเปิดใช้งานโมดูล LibrePods แล้ว สามารถเปิด
act as Apple deviceได้ในการตั้งค่าแอป - Multi-device Connectivity ช่วยให้เชื่อมต่ออุปกรณ์ได้สูงสุด 2 เครื่องกับ AirPods พร้อมกัน เพื่อใช้ได้ทั้งเสียงและการควบคุม
- หาก Android ดึง AirPods ไป อุปกรณ์ Apple จะแสดงการแจ้งเตือน
"Move to iPhone"เหมือนเป็นอุปกรณ์ Apple - หากอุปกรณ์อื่นดึงไป Android ก็จะแสดงป๊อปอัปเช่นกัน
- หาก Android ดึง AirPods ไป อุปกรณ์ Apple จะแสดงการแจ้งเตือน
- สามารถตั้งค่าด้านการช่วยการเข้าถึงและเครื่องช่วยฟังได้ด้วย
- amplification, balance, tone, conversation boost, ambient noise reduction ของ Transparency Mode
- Loud Sound Reduction
- การปรับแต่ง Hearing Aid และการตั้งค่าผล audiogram
- แอปไม่มีฟีเจอร์ทดสอบการได้ยิน เนื่องจากต้องการความแม่นยำที่สูงกว่า
ฟีเจอร์ที่ยังไม่เสร็จสมบูรณ์และข้อจำกัดของขอบเขต
- ฟีเจอร์ที่เกี่ยวข้องกับ Find My อยู่ในแผน แต่ต้องทำ reverse engineering เพิ่มเติม และบน Android อาจต้องใช้ root
- เพิ่ม AirPods เข้าสู่เครือข่าย Find My
- เล่นเสียงจากเคสชาร์จ
- แจ้งเตือนเมื่อทิ้งไว้
- สลับเปิด/ปิดเสียงชาร์จของเคส
- Spatial Audio ปัจจุบันยังไม่ได้ส่งข้อมูล head tracking ให้ Android เพื่อให้ OS ทำ HRTF
- ยังไม่ได้สำรวจอย่างครบถ้วน และอาจต้องใช้ root
- ฟีเจอร์ spatialize เสียงสเตอริโออยู่นอกขอบเขตของโปรเจกต์ และจะไม่มีการให้บริการ
- OEM จำนวนมากมีการนำไปใช้งานของตนเองอยู่แล้ว
- Heart Rate Monitoring อยู่ระหว่างดำเนินงานสำหรับ AirPods Pro 3 และรุ่นหลังจากนั้น
- แม้นำมาใช้งานได้แล้ว บน Android ก็มีแนวโน้มสูงว่าจะต้องใช้ root
- High quality two-way audio เกี่ยวข้องกับฟีเจอร์บน iOS/iPadOS ที่ AirPods ยังใช้ A2DP ต่อไปได้ระหว่างส่งสตรีมเสียงไมโครโฟนผ่าน AACP
- บน Android น่าจะต้องผสานกับระบบเสียงในระดับลึกกว่าเดิม จึงมีแนวโน้มสูงว่าจะต้องใช้ root
โปรโตคอล, reverse engineering และการใช้ AI
- ข้อมูลโปรโตคอลสามารถอ้างอิงได้จากปลั๊กอิน Wireshark dissector ของ Nojus: pabloaul/apple-wireshark
- การนำ LibrePods มาใช้งานส่วนใหญ่ไม่ได้ใช้ dissector ดังกล่าว และผู้เขียนโปรเจกต์ทำ reverse engineering โปรโตคอลด้วยตนเองก่อนที่ dissector จะถูกสร้างขึ้น
- อย่างไรก็ตาม ระบุว่างาน reverse engineering ดังกล่าวจำเป็นต่อฟีเจอร์ในอนาคต เช่น เสียงสองทางคุณภาพสูงและเสียงตามตำแหน่ง
- ส่วนของแอป Android ที่ สร้างโดย AI ทั้งหมด
- ลอจิกและ UI ทั้งหมดของ Head Gestures
- offset setup ทั้งสองเวอร์ชันที่ใช้ r2 และโมดูล Xposed
- Troubleshooter และ LogCollector
- ส่วนหลักที่เหลือของแอป Android เขียนด้วยมือ
- background service
- คลาส AACP และ ATT Bluetooth manager
- UI ทั้งหมดและคอมโพเนนต์ขนาดเล็กต่าง ๆ
- ในการเขียนใหม่บน Linux,
aacp.rsและatt.rsถูก AI แปลจาก Kotlin เป็น Rust- บางส่วนของ
media_controller.rsโดยหลักคือการผสานกับ Pulse ก็สร้างโดย AI เช่นกัน
- บางส่วนของ
- คอมโพเนนต์ UI บางส่วนนำมาจาก Kyant0's demo app ภายใต้ Apache License 2.0
แอปทางเลือก, ไลเซนส์ และประกาศเรื่องเครื่องหมายการค้า
- มีการเสนอแอปทางเลือกที่ใช้ได้บนแพลตฟอร์มหรือเงื่อนไขอื่น
- CAPod: แอปคู่หู AirPods สำหรับ Android แนะนำให้ใช้หากเป็น Android 16 QPR3 หรือต่ำกว่าและไม่มี root
- MagicPods for Steam Deck: website
- MagicPods: ทางเลือกเมื่อมองหา LibrePods สำหรับ Windows
- LibrePods เผยแพร่เป็นซอฟต์แวร์เสรีภายใต้เงื่อนไข GPLv3 หรือใหม่กว่า
- GPL ไม่ได้ให้สิทธิ์ในการใช้ชื่อ โลโก้ หรือแบรนดิง LibrePods
- ห้ามใช้ชื่อและโลโก้ LibrePods โดยไม่ได้รับอนุญาตในลักษณะที่สื่อถึงความร่วมมือ การรับรอง หรือความเกี่ยวข้องกับโปรเจกต์อย่างเป็นทางการ
- ฟอนต์ SF Pro ที่ใช้ในแอป Android เป็นทรัพย์สินของ Apple Inc. และจะถูกแทนที่ด้วยทางเลือกแบบเปิดในเวอร์ชันอนาคต
- AirPods, AirPods Pro, AirPods Max และโลโก้ AirPods เป็นเครื่องหมายการค้าของ Apple Inc. และโปรเจกต์ LibrePods ไม่ได้เป็นพันธมิตรหรือได้รับการรับรองจาก Apple Inc.
- เตือนว่า
librepods.orgไม่ใช่เว็บไซต์อย่างเป็นทางการของโปรเจกต์ LibrePods และกล่าวอ้างอย่างไม่ถูกต้องว่าเป็นเว็บไซต์ทางการผ่านการอ้างลิขสิทธิ์ในฟุตเตอร์และการใช้โลโก้ LibrePods
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ขอเสริมเผื่อมีคนสับสน: AirPods ทำงานเป็นหูฟัง Bluetooth ทั่วไปกับอุปกรณ์อื่นอยู่แล้ว
โปรเจกต์นี้เป็นการนำฟีเจอร์และอินเทอร์เฟซเพิ่มเติมบางส่วนที่ถูกรวมไว้ในผลิตภัณฑ์ Apple มาใช้งาน
เขียนไว้ว่า “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” แล้วต่อด้วยตารางฟีเจอร์ด้วย
มีสินค้าที่เสียงดีกว่าในราคาถูกกว่าก็จริง แต่ คุณภาพเสียง แทบจะเป็นส่วนที่เล็กที่สุดของเรื่องราวผลิตภัณฑ์นี้
รวมถึงฟีเจอร์จำเป็นอื่น ๆ นอกเหนือจากการเชื่อมต่อเป็นอุปกรณ์เอาต์พุต/อินพุตเสียง Bluetooth ทั่วไปด้วย
โปรเจกต์นี้ยอดเยี่ยม หวังว่าสักวัน AirDrop จะถูกปลดปล่อยด้วย
https://github.com/seemoo-lab/opendrop ดูมีอนาคต แต่เหมือนจะหยุดไปแล้ว หวังว่าสักวันจะเป็นไปได้
https://www.android.com/quick-share/
ถ้าไม่ค่อนข้างมั่นใจว่า Apple จะพยายามปิดทุกช่องทางที่ทำให้สิ่งนี้ทำงานได้ในอนาคตให้มากที่สุด นี่อาจเป็นแรงจูงใจให้ซื้อ AirPods ได้เลย
นี่ใกล้เคียงกับการที่มีคนนำอินเทอร์เฟซสำหรับฟีเจอร์เพิ่มเติมที่รวมอยู่ในระบบปฏิบัติการของ Apple อยู่แล้วมาใช้งานมากกว่า
ถ้าต้องการ ล็อกเวอร์ชัน ต้องไม่ให้มันเชื่อมต่อกับผลิตภัณฑ์ Apple เลย
แต่ถ้ายังไม่ใช่ผู้ใช้คอมพิวเตอร์หรือโทรศัพท์ของ Apple อยู่แล้ว ผมจะแนะนำ Sony WF-1000XM6 ประสบการณ์ผู้ใช้แย่กว่าและได้ยินว่ามีบั๊กเล็กน้อย แต่เสียงน่าจะดีกว่า
แต่ก็อาจดีกว่าถ้าให้รางวัลผู้ผลิตที่ไม่บังคับให้ต้องใช้ทางเลี่ยงแบบนี้เพื่อใช้ฮาร์ดแวร์ที่เราซื้อมา
การอภิปรายก่อนหน้า: https://news.ycombinator.com/item?id=45941596
เคารพงานและการแฮ็กที่ใส่ลงไปในนี้
แต่ไม่เข้าใจว่าทำไมต้องสนับสนุนบริษัทที่เป็นศัตรูขนาดนี้ด้วยการซื้อ AirPods คงไม่แปลกใจถ้ามีแพตช์ออกมาปิดกั้นสิ่งนี้
ต่อให้เลี่ยงไปแฮ็กได้ วัฒนธรรมที่มองผู้ใช้เป็นสิ่งที่ต้องควบคุมและดูแลก็ทำให้ไม่ชอบ
สิ่งที่ใช้ไม่ได้บนแพลตฟอร์มที่ไม่ใช่ Apple คือส่วนอย่างการตั้งค่า การเปลี่ยนท่าทางบีบ และการโหลดอัปเดตเฟิร์มแวร์
Bluetooth มาตรฐานอย่างเดียวทำสิ่งเหล่านี้ไม่ได้ จึงต้องมีแอปเฉพาะทาง Apple แค่ไม่ได้ทำแอปเฉพาะสำหรับแพลตฟอร์มอื่น และ Apple ก็ไม่มีเหตุผลต้องสนใจหากมีคนทุ่มทรัพยากรทำแอปขึ้นมาเอง ยังไง AirPods ก็ขายไปแล้ว และคนอื่นเป็นคนจ่ายต้นทุนทำแอป Apple จึงชนะ
เพิ่มฟีเจอร์บนการเชื่อมต่อ Bluetooth ทั่วไป แต่เลือกให้ใช้ได้เฉพาะบนแพลตฟอร์มที่ควบคุมและรับประกันคุณภาพได้เต็มที่ไม่ได้หรือ?
แค่ให้ฟีเจอร์แบบเอกสิทธิ์ก็ถือว่า เป็นศัตรู จริง ๆ หรือ? บริษัทหนึ่งให้ข้อได้เปรียบเมื่อใช้ผลิตภัณฑ์หลายชิ้นของตัวเองร่วมกันไม่ได้หรือ?
หรือหมายความว่าเป็นศัตรูเพราะสมมติว่า Apple จะออกแพตช์ปิดสิ่งนี้?
ใช้ AirPods มาหลายคู่หลายปีแล้ว แต่บางฟีเจอร์เพิ่งรู้จักครั้งนี้เอง
ถึงขั้นคิดว่าน่าจะมีคอลัมน์ที่สามแสดงว่า Apple รองรับหรือไม่ด้วย แน่นอนว่าล้อเล่น
สำหรับคนที่ตอนนี้ไม่มี AirPods และไม่ได้ติดตามฝั่ง Apple มากนัก ถ้ามีคนอธิบายว่าจับคู่ AirPods กับอุปกรณ์ที่ไม่ใช่ Apple แล้วจะเสียฟีเจอร์อะไรไปบ้างก็น่าจะมีประโยชน์
นึกว่าจะทำให้ใช้ AirPods บน Linux เป็นลำโพงและเฮดเซ็ตพร้อมกันได้ เลยตื่นเต้น
ลองใช้เองแล้วดูเหมือนทำงานได้ดี หวังว่าจะไม่ติดปัญหาเพราะสิทธิบัตร
เพียงแต่ต้องเปลี่ยนโปรไฟล์ Bluetooth เป็น HFP (Hands-Free Profile) หรือ HSP (Headset Profile)
ควรทราบด้วยว่านี่เป็นค่าเริ่มต้นเพื่อคุณภาพที่ดีกว่า เรื่องนี้เกิดจากสเปก Bluetooth ไม่ใช่ Linux
ฟีเจอร์มีประโยชน์หลักที่ผมมองหาคือการใช้ multipoint แบบไม่จำกัด กับอุปกรณ์อื่นด้วย
การเชื่อมต่อ 2 อุปกรณ์ที่อุปกรณ์อื่นส่วนใหญ่ให้มานั้นแย่มาก บางครั้งอยากเชื่อมต่อกับโทรศัพท์ตั้งโต๊ะ VoIP ของบริษัทได้อย่างรวดเร็ว