Lenovo Tab6にGSI ROMを入れてみる

Lenovo Tab6はQualcommのSnapdragon 690 5Gを搭載しているので扱いが非常に楽。また他のLenovo製タブレットはbootloaderをアンロックするためにLenovoのサイトで登録して、解除用のイメージファイルを入手しなければならないものの、Leovo Tab6はそのままアンロックできてしまう(※)。

まずはbootloaderをアンロックする前にここから手元にStock ROMを用意しておく。magiskを入れたい時もStock ROMからboot.imgを取り出せばいい。

予め開発者向けオプションの有効化して、OEM UnlockとUSBデバッグを有効化にしておくのはどの機種でも同じ。この時設定のデバイス情報でシリアル番号と入っているファームウェアのバージョンをメモっておく。

Bootloaderに入るには、電源がオフの状態でVol up+電源ボタンを同時に長押しするか、PCからコマンドラインでadb reboot bootloaderで素直に行ける。

Bootloaderに入ったら、PCからコマンドラインでfastboot flashing unlockを実行すればブートローダーアンロックされ、初期化が実行される(※)。

※システムアップデートで2022年末に配信されたA101LV_S000161_221101_Q6350_JP以降にアップデートしてしまうと、fastboot flashing unlockが使えなくなっている。bootloaderがアンロックされていても、どうも古いbootloaderを上書きできないもよう。

また、何故かLenovo Tab6のリカバリーメニューにはユーザーデータを初期化するメニューがない。予めAndroidシステムから初期化してからGSIのROMを焼くか、初めて起動する前にfastboot erase userdataで/dataを削除しておく必要がある。

最近のダイナミック・パーティション(各パーティションサイズを固定せず、イメージに合わせてパーティションサイズをダイナミックに変える)を採用するデバイスではfastboot画面ではイメージをフラッシュできなくなっていて、fastbootdモードにしなければならない。Lenovo Tab6もそのような機種。Bootloader画面でPCからコマンドラインでfastboot reboot fastbootと実行するか、bootloader画面からRecovery modeに入り、リカバリーメニューからEnter fastbootを選択し、画面最上部に赤字で「fastbootd」と表示されればOK。

今回はGoogle Pixelに操作性が近いPixel Experience Plus 12.1 v416を焼くことにする。普通にPCから

>fastboot flash system PixelExperience_Plus_arm64-ab-vndklite-12.1-20221118-UNOFFICIAL.img

と実行すると、

Resizing 'system_a' FAILED (remote: 'Not enough space to resize partition')
fastboot: error: Command failed

とエラーになり焼けない。今回はA/BのうちAに焼こうとしているので、

>fastboot delete-logical-partition product_a

と実行して、A側の/productパーティションを消します。B側に焼く場合はproduct_bに変更すればいい。その後fastboot flash system PixelExperience~を実行すると、ROM焼きが開始される。

最後に念のため、

>fastboot erase userdata

を実行してユーザーデータを削除して再起動する。

Pixel Experience Plus 12.1はタブレットモードに対応しているものの、ドックやロック画面の表示が崩れてしまい使えない。設定→ディスプレイ→表示サイズを最大にすると、スマホモードになり、表示の崩れはなくなる。つまりタブレットモードでは使えない。恐らくコマンドラインで解像度の設定などを調整すればいいのだろうが、使い勝手は今までのMediaPadと同じなのでこのまま使うことにした。

またGSIでありがちな、バックライトの「明るさの自動調整」が使えなくなる。これでは不便なので、こちらの説明(英語)通りにOverlayで明るさの自動調整を追加して、普通に使えるようにする。

また一部のLenovo/Motolora機種でFacebook Messengerのようなチャットアプリで音声チャットをしようとすると、相手の音が割れて(distorted)声がテープの早回しのようになる。調べたが大元のphhusson氏のコードに由来しているので、直せない… 音声チャットを多用する方は要注意。

Magiskでrootを取る場合、初めにメモっておいたバージョンのファームウェアをここからダウンロードする。zipファイルを解凍して、boot.imgを取り出し、タブレットのSDカードなどに保存しておく。違うバージョンのboot.imgを使うとエラーが出たり、ブートループに陥るので注意する。

タブレットでMagiskのGitHubのページから最新のMagisk Managerをダウンロードをダウンロードし、インストールする。Magisk Managerで先ほどタブレットに保存しておいたboot.imgにパッチを当て、出来上がったmagisk_patched-25200_xxxxx.imgをPCに転送する。

タブレットをfastbootdモードにし、PCからコマンドラインで

>fastboot flash boot magisk_patched-25200_xxxxx.img

と実行すれば、rootが取れる。

【番外編】

Lenovo/Motoloraのスマホやタブレットは、起動しなくなった場合、Rescue and Smart AssistantというWindowsアプリを使って、最新版のファームウェアに復旧させることができる。(Rescue and Smart Assistantのダウンロードや使用にはLenovo IDと製品のシリアル番号が必要。アカウント登録を済ませておく。)ただ、最新版のA101LV_S000161_221101_Q6350_JPにアップデートされてしまうと、fastboot flashingが使えなくなり、二度と再アンロックができなくなってしまう。それではかなり不便。

Rescue and Smart Assistantを起動するとデバイスタイプを選択する画面になる。

タブレットを選択すると、次の画面でタブレットのシリアルナンバーを入力する画面になる。シリアルナンバーはROM焼きする前の設定のデバイス情報か、bootloader画面で確認できる。

シリアル番号を入力し先に進むと、次の画面のように最新のファームウェアをダウンロードする画面になる。

ダウンロードをクリックして、まずは最新のファームウェアをダウンロードする。ダウンロードが完了すると次のような画面になる。

これで準備は完了。C:\ProgramData\RSA\Download\RomFiles\A101LV_S000165_221206_Q6350_JPにダウンロードされたファームウェアの中身が展開されて保存されている。このままファイルを残しておくのは危険なので、A101LV_S000165_221206_Q6350_JPというディレクトリは残し、その中のファイルを全て削除する。そして、ここからA101LV_S000165_221206_Q6350_JPより前のROMをダウンロードし、その中身をA101LV_S000165_221206_Q6350_JPというディレクトリにコピーしておく。(例 A101LV_S000139_220211_Q6350_JP)

この際、上でMagiskでパッチを当てたmagisk_patched-25200_xxxxx.imgというファイルをboot.imgとリネームして入れておけば、いつでもroot化済のstock ROMに戻すことができる。

ここで「救助を開始します」ボタンをクリックし、画面の指示に従いタブレットを電源オフの状態からEDLモード(電源オフのままVol+ボタンを押しながらPCにUSBケーブルで接続)で接続すれば、自動的に先ほど入れた所望のファームウェアが焼かれ、全て初期化される。実際は裏でQualcommのQFILが実行されているんだけど、自分で設定などを変更する必要がないので、かなり楽。

※ただし、この方法でも一度でもA101LV_S000165_221206_Q6350_JP以上にアップデートしてしまったTab6を古いファームウェアにロールバックさせることはできない。救助が終了して一見成功したように見えても起動しない。恐らくA101LV_S000165_221206_Q6350_JP以降のbootloaderは以前のものでは上書きが禁止され、また起動時にROMのバージョンをチェックして古いファームウェアが起動できないのだと思う。

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.