LibrePods:把蘋果 AirPods 私有藍牙協定逆向出來的開源 Android 工具

LibrePods 是一個把蘋果 AirPods 私有藍牙協定逆向並重新實作的開源專案,讓 Android 手機也能切換降噪、通透、入耳偵測、頭部手勢等蘋果鎖住的能力。它的功能分成兩層:一層在多數手機免 root 就能用,另一層得靠 root 加 Xposed 把手機偽裝成蘋果裝置才啟用,而多數手機目前還得繞一個 Android 藍牙 bug。

用 AI 摘要這篇文章:

LibrePods 是一個把蘋果 AirPods 私有藍牙協定逆向出來、再開源給非蘋果平台使用的專案。裝上它對應的 Android App,你在 iPhone 上才看得到的那些 AirPods 專屬能力,例如切換主動降噪與通透模式、入耳偵測、精準電量、頭部手勢接聽電話,多數能在 Android 手機上生效。但這份功能清單有一個很少被講清楚的分岔:一部分功能在多數手機上免 root 就能用,另一部分(助聽器、通透模式細調、多設備連接)必須靠 root 加 Xposed,把手機偽裝成蘋果裝置才啟動得了。所以它到底好不好用,幾乎只取決於你願不願意為了那幾項進階功能去折騰 root,以及你手上的 Android 版本剛好落在哪一種藍牙堆疊狀態。

先看清楚兩層功能:不用 root 的,跟得偽裝成蘋果才拿得到的

LibrePods 在 GitHub 的 README 攤了一份功能對照表,把每項能力標成「已實作」「需要 VendorID 偽裝」「尚未實作」「不打算做」四種狀態。這份表是整個專案最該先看的地方,因為它直接決定你需不需要 root。

LibrePods 的 GitHub 倉庫 librepods-org/librepods 首頁,顯示星數、GPL-3.0 授權與功能對照表 READMEPin
LibrePods 的 GitHub 倉庫 librepods-org/librepods,首頁即攤出兩層功能對照表(來源:github.com/librepods-org/librepods)

第一層是不用 root、裝好 App 就能用的。從官方 README 的功能表來看,Android 上已經實作並穩定運作的能力包含:切換監聽模式(也就是在主動降噪、通透、關閉之間切換)、入耳偵測(拿下耳機自動暫停)、精準的電量狀態、重新命名 AirPods、交談感知(講話時自動降音量)、頭部手勢(例如點頭接聽來電),以及按壓速度與時長、單耳降噪、滑動調音量等一系列輔助操作。這一層覆蓋了大多數人買 AirPods Pro 之後最常按的需求。

第二層是 README 用圓圈符號標註、必須靠 VendorID 偽裝才啟用的。所謂 VendorID 偽裝,是把 Android 手機在藍牙裝置資訊(DID Profile)裡的廠商識別碼改成蘋果的 004C,讓 AirPods 以為它連的是蘋果裝置,進而解鎖蘋果私下保留的那幾項功能。落在這一層的有:大聲音量自動降低、助聽器(含載入聽力圖 Audiogram 的個人化補償)、通透模式的細部調校(環境音增強、左右平衡、音調調整、對話增強、降噪強度),以及同時連兩台設備的藍牙多點連接。官方 README 說明,在 Android 上這個偽裝得靠 root 加 Xposed 框架,啟用 App 裡那個「act as Apple device」開關才會出現,不是一般設定裡按一下就打開的選項。

多設備連接是第二層裡比較誘人的一項。官方 README 的 Multi-device Connectivity 段寫著,AirPods 最多能同時接兩台設備,包含音訊與控制都同步,切換時的體驗刻意做到與蘋果生態一致:當 Android 接手 AirPods 時,另一頭的蘋果裝置會跳出像「Move to iPhone」那樣的通知,反之 Android 端也會在另一台設備接手時彈出提示。換言之,裝了 LibrePods 的 Android 連上耳機後,等於加入了蘋果那套裝置切換的往來流程,參與的不只是被動的音訊管道。但這項功能同樣落在需要 VendorID 偽裝的圓圈欄位,所以你得先過 root 那一關。

還有一組功能是 README 明說還沒做或不打算做的,挑選前要先認清。心率偵測(AirPods Pro 3 起)在 Android 上被標成紅色「尚未實作」,官方表示正在研究,未來就算做出來很可能仍然需要 root;作者把這條線索指向 LibrePods 的 Discord 頻道,有興趣追進度的人可以從那裡跟。空間音訊的頭部追蹤目前是問號狀態,README 說 App 還沒把頭部追蹤資訊餵給 Android 系統去做 HRTF 運算,未經完整探索,可能也需要 root;至於把立體聲空間化的部分,作者明說不在專案範圍、永遠不會做,因為不少手機廠商自己有實作。Find My 尋找網路與透過充電盒發聲、離開提醒這幾項則被列為已規劃但需要更多逆向工程,可能也得 root。換句話說,如果你是為了 Pro 3 的心率、空間音訊或 Find My 而裝這套,現階段它還給不了。

為什麼很多手機現在還得靠 Xposed 去繞一個 Android 藍牙 bug

LibrePods 需要 root 與否,視你的手機落在哪一種藍牙堆疊狀態而定,目前有兩種情況。根據官方 android 子目錄的 README,一種是 ColorOS、OxygenOS 16 與 realme UI 7.0,以及搭載最新 Google Play 系統更新的 Pixel Android 16 QPR3 裝置,這些組合多數功能免 root 就能跑。另一種是其他絕大多數手機,目前需要 root 加 Xposed,原因出在 Android 藍牙堆疊 Fluoride 的一個缺陷,加上蘋果並未完全遵守藍牙標準,兩邊加起來導致 LibrePods 沒辦法在未修改的系統上穩定連線。官方在這個問題上引用了 Google Issue Tracker 的公開追蹤編號,並註明修復預計會在 Android 17 帶到所有裝置,屆時多數手機可望自動轉為免 root。

這個分岔對讀者的實際意義是:如果你的手機剛好落在免 root 那一型,現在裝起來相對輕鬆,從 Google Play 或 GitHub Release 下載 APK 就能開始用;如果落在需要 root 那一型,你得先把手機 root、裝好 Xposed 框架(官方文件提到需要 LSPosed 或 Vector 這類工具設定作用域),再掛上 LibrePods 的 Xposed 模組。官方同時提醒,這套 Xposed 繞法不保證在所有裝置上都成功,root 隱藏模組還可能讓 hook 載不出來,官方的疑難排解清單也只列了三個方向:確認 LSPosed 或 Vector 的作用域設對、確認沒有 root 隱藏模組擋住藍牙 App 的 hook、設定完作用域之後重開機。說白一點,即便你願意 root,也有一段不短的 troubleshooting 路要走,這是把它當成「一鍵解放 AirPods」之前先該認清的代價。

順帶一提,LibrePods 不只有 Android 版,README 也列了 Linux 版,但狀態明顯落後。舊的 Linux 版功能較少,新的版本是用 Rust 重寫、目前還在開發中,對應的 CI 流程也在 GitHub Actions 上跑。從功能對照表看,Linux 版的入耳偵測、電量、重新命名、交談感知都已實作,但大聲音量降低、助聽器、通透模式細調都還是紅字未實作,頭部手勵更被標成不打算做。也就是說,LibrePods 的主力戰場現在仍是 Android,Linux 用戶能拿到的是基本那一層。

如果你之前在本站看過其他開源 Android 工具的介紹,例如會自己看螢幕操縱手機的 open-autoglm-android,會發現這類工具的共同門檻經常不是功能本身,而是 Android 系統對底層權限的封閉程度。LibrePods 的 root 需求也是同一類問題:能力寫出來了,能不能在你的手機上跑,還得看系統給不給那個底層通道。

它真正逆向的,是蘋果私有的 AirPods 藍牙協定

LibrePods 能做到上述這些事,背後是一件工程含量頗高的工作:把蘋果用來讓 AirPods 與 iPhone 交換資料的私有藍牙協定逆向出來,再用自己的程式碼重新實作。官方 README 把這條協定稱為蘋果專屬的私有協定,實作裡會碰到 AACP 與 ATT 層相關的訊息交換(兩者都是作者在程式碼裡對藍牙管理類別的命名,AACP 對應蘋果那套私有音訊控制訊息,ATT 則是藍牙通用屬性協定)。這也是為什麼它不像一般藍牙耳機 App 只能拿到基本媒體鍵,而是能切降噪模式、讀精準電量、設定助聽器參數,這些都走蘋果私有的資料通道。

逆向工程不是一個人閉門造車。README 的致謝段提到,最早對這套協定做文件化的是 tyalie 的 AAP-Protocol-Definition,助聽器功能參考了 lagrangepoint 社群的整理,root 修正檔與 Linux 版分別來自不同貢獻者;另外 Nojus 一方做的 Wireshark 封包剖析器,則被作者標註為未來雙向高品質音訊與空間音訊進一步實作的關鍵基礎。也就是說,LibrePods 是站在一群人對蘋果私有協定的集體拆解之上,把可運作的 Android 實作組合起來,而不是單純寫個 UI 去呼叫系統既有 API。作者也誠實標註了程式碼的來源:頭部手勵、offset 設定與疑難排解工具這幾塊是 AI 生成的,其餘包括背景服務、藍牙管理類別與整套 UI 是手寫的。

這層協定背景,也解釋了前面兩層功能表為什麼會這樣切。降噪模式切換、入耳偵測這類能力走的是 AirPods 對所有藍牙主端都會開放的基本訊息;助聽器細調、多點連接這些則是蘋果只在偵測到「對方也是蘋果裝置」時才會解鎖的進階通道,所以才需要 VendorID 偽裝這一道手續。

挑版本、避開冒牌站

LibrePods 專案本身有幾個地方值得在下載前認清楚。

先看版本狀態。從 GitHub 的 release 頁面看,目前最新的正式標籤是 v1.0.0-rc1,發布於 2026 年 6 月 20 日。名稱裡的 rc 是 release candidate(候選版)的縮寫,意思是它已經接近 1.0 穩定版,但官方還沒把它當作正式穩定版對外宣稱。除了 rc 版,專案也持續產出 nightly 每夜建構,內含最新但未經完整驗證的程式碼。求穩的人可以等 1.0 正式版,想搶先試新功能的人則能去拉 nightly,但官方自己警告 nightly 可能較不穩定。

LibrePods 的 GitHub Releases 頁面,最新正式標籤為 v1.0.0-rc1 候選版,另有 nightly 每夜建構Pin
LibrePods 目前最新正式版本是 v1.0.0-rc1 候選版,還不是 1.0 穩定版(來源:github.com/librepods-org/librepods/releases)

下載來源也得選對,因為兩個管道給的東西不一樣。Android 版同時在 Google Play 上架(套件名 me.kavishdevar.librepods),但 Play 商店版把部分功能放在應用內購買後面,官方 release 說明明列 Play 版免費的只有電量、入耳偵測、切換監聽模式、長按監聽模式自訂這四項,其餘進階功能要付費解鎖。相對地,GitHub Releases 上的版本(FOSS build)官方承諾全功能免費,若你需要 Xposed 模組的 ZIP,也只在此處提供。也就是說,想拿到完整功能又不想付費,GitHub Release 是唯一來源;只求最基本陪伴功能、而且裝的是免 root 手機,Play 商店版才比較省事。

再看冒牌網站這條風險。README 開頭放了一則醒目警告:librepods.org 並非 LibrePods 的官方網站,該站擅自使用 LibrePods 名稱與 logo,卻又在自家頁面聲明與專案無關。作者請使用者把這類網站回報到他的個人信箱。對讀者來說,這代表下載前先確認來源是 GitHub 上的 librepods-org/librepods 倉庫,或 Google Play 上那個套件名,避開網址看起來很像的第三方站。

授權與商標這條線也順道看清楚。LibrePods 採 GPL-3.0 授權,允許你使用、研究、修改與再散布原始碼;但 README 的商標段同時聲明,GPL 並不授予 LibrePods 名稱與 logo 的使用權,任何人想拿名稱或 logo 用在會讓人誤會與官方有關的場合,必須先取得許可。此外 AirPods、AirPods Pro 等都是 Apple Inc. 的商標,LibrePods 專案與蘋果沒有任何隸屬或背書關係。這條界線對只是下載來用的人影響不大,但如果你打算拿原始碼做衍生專案、或用 LibrePods 名義對外宣傳,就必須先把這條商標限制算進去。本站先前介紹過的 watchy-open-source-smartwatch 也是同類「用開源解放被廠商鎖住的硬體」的例子,差別在它解放的是手錶、LibrePods 解放的是耳機。

另外有兩個與韌體有關的小細節,是實際使用時容易踩到的。其一是官方 README 標訂,較新版本的 AirPods 韌體升級之後,必須在 App 裡啟用「Off listening mode」這個選項,才能切換到完全關閉的狀態,原因是這個模式下不會降低大聲音量。其二是透過 App 重新命名 AirPods 之後,你得把手機與耳機重新配對,名稱變更才會生效,這是 Android 藍牙裝置命名機制的限制,不是 App 的 bug。

不想 root,還有一條退路

如果你看完前面的 root 條件,判斷自己不適合折騰,官方 README 在結尾提供了替代方案。對於使用 Android 16 QPR3 以下版本、而且不想 root 的人,作者推薦 CAPod 這套同樣能在 Android 上陪伴 AirPods 的 App,它提供的是比較基本的能力,門檻低得多。另外如果找的是 Windows 或 Steam Deck 上的 AirPods 工具,作者也指向 MagicPods。這表示 LibrePods 並不是這條賽道上唯一的選擇,它走的是「功能最完整但要 root」的那一端,CAPod 走的是「免 root 但功能精簡」的另一端,兩者剛好把市場分成兩塊。

把上述幾條線拉在一起,LibrePods 適合的人其實相當明確:你有一副 AirPods(官方功能表覆蓋 AirPods Pro 系列、AirPods Max 等多款型號,不同型號能拿到的能力略有差異),手上的 Android 手機剛好是免 root 的那一型,或者你願意為了助聽器、通透細調、多點連接這幾項功能承擔 root 與 Xposed 的設定成本。相對地,如果你只是偶爾想看個電量、用最基本的降噪,CAPod 這類免 root 工具會是更省事的路線;如果你期待的是心率偵測或 Find My,那目前無論哪一套都還給不了,等 Android 17 把藍牙堆疊那個 bug 修掉、或等 LibrePods 把這些功能補上,會是更實際的時間點。想再看看其他 Android 端開源工具的讀者,也可以對照本站的 opencyvis-android-ai-agentcraft-agent-opensource,理解這類專案在能力與系統門檻之間常見的取捨樣貌。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 841

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...