anker-vibecoded:Anker Prime BLE 接続ツール
概要
Anker Prime シリーズの電源バンクと Bluetooth LE 経由で通信し、デバイス情報や状態を取得するための Python ツールです。元コードは atc1441 の Anker_Prime_BLE_hacking に依拠しており、デバイス検出、情報読み出し、AES-CBC を用いた暗号化チャネルでのやり取り、ステータス/テレメトリ要求などの機能が実装されています。作者(geohot)は「vibecoded(寄せ集め)」として動作が不安定になる場合があると明記しており、実験目的や解析の参考実装として位置づけられます。
リポジトリの統計情報
- スター数: 2
- フォーク数: 0
- ウォッチャー数: 2
- コミット数: 6
- ファイル数: 7
- メインの言語: Python
主な特徴
- BLE スキャン機能で Anker Prime デバイスを発見
- デバイス情報(ファームウェア、シリアル、MAC)を読み取り
- AES-CBC による暗号化通信チャネルのサポート
- ステータスおよびテレメトリ情報の要求・取得
技術的なポイント
本プロジェクトは Python をベースに BLE(おそらく bluepy や bleak 等のライブラリ想定)を利用して GATT 経由で Anker Prime のサービスやキャラクタリスティックへアクセスします。注目すべきは暗号化層で、AES-CBC を用いたセッション鍵によりある程度の保護を提供しますが、鍵交換や認証フローの詳細(ペアリングや独自プロトコルの解析)が完全でない場合、互換性や安定性が問題になります。リポジトリは既存のリバースエンジニアリングプロジェクトを参考にしているため、プロトコルの実装は「解析に基づく試行」であり、メーカーの実装差異で動作しないケースがあります。CLI も用意されており、スクリプトからの呼び出しや手動操作でデバイスとやり取りできます。テレメトリやステータスはバイナリ/TLV 的なデータ構造で返ることが多く、解析やデコード処理が必要です。セキュリティ面では AES-CBC の IV 管理や鍵の取り扱いに注意が必要で、実機を操作する際はデータ改ざんや誤操作がハードウェアに影響を与える可能性があるため、読み取り中心での使用が安全です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- README.md: file
- anker_prime.py: file
- anker_prime_cli.py: file
- requirements.txt: file
…他 2 ファイル
anker_prime.py がライブラリ本体(デバイス探索、接続、暗号化・送受信ロジック)、anker_prime_cli.py が簡易 CLI(スキャン・情報取得コマンド)を提供する構成です。requirements.txt に依存ライブラリが列挙されているため、環境構築は仮想環境上で pip install -r requirements.txt を実行する流れになります。README.md に使い方や注意事項が簡潔にまとめられており、実機と接続する際の手順や互換性に関する記載があります。
使い方と注意点
- 事前準備:Python 環境(3.x 推奨)、BLE を操作できるプラットフォーム(Linux/macOS/Windows + 対応ドライバ)
- インストール:requirements.txt を使って依存を導入
- 実行例:CLI でスキャン→該当デバイスに接続→情報取得/ステータス要求
- 注意点:全ての Anker Prime 製品で動作する保証はなく、ファームウェア差異や独自のペアリングにより正常に通信できない場合があります。暗号鍵や機密データの取り扱いには注意してください。
貢献・拡張の提案
- 接続成功率向上のためペアリング/鍵交換ロジックの追加解析
- bleak 等のクロスプラットフォーム BLE ライブラリ対応で互換性拡張
- 受信データのデコード処理を整理し、人間可読の出力を増やす
- テスト用モックやログレベルでデバッグ情報を充実させる
まとめ
実験的で解析向けの Anker Prime BLE クライアント。参考実装として有用。
リポジトリ情報:
- 名前: anker-vibecoded
- 説明: vibecoded python to connect to Anker chargers over BTLE
- スター数: 2
- 言語: Python
- URL: https://github.com/geohot/anker-vibecoded
- オーナー: geohot
- アバター: https://avatars.githubusercontent.com/u/72895?v=4
READMEの抜粋:
Anker Prime BLE Tool
A Python tool for connecting to and monitoring Anker Prime power banks via Bluetooth LE.
lol this is vibecoded so it barely works. it’s all just from https://github.com/atc1441/Anker_Prime_BLE_hacking but it doesn’t seem to work with my Anker devices. was fun to watch Claude try though.
Features
- 🔍 Scan for Anker Prime devices
- 📊 Read device information (firmware, serial, MAC)
- 🔐 Encrypted communication using AES-CBC
- 📈 Request device status and telemetry
- …