vivo X70 Pro+など一部のSnapdragon SoC搭載vivo端末でBootloader Unlockできる可能性があるようです。
vivo X70 Pro+でBLUやインド版FWのインストールに成功
vivoスマートフォンはBootloader Unlockが正式には許可されておらず、かなり厳しく対策が取られています。
ただ、vivo X70 Pro+やvivo Y31といった一部のモデルでは、このBLU対策に穴があるようです。
なお、最新のバージョンでは対策済みのため、初期設定時は絶対にWi-Fiやモバイルデータ通信をオンにせず、オンにする場合は自動アップデート停止をするようにしてください。一度Bootloader UnlockすればアップデートしてもUnlock状態のままになるので問題ありません。
Vivo x70 Pro+ Bootloader Unlock – HOW TO GUIDE
前提:
- コンパイル時間が2022-04-30以前のvivo端末 (2022-05-01以降では対策されています)
- 開発者向けオプションでOEMロック解除とUSBデバッグを有効化済み
- adb、fastbootコマンドを設定済みかつGoogle USBドライバーをインストール済み
- こちらからvendorイメージをダウンロードする (実際はどんなファイルでもOKですが説明のため)
- フォルダを2つ作成する (例: AフォルダとBフォルダ)
※adb、fastbootコマンドの設定方法やブートループ (Brick) 時の復旧方法などが分からない場合、Bootloader Unlockはしないほうが良いです。vivo端末の場合、簡単には復旧できません。
Bootloader Unlock手順:
- Aフォルダにvendor.imgを置く
- こちらのページの「Download : Vivo_fastboot_v2 :」からfastboot v2をダウンロードしてBフォルダに置く
- ディスプレイを開いた状態で
adb reboot fastboot
を実行する fastboot reboot bootloader
を実行する
(※vivo FASTBOOTなどと書かれていて、中国語の青いボタンがある画面になります)- AフォルダでShift+右クリックして「PowerShellウィンドウをここに開く」を押す
- BフォルダでShift+右クリックして「PowerShellウィンドウをここに開く」を押す
- Aフォルダで開いたウインドウに、
fastboot boot vendor.img
のように失敗するコマンドを貼り付ける - Bフォルダで開いたウインドウに
.\fastboot.exe vivo_bsp unlock_vivo
を貼り付ける
(※古い端末では.\fastboot.exe bbk unlock_vivoでないといけない場合があります) - 7.のコマンドをEnterキーで実行して即座に8.のコマンドをEnterキーで実行する
※コマンドの間は1秒ぐらいしか余裕がありません。試行錯誤あるのみです。 - OKと出たら電源ボタンを押す (再起動しない場合は
fastboot reboot
で再起動する) - リカバリーが起動してエラーが出るので、上のボタンで初期化する
必ず手順通りに進めてください。意味なくフォルダ分けや別のfastboot.exeを使っているわけではありません。
7.でコマンドを実行した後即座に8.を実行するのがキモです。一回では通らず、何回も繰り返さないといけないことが多いです。
【追記】
tohanov氏のツールを一部改変して、自動的にコマンド実行を繰り返してくれるようにしました。
こちらからZIPをダウンロードして展開し、adb reboot bootloader
でbootloaderへ再起動した後にunlock.batをダブルクリックで実行してください。
別のコマンドを実行中の間はBootloader Unlockの署名認証がスキップされるという抜け穴を利用しています。
Snapdragon 8 Gen 1搭載のvivo X Foldで試すと確かにBootloader Unlockできました!
MediaTek SoC搭載端末やiQOOの一部モデルなど、Snapdragon搭載でない・ODMモデルなどは動作しないようです。
また、Androidセキュリティパッチレベルが2022-05-01以降では残念ながら対策されていました。
vivo X Foldだとビルド番号PD2178B_A_12.0.13.7.W10.V000L1・コンパイル時間2022-04-22ではBLU可、PD2178B_A_12.0.14.8.W10.V000L1・コンパイル時間2022-05-30では不可でした。
Bootloader Unlockが塞がれたvivo X80・X80 Pro (Snapdragon搭載版) でUnlockする方法 – AndroPlus
トラブルシューティング
adbコマンド実行時にerror: device not found、fastbootコマンド実行時にwaiting for any devicesと出る
ドライバーが認識されていないことが原因です。
まず画面右下のWindowsボタンを右クリックして「デバイスマネージャー」を選んでください。(または検索ボタンから検索)
次に、⚠が出ているものを探します。
「ポート」や「ほかのデバイス」のあたりにあると思います。
右クリックして「ドライバーの更新」を押してください。
「コンピューターを参照してドライバーを検索」を押します。
「コンピューター上の利用可能なドライバーの一覧から選択します」を選んでください。
もしGoogle USBドライバーをまだインストールしていないなら、代わりにGoogle USB ドライバーのZIPファイルを展開したフォルダを「参照」を押して選んでください。
Android Deviceを選び、製造元がGoogleのAndroid ADB Interface (ADBでエラーが出る場合) または Android Bootloader Interface (fastbootでエラーが出る場合) を選んで「次へ」を押します。
これで認識されるはずです。
FASTBOOTと書かれた画面に入れない
一旦電源を切ってください。
音量ボタン上を押しながらUSBケーブルを挿して、画面が変わるまで音量ボタンを押し続けてください。
terminating with uncaught exception of type std::length_error: vectorと出る
fastboot boot vendor.img
で使うファイルのサイズが大きすぎるのかもしれません。
何か適当に1GBくらいのファイル (動画やZIPファイルなど何でも良いです) を用意して、vendor.imgに名前を変えて実行してください。
cannot load ‘vendor.img’: No such file or directoryと出る
fastbootコマンドを実行しているフォルダにvendor.imgが入っていません。
vendor.imgがあるフォルダの空いている部分でShiftキーを押しながら右クリックして「PowerShellウィンドウをここに開く」を開いてください。
開いたウインドウでコマンドを実行すればうまく進めるはずです。
unlock_vivoコマンドが失敗する
.\fastboot.exe vivo_bsp unlock_vivo
がremote: check Signature failと出る場合は、認証スキップさせるところがうまくいっていません。
USB 2.0・3.0のポートを差し替えてやってみる、USB 2.0・3.0のケーブルにそれぞれ切り替えてみる、別のPCを使ってみるなどしてみてください。
また、fastboot boot vendor.img
と.\fastboot.exe vivo_bsp unlock_vivo
の間のタイミングはかなりシビアなので、両方のウインドウに貼り付けておいてEnterキーを押せばすぐ実行できる状態にしておいたほうが成功率が上がります。
root化の方法は?
boot.imgはDSU Loaderを使えば取り出せます。
DSU Sideloaderを使えばコマンドを打つのを最小限にできます。
DSUでのGSIインストールが楽になるアプリDSU Sideloaderがリリース。root化済みならPCなしでできる – AndroPlus
DSUでのGSIインストールが楽になるアプリDSU Sideloaderがリリース。root化済みならPCなしでできる – AndroPlus
AOSP GSIのsystem-squeak-arm64-ab-vanilla.img.xzを使ってください。
インストールが完了して通知から再起動させるとブートループ状態になる (vivo X Foldの場合) のですがadb shellは使えるようになるので、
adb shell
su
dd if=/dev/block/by-name/boot of=/data/local/tmp/boot.img
chown shell.shell /data/local/tmp/boot.img
- (adb shell終了後)
adb pull /data/local/tmp/boot.img
というようにコマンドを実行してください。
これでboot.imgを取り出せるので、Magiskアプリを開いて「インストール」からパッチします。
magisk_patched_*.imgがDownloadフォルダに保存されるので、
adb reboot bootloader
fastboot flash boot magisk_patched_*.img
で焼いてください。(ファイル名は適宜変えてください)
ちなみにBootloader Unlock・root化している状態でもOTAアップデートが可能です。ダウンロードしたOTAのZIPファイルは/data/vivo-updater以下に保存されます。
一部機種ではグローバル版への書き換えも
xdaでは中国モデルにインド版ファームウェアのOTAをインストールし、OriginOSからFuntouchOSに入れ替えることに成功したという事例も投稿されています。
今のところ
- BLUすると指紋認証センサーが動作しなくなり、ロックし直すと直る
- Magiskパッチしたbootを焼いても起動しない
- root化できてもsuコマンドの実行は妨害される (suをリネームすると使える)
- fastboot bootが効かない
- EDLモードに入ってもQFILでバックアップできない
- DSU Loaderが使えない
- インド版ファームウェアを焼くと
com.vivo.daemonservice
がsystemchangedの警告を出す
とかなり厳しい状態ではありますが、中国版にインド版ファームウェアを入れてしまえるというのはかなり魅力的です。
なお、vivo X Foldやvivo X80 Proの場合は
- BLU後も指紋認証・顔認証できる
- Magiskでroot化可能
- suコマンドも使える
- OTAをダウンロード・インストールできる
- DSU Loaderを使える (AOSPはブートループでadbのみ使用可能)
というマシな状態でした。
root化してしまえばこちらのモジュールでVoLTEを有効化、こちらのモジュールでロケーション履歴をオンにできます。
vivo X70 Pro+やvivo Y31、vivo V21eなどSnapdragon SoC搭載端末を持っているチャレンジャーな方は、一度試してみてはいかがでしょうか。