オープンソース
Librepods: Appleエコシステムから解放されたAirPods
Librepods: AirPods liberated from Apple's ecosystem (github.com)
要約
LibrePodsは、AirPodsの独自のプロトコルを実装することで、ノイズコントロールモードの変更、耳検出、正確なバッテリー状態、ヘッドジェスチャーなどのAppleデバイス限定機能を非Appleプラットフォームで利用可能にするプロジェクトです。LinuxおよびAndroidで多くの機能が利用でき、一部の高度な機能にはroot化が必要となる場合があります。このプロジェクトは、AIを活用した開発やコミュニティからの支援を受けています。
全文翻訳
警告
librepods.orgはLibrePodsプロジェクトの公式ウェブサイトではありません。フッターに著作権を主張し、LibrePodsロゴを使用することで、公式ウェブサイトであると不正確に主張しています。同時に、彼らはプロジェクトがLibrePodsプロジェクトやその開発者とは提携していないと述べています。このようなウェブサイトは、me@kavish.xyzまで報告してください。
LibrePodsとは?
LibrePodsは、AirPodsのAppleデバイス限定機能を非Appleデバイスで利用できるようにします。AirPodsとAppleデバイス間でデータを交換するために使用される独自のプロトコルを実装し、ノイズコントロールモードの変更、高速耳検出、正確なバッテリー状態、ヘッドジェスチャー、会話認識などの機能を非Appleプラットフォームで可能にします。
機能の利用可能性
機能 | Linux | Android
-- | -- | --
リスニングモードの変更 | ✅ | ✅
耳検出 | ✅ | ✅
バッテリー状態 | ✅ | ✅
AirPodsの名前変更 | ✅ | ✅
ラウドサウンドリダクション | 🔴 | ⚪
ヘッドジェスチャー | ⛔ | ✅
会話認識 | ✅ | ✅
AirPodsへの自動接続 | ✅ | ✅
補聴器 | 🔴 | ⚪
トランスペアレンシーモードのカスタマイズ | 🔴 | ⚪
マルチデバイス接続 (Bluetooth Multipoint; 2デバイスのみ) | ⚪ | ⚪
その他のアクセシビリティ設定 (クリックで展開)
プレス速度
プレス&ホールド時間
片方のAirPodでのノイズキャンセリング
スワイプでの音量調整
音量スワイプ速度 | 🔴 | ✅
その他の一般設定
プレス&ホールドでリスニングモードの切り替え/デジタルアシスタントの呼び出し (デジタルアシスタントの呼び出しには最新のファームウェアが必要)
通話コントロールの設定
パーソナライズされた音量
ラウドサウンドリダクション (VendorIDスプーフィングが必要)
マイク側
眠りについたときにメディアを一時停止 (最新のファームウェアが必要)
オフリスニングモードを有効にしてオフに切り替え | 🔴 | ✅
ヘッドトラッキング対応空間オーディオ | ❓ | ❓
心拍数モニタリング | ⛔ | 🔴
探す | ❓ | ❓
高品質双方向オーディオ | 🔴 | 🔴
シンボルの意味
✅ | 実装済みで良好に動作
⚪ | VendorIDスプーフィングが必要; 自己責任で使用
🔴 | 未実装; 計画中
⛔ | 実装されない
❓ | 不明
探す
「探す」に関連する以下の機能は計画されていますが、さらなるRE(リバースエンジニアリング)が必要であり、Androidではroot化が必要になる可能性があります:
AirPodsを「探す」ネットワークに追加
充電ケースから音を鳴らして見つける
置き忘れたときに通知
ケース充電音の切り替え
空間オーディオ
現在、アプリはヘッドトラッキング情報をAndroidに提供しておらず、OSがHRTFを実行していません。これは完全に調査されておらず、root化が必要になる可能性があります。ステレオサウンドの空間化はこのプロジェクトの範囲外であり、提供されることはありません。多くのOEMが独自のこの実装を持っています。
心拍数モニタリング (AirPods Pro 3以降)
これは現在取り組んでおり、詳細についてはLibrePods Discordサーバーの#reverse-engineeringチャンネルを確認してください。もし実装された場合、Androidではほとんどの場合root化が必要になるでしょう。
高品質双方向オーディオ
iOS/iPadOSでは、AirPodsがマイクからのオーディオストリームをAACP経由で送信しながら、A2DPを引き続き使用できます。これはAndroidのオーディオとのより深い統合が必要なため、ほとんどの場合root化が必要になるでしょう。
インストール
Android
Linux
VendorIDスプーフィング
DIDプロファイルのVendorIDをAppleのものに変更すると、いくつかの特別な機能にアクセスできることが判明しました!Linuxでは、/etc/bluetooth/main.confのDeviceIDを編集することでこれを行うことができます。この行をconfigファイルに追加してください。
DeviceID = bluetooth:004C:0000:0000
Androidでは、アプリの設定で「Act as Apple device」設定を有効にできます(Xposedが利用可能でLibrePodsモジュールが有効な場合のみ表示されます)。
マルチデバイス接続
最大2台のデバイスをAirPodsに同時に接続でき、オーディオとコントロールの両方が可能です。シームレスな接続切り替えも実現します。AndroidがAirPodsを引き継ぐと、まるでAppleデバイスであるかのようにAppleデバイスに「iPhoneに移動」という通知が表示されます。Androidでも、他のデバイスが引き継ぐとポップアップが表示されます。
アクセシビリティ設定と補聴器
透明度モードのカスタマイズ(増幅、バランス、トーン、会話ブースト、周囲のノイズリダクション)やラウドサウンドリダクションなどのアクセシビリティ設定を構成できます。オーディオグラムの結果の設定を含む、すべての補聴器のカスタマイズはAndroidから(Linuxは近日中)行うことができます。アプリは聴力検査を受ける方法を提供していません。これはより高い精度が必要なためです。既存のオーディオグラムの結果を使用する方がはるかに良いです。
プロトコルとリバースエンジニアリング
使用されているプロトコルの詳細については、Nojus (@pabloaul)によるWiresharkディセクタープラグインを参照してください: pabloaul/apple-wireshark
ディセクターは実装のほとんどでLibrePodsには使用されていませんでした。私はこのディセクターが作成される前に自分でプロトコルをリバースエンジニアリングしました。しかし、双方向高品質オーディオや空間オーディオを含む多くの(将来の)機能は、彼らのREの努力なしには不可能でした!
AIの使用
Androidアプリ
アプリの以下の部分は完全にAI生成されました:
ヘッドジェスチャー - ロジックとUIを含むすべて
r2+xposedモジュール(両バージョン)によるオフセット設定
トラブルシューターとLogCollector
その他すべて - バックグラウンドサービス、Bluetoothマネージャークラス(AACPとATT)、UI全体、最小のコンポーネントまでも手動で記述されました。UIコンポーネントの一部は、Apache License 2.0でライセンスされているKyant0のデモアプリから借用されました。
Linux(書き換え)
aacp.rsとatt.rsファイルはKotlinからRustにAIで翻訳されました。media_controller.rsファイルの一部、主にパルス統合もAIによって生成されました。
サポーター
プロジェクトをサポートしてくださる皆様に心から感謝申し上げます!
@davdroman
@tedsalmon
@wiless
@SmartMsg
@lunaroyster
@ressiwage
@kkjdroid
@CitrusJoules
@DanielReyesDev
@sumitduster
@GrifTheDev
特別感謝
プロトコルの最初のドキュメントを作成してくださった@tyalie(tyalie/AAP-Protocol-Definition)
補聴器機能で協力してくれた@rithvikvibhuとlagrangepointの皆さん(gist)
最初のrootパッチで協力してくれた@devnoname120
Linuxアプリの最初のバージョンを作成してくれた@timgromeyer
High SeasとLow Skiesを主催してくれた@hackclub
もちろん、テスト、フィードバックの共有、興味を示すことなど、何らかの形でプロジェクトに貢献してくださったすべての方々!
他のプラットフォームの代替品:
CAPod - Android用AirPodsコンパニオンアプリ(Playストア | ソースコード)。Androidバージョン16 QPR3以下を使用しており、root化していない場合はこれを使用してください。
MagicPods for Steam Deck(ウェブサイト)
MagicPods - 「Windows版LibrePods」を探している場合(MSストアインストーラー | ウェブサイト)
Star History
ライセンス
LibrePods - Appleのエコシステムから解放されたAirPods
Copyright (C) 2025 LibrePods contributors
このプログラムはフリーソフトウェアです。フリーソフトウェア財団が発行したGNU General Public Licenseのバージョン3またはそれ以降のバージョンに従って、再配布および/または改変することができます。
このプログラムは有用であることを期待して配布されていますが、いかなる保証もありません。商品性または特定の目的への適合性についての黙示の保証もありません。詳細については、GNU General Public Licenseを参照してください。
このプログラムとともにGNU General Public Licenseのコピーを受け取っているはずです。そうでない場合は、https://www.gnu.org/licenses/を参照してください。
商標表示
GPLは、LibrePodsの名称、ロゴ、またはブランディングを使用するいかなる権利も付与しません。LibrePodsの名称およびロゴは、事前の許可なく、公式のLibrePodsプロジェクトとの提携、承認、または関連性を示唆するような方法で、ソフトウェア、ウェブサイト、ドメイン、製品、サービス、またはその他のプロジェクトに使用することはできません。LibrePodsの名称またはロゴの誤用を発見した場合は、me@kavish.xyzまで報告してください。
Androidアプリで使用されているSF ProフォントはApple Inc.の所有物です。これは将来のバージョンのアプリで削除され、まもなくオープンな代替品に置き換えられます。
AirPods, AirPods Pro, AirPods Max, およびAirPodsのロゴはApple Inc.の商標です。LibrePodsプロジェクトはApple Inc.とはいかなる形でも提携または承認されていません。