U+E000 私用領域

しがない緑茶好きのメモ的なの。

NIPPON Tabletを普通のタブレットに更生させたお話。

一部で噂になってた詐欺タブレットNIPPON Tabletの足を洗って、普通のタブレットに更生させるまでのお話。
2020/11/08[追記]
28chさんのおかげさまで、TWRPやLineage OS等の起動が可能になりました!
ただし、いくつかの不具合が確認されていますので、自己責任でお願いします。
そして、バックアップは必ず取りましょう。
MEGAのリンク:

https://mega.nz/folder/qpB2wTRJ#X2uN8WnHuFzKLSX_M_0tGQ

これに伴いMagiskやOpenGAppsの導入がかなり楽になったため、記事の一部を改変、追記しました。
28chさんありがとうございます!(詳細はこの記事のコメント欄に書いてあります)

2021/03/13[追記]
この手法やリカバリーイメージは型番がNT-J1の端末を想定したものであり、類似した端末であるNT-S1は想定しておりません。
見分け方についてですが、NT-S1はインカメラが上部の中心についています。
NT-J1は上部の左寄りです。

NIPPON Tablet

https://cdn.discordapp.com/attachments/530608865256013840/707117296992387113/nipponwaratablet.jpeg

NIPPON Platform株式会社が展開していた(過去形)NIPPON PAYやその他各種決済用に使われていたタブレットでした。
どうも会社がやらかしてしまったらしく、加盟店への支払いが2019年11月あたりから行われていないみたいです。
詳しくは調べれば出てくるので割愛しますが、要約するとNIPPON PAYが大失敗した結果、決済に使われていたこのNIPPON Tabletがフリマ等に流れる事態になりました。

タブレットの詳しいスペックや技適、その他情報はhoneylab様がまとめてくださってるのでそちらを参考にしてください。

honeylab.hatenablog.jp

NIPPON Tabletの名を背負って中国製なの笑えますね(もしや狙っていたのでは)
ここではこれを使えるタブレットにするまでの流れを書いていきます。
すべて自己責任で行ってください。

追記:下準備

2021/02/24 追記 : ヤフオクでこの端末が激安で投げられているらしく、思っていたよりも需要があるようなので追記しました。

adb導入

adbコマンドを使用できるようにする方法についてですが、以下のツールをおすすめします。

butsuyoku-gadget.com

具体的な方法や、インストール後の対応についても、上のサイト様がご丁寧に解説されてあるので、省略します。

USBドライバ導入

これについては、本記事コメント欄に颯爽と現れた名無しさんが大変丁寧に説明されていますので、それをありがたく引用させていただきます。

googleのUSB Driverを下記のサイトから落としてください。

https://developer.android.com/studio/run/win-usb

展開して中に入っているandroid_winusb.infをメモで開き、[Google.NTx86]と[Google.NTamd64]の欄に以下を追加して上書きします。

;NIPPON Tablet NTJ1 %CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01&REV_0100 %CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01

;NIPPON Tablet NTJ1は書き込まなくてもokです。

続けてドライバの更新ですが、Windows10では署名のないドライバは拒否されるのでテストモードで更新します。 管理者権限のコマンドで以下を入力して下さい。

bcdedit /set TESTSIGNING ON

再起動してテストモードにします。 ドライバを更新します。署名がないので警告が出ますが更新できます。 更新したら再度、管理者権限のコマンドで以下を入力します。

bcdedit /set TESTSIGNING OFF

再起動してテストモードを終了して完了です。

比較的新しいPCでセキュアブートが有効ですと無効にして作業する必要があります。 私のPCは古くてサポートしていなかったので問題なかったですw

以下のサイトが参考になります。 https://tek2tech.com/android-usb-debug-driver-for-windows/ https://4thsight.xyz/4958

お問い合わせ

コメント欄をみる限りでは、この2つがハマりポイントかなと思ったので追記しました。
しかし、もし他に何か問題があるのであれば、Twitterかメールにご連絡ください。

twitter.com

Mail : newtikuwa.mk7★gmail.com

ブートローダのアンロック

起動したらいつもどおりビルド番号連打で開発者オプションを出してUSBデバッグ(ADB)とOEMロック解除の項目をONにします。
そしたら母艦PCから

$ adb reboot bootloader
<左下にfastbootの表示がでるのを待つ>
$ fastboot oem unlock
<端末側に本当にええんかと表示が出るのでYESを選択>

[追記] fastbootになっているのか不安な時は、fastboot devicesを実行してみてください。
ここで何の表示もない場合は、ドライバが導入できていないか、使用しているUSBケーブルに問題がある可能性が高いです。

いつもの流れですね。
ちなみにBLUすると、「お前の端末セキュリティ的に信用できんから注意しとけよ」的な表示がでて、起動まで5秒待たされます。
とりあえず起動したら不要なアプリを無効化します。
位置情報とか送信してるっぽい(デフォルトで位置情報ON。しかも高精度モード)ので、せっせと無効化します。

https://cdn.discordapp.com/attachments/530608865256013840/706762941168353381/Screenshot_2020-05-04_15-57-58.png

「ランチャーアプリ」っていうアプリだけ無効化できないのでadbで黙らせます。

$ adb shell pm uninstall -k --user 0 com.nippon_pay.launcher

[追記]TWRP導入

ブログ最初の方でちょろっと書いていたように、TWRPの起動が可能になったので、その方法と、この項以降の作業についての追記です。
まず初めに以下のリンクからTWRPイメージその他をダウンロードします。

https://mega.nz/folder/qpB2wTRJ#X2uN8WnHuFzKLSX_M_0tGQ

(28chさん提供。ありがとうございます。)
電源ボタン+音量上 or シェルでadb reboot bootloaderでfastbootモードに入ります。
(ボタンコンボの場合は選択画面に入った後にボタン上で選択、ボタン下で決定できるので、fastboot modeを選択)
そしたらTWRPイメージを焼きます。

fastboot falsh recovery TWRP_infinix_x556[NTJ1].img

焼き終わったらボタンコンボ or adb reboot recoveryでTWRPが起動するはずです。
前述の予期せぬ需要増加に伴い、TWRPの使用方法について簡易的に記載しておきます。
TWRPは、端末のバックアップ、復元、改変を可能にするリカバリーの事です。
今回のNIPPON Tabletの場合は、音量上を押しながら起動した後に出てくる画面で、音量上ボタンでRecovery Modeを選択し、音量下ボタンで決定する事で起動できます。
端末の改変については、改変用のzipを実機でダウンロードした後、TWRPにてInstallを選択し、そのzipを選択すれば、自動で書き換えてくれます。
NIPPON Tabletで使用可能なOpenGAppsのリンク
https://jaist.dl.sourceforge.net/project/opengapps/arm64/20210224/open_gapps-arm64-7.0-nano-20210224.zip
TWRPを使用したMagiskの導入について
zunda-hack.com dm-verity解除
forum.xda-developers.com

また、MEGAにあるファイル群Lineage OSのバックアップがあるので、それをリストアすればLineage OSも動きます。

$ adb push 2020-11-05--08-02-38_lineage_X556-userdebug_712_NJH47F_7b16bce01/ /sdcard/TWRP

の後にTWRPのRestoreからバックアップを選択すれば焼けます。
ただし他機種からの移植なので、念の為ストックのバックアップは取っておきましょう。

Magisk導入

導入する前に各イメージのバックアップをとります。
現状、この端末でTWRPを起動させることができなさそうなので、バックアップをとっておかないと危ない橋を渡ることになります...(一敗)
バックアップするのはbootとsystemです。dataは純正リカバリーからリセットすれば戻せます。
書きそこねましたが、NIPPON Tablet

  • 音量上+電源 => fastboot起動
  • 音量下+電源 =>中華の謎リカバリー起動

といった感じで分岐できます。
普通のリカバリーに入りたい場合は、fastbootからRecovery modeを選ばないと起動できません。少し面倒...
というわけでバックアップをとります。
しかしshell権限ではbootイメージが取れないので、rootを奪取します。
rootには最近CVE-2020-0069がふられたmtk-suを使用します。
詳細は省きますが、大体のMediaTek端末で一時root+SELinux無効化(Permissive)できるやばいやつです。

https://forum.xda-developers.com/attachment.php?attachmentid=4971443

Google、Androidの月例セキュリティ情報を発表 ~Amazon FireなどMediaTek端末でルートを奪取される問題にも対処 - 窓の杜

落としたらarm64の中のmtk-suを突っ込んでイメージ取ります。

$ adb push <mtk-suへのパス> /data/local/tmp
$ adb shell chmod +x /data/local/tmp/mtk-su
$ adb shell /data/local/tmp/mtk-su -c dd if=/dev/block/mmcblk0p7 of=/data/local/tmp/boot_native.img
$ adb shell /data/local/tmp/mtk-su -c dd if=/dev/block/mmcblk0p20 of=/data/local/tmp/system.img
$ adb shell /data/local/tmp/mtk-su -c chown shell.shell /data/local/tmp/boot_native.img
$ adb shell /data/local/tmp/mtk-su -c chown shell.shell /data/local/tmp/system.img
$ adb pull /data/local/tmp/boot_native.img
$ adb pull /data/local/tmp/system.img
$ adb shell mv /data/local/tmp/boot_native.img /sdcard

(bootイメージは後々使うので移動させてます。)
pullしたら、どこかわかりやすい場所に保管しておきましょう。
保管したら、Magisk Managerをインストールします。
TWRPが動かないので、Magisk Managerでbootイメージにパッチを当ててそれを起動させようという考えです。

https://github.com/topjohnwu/Magisk/releases/download/manager-v7.5.1/MagiskManager-v7.5.1.apk

Magisk Managerを起動したあとにMagiskをインストールを選択後パッチを当てます。
(少しフライングして直接インストールが推奨って出てますがスルーしてください...)

https://cdn.discordapp.com/attachments/530608865256013840/706771647792676874/Screenshot_2020-05-04_16-32-58.png

https://cdn.discordapp.com/attachments/530608865256013840/706771696144875530/Screenshot_2020-05-04_16-33-07.png

あとはsdcardに移したboot_native.imgを選択すれば/sdcard/Downloadsにmagisk-patched.imgが生成されるので、これを母艦に移してfastbootで起動テストをします。

$ adb pull /sdcard/Downloads/magisk_patched.img
$ adb reboot bootloader
$ fastboot boot magisk_patched.img

無事に動いたらこんがり焼きます。

<ボタンコンボなりadbなりでfastbootへ>
$ fastboot flash boot magisk_patched.img

とりあえずこれでMagiskは導入完了です。

dm-verity

rootとれたし自由だバンザイしたいところですが、残念ながらこの端末は泥遊びオタクの敵dm-verityをのっけてます。

androplus.org

ざっくり説明すると、rootだろうが/system以下は書き込ませないマンです。
自由がウリのandroidになんてもん追加してんだ
一応、これはブートローダからコマンドで解除できます。
できるはずなんですけど、何故かNIPPON Tabletはそのコマンドがありません!
BLUはできるのにこれはできない。本当に謎すぎる。

$ fastboot oem disable_dm_verity
...
FAILED (remote: unknown command)
finished. total time: 0.002s

一応、これを解除する方法は他にもあって、fstabをいじるとかTWRPから解除するスクリプト焼くとかがあるんですけど、
fstabにはそもそも記述なし。TWRPはソース入手が怪しい上に、移植、純正リカバリから生成したやつが動かないので無理そう...
よどがわさんにビルドしてもらいました。感謝。)
systemlessで楽しみつつ、誰かTWRP作るのを待つかな(おい)と思っていたんですが、どうもFireタブとかで使われていたFlashifyを使えばTWRP的なことができるという情報を拾ったので、バックアップあるしって事でdm-verityおよび暗号化を解除するzipを焼いてみることにしました(諦め半分でやってたので、スクショないです...)

flashify.org

forum.xda-developers.com

# mount | grep system                                                                                                                     
/dev/block/mmcblk0p20 on /system type ext4 (ro,seclabel,relatime,data=ordered)
(Magiskのあれこれは省略)
# mount -o rw,remount /system
# mount | grep system                                                                                                                     
/dev/block/mmcblk0p20 on /system type ext4 (rw,seclabel,relatime,data=ordered)
# touch /system/test
# ls /system | grep test
test

https://cdn.discordapp.com/attachments/530608865256013840/707109928363491349/dosite.png

fstabもブートローダもダメだったのに...?
この辺の仕組みは気になるので、あとでスクリプト読んで何かわかったら追記します。

GApps

最後にGoogle周りのあれこれを入れて普通のタブレット(当社比)を完成させます。
上のFlashifyの活躍もありますし、選択肢にGAppsってあるのでFlashifyでいけるだろって思ってたら、何故かGAppsはだめでした...(何かやり方がダメだった可能性もあるけど)

https://cdn.discordapp.com/attachments/530608865256013840/707113076071202896/Screenshot_2020-05-05_15-13-56.png

自分でOpenGAppsのzip取ってきて焼いてもダメだったので、Flashifyは諦めてOpenGAppsのzip内のCoreフォルダ以下のapkを手動で/system/priv-appに突っ込みました。
なんだか悔しい...
この辺もどうにかして追記しておきます。

[追記]前述のようにTWRPの導入でかなり簡略化できました。 f:id:a_one_of_fan:20200505152734p:plain どうでもいいことなんですけど、このタブレットデフォルトの設定だと字がまあまあ小さいです...
というわけで、あとで色々追記します(するはず...)
追記しました。