TCL Android TV(32S5400)のroot化とBonDriver化への道!MT5867搭載機・失敗とファームウェア解析の記録

Android TV
スポンサーリンク

自宅のテレビ環境をより自由に、そして強力な録画・配信サーバーへとカスタマイズしたい。

今回、その生贄として選んだのは、「TCL Android TV(デバイス名:G06 / プロダクト:G06_2K_GB)」です。

目標は、このテレビをroot化し、内蔵チューナーデバイスから直接TS(Transport Stream)ストリームを抜き出し、ネットワーク経由でPCから「BonDriver」として利用できるようにすること。

しかし、現代のAndroid TVのセキュリティは非常に堅牢であり、一筋縄ではいきませんでした。

本記事では、システムエンジニアの視点から、ADB接続による非破壊調査の過程、MStar系レガシーデバイスの発見とSELinuxの壁、vbmetaの検証をオフし忘れて、ブートループに陥った点。

そして公式USBファームウェア解析に向けた今後の展望まで、TCL TVのroot化・失敗と挑戦の全記録を詳細に解説します。

スポンサーリンク

ADB接続とシステムプロパティの非破壊調査

まずはテレビを開腹(物理分解)する前に、ソフトウェア側からどこまで情報を引き出せるか、ADB(Android Debug Bridge)経由での非破壊調査からスタートしました。

ターゲットデバイスの特定

LAN経由でADB接続を確立(すでに認証済み)し、システムのビルドプロパティ(build.propなど)を収集した結果、以下のシステム情報が判明しました。

  • デバイスモデル
    TCL Smart TV (device: G06 / product: G06_2K_GB)
  • SoC(チップセット)
    MediaTek MT5867
  • OSバージョン
    Android 11 (SDK 30)
  • ビルド状態
    productionビルド (user / release-keys)
  • セキュアブート
    Verified Boot (green)、Vbmeta (locked)

ここで最初の壁に直面します。この端末は開発者向けのuserdebugビルドではなく、完全な市販向けのuserビルドです。

試しにadb rootコマンドを打ち込んでも、「production buildでは不可」としてシステム側から無慈悲に拒否されました。

つまり、ソフトウェア的な脆弱性を突かない限り、一発でroot権限を取得する近道は存在しないことが確定したのです。

隠されたチューナーデバイスとSELinuxの強固な壁

root化の最大の目的である「チューナーの掌握」に向けて、デバイスツリー(/dev/以下)を探索しました。

ここで非常に興味深い、そして技術的なブレイクスルーとなる発見がありました。

通常、モダンなAndroid TVであれば、AOSP(Android Open Source Project)標準のandroid.hardware.tv.tuner HAL(Hardware Abstraction Layer)が実装されているはずです。

しかし、この端末のvintfやlshalを確認しても、標準HALは影も形もありませんでした。

その代わりに存在したのが、以下のデバイスノード群です。

  • /dev/mik!tuner
  • /dev/mik!dmx (デマルチプレクサ)
  • /dev/mik!tsr (TS Record用途と推測される)
  • /dev/mik!cipher

SoCのブランド名は「MediaTek MT5867」ですが、その中身(アーキテクチャ)は、MediaTekが買収した旧MStar Semiconductor系のレガシーなテレビチップの設計を色濃く引き継いでいることが、このmik!プレフィックスから推測できます。

さらに、システムの内部ではcom.tcl.ttvs (TTVSCore) というシステムアプリが、これらの独自ノードを直接制御している構造になっていました。

「これなら、標準APIを通さずに直接TSストリームを引っこ抜けるのではないか?」

そう思い、パーミッションを確認すると、なんとこれらのデバイスノードのDAC(Discretionary Access Control)パーミッションは666(誰でも読み書き可能)に設定されていました。

しかし、喜びも束の間。実際にshellユーザーからアクセスを試みると、アクセス拒否(Permission Denied)のエラーが返ってきます。

原因はSELinux(Security-Enhanced Linux)です。

dmesgやlogcatでavcログを確認すると、SELinuxが「Enforcing(強制モード)」で稼働しており、特権を持たないshellドメインからの/dev/mik!dmx等へのアクセスをポリシーレベルで明示的にブロックしていることが確認できました。

DACがガバガバでも、MAC(Mandatory Access Control)が完璧に機能している状態です。

これにより、「チューナーをBonDriverとしてPCで受信する」という野望を実現するためには、SELinuxをPermissiveに変更するか、特権ドメインでデーモンを動かすための「完全なroot化が必須」であることが技術的に裏付けられました。

XDAの調査とMT5867ルート化の糸口

ADBからの直接侵入が塞がれたため、次にXDA Developersなどの海外ハッカーコミュニティに情報を求めました。

MStar系Android TVのroot化は、界隈では既に活発な研究が行われている分野です。

MT5867における「mtkclient」の可能性

著名なMediaTek向けフラッシュ・root化ツールである「mtkclient」のGitHub Issue(#37)に、まさにこの「MT5867搭載Android TVをroot化できるか?」というドンピシャの質問履歴を発見しました。

開発者(bkerler)の回答は明確でした。

“Depends if a da loader is needed or bootrom is exploitable. Can’t tell without having a preloader or da agent for this device.” (DAローダーが必要か、BootROM自体に脆弱性があるかによる。この機種のpreloaderまたはDAエージェントが無いと判断できない)

つまり、mtkclientなどのツールを用いてシステムの深淵(BROMモードなど)にアクセスし、ブートイメージを書き換えてMagiskを導入するためには、この機種専用の「preloader(プレローダー)」または「DA(Download Agent)」と呼ばれるバイナリファイルを入手することが必要不可欠だということです。

MStar系特有のファームウェア構造と課題

コミュニティの調査から、さらにいくつかの重要な事実が判明しました。

  1. 物理UARTの存在確率
    デバイスツリー内に/dev/ttyS0などのUARTノードが存在していることから、テレビ基板上に物理的なUARTヘッダーピン(シリアル通信ポート)が実装されている可能性が高いです。
  2. BROMモードへの物理的アプローチ
    MediaTek製のTVチップでBROMモードに突入させるためには、ソフトウェア的なコマンド(adb reboot等)だけでは不可能であり、基板上のフラッシュメモリ付近にある「テストポイント」を、100Ωの抵抗を介してGNDにショート(短絡)させるという、物理的なハッキング手法(テストポイント・メソッド)が必要になるケースが多いです。
  3. 既存ツールの非対応
    過去のTCL/MStar系ファームウェアを解凍・再構築するための「mstar-bin-tool」というツールが存在しますが、これは2017年頃の旧世代機向けであり、今回のMT5867(Android 11、2025年ビルド報告あり)には直接対応していない可能性が高いです。
    しかし、MBOOT鍵の抽出やAES/RSA署名の概念自体は共通していると推測されます。

今後の計画。「USB」が届いてからの展望

非破壊での調査はここまでが限界です。
ADBからのコマンドだけでは、堅牢なVerified Bootの鎖を断ち切ることはできません。

現在のステータスは「root化失敗(ブートループ)」ですが、これは敗北ではなく、次の一手を打つための貴重な情報収集が完了した状態です。

このTCL TV(MT5867)のチューナーを完全に掌握し、BonDriver化を実現するためには、以下の3つの具体的な選択肢(アプローチ)に絞られました。

ファームウェア(USB/OTA)からのリバースエンジニアリング

これが最も安全かつ、現在最も優先すべき手段です。 TCLの公式サポートページ、あるいは有志のアーカイブから、この「G06 / G06_2K_GB」に適合するUSB更新用ファームウェア(OTAパッケージ)を入手します。

ファームウェアのimgファイルをダウンロードできれば、PC上で展開し、mtkclientの稼働に必須となる「preloader」や「DAファイル」を抽出できる可能性が極めて高くなります。

これらが入手できれば、ブートイメージ(boot.img)を取り出してMagiskでパッチを当て、再度TVに焼き込む(リパッキング)という、Android root化の王道ルートが開拓できます。

adb reboot bootloader の検証

fastbootでbootloaderをアンロックできましたが、ヒューマンエラーでvbmetaの検証を消し忘れた状態で、bootを焼いてしまったので、ブートループに陥ってます。

究極の物理アプローチ(分解とテストポイントショート)

ソフトウェア的なアプローチがすべて塞がれた場合の最終手段です。

巨大なテレビの背面パネルを開け、メイン基板(MT9221などと推測される)を直接目視します。基板上のUARTヘッダーを探し出してUSB-TTLシリアルケーブルではんだ付け通信を行うか、フラッシュメモリ周辺のテストポイントを探し出し、GNDにショートさせて強制的にBROMモードを叩き起こします。

これは完全な保証外作業(文鎮化リスク大)ですが、ハードウェアハッカーとしては最もロマンのある作業です。

BonDriver化への熱意は消えない

今回は、TCLのAndroid TV(MT5867)のチューナーデバイス(/dev/mik!dmx等)を特定し、SELinuxの壁を確認し、root化に何が足りないのか(DAファイル等)を解明するところまで到達しました。

続きは、検証に必要なファームウェアの「USB(データ)」が届き、imgのリパッキング環境が整ってからです。

スマートテレビの内蔵チューナーを解放し、自前の録画サーバーのBonDriverとして組み込むことをこれからも続けます。

コメント

タイトルとURLをコピーしました