8.6 KiB
Xiaomi HyperOS BootLoader Bypass
脆弱性を悪用し、コミュニティレベルのアカウントバインド制限をバイパスして、Xiaomi HyperOS の BootLoader のロックを解除できる PoC。
[!NOTE] Pull reqeust で このプロジェクトの改善を提案できます :)
💘 php-adb
このプロジェクトでは php-adb ライブラリを使用しています。
☕ コーヒーを奢る
✨ このプロジェクトが気に入ったら、以下の方法でコーヒーを奢ってください:
⚠️ 警告
BootLoader のロックを解除した後、以下の問題が発生する可能性があります:
- ソフトウェアの異常動作/ハードウェアの損傷
- デバイスに保存されているデータの損失
- クレジットカードの盗難、またはその他の経済的損失
[!CAUTION] 上記のいずれかが発生した場合は、BootLoader のロックを解除する際に発生する可能性があるリスクであるため、すべての責任は自分で負う必要があります。
これは明らかにすべてのリスクを保障するものではありません。警告しましたからね。
- 保証適用外
基本保証だけでなく、購入した追加の延長保証の一部 (Mi Care や画面破損の保証など) も、Xiaomi が提供する除外規定に従って失われる可能性があります。 - TEE 関連の機能は永久に使用不可能です。
Samsung Knox のようにハードウェア レベルで自己破壊するため、マザーボードを交換する以外に復旧方法はありません。 - ソースコード非公開のカーネルが原因で、サードパーティ システムをフラッシュした後の機能異常
- BootLoader のロックを解除すると、デバイスまたはアカウントが BAN されます。
[!WARNING] 上記のいずれかが発生した場合は、運が悪いと思ってください。
Xiaomi が BootLoader のロック解除を制限して以来、Xiaomi の「オタク」精神、さらには GPL にも違反しています。 BootLoader のロック解除に対する Xiaomi の制限は無限であり、開発者としてそれに対してできることは何もありません。
📲 アンロック要件
- 対象デバイス:
- BAN されていない1 Xiaomi、Redmi、または POCO デバイス
- デバイスが HyperOS の公式バージョンを実行している
- (2023/11/23 に追記) デバイスは Xiaomi によってアカウントの資格確認を強制されない
- 有効な SIM カード:
- SIM カードが使用できないタブレットを除く1
- SIM カードのサービスが使用不能になっていない
- SIM カードはモバイルネットワークにアクセスできる
- 有効な SIM カード毎に、3か月以内に 2台のデバイスのロックを解除できます。
- 有効な Xiaomi アカウント
- BAN されていない1 Xiaomi アカウント
- 各アカウントでロックを解除できるのは、1ヶ月で1台、1年で3台のみです。
- 上記の 警告 を読み、理解したものとします。
⚙️ 使用方法
- 公式サイト からシステムに PHP 8.0+ をダウンロードしてインストールします。
php.ini
で OpenSSL と Curl 拡張機能を有効にします。
(スクリプトが機能しない場合は、extension_dir
を PHP のext
ディレクトリに設定してください。)- php-adb の
adb.php
をディレクトリに配置します。 - platform-tools をダウンロードして
libraries
に展開します。 ※注意: Mac OS では、adb
の名前をadb-darwin
に変更する必要があります。 - ターミナルを開き、PHP インタープリターを使用してスクリプトを実行します。
- P.S. Releases には、必要なファイルとクイック実行スクリプトが同梱されています。
設定
→デバイス情報
→MIUIバージョン
を7回以上連続でタッチして開発者向けオプション
を有効にします。設定
→追加設定
→開発者向けオプション
で、OEMロック解除
、USBデバッグ
、USBデバッグ (セキュリティ設定)
を有効にします。- 有効な1 Xiaomi アカウントでログインします。
- デバイスを優先でPCに接続します。
このPCからのUSBデバイスを常に許可する
にチェックを入れてからOK
を押します。
- ※ 上記の"アンロック要件"を確認して下さい。
- スクリプトの指示に従い待機します。
- バインドが成功したら、公式のロック解除ツールを使用して、解除が可能になるまでの待機時間を確認できます。
- 待機時間中は、デバイスを通常どおり使用し、SIM カードを挿入したままにし、Xiaomi アカウントからログアウトしたり、
デバイスを探す
をオフにしたりせず、ロックが正常に解除されるまでデバイスを再バインドしないでください。
デバイスは定期的にHeartBeat
パケットをサーバーに自動的に送信します。
📖 回避策
- 準備中...
🔖 FAQ
-
Q: ロック解除ツールが依然として 168/360 (またはそれ以上) 時間待つように要求するのはなぜですか?
- A: 原則として、この PoC は、Xiaomi が HyperOS に対して追加した追加の制限を回避するだけです。
MIUI の制限に従う必要があります。
- A: 原則として、この PoC は、Xiaomi が HyperOS に対して追加した追加の制限を回避するだけです。
-
Q: デバイスに
Couldn't verify, wait a minute or two and try again
と表示される。- A: これは正常であり、デバイス側のバインド要求はスクリプトによってブロックされます。
実際のバインド結果は、スクリプトプロンプトの影響を受けます。
- A: これは正常であり、デバイス側のバインド要求はスクリプトによってブロックされます。
-
Q: エラーコード
401
でバインドに失敗しました。- A: Xiaomi アカウントの認証情報の有効期限が切れているため、デバイスからログアウトして再度ログインする必要があります。
-
Q: エラーコード
20086
でバインドに失敗しました。- A: デバイスの認証情報の有効期限が切れているため、デバイスを再起動する必要があります。
-
Q: エラーコード
20090
または20091
でバインドに失敗しました。- A: デバイスの
Security Device Credential Manager
機能が破損しています。
サポートについてはアフターサービスにお問い合わせください。
- A: デバイスの
-
Q: エラーコード
30001
でバインドに失敗しました。- A: デバイスは、Xiaomi によってアカウントの資格確認を強制されました。
Xiaomi はずっと前に「オタク」の精神を失っており、それについて私たちにできることは何もありません。
- A: デバイスは、Xiaomi によってアカウントの資格確認を強制されました。
-
Q: エラーコード
86015
でバインドに失敗しました。- A: サーバーがバインド要求を拒否しました。もう一度試してください。
⚖️ ライセンス
ライセンスがない場合、このプロジェクトの使用のみが許可されます。
このソフトウェア(およびリンクなど)のすべての著作権を許可なく削除または変更することはできません。
このプロジェクトのすべての権利は、MeowCat Studio、Meow Mobile、NekoYuzu に帰属します。
-
Xiaomi が提供するロック解除手順によると、特定のアカウントとデバイスはロック解除ツールの使用を禁止されます。これは「リスク管理」と呼ばれています。 ↩︎