中華ナビの構造について私が調べた限りのことを解説していきます。
私なりの解釈なので間違っている部分があると思いますがご容赦願います。
また、OS書き換えについても解説しますが、あくまで私が購入した機種に限っての話です。汎用機についても述べますがOS書き換えを行う際は最悪の場合起動しなくなる場合もあります。自己責任でお願いします。
ではなぜ内部構造をある程度知っておかなくてはいけないかというと、カスタムROMをインストールする際にそれなりの事前知識が必要だからです。書き換えの手順そのものは簡単ですが、多種多様にある中華ナビでどの機種がカスタムROMに対応しているかを知らなければ正しいカスタムROMを選ぶことができませんし、対応していないカスタムROMをインストールしようとすると再起不能に陥るリスクが非常に高いです。
中華ナビの構造は少し複雑です。Androidタブレットやスマートフォン等の構造とは少し異なっています。
通常のAndroidスマートフォン等はSoC(CPU等)やRAM、ROM、各種センサ等が同一基板上にあり、その上でAndroidというOSが動いています。(厳密に言えばハードウェアを制御するカーネル等があるわけですが・・・)
これは中華ナビでも変わらないですが、中華ナビには【MCU】という単語が度々出てきます。
このMCUとは一体何者なのかというと、「Androidを含めて制御を行う制御基板(マイコン)」です。
Androidタブレット等とは違い、中華ナビでは内蔵アンプ、FM/AMラジオ、各種RCA入出力、バックカメラ、ステアリングスイッチ等の車載を前提とした機能を有しています。
これら機能はMCUを通して制御されています。
基本的には制御の優先順位はMCU>Andoroidとなっています。
Androidが立ち上がらなくてもバックカメラが使えるのはなぜか?
MCUが優先的に制御しているからです。
エンジンスタートで電源が入ると、MCUはSoCに命令を送りAndroidOSを立ち上げます。立ち上げている間は起動画面が表示されますが、これは液晶モニタの制御をAndroidOSに割り振っているからで、ここにリバース信号がMCUに入るとAndroidへのモニターの割当を中断して、モニターにはバックカメラの映像を表示するよう切り替えます。リバース信号が解除されると画面はAndroidに戻ります。こういったMCUからの制御が入ることでOSが立ち上がっていなくてもバックカメラが使えているわけですね。
うまくできていると思いますが、弱点というかちょっと困ったことがありまして、例えばRCA外部出力を利用して後席のフリップダウンモニターに映像出力をしているとします。MCUはAndroidの表示する画面をそのまま出力していますが、運転席側のナビの画面は地図を表示させたい。そして後席のモニターには動画を再生したい。といったことができません。ナビ側がマップを表示していたら後ろのモニターもマップ画面。すべて同じ表示となります。国産ナビではできることが、MCU+Androidという構図のため実現が難しいものと思われます。
MCUについて説明しましたが、このMCUが曲者です。
実は、中華ナビの大半はスペック的にはほぼ横並びの状態です。使っているCPUやRAM・ROMの容量もだいたい同じ。
色んなメーカーが中華ナビを作っていますが、実はMCUの基本的部分はどのメーカーも"ある程度"共通しているのです。おそらくMCUを製造している会社があり、そこから供給されている基盤をもとにモニターやパネル、ボタンなどを組み込み「ガワ」を作り製品として販売していると思われます。
なので、現在売られている中華ナビの多くは、SoC(CPU)がRockchipのRK3188でRAMが1GB、ROMが16GBとスペックが横並びで、恐らくMCU基盤の制限があるのか単にコスト的問題なのか。まぁ両方でしょうねw.
どうでもいい話が続きましたが、カスタムROMを入れるに当たってはこのMCUのバージョンが非常に重要になってきます。
MCUにはMTCB、MTCC、MTCDというバージョンが確認されています。
これらのバーション向けに作られたカスタムROMでしか動作しません。つまり、MTCBのMCUにはMTCD用のカスタムROMはインストールできません。逆もしかりです。
また、MCUにはMTCB、MTCC、MTCDはSoC(CPU)がRockchip製のRK3188向けとなっています。
「中華ナビならどれも一緒だろ~」と安易に判断してはいけません。
SoC(CPU)がAllwinner製の中華ナビなどがあり、原則としてRockchip製RK3188以外のものを買うのはあまりオススメしません。
カスタムROMなんか入れないから大丈夫!って方は購入してもいいと思いますが。
現在、カスタムROMを作っている方はMalayskというロシア人ビルダーで、この人以外は積極的に中華ナビ用AndroidカスタムROMを作っていないようです。この人が作るカスタムROMはMCUがMTCB、MTCD向けであり、必然的に搭載されるSoC(CPU)はRK3188向けとなっています。Allwinner製SoC採用の中華ナビはMCUが全く別物の可能性があります。
開発は主にAndroidの開発フォーラムであるXDA Developerにて行われていますが、中華ナビの話題はRK3188のSoCを積んだものばかりで、それ以外の機種はほぼ開発はされていないように思えます。
これらのことを踏まえると、「それじゃあ、SoCがRK3188のもので、MCUがMTCBかMTCDのやつを選べばいいんでしょ?」となりますが、ここでも注意が必要です。
1. MCUのバージョン表記がない。
ほぼすべてのセラー(販売者)に言えることですがMCUのバージョンを表記しているセラーは無いです。
つまり買って届いて通電するまでMCUのバーションがわからない点です。汎用機であれば、XDAの掲示板で、「○○の型番の中華ナビはMTCBだったよ! 」という報告が上がっているので、それらを参考にします。
専用機(車種ごとに作られている中華ナビ)はまず情報が得られません。買ってみるまでわからないというのが現状です。
買ってみてMTCBかMTCDだったら「カスタムROM入れられるや!ラッキー!」くらいに思っておきましょう。
ちなみにMCUバージョンをなんとなく判断できるポイントがあるようです(未確定)。
SoCがRK3188で、Androidのバージョンが4.4.4のもの = MTCBまたはMTCCの可能性
SoCがRK3188で、Androidのバージョンが5.1.1のもの = MTCDの可能性
まぁ気持ちの問題なんじゃなかろうかというレベルですが・・・
ちなみに、MTCCだった場合はMTCB用のカスタムROMが使えるようです。
2. 画面解像度の違い
カスタムROMはMCUのバージョン違いの他に解像度の違いにより必要なROMが変わります。
現在主流の中華ナビは1024×600が標準で、中には800×480のものがあり、どちらを買っても問題はないですがカスタムROMのダウンロードの際は注意が必要です。
3. スペックの違い
現在、開発されているのは上記のとおりMTCBかMTCDのMCUが使われており、Rockchip製RK3188を搭載した中華ナビに限定されているのですが、これらの主流はRAMが1GB、ROMが16GBとなっています。
販売されている中華ナビの中にはRAMが2GBとかROMが32GBとかのものも存在します。
カスタムROMが正常に動作したという報告は今のところ見かけないので、スペック目当てにそれらを買うとXDAの開発者たちからアドバイスが貰えず自分で全てを解決することになりますので、注意が必要です。ノーマルで使えば問題ないですけどね。
以上注意点を挙げましたが、これらが全てではありません。Android 6.0のものもかなり少数ではありますが売っているところもありますし、中華から買うに当たっては虚偽記載もかなりあります。スペックもRAM2GBって書いてあって実は1GBでしたなんていうのはザラにありますし、これらの条件が適合していてもメーカーによってカスタムROMが入れられないこともあると思います。
2DINの汎用中華ナビであれば、Pumpkin製かJoying製が無難かと思います。pumpkin製はAmazonでも買えますし、返品も対応してくれるみたいですね(ROM焼き失敗して返品はたぶん無理だろうけど)。ただ、AmazonJapanで買うとかなり割高ですね・・・。(作りはJoyingのものが安定とのこと)

<設定画面でバージョンが確認できます>
カスタムROM書き換え編
カスタムROMとひたすら連呼してきましたが、なぜカスタムROMを入れる必要があるかを説明します。
まず、内蔵ROMが16GBとなっていますが機種とバージョンによっては謎のパーティションにより実際に使える容量が1~2GB程度の場合があります。つまり、アプリがほとんど入りません。オフライン運用前提で、MapFanをインストールしようと思ったら容量不足でインストール不可なんてことがおこります。さすがチャイナ!
ちなみに私が購入したものも、残容量が2GBでした。
Android6.0からはmicroSDカード等を内部ストレージとしてアプリケーションをインストールできるようになっていますが、中華ナビの4.4.4や5.1.1は対応していません。内部ストレージ容量がアプリのインストールなどにダイレクトに影響します。
カスタムROMではパーティションを再構築し、12GB以上フリーに使えるようになっています。
つまり、多くの機能を求めてカスタムROMを導入するのではなく、必要があって"しかたなく"カスタムROMを入れるのです。
この時点で、中華ナビのヤバさが伺えますね。
その他にも純正ROMの微妙な不具合などや使い勝手の面の機能改善がされており、最近ではXposedなども使えるようになったほか、中国人以外全く使わないゴミアプリやその残滓を駆逐してありますので、純正ROMよりも比較的安心して使えると思います。
ただし、Bluetoothに関しては、ROM焼き前後でもバグが残っていて、接続されたりされなかったりします。
注意ですが、スマートフォンなどと違い、純正ROMを元に改造されたROMとなります。CyanogenModなどは現時点で存在しませんのでスマートフォンのように好きなカスタムROMを入れられるとは思わないほうがいいかと思います。
では早速、カスタムROM焼きを実行してみたいと思います。
再度、確認ですが、自分の忘備録でもありこのやり方を踏襲して失敗しても自己責任でお願いします。
スマートフォンをROM焼きされた経験がある方は心得ていらっしゃると思いますが、失敗しても自分でリカバリーできる能力と経験が必要になります。特に、ニッチな中華ナビという内容もあり、誰でも分かるような記載をされたリカバリー方法などはありません(リカバリーモードに入る方法は機種によって異なります)。
個別にコメントで教えてくれと聞かれても原則として(機種が違うと特に)お答えできませんので、2~5万円が文鎮化してゴミになる覚悟をしてください。
また、手元にインターネットに接続されたPCがない場合は残念ながら諦めてください。純正ROMで我慢しましょう。PCが使えない方がROM焼きできるとは到底思えません。スマホでもできないことはありませんけれども。
以下の手順は私の購入したアテンザ用10.2インチ中華ナビを基準に作業をしています。
Pumpkin製やJoying製などの2DIN型汎用中華ナビでも基本的な手順は同じですが、念のためです。
「設定」→「タブレット設定」→「バージョン情報」からMUCのバージョンを含むAndroidOSのバージョンが参照できます。
私の購入した機種は
【MTCD_HA_V1.63c_1】というバージョンでした。
MCUはMTCD、ベースとなるバージョンは1.63ということがわかります。ちなみにHAはHotAudioという製造メーカーの名前です。Joying製の場合はJYとなるようです。
さて、XDA Developersの
[ROM][RK3188][HD] Malaysk ROMs for any yet known MTCD-Device
http://forum.xda-developers.com/android-auto/mtcd-discussion-questions-development/rom-malaysk-roms-mtcd-device-t3385309
からROMをダウンロードします。私がダウンロードしたのはバージョン6
dupdate_5_1_1_FUSE_1024X600_800X480_RK3188_06_MAL_16_10_2016_MTCD.rar
解凍し、中には【dupdate.img】とWORD形式のマニュアル(英語とロシア語)が入っています。
dupdate.imgをフォーマットしたSDカード(4GB)にそのままコピー(ルートフォルダにコピーします)。
このSDカードをナビに挿せば準備は完了です。
ROM焼きの方法は2パターンあります。
マニュアルも同様のことが記載されていますので
■パターン1 リカバリーモードから焼く
ナビの製造メーカーによりリカバリーモードへの入り方はマチマチです。
私の機種は物理ボタンが無く、タッチパネル式のボタンなので、ボタン操作によるリカバリーモードは入れません。
私の機種(Hot audio製)では、筐体の蓋を開け、内部の基盤のチップ抵抗を短絡させることでリカバリーモードに入ります。
メーカーによっては、タッチパネル式ボタンでも、リセットスイッチ長押しでリカバリーモードに入れるようになっているものもあるようです。
HotAudio製は分解が必要な分面倒くさいです。
リカバリーモードへの入り方は確認しておいたほうがいいと思います。
リカバリーモードに入ったら上から3番目の
Update system/mcu image from sdcard and clear all
を選択します。
初回焼き込みはパーテーション切り直しのため時間がかかります。
2,30分程度は待ちましょう。
その後、インストールが完了しますが、電源を一度落とし、再度リカバリーモードに入ります。
リカバリーモードの上から6番目
Wipe all data/factory and cache reset
を行います。
再起動を行えばROM焼きが完了です。
■パターン2 OSが起動した状態からROM焼きを行う
「設定」→「タブレット設定(デバイス情報)」→「システムアップデート」を選択します。
SDカードに入ったROMデータがきちんと認識されていれば、「アップデートする?」ポップアップウインドウが出ます。
ここで注意ですが、「Wipe data and format flash!」にチェックを入れてインストールボタンを押してください。
これは、今入っているOSを消して、内蔵フラッシュメモリーをフォーマットした上でROMを焼くよ!ということです。
これにチェックを入れずにROM焼きを行うと、工場出荷時のOSを上書きする形で焼くことになり、互いのファイルが残り予期せぬ不具合や文鎮化することが考えられます。
パターン1と同様に完了まで放置します。
その後はパターン1と同じようにリカバリーモードに入り
Wipe all data/factory and cache reset
を行って完了です。
■番外編 同じ種類のカスタムROMをアップデートする方法
現在使っているMalaysk ROMがバージョンアップされたものがアップされた場合、
パターン2の方法でWipe data and format flash!にチェックを入れずに
インストールを行うと差分インストールになりますので、インストール下アプリや設定を残す場合は有効です。
念のため、TitaniumBackupなどのアプリを使ってオールバックアップをとっておくといいと思います。
これで、基本的なROM焼きの手順は以上です。
スマートフォンのROM焼きより遥かに簡単です。ブートローダーのアンロックなども必要ありません。
問題は正しいROMを選択すること。
なお、純正のROMを入手すればリカバリーモードから純正ROMに戻せます。
ちなみに私は当初、手順2の方法で最新のバージョン7.5をインストールしようとして失敗し、一度文鎮化しました。
筐体を分解してリカバリーモードに入ろう思っていたところ、なぜかリカバリーモードに入ったので手順1のやり方でインストールしました。インストールしたのですがWipe all data/factory and cache resetをやるためにもう一度リカバリーモードに入る必要があり、結局ナビを外して分解しリカバリーモードに入ってWipe all data/factory and cache resetを実行しました。
今後トラブルがあってROM焼きが必要になった場合が非常に面倒くさいので、リカバリーモードに入るための短絡用スイッチをダッシュボード内へ設けています。

<ROM焼き中の様子>