Termuxを1024ポート以下でデーモン起動できるから、やっぱりroot化はやっておきたいよね。
今までサーバ利用していたUmidigiF2をroot化するのね!
そうそう! UmidigiF2の公式ファームウェアを使ってroot化です。
ちょっと検索してみたけど、まとまってる日本語記事ってないですね!
さてさて、今日から4連休です! 初日の本日は今までこのブログのWordPressサーバとして約1ヶ月利用していたUmidigiF2をroot化してみましたので、忘れないうちにその方法を書いておきます。日本語でまとまっている情報はなかったので、どこかで役に立つかもしれませんね。
root化とは?そのメリットは?
Pixel3・android11(R)正式リリース版でroot化!
https://hack.gpl.jp/2020/10/05/pixel3android11rroot/
以前、Pixel3のroot化したときも書きましたが、簡単にいえばAndroidの最高管理権限をゲットして普通では出来ないことをやれるようします。なお、同じことをされる場合は、bootを純正以外にしますので自己責任でお願いしますね。
で、root化する今回の目的も前回と同じで termuxを動かした時rootパッケージを使えるし、1024ポート番号以下のデーモンを起動できます。例えば、WEBサーバの80番ポートや、SSLの443番ポートです。
というわけで、UmidigiF2のroot化やってみましょうか。
ステップ1 概要
こういうのは、まず全体像が見えていることが大事です。UmidigiF2をroot化するにあたり、概要は以下となります。
・UmidigiF2のBootローダーのロック解除をする
・Magiskというツールを使い、twrpは使わない
・Magisk Managerを使い、純正ファクトリーイメージに含まれるBootにパッチする
・adb純正ツールで、パッチしたBootをUmidigiF2に書き込む
・Termuxはroot権限を利用できるようMagiskに設定しておく
今回も、Pixel3の時と同じように、Magiskというツールで行いました。TWRPのオフィシャルに行ってきたんですが、てっきりUmidigiF2はTWRP公式ビルドにあると思っていたんですよね。残念ながら、公式ビルドにはないようでした。
TeamWin – TWRP Devices
https://twrp.me/Devices/
一方、MagiskはAndroidパーティションスキームに準拠していれば使えるはずです。オフィシャルサイトであるソース配布元のGitは以下になります。
Magisk
https://github.com/topjohnwu/Magisk
さぁ、やってみましょうか!
ステップ2 必要なツールと準備
まずは前準備です。今回もosxでやっていますがLinuxでもWindowsでもChromeBookでもできると思います。オフィシャルのマニュアルも参照してね。
Magiskオフィシャルインストール手順
https://github.com/topjohnwu/Magisk/blob/master/docs/install.md
上記だけでは、全体がまだ見えてきませんね。つまり、ざっくりと以下が必要です。
(1)fastbootとadbコマンドが動作する環境
これは、SDK Platform-Toolsを入れればOKです。Googleからリリースされていますので最新を入れておきます。AndroidStudioを入れてある環境ならばすでに入っていますが、ツールだけであれば以下からダウンロードできます。現在の最新は、Version 30.0.4です。
SDK Platform-Tools
https://developer.android.com/studio/releases/platform-tools.html
(2)UmidigiF2のファクトリーイメージ(StockROM)
今手元のUmidigiF2で動いているバージョンを確認してください。筆者の場合は最新のUMIDIGI_F2_V1.0_20200402_20200506-1120が入っていたので以下をダウンロードしておきました。これはワイヤレスアップデート画面から現在のバージョンを確認できます。あとから、Boot.imgを取り出してMagiskでパッチします。
StockROM UMIDIGI F2
https://community.umidigi.com/forum.php?mod=forumdisplay&fid=228
UMIDIGI_F2_V1.0_20200506.V3.17.rar
(3)MagiskManagerのアプリ
これは以下のオフィシャルサイト(GitHub)からダウンロードできます。筆者はCanaryビルドを使いました。安定番は、MagiskManagerv8.0.2です。
純正に戻す場合はこれ以外にも必要ですが、今のバージョンをroot化するだけなら以上でOKです。
ステップ3 ファクトリーイメージを展開
オフィシャルサイトからダウンロードした、UMIDIGI_F2_V1.0_20200506.V3.17.rar を展開しておきます。rarファイルを展開するといろいろありますが、今回使うのは boot.img と、vbmeta.img です。わかりやすいよう1つ上の階層にでもコピーしておきましょう。
.
└── UMIDIGI_F2_V1.0_20200506.V3.17
::
├── boot.img
::
├── vbmeta.img
::
ステップ4 Bootローダーのロック解除
通常であれば、開発者向けオプションの「OEMロック解除」項目はこのようにグレーアウトした状態となっていますが、これをONにしておきます。
まず、ここにたどり着くには開発者向けオプションを有効にして、次にOEMロック解除をONにします。
[設定]> [端末情報]> [ビルド番号]を複数回タップして[開発者向けオプション]を有効にしておきます。
[設定]> [システム]> [詳細設定]で[開発者向けオプション]を開き「OEMロック解除」を有効にし、確認のためにパスワードを入力します。「USBデバッグ」も有効にしておきます。
次に、USBケーブルでPCと接続し、「adb reboot bootloader」とターミナルからタイプします。
$ adb reboot bootloader
すると、スマホはfastbootモードで再起動します。
再起動したら黒い画面でスマホは止まりますので、以下から認識しているか確認しておきます。
$ fastboot devices
F2xxxxxxxxxxxx3 fastboot
ここから先は、スマホが初期化されますので注意を!
スマホは黒い画面で左下に少し文字が見える状態だと思います。以下をタイプしてボリュームの+ボタンを押しブートローダーのロックを解除します。
$ fastboot flashing unlock
次に以下をタイプしてボリュームの+ボタンを押しセキュアパーティションのロックを解除します。
$ fastboot flashing unlock_critical
続けて以下で再起動させます。
$ fastboot reboot
起動は5秒くらい遅れますが、ホーム画面がでればOKです。これで先ほどの「OEMロック解除」は以下のようになっているはずです。
fastbootモード中、スマホの画面に表示される文字が小さくてみずらいですが、上記のように操作すれば問題ないはずです。
ステップ5 Boot.imgのパッチ
boot.imgをスマホに転送し、Magisk Managerを使用してパッチを適用します。
まずは、MagiskManagerのアプリを入れておきます。
https://github.com/topjohnwu/Magisk
アプリを入れたら、起動させ「Magiskのインストール」からboot.imgを選択してパッチを当てます。以下のようになれば成功です。
パッチしたboot.imgファイル(magisk_patched.img)はPCにダウンロードしておきます。
ステップ6 パッチしたBoot.imgを書込
引き続き、USB接続したPCから操作です。以下をタイプでリブートします。
$ adb reboot bootloader
再起動したら黒い画面でスマホは止まりますので、以下から認識しているか確認しておきます。
$ fastboot devices
F2xxxxxxxxxxxx3 fastboot
カレントディレクトリに、magisk_patched.img があるとしたら以下のコマンドで書込みます。verityしないオプションはつけなくても大丈夫とは思いますが、まだ試していません。
$ fastboot --disable-verity --disable-verification flash boot ./magisk_patched.img
以下、実行例です。
$ fastboot --disable-verity --disable-verification flash boot ./magisk_patched.img
Sending 'boot' (32768 KB) OKAY [ 0.721s]
Writing 'boot' OKAY [ 0.731s]
Finished. Total time: 1.455s
オフィシャルのストックロムから取り出した、vbmeta.imgを書込みます。
$ fastboot --disable-verity --disable-verification flash vbmeta ./vbmeta.img
実行例は以下です。
$ fastboot --disable-verity --disable-verification flash vbmeta ./vbmeta.img
Rewriting vbmeta struct at offset: 0
Sending 'vbmeta' (4 KB) OKAY [ 0.013s]
Writing 'vbmeta' OKAY [ 0.001s]
Finished. Total time: 0.016s
最後にリブートです。
$ fastboot reboot
root化の確認
リブート後、MagiskManagerを起動するとこのようになっていると思います。
例えば、Termuxからrootパッケージを入れて、rootになれるか確認です。
$ tsu
# whoami
root
# id
uid=0(root) gid=0(root) groups=0(root)
#
tsuコマンドはtermuxのsuコマンドです。これを行うとmagiskにroot権限を許可するか聞かれますのでOKとしておきます。
まとめ
今回、なんとなくわかったのは以下となります。
・スマホに入っているバージョンと同じROMをパッチすることでSP Flash Toolを使わなくてもOKだ。
・SP Flash Toolは、WindowsとLinuxしかない。
・元の状態に戻したい場合は、SP Flash Toolが必要。
・今のところ問題なさそう。もう少し遊びながら様子見。
あとがき
これでPixel3で試せなかったことが実験できます。本来、Pixel3は、手元であれこれアプリのテストに使いたいので、UmidigiF2がこのブログのメインマシンになる予定です。そのうち、また入れ替えたいと思います。
著者にメッセージ
間違いの指摘などコメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。
間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。