Mi Max のルート化と dpi変更

Mi Max の画面はデカい。画面サイズのことではなくアイコンとか文字サイズがデカい。おかげで表示できる情報量が少ないので dpi を変えることにした。dpi を変えるには ADB で、

adb shell wm density 380

と打てばいいことはわかったが、公式ROM では効かなかった。カスタムROM に入れ替えないといけないらしい。そのためには結局 root を取ることになったが、これが長い道のりになった。検索すれば Mi Max の root化や dpi変更の記事がたくさん見つかる。記事を書いてくれた先人の方には感謝なのだが、少しずつ内容が違ったりしてそのままだとうまくいきそうにない予感がした。納得するまで調べて、幸い文鎮化することもなく一回でうまくいったが、どうやら root化は必要なかった。ただ、最後に試した build.prop の編集の時には root が必要になる。

最終的に上のコマンドが動けばいいのだが、公式の Stable版や ECRMod はそのままでは root化に対応していないようだ。LineageOS に Mi Max の名前を見つけて一瞬喜んだが 32GB モデル(hydrogen)のみと知ってガッカリ。公式の Developer版か MIUI.eu版なら root が取れる。MIUI.eu なら常用しようと思った。

では、MIUI.eu版をインストールするにはどうするか。巷の記事からは、fastboot でインストールした例は見つからず、すべて TWRP からインストールしている。TWRP をインストールするにはブートローダーをアンロックする必要がある。ブートローダーをアンロックするには Mi アカウントを作成して Xiaomi に申請が必要だ。

だが、Xiaomi の許可が下りても今入っている公式ROM の Global版ではアンロックできない。China版の公式ROM でないとアンロックできないらしい。なんだか、山に登る前に海に行くくらい気が遠くなった。

この長い道のりを出発地点から並べる。出発地点は Global版公式MIUI で、ブートローダーはロックされている、母艦PC に Mi Max用ドライバがインストールしてあって adb が使える状態を前提にする。

1. China版MIUI ROM を EDLモードで焼く。

China版MIUI ROM のうち、fastboot 用ROM を入手する。Stable版でも Developer版でもいいようだが Stable版にした。この ROM を焼くために MiFlash というツールを母艦PC にインストールしておく。
  • 母艦PC: China版MIUI ROM (Stable版、fastboot用)をダウンロードする。
  • 母艦PC: tgzファイルを 7-Zip や WinRAR で解凍する。tar ファイルができたらさらに解凍する。
    元ファイル: helium_images_V8.2.3.0.MBDCNDL_20170314.0000.00_6.0_cn_67c5b83f82.tgz
    できたフォルダ: helium_images_V8.2.3.0.MBDCNDL_20170314.0000.00_6.0_cn
  • 母艦PC: MiFlash を起動、select ボタンをクリックして上のフォルダを指定する。
  • Mi Max: 電源をOFFにして、Vol+/Vol- を同時に押しながら USBケーブルを挿す。短いバイブがあれば   EDLモードに入ったことになる。画面には何も表示されない。
  • 母艦PC: MiFlash の refresh ボタンを押す。COM<n> の表示があればつながっている。1分くらい放置すると接続が切れてしまう。そのときはやり直し。
  • 母艦PC: MiFlash で Clear all を選んで flash を実行。2分程度で完了した。
  • Mi Max: 電源長押しで起動。初期設定画面が出るまで 5分程度かかった。
2. ブートローダーをアンロックする。
  • 母艦PC: Xiaomi のホームページで Mi アカウントを作成する。電話番号を使わずに Eメールアドレスで登録するのがミソ。
  • 母艦PC: ブートローダーのアンロックを申請する。このときに SMS が届く電話番号を入力する。
  • 母艦PC: アンロック申請が受理されたら MiFlashUnlock をダウンロードしてインストールする。
  • Mi Max: 初期設定画面で Mi アカウントでログインしておく。
  • Mi Max: About -> MIUI version を連打して開発者オプションを有効にする。USB Debug を ON にする。
  • Mi Max: 母艦PC に USB で接続。許可する。
  • Mi Max: Additional settings -> 開発者オプションの OEM Unlock を ON にする。
  • Mi Max: Additional settings の Unlock status をタップして、Mi アカウントに Mi Max を紐づける・・・このメニューは Global版にはなかったと思う。China版だけにあるはず。
  • 母艦PC: MiFlashUnlock を起動する。同じ Mi アカウントでログインする。
  • 母艦PC: adb reboot bootloader で bootloader に入ると MiFlashUnlock が認識する。
  • 母艦PC: MiFlashUnlock の Unlock ボタンをクリックするとアンロックを開始する。
  • 母艦PC: 成功するとリブートボタンが現れるのでリブートする。
MiFlashUnlock の成功画面。


3. TWRP をインストールする。

あらかじめ次の 3つのファイルをダウンロードしておく。
  • twrp-3.0.2-0-helium.img
  • no-verify-opt-encrypt-5.1zip
  • UPDATE-SuperSu-v2.76-20160630161323.zip
次の操作を行う。
  • 母艦PC: Mi Max 用の TWRP をダウンロードしておく。Mi Max を USB でつなぐ。
  • 母艦PC: adb reboot bootloader でブートローダーに入る。
  • 母艦PC: astboot format userdata
  • 母艦PC: fastboot flash recovery twrp-3.0.2-0-helium.img
  • 母艦PC: fastboot boot twrp-3.0.2-helium.img で TWRP に入る。システムをリブートしないこと(システムに入るとブートループに陥るらしい)。
  • TWRP: 最初の画面で Allow modify を選択する。
  • TWRP: adb sideload を起動する。
  • 母艦PC: adb sideload no-verify-opt-encrypt-5.1zip
  • TWRP: リブート
4. MIUI.eu版ROM をインストールする。root を取るなら SuperSU をフラッシュする
  • 母艦PC: adb reboot recovery で TWRP に入る(結構時間がかかる)。
  • 母艦PC: adb sideload xiaomi.eu_multi_MIMAXPro_V8.2.2.0.MBDCNDL_v8-6.0.zip
  • 母艦PC: adb sideload UPDATE-SuperSU-v2.76-20160630161323.zip
5. dpi を変更する(adbで)。
  • 母艦PC: adb shell wm density 380
やっと dpi を変更できた。リブートしなくても即時に反映された。結局、root は要らなかった。




アイコンは崩れた。アプリの内容もおかしくなる場合があった。画像を表示するアプリでおかしくなった。

6. dpi を変更する(build.propで)。

その後、build.prop を変更してみたら、崩れていたアイコンもちゃんと表示されるようになった。ここで初めて root が役に立った。build.prop の編集はターミナルでできるかもしれないが、vi とか入っていないので母艦PC に移して編集した。

  • /system/build.prop を母艦PC にコピーして以下の行を編集する(元の値は MIUI.eu版のデフォルト)。
    persist.miui.density_v2=440 ← 380 に変更
    ro.sf.lcd_density=480 ← 380 に変更
  • /system に戻す(母艦PC から adb shell で実行した)。
    adb shell
    su ・・・ 初回は Mi Max 側の SuperSU で承認が必要
    mount -o rw,remount /system
    cp -f /storage/XXXX-XXXX/build.prop /system/build.prop・・・XXXX-XXXX は SDカード
    mount -o ro,remount /system
    reboot
adb wm で 380 に変更した場合でも build.prop の persistent.minui.density_v2 の値は 440 のままだった。build.prop を変更したら、アイコンがちゃんと表示された。画像がおかしかったアプリも直った。今回 ro.sf.lcd_density も同じ値に変更したが、これを違う値にするとどうなるかは未確認だ。2つを同じにして効果が出たのか、どちらか 1つだけでいいのかはわからない。というか目的が達成できたのでこれ以上深堀りはしない。

adb wm で dpi を変更した画面。アイコンの左上が崩れている。


build.prop を変更したら直った。


雨量マップというアプリは adb wm だと地図が崩れてしまったがこれも直った。


主題とは関係なく antutu を測ってみた。スコアは 83780 で、SnapDragon 650 に比べて 1割強早い。



コメント

このブログの人気の投稿

[買い物日記] W204 Cクラスの地図データを DIY でアップデート

Xperia V に LineageOS をインストール

[買い物日記] SONOS ONE スピーカーと Apple TV 4K でオーディオ&ビジュアル環境を構築