ちよちゃん日記

ちよちゃんは10歳なので、はてなブログに移籍しました。

ちよちゃん、ALLDOCUBE iPlay 40 ProにMagiskを適用しちゃうですけどー。

ちよ8号です。

バッテリー膨張でタブレット5台を入れ替えたちよちゃん。
今後さらに「パズル&ドラゴンズ」の端末が壊れたときのために、ある
程度のスペックの端末を購入して「複数ユーザー」の機能を使って1台
タブレットで複数のアカウントを維持しましょうかね。1台1万円の
端末を4台買うなら、3万円の端末1台で4アカウントを維持できたほう
が安上がりですのだ。
なので、「ALLDOCUBE iPlay 40 Pro」を3台買い増ししておきました。
開封済み1台と未開封2台、そして買い増しした3台があれば何とでも
なるでしょう。

「ALLDOCUBE iPlay 40 Pro」の開封済みの1台で実験しましたが、
Magiskの適用(ルート化)が可能でした。ただ、どこにも「情報」が
ないんですよね。
有料でならできますとか、そんなの意味ありませんよ! 「ALLDOCUBE
iPlay 40 Pro」でMagisk適用のやり方を公開しておきますね。

まず、「iPlay20 Pro / iPlay 40(※Proではない)」でのMagisk適用の
やり方を確認しておいてください。どこかのサイトに掲載されています。
結構手順が複雑です。iPlay40Proだとちょっと手順は楽になりますが、
手順は近いです。

手順1:必要なものを揃えよう。
最初(1年近く前?)にMagiskを適用した時の手順なので、各種ツール
のバージョンは古い可能性があります。最新のものでも可能だと思い
ます。

・iPlay40Pro本体
 当然ですよね。
・Magisk Manager
 「Download Magisk App」から。ちよちゃんは「Magisk-23.0.apk」を使用
 しました。
 https://magiskmanager.com/

Windowsが動作するPC
 ちよちゃんはWindows 10 Home 64bitを使いました。
・iPlay40Proのファームウェア(pac)
 日本語のページではダメで英語のページにしかなかった。
 Support -> System Update -> Alldocube iPlay40H(T1020H)
 「Product Model : T1020H/T1020HP」なので、iPlay40Hおよび
 iPlay40Proの両方で使える。
 ちよちゃんは「iPlay40H(T1020H)-EN-20210911」を使いました。
 https://www.alldocube.com/en/firmware/alldocube-iplay40ht1020h-firmware-download/
・iPlay40 ProのWindows用のドライバ(SPDツールによる書き換え時の
 ドライバ)
 ファームウェアと同じページにある「Spreadtrum Upgrade Tool and
 Guide.rar」でいいんじゃないかな?
 https://www.alldocube.com/en/firmware/alldocube-iplay40ht1020h-firmware-download/
SPD_Upgrade_Tool
 ちよちゃんは「R26.21.2801」を使いました。
 https://spdflashtool.com/
・OpenSSL Light
 Windowsで作業しました。バージョンは気にしなくてもいいと思うけど、
 ちよちゃんは64bit版の1.1.1kでした。
・ADBおよびFASTBOOTコマンド。
 いろいろなWebページで説明されていると思うし、導入済みだと思う
 ので省略。
 https://developer.android.com/studio/releases/platform-tools

Ubuntuが動作するPC
 ちよちゃんはUbuntuではなく使い慣れたLubuntu 20.04を使いました。
 仮想PCでも出来るっぽいけどUSB機器(Android端末)の認識が面倒
 そうなので、LiveCDでもいいから実環境を用意したほうがよさそう。
・改造されたfastbootツール
 メンバーになってログインしないとダウンロードできません。
 「modified fastboot」。
 https://forum.hovatek.com/thread-32287.html
・avbtool.py
 メンバーになってログインしないとダウンロードできません。
 「zipped AVBtool」。
 解凍すると拡張子なしの「avbtool」が入っていますが、紛らわしい
 ので拡張子.pyを付け足しておきましょう。テキストエディタで開けば
 分かりますが、pythonコードの書かれたテキストファイルです。
 https://forum.hovatek.com/thread-32664.html

手順2:OEMアンロックをしよう。
一般的にOEMアンロックは「Androidの開発者向けオプションからロック
解除を許可する」「fastbootモードでコマンドを指定してアンロックする」
という手順なのですけど、UNISOC系では一般的なfastbootでの
アンロックコマンド
> fastboot oem unlock
> fastboot flashing unlock
が通らないのです。なので、以下の面倒な手順を行う必要があります
です。

以下、iPlay40Proでの作業。

まず「開発者向けオプション」を有効にする。
root化をやったことのある人は手順はわかっていると思うけど、
「設定」「デバイス情報」の「ビルド番号」部分を7回連打して開発者向け
オプションを有効にします。

OEMロック解除」を有効にする。
これもroot化をやったことのある人は手順はわかっていると思うけど、
「設定」「システム」「詳細設定」「開発者向けオプション」で「OEMロック
解除」をONにします。

「USBデバッグ」を有効にする。
これもroot化をやったことのある人は手順はわかっていると思うけど、
「設定」「システム」「詳細設定」「開発者向けオプション」で「デバッグ
「USBデバッグ」をONにします。

以下、Linux(Ubuntu)での作業。

modified_fastboot.zipを解凍したファイル一式を適当なフォルダに配置
する。

LinuxとiPlay40ProをUSBケーブルで接続します。
以下、コマンドシェルで実行。
fastbootモードに移行します。LinuxにもADBを導入してあれば
> adb reboot bootloader
で。
fastbootモードで
> cd modified_fastboot
↑[fastboot]やその他ファイル一式のあるフォルダ
> ./fastboot oem get_identifier_token
※「./」を指定しないとカレントフォルダにあるfastbootが実行されない
っぽい?
で出てきた2つのトークンXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(32文字)とYYYYYYYYYYYYYY(14文字)をつなげて、
> ./signidentifier_unlockbootloader.sh XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYY rsa4096_vbmeta.pem signature.bin
「signature.bin」ファイルが生成されます。
> ./fastboot flashing unlock_bootloader signature.bin
iPlay40Proの画面に小さく
Warning: Unlock device may erase user data.
Press volume down button to confirm that.
Press volume up button to cancel.
というメッセージが出るので、ボリュームダウンを押します。どっちが
「ダウン」か分からない? iPlay40Proは裏面にちゃんと「電源マーク」
「+」「-」と書いてあるんだなぁ、これが。だから「-」のほうね。
ちなみにちよちゃんのiPlay40Proは白色です。同じく持っているiPlay40
は黒色です。どちらも文字は灰色で書かれているようですが、黒色に
灰色文字は見にくいです。白色に灰色文字は見やすいです。
この作業でiPlay40Proは初期化されるので、本作業前に必要に応じて
バックアップを。
ボリュームダウンボタンを押すと「Begin to eraseuser data...」という
メッセージが表示されます。このあと作業完了まで20分程度かかる
のであとは気長に待つだけ。
iPlay40Proに「Unlock bootloader success!」が表示されたら終わり。
コマンドシェルにも「unlocking bootloader...」のあとに「Info: Unlock
bootloader success!」の表示が出ます。
ちなみにiPlay20やiPlay40だとこのUnlockの解除作業は10分程度です。
両機種ともストレージ容量が128GBです。iPlay40Proはストレージ容量
が256GBです。・・・これが10分と20分の差ですかね。
※この作業の「LinuxからのAndroid機器の認識」が難しいので、Windows
上で動作している仮想PCのLinuxではなくUbuntuが動作している実機を
用意することをお勧めします。Windowsでfastbootモードで起動している
iPlay40ProをLubuntuに認識させようとするとiPlay40Proに再起動が
かかったりする・・・。

以下、iPlay40Proでの作業。

再起動すると初期設定画面になるので、適当に初期設定を済ませ、
もう一度
「開発者向けオプション」を有効にする。
(「OEMロック解除」は有効になっているはず。)
「USBデバッグ」を有効にする。
をやっておきましょう。

手順3:magisk_patchedのboot.imgを作成しよう。
iPlay20ProおよびiPlay40のときと全く同じ作業です。

以下、Windowsでの作業。

SPD_Upgrade_Toolでpacファイルを開き、ImageFilesを入手する。
「UpgradeDownload.exe」を起動して、メニュー一番左の歯車アイコンを
クリックしてファームウェア(pac)ファイルを指定。
ロードが終わったらexeファイルのあるフォルダに「ImageFiles」フォルダ
が生成されているので、その中のファイルを保存します。
「UpgradeDownload.exe」を終了してしまうとこの中のファイルは消える
ので注意。
「boot.img」だけが必要です。このファイルはAndroidの実機で使います。

ドライバのインストール。
「Spreadtrum Upgrade Tool and Guide.rar」を解凍してドライバを
インストールしておきましょう。
Driver\DriversForWin10フォルダの「DPInst64.exe」を実行。
Windows 10 64bitでない場合はそれぞれ適したexeを実行。
ここでインストールされるのは「SPD_Upgrade_Toolなどでファームウェア
書き込み時に使用されるドライバ」であって、ADBやFASTBOOTコマンド
を使用するときのドライバではないと思います。

ADBコマンドの確認。
Windows PCとiPlay40ProをUSBケーブルで接続し、コマンドプロンプト
起動します。
> adb devices
と入力。
List of devices attached
T1020HP256GBXXXXXXXXXXX device
のようなデバイス名が戻ってくれば成功。リストに何も出なければドライバ
がインストールされていないので「15 Seconds ADB Installer」等を使って
認識させられるように頑張れ。Android本体に「USBデバッグを許可します
か?」のメッセージが出ていたら「このパソコンからのUSBデバッグを常に
許可する」にチェックを入れて「許可」するといいですよ。それからもう一度
同じコマンドを。

コマンドプロンプトを管理者権限で開く。
> cd "C:\Program Files\OpenSSL-Win64\bin"
↑OpenSSL Lightのバイナリがあるフォルダ
> openssl genrsa -f4 -out tiyochan.pem 4096
↑tiyochan.pemのファイル名は好きな名前でいい。
管理者権限がわからなければ、
> cd C:\DATA\iPlay40Pro\avbtool
↑書き込み権限があればどこでもいい
> "C:\Program Files\OpenSSL-Win64\bin\openssl" genrsa -f4 -out tiyochan.pem 4096
でいいんじゃないかな。パスにスペースが入るのでダブル
クオーテーションを忘れずに。
ここで生成されたtiyochan.pem(ファイル名は何でもいい)をLinux(Ubuntu)
で使います。

以下、iPlay40Proでの作業。

「Magisk」をiPlay40Proにインストールします。
「boot.img」をiPlay40Proに転送します。
普段使っているAndroidのファイラーで作業出来ればそれでいいですが、
ファイラーを知らなければADBコマンドで可能。
> adb install Magisk-v23.0.apk
> adb push boot.img /storage/emulated/0/Download
上はadb.exeと同じフォルダにMagisk-v23.0.apkとboot.imgがあることが
前提でADBコマンドを用いた方法。

Magiskを起動して[boot.img]にパッチを当ててください。
「Magisk」欄の「インストール」をクリック、「パッチするファイルを選択」を
クリックして、「(iPlay40Proに転送した)boot.img」を選択、「はじめる」を
クリック。あとは「All done!」の表示が出たら終わり。
パッチを当てた「magisk_patched-23000_XXXXX.img」ファイル(XXXXX
の部分はランダムな文字列)を「magisk_patched.img」にリネームします。
そのファイルをLinux(Ubuntu)に転送します。普段使っているAndroid
ファイラーで作業すればOK。
ADBコマンドでやりたければ
> adb pull /storage/emulated/0/Download/magisk_patched.img ./
のような感じで。
この「magisk_patched.img」ファイルをLinux(Ubuntu)での作業で使用
します。

以下、Linux(Ubuntu)での作業。

Linuxでpython2のインストールをします。ちよちゃんもLinuxは専門外
なので、インストール方法はどこかで調べて下さい。
> sudo apt install python2
みたいな感じでインストールできるといいですね。

「avbtool.py」
「magisk_patched.img」
「tiyochan.pem」
の3ファイルをLinuxに転送しておいてください。

コマンドシェルで実行。Lubuntuだと「システムツール>QTerminal」
ですね。
> cd avbtool
↑[avbtool.py][magisk_patched.img][tiyochan.pem]の3ファイルのある
フォルダ
> python2 avbtool.py add_hash_footer --image magisk_patched.img --partition_name boot --partition_size 67108864 --key tiyochan.pem --algorithm SHA256_RSA4096
ここで注意することはpartition_sizeは67108864です。iPlay20Proや
iPlay40は36700160ですね。元の「boot.img」のファイルサイズ(バイト)
を指定するのです。
「magisk_patched.img」を「boot.img」にリネーム。これがiPlay40Proに
書き込むファイル。オリジナルのboot.imgファイルと混同しないように。
この「boot.img」ファイルをWindowsに転送しておいてください。

手順4:vbmeta-sign.imgを作成しよう。
iPlay20ProおよびiPlay40だと、このあとvbmeta-sign.imgを作成する
ためにバイナリエディタを用いたり、tiyochan.pemからキーファイルを
生成したりとか面倒な手順があるんですが、iPlay40Proの場合、そんな
手順は一切いりません。もう必要なものは揃っているのです。

手順5:boot.imgの転送。
Linuxで作成したboot.imgをAndroid機器(iPlay40Pro)に書き込みます。
fastbootコマンドでも出来そうな気がするけど成功しなかったので、
「間違いなく書き込めてブートした」方法を。

以下、Windowsでの作業。

SPD_Upgrade_Toolを使ってファームウェアの全ファイルを転送します。
「UpgradeDownload.exe」を起動して、一番左の歯車アイコンをクリック
してファームウェア(pac)ファイルを指定。
ロードが終わったらexeファイルのあるフォルダに「ImageFiles」フォルダ
が生成されているので、ImageFiles内の「boot.img」をLinux(Ubuntu)で
作業後の「boot.img」で上書きします。
メニューの左から3番目の再生のような右矢印を押したら、USBケーブル
で接続したiPlay40Proをボリュームダウンを押したまま起動(ボリューム
ダウンを押したまま再起動でもOK)。iPlay40ProのAndroidが立ち
上がらずに「SPD_Upgrade_Tool」が何かの転送を始めれば成功。
約3分後にStatusがFinishになったら終了。(電源が切れます。)
ボリュームダウンを押したままの起動モードでもたもたしていると、
iPlay40Proは再起動して通常起動しちゃいますですよ。「SPRD U2S
Diag(COM*)」と認識してなければおそらくファームウェアの転送が
始まらないのでドライバの確認をすること。
この作業を行うとiPlay40Proは初期化されるので注意。
iPlay40Proの電源を長押し(8秒くらい)で起動。

手順6:Magiskの設定。

いつものAndroidの初期設定をします。

アプリ一覧の中に「Magisk」が存在していれば成功しています。
Magiskをインストールして、Magiskを起動、追加のセットアップ(再起動)
をします。
Magiskを導入できている≒rootをとれていると思っていいです。
その後のMagiskの使い方は多くの人が解説していると思うので、それ
を参照しましょう。

つづく。