目次
きっかけ
ドコモテレビターミナルTT01を手に入れたのでちょっといじってみました。今回はAndroid上のこと(ソフト)について取り上げます。次回の記事では、放熱や基板上のUARTなどについてのハード面に触れます。
基本的なスペック
ドコモの公式ページにスペックが乗っていました。
4コア、3GBであるためAndroidTVとしては必要十分かなと思います。 2019年のローエンドスマホって感じですね。USBが2つ付いていて、LANもついているので良いと思います。改造してNASやサーバにしやすそうです。
ちなみにCPU-Zで確認したところCPUはCortex-A53となっていますが、分解してHi3798MV200で有ることが確認できています。armv7なので32bitです。
セットアップ
自分流に使う上で考えたセットアップの順番です。セットアップ後にオフラインでアプリの無効化をしてアップデートを防ぎます。
0. 有線LANを接続して電源投入
1. 通常通りセットアップ
2. セットアップが終了したら有線LANを抜く
3. パソコンと有線LANを直接接続
4. 開発者向けオプションを有効化する
5. ADBでランチャーをインストール
6. ADBでDocomo系のアプリを無効化
7. インターネットに接続
8. 好きなアプリを入れる
3. パソコンと有線LANで直接接続
パソコンついてるNicやUSB Nicで直接接続します。TT01の設定でIP設定を静的にして、適当にIPの設定をします。PCでもそれに合わせて静的IP、サブネットマスクを設定します。
4. 開発者向けオプションの有効化
これは普通にビルド番号を連打して有効化するだけです。その後に、USBデバッグの有効化ももちろんします。
5. ADBでランチャーをインストール
アプリの無効化の中でドコモ純正のランチャーをアンインストールするのでその前に変わりのランチャーをインストールします。好きなランチャーのapkをapkmirrorやApkpureで落としてきてADBでインストールします。自分は、FLancherを使用しました。ADBの接続はPCで
adb connect <TT01のIPアドレス>
で行います。TT01側でADBポート接続を有効にするか聞かれるのでOKを押します。
その後、
adb install <ダウンロードしたAPKのパス>
でインストールをします。このタイミングでAPKでインストールしたいもの(SmartTube、Mixplorer、Termux、CPU-Zとか)はインストールしておいても良いかもしれません。
6. アプリの無効化
そのまま使おうとするとDocomo製の使わないアプリだらけなので、それらを無効化していきます。自分が実行したのはこんな感じです。
adb shell pm disable-user --user 0 com.nttdocomo.android.applicationmanager
adb shell pm disable-user --user 0 com.huawei.tt01.manual
adb shell pm disable-user --user 0 com.nttdocomo.android.devicehelp
adb shell pm disable-user --user 0 com.nttdocomo.hikaritv_docomo
adb shell pm disable-user --user 0 jp.co.nttdocomo.dtv.stb2
adb shell pm disable-user --user 0 com.nttdocomo.android.danimestb
adb shell pm disable-user --user 0 com.nttdocomo.android.idmanager
adb shell pm disable-user --user 0 com.nttdocomo.android.tvterminal.relay
adb shell pm disable-user --user 0 com.nttdocomo.android.pf.dcmippushaggregator
adb shell pm disable-user --user 0 com.dazn
adb shell pm disable-user --user 0 com.nttdocomo.android.mascot
adb shell pm disable-user --user 0 com.nttdocomo.android.companionassistantdevicestbservice
adb shell pm disable-user --user 0 com.nttdocomo.android.atvsetup
adb shell pm disable-user --user 0 com.nttdocomo.dch.androidtv
adb shell pm disable-user --user 0 com.nttdocomo.android.smartdeviceagent
adb shell pm disable-user --user 0 com.nttdocomo.android.companionassistantdevicestb
adb shell pm disable-user --user 0 com.nttdocomo.android.atvhome
adb shell pm disable-user --user 0 iwedia.comedia.tvinput
adb shell pm disable-user --user 0 com.google.android.inputmethod.japanese
adb shell pm disable-user --user 0 com.google.android.music
adb shell pm disable-user --user 0 com.google.android.play.games
adb shell pm disable-user --user 0 com.google.android.videos
下から4番目のはGoogle日本語入力です。Gboardに統合されたので消しました。下から3番目はGoogle Musicです。サービス終了したので消しました。Google Play Game、Videoは使わないので無効化しました。自分は消しませんでしたが、YouTubeは
adb shell pm disable-user --user 0 com.google.android.youtube.tv
です。とりあえず一通り無効化できたら再起動して見てください。再起動後にインターネットに接続中…みたいな感じで永遠にくるくるする場合はcom.nttdocomo.android.atvhomeが再有効化されています。もう一回無効化してください。無効化じゃなくて
adb shell pm uninstall -k --user 0 <パッケージ名>
でアンインストールしても良いかもしれません。こんなにシンプルになりました。
7. インターネットに接続
有線LANの設定をDHCPからの自動取得に戻したあと、PCとの有線LANを外し、WiFiとか有線LANとかでインターネットに接続します。これでセットアップ終了です。
USBメモリ・HDDの使用
せっかくUSB3.0がついているのでUSBメモリやHDDを繋げたくなります。が、かなり条件が厳しいです。初めてつなぐUSBは絶対に初期化されてしまいます。Ext4で初期化されて、所有者がrootとなり、書き込み権限はrwxr-xr-xに設定されます。Ubuntuとかに繋いで、ファイルをコピーしようと思ったら毎回chmodで権限を変えないと行けません。また、AndroidTVにはSAF(Storage Access Framework)が非搭載(もしくは部分的しか使用できない)ため外付けディスクの直下とかにアクセスできません。ただ、アプリケーションが個別に使用できるフォルダ(<外付けストレージ>/Android/data/<アプリのパッケージ名>/)にはアクセスできるので一応使用できます。ls -laで見るとオーナーになっているにも関わらずなぜか書き込みができません。そのため、自分の試した限りでは完全に外付けストレージは読み込み専用です。
AndroidTVをごちゃごちゃやってるんだけど、再びファイルアクセスの権限の迷宮にハマってる
— Unagi Dojyou (@Unagi_Dojyou) June 26, 2023
なんで、オーナーなのに書き込みできないんだよ! pic.twitter.com/cnSO25rEsH
Termuxの実行
外付けドライブにアクセスできないのでNASとしての用途が潰された微妙ですが一応Termuxも入れてみました。ディフォルトのキーボードではキーボードが浮いているため、コンソールがキーボードの後ろ側に来てしまい、非常に読みづらいので、Hacker’s Keyboardとかを入れるのをおすすめします。
CPU-Zの情報
CPU-Zの表示はこんな感じになりました。一般のスマホ用のSoCでは無いのでHi3798MV200ではなくCortex-A53って表示されているんでしょうね。HUAWEI製です。ModelのところがMediaQM380-60となっていますが、M380というU-NEXT TVの型番のようです。筐体の見た目がそっくりです。しかしながら、RAM 2GB、ROM 8GBとスペックは低くAndroidも7と低いです。SoCと筐体が共通なんだと思います。
おわりに
Android8という使いやすいバージョン、豊富な端子、というサーバとして好都合な特性を持っておきながら、外付けドライブのファイルを扱えないというこれらの利点を潰すかのようなものでした。ただ、セキュリティパッチレベルが2019年2月5日なので、CVE-2019-2215(Qu1ckR00t)やCVE-2020-0041が使用できるので、気が向いたらroot化を試すかもしれません。Qu1ckR00tはツールが存在しますが、armv8な64bitようなので、32bit版を作らないといけません。
次の記事「ドコモテレビターミナルTT01を改造(ハード)」では分解して放熱を改良したりUARTを生やして読み取ったりします。
emmc ファームウェアにダンプしてもらえますか
できるものなら、ダンプしたいのですが、Androidの脆弱性をついたroot化以外方法が思いつかなくて…
器具を持っていないのでemmcを剥がして読み取ることはできないです。
なにか良い方法ありますか?