1 điểm bởi GN⁺ 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • LibrePods là một dự án triển khai giao thức độc quyền giữa AirPods và thiết bị Apple, cho phép dùng các tính năng AirPods vốn dành riêng cho thiết bị Apple trên các nền tảng không phải Apple như Linux và Android
  • Các tính năng được hỗ trợ khác nhau tùy nền tảng; chuyển đổi chế độ nghe, phát hiện đeo, trạng thái pin, nhận biết hội thoại và tự động kết nối đã được triển khai trên Linux và Android và hoạt động tốt
  • Một số tính năng cần VendorID spoofing hoặc vẫn đang ở giai đoạn lên kế hoạch; Head Gestures chỉ được hỗ trợ trên Android và không có kế hoạch triển khai trên Linux
  • Find My, âm thanh không gian, theo dõi nhịp tim và âm thanh hai chiều chất lượng cao vẫn chưa hoàn thiện hoặc đang trong quá trình nghiên cứu; trên Android, một số tính năng có thể sẽ cần root
  • Ứng dụng Android và một phần bản viết lại cho Linux có chứa mã do AI tạo ra; dự án được phát hành theo GPLv3 trở lên nhưng quyền sử dụng tên, logo và thương hiệu LibrePods bị hạn chế riêng

LibrePods làm gì

  • LibrePods triển khai giao thức độc quyền dùng để trao đổi dữ liệu giữa AirPods và thiết bị Apple
  • Nhờ triển khai này, các nền tảng không phải Apple cũng có thể dùng các tính năng AirPods như
    • chuyển đổi chế độ kiểm soát tiếng ồn
    • phát hiện đeo nhanh
    • trạng thái pin chính xác
    • Head Gestures
    • Conversational Awareness
    • các tính năng cài đặt AirPods khác
  • Tài liệu cài đặt được tách riêng theo từng nền tảng

Hỗ trợ tính năng theo nền tảng

  • Các tính năng đã được triển khai trên cả Linux và Android và hoạt động tốt

    • chuyển đổi chế độ nghe
    • phát hiện đeo
    • trạng thái pin
    • đổi tên AirPods
      • Trên Android, sau khi đổi tên có thể cần ghép đôi lại
    • Conversational Awareness
    • tự động kết nối AirPods
  • Các tính năng chỉ hỗ trợ trên Android

    • Head Gestures
    • các cài đặt trợ năng khác
      • tốc độ nhấn
      • thời lượng Press and Hold
      • Noise Cancellation với một AirPod
      • điều khiển âm lượng bằng vuốt
      • tốc độ vuốt âm lượng
    • các cài đặt chung khác
      • xoay vòng chế độ nghe hoặc gọi trợ lý số bằng Press and Hold
      • cài đặt điều khiển cuộc gọi
      • Personalized volume
      • phía micro
      • tạm dừng media khi ngủ
      • bật Off listening mode
    • các tính năng cần VendorID spoofing
    • Loud Sound Reduction
    • Hearing Aid
    • tùy biến Transparency Mode
    • kết nối đa thiết bị
    • Ký hiệu trạng thái có ý nghĩa như sau
    • ✅: đã triển khai và hoạt động tốt
    • ⚪: cần VendorID spoofing, người dùng tự chịu rủi ro
    • 🔴: chưa triển khai, đã có kế hoạch
    • ⛔: không có kế hoạch triển khai
    • ❓: chưa rõ

VendorID spoofing và các tính năng bổ sung

  • VendorID spoofing là cách thay đổi VendorID của DID Profile thành giá trị của Apple để truy cập nhiều tính năng đặc biệt
  • Trên Linux, có thể dùng bằng cách sửa DeviceID trong /etc/bluetooth/main.conf
    • dòng cấu hình: DeviceID = bluetooth:004C:0000:0000
  • Trên Android, nếu dùng được Xposed và đã bật mô-đun LibrePods, có thể bật act as Apple device trong cài đặt ứng dụng
  • Multi-device Connectivity cho phép kết nối tối đa 2 thiết bị với AirPods cùng lúc để dùng cả âm thanh và điều khiển
    • Nếu Android giành AirPods, trên thiết bị Apple sẽ hiện thông báo "Move to iPhone" như với thiết bị Apple
    • Nếu thiết bị khác giành AirPods, Android cũng sẽ hiện cửa sổ bật lên
  • Cũng có thể cấu hình các cài đặt liên quan đến trợ năng và máy trợ thính
    • amplification, balance, tone, conversation boost, ambient noise reduction của Transparency Mode
    • Loud Sound Reduction
    • tùy biến Hearing Aid và thiết lập kết quả audiogram
    • ứng dụng không cung cấp tính năng kiểm tra thính lực vì cần độ chính xác cao hơn

Các tính năng còn dang dở và giới hạn phạm vi

  • Các tính năng liên quan đến Find My đã được lên kế hoạch nhưng cần thêm reverse engineering và trên Android có thể cần root
    • thêm AirPods vào mạng Find My
    • phát âm thanh từ hộp sạc
    • thông báo khi bị bỏ quên
    • bật/tắt âm thanh sạc của hộp
  • Spatial Audio hiện không cung cấp thông tin head tracking cho Android để hệ điều hành thực hiện HRTF
    • chưa được nghiên cứu đầy đủ và có thể cần root
    • tính năng spatial hóa âm thanh stereo nằm ngoài phạm vi dự án và không có kế hoạch cung cấp
    • nhiều OEM đã có triển khai riêng
  • Heart Rate Monitoring đang được phát triển cho các mẫu từ AirPods Pro 3 trở về sau
    • ngay cả khi được triển khai, trên Android rất có thể sẽ cần root
  • High quality two-way audio liên quan đến khả năng trên iOS/iPadOS cho phép AirPods tiếp tục dùng A2DP trong khi gửi luồng âm thanh micro bằng AACP
    • trên Android sẽ cần tích hợp sâu hơn với âm thanh nên rất có thể sẽ cần root

Giao thức, reverse engineering, và việc sử dụng AI

  • Có thể tham khảo thông tin giao thức qua plugin Wireshark dissector của Nojus là pabloaul/apple-wireshark
  • Phần lớn việc triển khai LibrePods không dùng dissector đó, và tác giả dự án đã tự reverse engineering giao thức trước khi dissector được tạo ra
  • Tuy vậy, tác giả cho biết công việc reverse engineering đó là cần thiết cho các tính năng tương lai như âm thanh hai chiều chất lượng cao và âm thanh không gian
  • Các phần được AI tạo hoàn toàn trong ứng dụng Android
    • toàn bộ logic và UI của Head Gestures
    • cả hai phiên bản thiết lập offset dùng mô-đun r2 và Xposed
    • Troubleshooter và LogCollector
  • Các phần cốt lõi còn lại của ứng dụng Android được viết thủ công
    • background service
    • các lớp quản lý Bluetooth AACP và ATT
    • toàn bộ UI và các thành phần nhỏ
  • Trong bản viết lại cho Linux, aacp.rsatt.rs được AI dịch từ Kotlin sang Rust
    • một phần media_controller.rs, chủ yếu là tích hợp Pulse, cũng do AI tạo
  • Một số thành phần UI được lấy từ ứng dụng demo của Kyant0 theo Apache License 2.0

Ứng dụng thay thế, giấy phép, và thông báo về thương hiệu

  • Có đưa ra các ứng dụng thay thế để dùng trên nền tảng hoặc điều kiện khác
    • CAPod: ứng dụng đồng hành cho AirPods trên Android, được khuyến nghị nếu dùng Android 16 QPR3 trở xuống và không có root
    • MagicPods for Steam Deck: website
    • MagicPods: lựa chọn thay thế nếu đang tìm LibrePods cho Windows
  • LibrePods được phát hành dưới dạng phần mềm tự do theo điều kiện GPLv3 trở lên
  • GPL không cấp quyền sử dụng tên, logo hay thương hiệu LibrePods
  • Không được sử dụng tên và logo LibrePods khi chưa được cho phép theo cách hàm ý liên kết, chứng thực hoặc quan hệ với dự án chính thức
  • Phông chữ SF Pro dùng trong ứng dụng Android là tài sản của Apple Inc. và sẽ được thay bằng phương án mở trong các phiên bản tương lai
  • AirPods, AirPods Pro, AirPods Max và logo AirPods là thương hiệu của Apple Inc.; dự án LibrePods không liên kết với cũng như không được Apple Inc. chứng thực
  • librepods.org không phải trang web chính thức của dự án LibrePods; dự án cảnh báo rằng trang này tự nhận là trang chính thức một cách không chính xác thông qua tuyên bố bản quyền ở chân trang và việc sử dụng logo LibrePods

1 bình luận

 
Ý kiến trên Hacker News
  • Nói thêm để tránh nhầm lẫn: AirPods vốn đã hoạt động như tai nghe Bluetooth thông thường trên các thiết bị khác
    Dự án này triển khai một số tính năng và giao diện bổ sung được tích hợp trong sản phẩm Apple

    • Không hiểu có gì gây nhầm lẫn. Ngay đầu README đã giải thích rồi
      Có ghi rằng “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”, rồi sau đó còn có bảng tính năng
    • Đó không phải là lý do người ta mua AirPods. Điểm cốt lõi là khả năng chuyển tiếp tự nhiên từ iPhone sang Apple TV, MBP, Mini
      Có những sản phẩm rẻ hơn mà âm thanh hay hơn, nhưng chất lượng âm thanh gần như là phần nhỏ nhất trong câu chuyện của sản phẩm này
    • Nếu tôi nhớ không nhầm thì ít nhất từ năm 2021 đã có nhiều ứng dụng Android hiển thị mức pin của AirPods
      Và cả các tính năng thiết yếu khác ngoài việc kết nối như một thiết bị xuất/nhập âm thanh Bluetooth thông thường
  • Dự án này rất tuyệt. Hy vọng một ngày nào đó AirDrop cũng được giải phóng
    https://github.com/seemoo-lab/opendrop từng trông có vẻ hứa hẹn nhưng có vẻ đã dừng lại; mong là một ngày nào đó sẽ làm được

  • Nếu tôi không tin chắc rằng Apple sẽ cố chặn tối đa mọi con đường có thể khiến thứ này hoạt động trong tương lai, thì có lẽ đây đã là động lực để tôi mua AirPods

    • AirPods vốn đã hoạt động bên ngoài hệ sinh thái Apple rồi
      Cái này gần với việc ai đó triển khai giao diện cho các tính năng bổ sung vốn đã được tích hợp trong hệ điều hành của Apple hơn
    • AirPods được cập nhật khi đang sạc trong hộp và đã ghép đôi với thiết bị xOS
      Muốn khóa phiên bản thì phải đảm bảo chúng tuyệt đối không bao giờ kết nối với sản phẩm Apple
    • Vì sao Apple lại muốn biến AirPods thành một món đồ đáng mua kém hơn? Apple cho phép chạy bất kỳ hệ điều hành nào trên Mac, và ở mảng đó họ không chủ động thù địch, nhưng cũng không giúp cộng đồng
      Dù vậy, nếu bạn chưa phải người dùng máy tính hay điện thoại Apple, tôi sẽ khuyên dùng Sony WF-1000XM6. Người ta nói trải nghiệm người dùng tệ hơn và hơi lỗi, nhưng khả năng cao âm thanh tốt hơn
    • AirPods là thiết bị ngoại tuyến, nên nếu bây giờ mua một đôi thì chúng sẽ hoạt động vô thời hạn
      Tuy nhiên có lẽ tốt hơn là nên thưởng cho những nhà sản xuất không bắt mình phải đi đường vòng như thế chỉ để dùng phần cứng mình đã mua
    • Nếu là tôi thì không mua. Đây là tai nghe nhét tai bất tiện nhất trên thị trường, bất kể tầm giá
  • Thảo luận trước đó: https://news.ycombinator.com/item?id=45941596

  • Tôi tôn trọng công sức và những màn hack đã bỏ vào đây
    Nhưng tôi không hiểu vì sao phải ủng hộ một công ty thù địch như vậy bằng cách mua AirPods. Tôi cũng sẽ không ngạc nhiên nếu có bản vá để chặn chuyện này

    • Đây là điểm khiến tôi băn khoăn nhất về Apple. Phần cứng thật sự xuất sắc, nhưng thái độ chống lại quyền tự do của người dùng trên chính phần cứng của họ khiến tôi tuyệt đối không dùng
      Dù có thể đi đường vòng để hack, tôi vẫn khó chịu với văn hóa xem người dùng là đối tượng cần bị kiểm soát và chăm nom
    • Cái này gần với lười biếng hơn là thù địch. AirPods dùng Bluetooth tiêu chuẩn cho mọi thứ mà Bluetooth cung cấp
      Những thứ không làm được trên nền tảng ngoài Apple là phần cài đặt, thay đổi thao tác bóp, tải bản cập nhật firmware, v.v.
      Chỉ với Bluetooth tiêu chuẩn thì không có cách làm những việc này, nên cần một ứng dụng chuyên dụng. Apple chỉ không làm ứng dụng chuyên dụng cho các nền tảng khác, và Apple cũng chẳng có lý do gì phải bận tâm nếu ai đó bỏ tài nguyên ra làm ứng dụng. Dù sao thì AirPods đã bán được, còn chi phí làm ứng dụng do người khác trả, nên Apple thắng
    • Tôi không hiểu có gì thù địch đến thế
      Không được phép thêm tính năng trên nền kết nối Bluetooth thông thường, nhưng chọn chỉ cung cấp trên những nền tảng mà mình có thể kiểm soát hoàn toàn và đảm bảo chất lượng sao?
      Chỉ riêng việc cung cấp độc quyền tính năng thôi đã thật sự là thù địch rồi à? Một công ty không được phép đưa ra lợi ích khi dùng nhiều sản phẩm của họ cùng nhau sao?
      Hay ý là thù địch vì đang giả định Apple sẽ vá để chặn nó?
      1. Vì vui
      2. Để trao thêm tự do cho người mua đồ cũ, người được tặng, người đã mua trước đây, v.v.
  • Tôi đã dùng nhiều đôi AirPods trong nhiều năm, vậy mà có một số tính năng đến giờ mới biết
    Tôi còn nghĩ giá mà có thêm cột thứ ba cho biết Apple có hỗ trợ hay không. Tất nhiên là nói đùa thôi

  • Với người hiện không có AirPods và không theo sát phía Apple, sẽ hữu ích nếu ai đó giải thích khi ghép đôi AirPods với thiết bị ngoài Apple thì mất những tính năng nào

    • danh sách tương thích tính năng đấy
  • Tôi đã háo hức vì tưởng thứ này cho phép dùng AirPods trên Linux đồng thời như loa và headset

    • Có PR cho tính năng đó: https://github.com/librepods-org/librepods/pull/655
      Tôi tự dùng thử thì có vẻ hoạt động tốt. Hy vọng không bị chặn vì bằng sáng chế
    • Trên Linux cũng có thể dùng AirPods đồng thời như loa (phát) và headset (micro)
      Nhưng phải đổi profile Bluetooth sang HFP (Hands-Free Profile) hoặc HSP (Headset Profile)
      Cũng cần lưu ý rằng để có chất lượng tốt hơn thì đây là mặc định. Điều này là do đặc tả Bluetooth, không phải do Linux
  • Tính năng hữu ích cốt lõi tôi tìm kiếm là dùng multipoint không giới hạn trên các thiết bị khác
    Hai kết nối mà hầu hết thiết bị khác cung cấp quá tệ. Thỉnh thoảng tôi muốn có thể kết nối nhanh với điện thoại bàn VoIP ở công ty