[詳細] BMW 12.3インチAndroidナビ 取付・設定・改造

純正
Android 12.3インチ

BMW F10に12.3インチAndroidタッチスクリーンディスプレイをとりつけました。レトロフィットというのでしょうか。Android 11/Snapdragon 662/メモリ 6GB/ストレージ 128GB品がAliexpressで$540前後(購入時)。画面がかなり大きくなりました。色味がみょうに白いのは後述の設定ミスのため。

世界的にはこういった装置のことを “Android HU”(ヘッドユニット)と呼びますが、このページでは日本ローカルな名称“Androidナビ”と表記します

お問い合わせ、作業依頼等は承りません。開発した装置類は非売品です

もくじ

細かい紹介 (購入前に読む項)

Androidナビとは

一般的にAndroidナビ・中華ナビと呼ばれていますがカーナビ専用というわけではなく、ディスプレイオーディオとも言われますがオーディオ専用では無く、通常のAndroidスマホ・タブレットのようにGoogle Playなどで様々なアプリが利用できる車載モニターです。ただこのウルトラ横長サイズにUIが対応していないアプリではボタンが画面外にあってタッチできず、思いのほか多くが使用できません

BMW用Androidナビは純正モニターと置き換えることで、車両設定や純正ナビといったiDriveがそのままデカい画面で使えることはもちろん、Androidアプリがディスプレイタッチや純正iDriveダイヤル、ステアリングスイッチでそこそこ純正っぽく利用できます。そのために本体には車両と通信やAV系を接続するための専用ハードウェアが内蔵されており、これを制御するシステムがAndroidに組み込まれているという感じの構成で、単なるタブレットではありません。

純正モードとAndroidモードの利用・操作は完全に別れており、画面に表示されている方を使います。モード切り換えはすぐ。画面分割での両方同時利用や、純正iDriveのタッチ操作など、ひょっとしてできるかも?的な事はまずできません。

Android 11モデルを購入

購入したのはAliExpressのここ。左右ハンドル位置の違いはありません(他車種については不明)。同じものを3回買い、いずれも10日ほどで届きました(配送のDHLが土日祝休みなのでこれに絡むと留め置きが長い)。今は中国の都市閉鎖や運送遅延でかなり長くなると思います。なお宣伝でも関係者でもないので店の責任は持てません。ページ生存確認のためたまにチェックするとオーダー数が減ったりしてナゾ。

他店のものも含め車種の他に注目するところは、接続する車両iDriveのタイプ(CICやNBTなど。判別方法は検索してね)、AndroidのバージョンとCPU、メモリ・ストレージです。Android 11/12モデルはSnapdragon 662、メモリ・ストレージが4GB/64GB・6GB/128GB・8GB/256GBが“ほんもの”とのこと。それ以外の組み合わせやCPUが“8 Core”などはっきりしないもの、相場より安いものは(Android 11や12と書かれていても)古いOSだったり別のシステムだったりするかもしれません。“ほんもの”がベストとも限りませんが本記事の多くが当てはまらないと思います。

スペックについて、車載用途だと多くてもアプリ数個動かすだけなのでメモリ6GBで充分。ストレージは、アマゾンプライム動画だと最高画質ダウンロード100分で1GB弱という感じなので、通常は128GBがいっぱいになることはないでしょう。7日間ぶっ通しで100GBです。TF(マイクロSD)カードスロットx1、USB Type-Aソケットx2があるので、著作権保護動画が保存できるかはわかりませんがそれぞれにストレージの増設も可能。ただこれも含めAndroidが一般的にFAT32フォーマットにしか対応しないので総容量32GBまで、1ファイル4GBまでの制限があります。exFATに対応するアプリもあるようですが未確認。

Android 9/10のタイプを購入する場合はこちらの記事を参考に。それによると先の購入店のAndroid 10/Snapdragon 450品は”Fake and very slow”なタイプみたい。あぶねぇ。

後述のようにAndroid 11ナビはAndroid 12への更新が可能です。逆は無理。速度や操作感に差は無いのでのでどちらを選んでもいいでしょう。

下に追加の購入アドバイスもあります。

F10は無加工で取付

取付方法はYouTubeにたくさん出てますので省略します。あまり言われない一番難しいポイントは、増設する中間ハーネスを奥にうまく納めヘッドユニットをきっちり固定することでしょう。何度脱着しても未だ運頼み。この作業で配線をごそごそするとき手の甲が傷だらけになるので気をつけてください。あとネジを落っことすと二度と取れない隙間に入るのでこれも注意して。

プロに依頼する場合、中国地方なら、面識ありませんがYouTubeでBMW研究をする エムドライブ(山口県) がいいのではないでしょうか。取り付けるだけなら誰でもできますがそれ以外のノウハウが効いてくる製品なので、好きでやってる方がいいですね。他の地域はわかりませんし、うちでも承りません。

F10用は純正位置にぴったりはまるカバーパネルに差し込む方式なのでダッシュボードの中身が見えるなんて事はありません(ダッシュボードのカットが必要な車種もあります)。取付の制約と強度不足で、エンジンがかかったままの停車時はディスプレイが小刻みにゆれます。走行中は全く気になりません。裏側をプラリペアで補強したら多少改善されましたが、金属で補助フレームを作らないとどうにもならなそうです。

ディスプレイは反射する

商品説明に“Blue anti-glare screen”とありますが、実際は光沢タイプのコーティング保護フィルム(反射光が紫色に見える感じのやつ)が貼られています。左から純正、オリジナル、フィルムをはがしたもの、アンチグレアフィルムに交換したもの(別項で紹介)。

あっても無くても写り込みがかわらないオリジナルフィルムですが、日の色がちょっと和らぎ、指紋はじゃっかん落ちやすい感じ。0.4mm厚の硬い素材なので画面保護性能は高いです。常に黒い純正はさすがですが、反射物がほぼ見えなくなる後付けアンチグレアフィルムもかなり健闘しています。

あと実際の使用ではリヤウインドウからの光の写り込みが気になります。本体を天井方向に傾けこれを抑えるアダプターの3Dプリントデータもまた別項で公開中です。

夜間はフロントガラスに映り込む

夜間はフロントガラス上部に反射した画面が見えます。運転位置で撮影。とはいえ気にしなければ気になりません。気になる場合はサンバイザーを下ろして下さい。

【重要】ディスプレイがまぶしい

個人的に一番嫌だったのがディスプレイのまぶしさ。

画面の輝度調整は純正のような周囲の明るさにあわせた自動無段階では無く、社外ナビのようにライトが点いたときに暗くなるいわゆるディマーだけの2段階です。トンネルから抜けたあとも長くオートライトが点いたままのクルマではディスプレイも同じことになります(センサー新品交換で早くオフになったとウェブ記事かYouTubeで見た記憶がありますが曖昧)。

これはまあ慣れるんですが、そのディマーでの減光量が思いのほか少ないため、まぶしさに敏感な方には夜間はかなり不満でしょう。そもそも設定可能な最低輝度でもまぶしいです。色味を調整して明るさを下げるAndroidアプリや設定は効果的でしたが、純正ナビ側はもちろん何も変わりません。常に目に入るものなので、純正ナビ使用メインでディスプレイの明るさに敏感な方はこれは買わない方がいいでしょう。純正iDriveで設定できる画面明るさ調整機能は使えません。ちなみにiPhoneは明るさ10%程度で使用。

別項で紹介しますが、ディマーの減光量は“KSW-ToolKit”アプリの追加で、ディスプレイ自体の減光は内部部品の交換(未経験者には高難度)で調整できます。

GPSが測位しない… (対処法あり)

GoogleマップやYahoo!カーナビなどの測位がうまくできませんでした。地図アプリを使っていなかったので気付きませんでした。海外掲示板ではAndroid 11版は再起動するとダメと書かれていますが、まさかうちのみたいに起動直後からダメなのはおかしいと思いますので、最初からいじり回したことに原因があるかもしれません。4台目を買う予定は無いのでプレーンな状態はもうわかりませんが、対処方法はめちゃ頑張って見つけたので後述します。

初回アプリ起動に37秒。キーオフ10秒でシャットダウン開始

電源が入った瞬間からAndroidアプリの起動までに37秒かかりました。車両で言えばIGN ONにした時から。国産車両のようなECUへの常時電源は限定的で、8分前後(F10での実測)でほぼ全ての電源が止まるBMWの制約からか、スマホのようなスリープはありません。Android起動中も純正iDriveの表示は可能ですが、映るまでにON後2秒ほどかかります。

IGN OFF(画面消灯)後10秒経ってからAndroidのシャットダウンが始まります。その前に再度ONにする場合はすぐ表示再開されますが、シャットダウン開始直後だと再起動が行われるまで十数秒は純正表示もされず多少不安になります。

純正・Androidモード間の切り換え

Androidが起動していれば、純正 => Androidはディスプレイの好きなところ、Android => 純正は専用アイコンのタッチで切り換えられます。

またAndroidの起動にかかわらず iDrive の物理ボタン [MENU] で純正 <=> Android双方向、[OPTION] で純正 => Android 一方通行で常時変更可能。Android => 純正 一方通行はたぶんありません。

アマゾンプライムビデオのオフライン視聴が便利

WiFi内蔵Androidなので自宅WiFiなどをつかいPlayストアからインストールするアマゾンプライムビデオアプリで予め動画をダウンロードしておくオフライン視聴もできます(アマゾンプライム会員)。これは便利。一般的な16:9のビデオだと画面両端がだいぶ余りますが映画ではこの通り。

バックカメラは純正・外部入力が使用可能

バックカメラは純正か外部入力が選べます。純正利用時はAndroid表示中でもリバースギアで純正に切りかわり、外部入力時は純正ソナーや(たぶんてきとーな)バックのラインなどが合成されたAndroidの画面が表示されます。走行するかPDCボタンを押すと元に戻るのも純正と同じ動作。Androidの起動状態に関係無く使用できます。

外部アナログ映像・音声入力端子あり

別にRCA(ビデオ)端子によるコンポジット入力が2つあり(映像のみと、映像+音声左右)、その表示にはそれぞれ専用のアプリアイコンをタッチします。フロントカメラ等を接続できますが何度も画面タッチしないと見られないので結構面倒。別項でKSW-ToolKitを使った改善方法を紹介します。

インターネット接続はWiFiとモバイル通信

内蔵WiFi以外でのインターネット接続はスマホとのWiFiテザリングと、マイクロSIMカードを追加しての4Gモバイルデータ通信があります。USBテザリングはグレーアウトされONにできませんでした。Bluetoothテザリングも不可。

CarPlayを利用する機会がほぼ無い

対応したiPhoneアプリをAndroidナビで使用するCarPlay機能が内蔵されており、それ目当てに買う人もいるでしょうが、たいていはAndroidで事足りますし、アプリが少なすぎマップとミュージック以外さほど便利でもないので使っていません。

※ CarPlay対応アプリ以外はアイコンも表示されないので起動・操作ができません

また起動時間が前述のようにまあまあかかるので、CarPlayやAndroid Autoメインの方は専用MMIの方がいい場合もあります。これうちでも使ってましたがAndroidナビと違って起動はすぐだし安定してました。当然タッチ操作不可・iDriveダイヤル操作のみなのでそういった不便はさはあります。

CarPlay使用中はAndroidナビもiPhoneもWiFiが使えなくなるという点は、仕組み的に当然なんですけどちょっと残念。別項記載のUSB CarPlay/Android AutoのCarlinktつなげる場合はAndroidナビのWiFiは使えますが、つなげられているiPhoneはどうやっても無理。

Androidで音楽再生しながら純正ナビ表示は難しい

純正で音楽を再生させながら無音のAndroidを表示させることは可能ですが、その逆はできません。純正表示にしたとたんAndroidの音楽再生が停止します。後述のKSW-ToolKitで対策できます。

無害のフォルトコードが出る

Androidディスプレイ交換後に純正診断機で車両チェックすると、ヘッドユニットとCID(Central Information Display)が通信できない的なダイアグが表れます(一番下。他のはこの車の改造?によるものなので無視して)。メーターパネルやiDriveに警告類は何も出ないので全く気にしなくていいですし、車検的にも(たぶん)問題ありません。内部的にはそういうことになっているというだけ。ディーラー対応は知りません。

地デジは映らない。ワンセグはOK。Blu-rayなど外部入力も多少面倒

エムドライブのYouTube「Androidモニター付けたらTV映るのか?ついでにTVアプリ紹介」を見て知りましたがテレビは映らないようです。普段から見ないので気付きませんでした。

たぶん著作権保護機能のHDCPが必要な地デジフルセグはNGで、不要なワンセグはOKという感じ。HDCPには高額なライセンス料が必要なのでAndroidナビが非対応なのはまあ当然でしょう。なお先のYouTube動画にインターネット接続で観られるAndroidテレビアプリの紹介があります。

同様に社外AVインタフェースなどを使った地デジやBlu-rayなどのHDMI入力も映らないんじゃないかと思います。アナログで画質は落ちますがAndroidナビ標準装備のコンポジット入力なら問題ありません。

ただHDMIをデジタルで再生する手が無いわけじゃなく、映像は(理論的には)劣化し30fpsになりますが HDCP 1.4対応のHDMI-USB動画キャプチャー装置(せんえんぐらい) でUSBカメラ映像に変換したものなら見られるでしょう。これを使ったAmazon Fire TV StickのHDCP動画はOKでした。これ系の装置でHDCP対応とはクラックのことなので製品説明に明記されない場合が多く見極めづらいかもしれません。4K映像は、使用されるHDCP 2.2が現在未解読で、Androidナビの性能的にも不足しているため、見られません

無料のアプリをいくつか試してこの用途に合ったのは“USBカメラスタンダード版”と“nExt Camera”でした。有料ならではの使い心地の“USB Camera Pro”もよさげ(広告入り“USB Camera”でお試し可)。カメラアプリを複数実行すると映像がカクつくので気をつけてください。

これらのアプリでUSBカメラが認識されないときは、Androidの開発者向けオプションを有効にして [デフォルトの USB 設定] が“データ転送無し”(詳細は検索してね)、本体の工場設定 [USBホストモード] がONなのを確認して下さい。Android 12だと起動時に常にこの状態に戻されるので映らないのは別の問題かもしれません。

自分に合った使い方を見つければかなり満足な装置

先の通りクルマに乗ってオンにする度に起動を何十秒も待たねばばならないので、結局はカーナビ・音楽再生・通話といった機能は従来通りクルマ側のものを使うことにしました(純正iDriveの起動もまあまあ待ちますが)。Androidではビデオ閲覧、ストリーミング音楽視聴、渋滞情報などの調べ物に用いるぐらい。そう書くとイマイチな製品に思えますが、満足度は高いです。

ナビ・音楽・通話全てをAndroidで行うことももちろん可能です。ただAndroidでの通話中は全ての作業ができなくなる(通話用UIが最前面固定)といううんこちゃん仕様なので、そこだけ純正、あと全部をAndroidという使い方をする方が多いようです。

購入方法のアドバイス

Androidナビは目に付くハードウェアスペックやOS以外に、システムの設計開発元やベンダーと呼ばれる製造元の選択があり、知らなければわからないこっちの方が実は重要な製品です。

システムは“KSW”と呼ばれるものが一般的で、世界のコミュニティーではこれ以外のシステムは相手にされない、というか使ってる人があんまりいません。“BMW用AndroidナビといえばKSW一択”という状態なので、困ったときに助けてもらえる可能性が高いです。KSW専用ユーザアプリがあったり、このページもKSWに特化していたりと、そういう世界ができています。相場より安いものはKSW以外な場合が多く、長く遊ぶためには避けた方がいいかもしれません。通販サイトにこういったシステムの表記はありませんが下のベンダー項で判断できます。KSWのメルセデスベンツやアウディー用なども通信プログラム(MCU)以外ほぼ同じなので、車両固有のシステム以外の話ならBMW用コミュニティーに参加できます。

OSは今ならAndroid 12を選びましょう。今KSWの開発は12に専念されており、売られているものはまず12です。11は12に更新できますが、9/10はハードウェアが違うのでできません。ファームウェア更新用ファイルがコミュニティーで手に入るのもKSWの特徴です。KSW以外は表記のOSバージョンがあまり信頼できず、システム情報画面に11と書かれていても実は9だったり、CPU情報も偽装する場合があるようなので注意が必要。実際の操作にはOSバージョンやCPUはほとんど関係ありませんが、運転するとき必ず目に入る装置がにせものというのは多少気になるかもしれません。

ベンダーについては難しく、いくつも使い分けている人がいないのでどれがいいかはわかりません。別項目で詳しく書いていますがKSWによるリファレンスデザインに沿って実際の装置をつくり卸すのがベンダーで、電子基板やIC、液晶パネル、車両との通信制御プログラム(MCU)も各社ちょっとずつ異なります。ベンダーの種類はこのページの“Identified MCU Vendors / Seller comparison:”が詳しく、一番多く売られているのがdGS系のようです。私が購入したのもこれでした(最近知った)。販売店によって外装の色や関連オプションが違ったりもするようです。独自性が高いのはALSで、そのため多少高額かもしれません。Aliexpressに各販売店があるので見比べてください。これら以外から買うとKSWでないものが届く可能性があるので、日本国内通販も含め怖くてとても選べません。詳しいショップで対面で最新のKSWを確認して購入・取付してもらうのがおすすめですが、「Androidナビ取り付けました!」とわざわざブログを書く店ではめずらしい作業ということでサポートが期待できなことも想像され難しいところです。

KSW Android9/10は音質が悪いという評判でしたが、11/12はアンプICが違うのかそう悪くなく、F10の純正iDrive(ID4)と大差ありません。別項のUSB DAC追加で音がすごく良くなるので、純正プリアンプがしょぼいとも言えます。

搭載CPUはAndroid 11/12のKSWであればSnapdragon 662の製品しかありませんが、たまにSnapdragon 665が入ってることがあるようです。半導体不足の影響だと思いますが、どちらもベンチマーク含めほぼ同じなので気にしなくてかまいません。いくつかの販売ページでは662 vs 665というナゾの表で662が圧勝とされていますが、自分で首を絞めてどうするんでしょうか。

メモリと内蔵ドライブのサイズはお好きにどうぞ。常時電源が無いBMWの仕様でエンジン始動ごとにAndroidナビはゼロスタートするので、裏で使わないアプリがいっぱい動いているようなことが基本的にはなくメモリ4GBで充分ですが、今後いろいろ遊ぶにはちょっと少ないかもしれません。

画面サイズは、10インチも12インチも今のところ互換性のため表示される内容は全く同じで、大きいかどうかの違いです。純正位置にそのまま納まるタイプは後付け感がなくシンプルですが、もともとタッチが考慮されていない車両では画面が遠くて操作しづらいでしょう。iDriveダイヤルでもある程度操作できますが後付けゲームコントローラーと内部的には同じなので、それでできないような地図の拡大縮小、ピン位置の修正などの操作はタッチが必要です。12インチは取り付けた時は“でかすぎ!”と思いますがすぐ慣れます。F10では問題になりませんでしたが車両によってはシート位置をあげないと前方視界を多少遮るかもしれません。

モバイル通信の周波数帯域により、AliExpressで普通に売られているアジア・ヨーロッパ版とは別に、北米版が存在します。日本での通信キャリアのドコモ・au・ソフトバンク・楽天モバイル(auローミング不可)は一般的なアジア・ヨーロッパ版が対応しますが、北米ユーザは製品が異なるので注意しましょう。モバイル通信を使うつもりがないからと安易に非対応版を買うと必ず後悔します。ちなみにKSW Android 11/12ナビの4G(FDD-LTE)対応バンドは、アジア・ヨーロッパ版 B1 / B3 / B5 / B7 / B8 、北米版 B2 / B4 / B5 / B7 / B8 です。他の地域のユーザは自国の対応バンドにあう方を選んで下さい。このページは世界中の人が翻訳して読んでいるので説明もワールドワイドです(笑)。

取付時のひと工夫 (取付時に読む項)

ハーネス

露出したハーネスが振動などでこすれてビビると不快なので、エプトシーラーや純正ハーネスにも使われるテサテープで巻いておくといいでしょう。テサテープのロールは使用後に端を折り返し粘着が無い面を作っておくと次に使いやすいです。

大きいコネクターのロックをつかんで引き込む部分は薄いので、脱着時はレバーの力だけに頼らず、コネクター全体を持って動きをサポートしてやるのが安全です。別のやつ、割ったことあります(涙)。

本体に挿す白いコネクターは反対側に支え的なものが無いため電子基板がそのままたわみます。力でなく、軽くぐりぐりしながら滑らすように入れるといいでしょう。

メインハーネスのコネクターには接着剤が塗られていますが、USBとVIDEOハーネスにはありません。というかそれがあたりまえなんですが、ただ細くて硬い電線のUSBはちぎれやすく、うちのは1本切れました。修理方法は後述。

なので電気絶縁性が高い接着剤TB1220Gを、14ゲージニードルを付けた3mlの注射器につめ塗っておきました。安価な10セット送料無料のを見つけたので載せておきます。このサイズの注射器のお尻と接着剤の口がぴったりなんですよね。うちではたくさん使うのでプラスチックニードルですが、リンク先の先端が金属の方が細いのでちょっとやりやすいです。これより細いと押し出すとき圧力でニードルが飛びます(笑)。接着剤は普通のシリコンシール材でもいいかもしれません。

基板が強くたわむとサイドのコネクター位置も変わり映像ケーブルが埋まってしまします。すごく脱着しづらくなるので、先述の白いコネクターを先に挿しそれで基板を引っ張っるあまりおすすめできない手を使うしかないでしょう。または分解して基板のたわみを取るか。

また単純にこのコネクターは抜くのが難しく、細めと少し細めのマイナスドライバーで周囲をまんべんまくこじるしかないかもしれません。あまりに大変だったので外した時コネクターとハウジングに、端子につかないよう細い工業用綿棒などでワコーズ フッソオイル105を塗っておいたら、それ以降は工具不要で脱着できるようになりました。抜く前に隙間に吹いとくといいかも。これ性能良いんですがお高いのでこれだけのために買うのはおすすめしません。

今は潤滑剤のおかげで比較的抜けやすくなってるので、片手で本体を持ちながら、もう一方の手の人差し指と中指の爪をコネクターの隙間にさし、指の間から親指でコネクターのロックを押しながら、爪を並行にスライドして抜くのが今のところベストな感じ。

付属ハーネス類の接続は用途次第

メインハーネスの他に、GPSアンテナ、平たいアンテナ、マイク、スピーカー、USBハーネス、VIDEOハーネスが付属しますが、説明書が無いのでどうしたらいいか戸惑います。用途によっては不要なものもあります。

GPSアンテナ
当然地図アプリ用です。ダッシュボードに設置する場合、社外ナビのように下に金属板を置くといいでしょう(付属しません)。GPS用とされる板は売られてますが、アンテナに磁石はないので鉄製である必要も無く、アルミテープでもたぶん同じ。社外の分岐ケーブルで純正GPSを使う場合、このアンテは不要です。受信性能の違いとあわせ後述しました

平たいアンテナ
4Gモバイル通信用です。たいていは今すぐ使わないでしょうがダッシュボード裏のどっかに貼っておくといいでしょう。ちなみにBluetooth・WiFiのアンテナは本体に内蔵されています

マイク
AndroidナビのBluetoothで通話するときに使用します。アプリの音声認識はナビ内蔵マイクマイクを使うようですが、通話は外部入力マイク専用みたい。Androidナビ設定のマイク音量は標準だと相手に聞こえる音量が小さいので最大かそのあたりに設定し予め確認しておきましょう。社外品のピンマイクにすると音質が上がるかもしれません。通話を純正iDriveのBluetoothで行う時は不要です(通話は純正利用がおすすめ)

スピーカー
Androidナビの音を常に鳴らすもので、純正機能の音楽を楽しみながらAndroidのナビや通話音声を聞くことができます。ただAndroidで再生する音楽を車両スピーカで聞きたいときにも音が出るのでその時はじゃま。純正メイン使用のうちではマイクとあわせ未使用

USBハーネス
USBメモリや、内部設定を行うためのPCを接続するときなどに使用するので、どこかに出しておくのがおすすめ。うちではグローブボックスに通しました。特に最初のころはGoogleアカウントなどいろんなアプリの設定が必要ですが、それをスクリーンキーボードで行うのはほんとに肩が凝るので、こういった軽量コンパクトUSBキーボードを接続して使うといいでしょう。常に車載しています

VIDEOハーネス
3.5mmピンジャックが外部マイク(AndroidのBluetoothで通話するとき用)、緑が映像のみのDVR(ドライブレコーダー)、黄・白・赤が映像・音声のビデオ入力です。4ピンコネクター(JST SM)がナゾですがショートすると本体がリセットされ、場合によっては壊れるので要絶縁。このハーネスは使うときにつなげればいいでしょう。無くさないよう最初からつけておくという考え方もありますが(笑)

その4ピンコネクターは配線色と電圧(赤5.2V、黒GND、白・緑が3.3V)からUSBじゃないけどそれっぽい感じですが、多層基板で配線パターンが表・裏に出てなかったので全く回路が追えませんでした。不確定ですがiDrive操作部が無い過去の車両に中華製操作部を増設したときに接続するための端子という情報もありました。

メインハーネス ステレオミニプラグ オス・メス

AUDIO IN / AUDIO OUTと書かれた3.5mmジャックがメインハーネスにあって、なぜこれだけわざわざ外せるようになっているのかきっと悩むことでしょう。悩んでなければ読み飛ばしてください。

AUDIO IN はセンターコンソール内AUXジャックから純正ヘッドユニットへとつながる電線を分岐したもの、AUDIO OUT はAndroidナビのサウンド出力です。Androidナビの音を純正ヘッドユニットAUXに入力しているのはこの部分です。

でもそれだけなら脱着できる意味は無いんですが、車種によるのかオプションアンプのためかAUDIO OUT をセンターコンソールAUXに直接つなげなければならない車両もあるらしく、その時にここを外して付属のオーディオケーブルで延長するもよう。またこうしてピンジャックになっているおかげで、別項のように高音質のヘッドホンアンプ出力を簡単につなぐこともできます。

これが外れるとAndroidナビの音が出なくなるのでテープで抜け防止をしておきましょう。

GPS分岐ケーブル

ダッシュボードに設置したAndroid用のGPSアンテナがじゃまだなーと思ってたところ車両GPSアンテナ1つを2台のユニットで共有できる分岐ケーブルをAliExpressで見つけたので購入しました。

ただ取付前にGPSアンテナ用電源電圧を測ったところ、車両ヘッドユニットが4.7V、Androidナビが3.3Vでした。内部的に信号はコンデンサーで分離されますし、また電源とは言ってもプルアップみたいなものなので直結してもそう大きな負荷にはならないでしょうが、でもあんばいはよくありません。

世の中どうしてんの?と再度検索すると同じ分岐ケーブルでも“ダイオード入り”というのも売られており、なるほどそうやるのねと思いつつ高周波はよくわからないので秋月電子でてきとーに選んだ1SS277をAndroid側に入れました。電圧も問題なし。後付けGPSアンテナが無くなったことでダッシュボードがすっきりしました。

ダッシュボード 直置き
下にアルミテープ
直置き SNR 35db
アルミテープ SNR 39db
高周波ダイオード入り分岐ケーブル SNR 42db

この変更で受信感度がどう変わったか、GPS Testアプリで簡易的に調べてみました。スクリーンショットのタイミングで値は多少上下しますがそれを考慮してもこの純正GPSアンテナ分岐が一番SNRが高い(ノイズが少ない)という結果でした。冬、14時半、晴れ、自宅駐車場にて。分岐されたiDrive側のSNRがどうなったかはわかりませんが、Androidナビと違い純正は他の車両情報で位置情報を常に補正しているので仮に多少悪くなっていてもほぼ影響ないんじゃないかと思います。

分岐ケーブルを今回のようにいちいち工作するのはまんどくさいし高くつくので、使うなら最初から高周波ダイオードが入ったこういうのがいいでしょう。コネクタータイプ “Fakra Z M to 2 Z F90“(電線が横に出るタイプ)、長さ 0.5M。見たとおりコネクター形状が同じなのでどっちをどっちに挿すか悩むでしょうが、こんもりしたダイオード内蔵側がAndroidナビです。ただうちではずっと改造版を装着しているのでこの製品版は買ったきり一度も使ってません。そのうち感度を比べてみる予定です。なお掲載時点でAmazonでゆいいつ売られてるものは最初のと同じくただ分岐されているだけなので、(評価欄にF10で使ってる外国人もいますけど)できれば避けましょう。

せっかくなので配線方法にも気を使い、ノイズとなる他のハーネス類からなるべく離しておくのがいいでしょう。うちでは分岐したGPSケーブルだけを右側に、他の電線全てを左側に通しました。

純正ヘッドユニットのGPSコネクターは先の位置で、真ん中の黒コネクターみたいに中タブを途中まで引っ張ってそれをつまみながら引き抜きます。このタブ、外れて飛ぶと見つからないので気をつけて(別の作業で半年後に発見w)。コネクターは前後の遊びで異音が出そうなのでエプトシーラーを根本に貼りテンションをかけておきました。

快適に使うための設定など (使用中に読む項)

工場設定

純正iDriveメインのうちの使い方では、工場設定は以下のようになりました。パスワードは 1314 でしたが、通らない場合こちらの海外掲示板に他のパターンも記載されていますので参考にしてください。よくわからない設定項目の説明もあります。全てのパスコードが当てはまらなかったら別項の調べ方をどうぞ。どうでもいいことですが 1314 は “一生一緒に過ごそう(一生一世 / Yi sheng yi shi)”という、4649 = ヨロシクみたいなことみたい。最低限 [カーディスプレイ] は設定しないと純正画面がヘンテコ表示です。

設定画面でよく出る“OEM”という単語は、メーカー純正品を指します。違和感ありますがこのサイトによると、自動車業界では“自社ブランドで製造するメーカー、つまり完成車メーカーのことを意味する”のだそうです。なっとく。

レジューム — できる ※1
Bluetoothのオプション — OEM(または純正) Bluetooth ※2
AUX切り替えモード — 手動 ※3
MAPキーの選択 — OEMカーナビ
カーディスプレイ — 18_EVO(8.8) か 18_EVO_X1(8.8,1280×480) ※4

※1 OEM(純正)やAndroidの状態と合わせてランチャーのボタンで起動したアプリもレジュームされるため、例えば起動後すぐマップや音楽アプリが開きます。社外ランチャーに変えても関係無く起動するようなので、場合によってはうっとうしいです

※2 純正機能メインで使いたいので電話などスマホのBluetoothを車両側に接続します。全てをAndroidで行う場合やZLINK5(CarPlayの無線接続)を使うときは [Android Bluetooth] を選択してください。例えば後者では純正ナビ使用中に電話がかかってくると画面がAndroidに切りかわります

※3 [自動] はAndroid側に切り替えたとき車両の音声入力もいっしょに外部AUXに替わりますが、[手動] だとそのままです。車両側に切り替えるときはどちらもそのまま。[自動] の方が多少便利そうですが車両・Androidと行き来するときこれがじゃまなんですよね。プログラマブルボタン(エアコン上の数字ボタン)にお使いの音楽ソース・外部AUXを設定し手動で切り替えるといいでしょう

※4 車両によります。F10 NBT の場合 NBT_F48(8.8″,10.25″) を選びたくなりますが、これだと色味がおかしく、画面の上がほんの少し欠けます

工場設定の一部項目は再起動するまで反映されません。車両電源オフ後20秒ほどほっとくか、工場設定の [プロファイルのイ…] – [再起動します] で行ってください。

工場設定で日本語表示にしたあとそのまま使うのではなく、Androidアイコンの [設定] – [システム] – [言語と入力] – [言語] で [日本語] を消して [日本語(日本)] にすると日本語入力などいろいろ使い勝手が改善されます。

ランチャー操作法

アプリランチャーでのアイコン移動はできず“入れ替え”のみのようです。斬新。アイコンを長押しするとアプリ削除のダイアログが出ますが無視してそのままドラッグアンドドロップ。ただ何かのタイミングで並び替えが初期化されることがあったので凝ったカスタマイズはおすすめしません。

格安SIMを導入

WiFiテザリングの接続操作がいちいちまんどくさいので格安SIM(マイクロSIM)を入れました。複数枚で通信容量を分け合える LinksMate で、出張開発用PCとで2枚・2GB/月の契約です。カーナビアプリを使ったりたまにストリーミング音楽を聴くぐらいならこの容量で問題ありませんでした。なお通信容量追加・プラン変更予約・SIM追加など会員サイトからすぐできます。なんかLinksMate推しですが何かもらったりはしてないのでお好きな通信会社をどうぞ。

AndroidスマホではSMS無しSIMではGPSを補完するA-GPSが使えないため測位に時間がかかるという記事があり気になったので、SMS有り・無しの2枚を購入し使い比べてみました。結果は起動後どっちもすぐ現在地が表示されました(別項の測位しないときの対策後)。ディスプレイが最後の地点を保存しているようです。なので通常は安いSMS無し版SIMでいいでしょう。手数料はかかりますがLinksMateはSIMの追加も廃止も気楽なので助かります。

データ通信を有効にするには電源オフ時に下記に注意しながらSIMを入れ(オン時に入れた場合は再起動)、通信会社が公開するAPN情報を登録してください。Android [設定] – [ネットワークとインターネット] – [SIM] – [アクセス ポイント名] – [+] で行います。LinksMateなら次の通り。

APN : linksmate.jp
USER : user
PASS : mate
認証タイプ : CHAP

ここがかなり不親切なUIで、登録後は右上の [⋮] で保存し、その後登録したAPNにチェックを入れます。この保存は知らないとわからないし、知っていても忘れます。これをせずに戻ると入力し直しになるので気をつけて。

SIM挿入の仕方は知らないとちょっとドキドキで、ロックには奥に4mmほど押しこまねばなりません。向きは、違和感ありますがシールの通り。押すのに精密ドライバーなどを使いますが、ロック前に外れるとバネの勢いでぶっ飛んでSIMがどっかいくかもかもしれません。あとスロットと筐体の間にSIMが通る隙間があるので斜めに入れるとそこから中に落っこちて分解が必要なので手探りでやるべきでは無いでしょう。

取り出すには同様に精密ドライバーなどで押し込んでロックを外してから、それでかき出してください。ひどい設計。

すぐ横の穴はリセットボタンで、SIMを押し出すものではありません。画面側の切り欠きみたいなところはマイクです。

地図アプリで測位しないとき① キャッシュとストレージを削除

プリインストールのGPS Testアプリではちゃんと衛星をつかんでいるのにGoogleマップやYahoo!カーナビなど地図アプリの位置・測位がおかしい場合(起動直後のみ捕捉、東京駅にマークされるなど)、“Google Play 開発者サービス”を調整することで調子が良くなることがあります。

[設定] – [アプリと通知] – [Google Play 開発者サービス] – [ストレージとキャッシュ] で [キャッシュを削除] と [ストレージを消去] をそれぞれ実行してください。

また先の [Google Play 開発者サービス] 画面で右上の縦三点マークを選び [アップデートのアンインストール] を行います(アンインストールするものが無い場合は表示されません)。後者はほっとくとまた勝手にアップデートがインストールされますが、それでもうちはこれでGoogleマップが絶好調になりました。

地図アプリで測位しないとき② 位置情報の使用をオフ・オン切替

Googleマップは動くのにYahoo!カーナビはヘンなままで、工場設定で全体を初期化してもかわりませんでした。ただ [設定] – [位置情報] – [位置情報の使用] をオフ・オンすると再起動するまでは動くことがわかったので、自動化アプリのTaskerまたはMacroDroidを使いAndroid起動時にそれを行わせるようにしました。

Taskerを使う場合

プレイストアでダウンロードできる有料の“Tasker”を使う場合はこちら。

Taskerがシステム設定を操作するために、次のコマンドを入力して権限を付与する必要があります。adbコマンドの使い方は別項参照。

adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS

ファイルをダウンロードし、Tasker の [プロファイル] タブを長押しして [プロファイルをインポートする](実際にはうしろの文字が切れている) を選択。右下のスマホアイコンをタップしダウンロードしたフォルダ(通常はDownload)から Restart_GPS を開きます。

MacroDroidを使う場合

プレイストアでダウンロードできる無料“のMacroDroid”を使う場合はこちら。

MacroDroidがシステム設定を操作するために、次の2つのコマンドを入力して権限を付与する必要があります(MacroDroidではこれを“ADB hack”と呼んでいるようです)。adbコマンドの使い方は別項参照。

adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS

adb shell pm grant com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION

上のボタンをタップするとMacroDroidが起動し読み込むはずです。マクロの一部にびっくりマークがつく場合は上の ADB hack ができていません。

起動のたびにWiFiがオフになるのを防ぐ① ZLINKをアンインストール

上からシュリンとやって出すメニューでWiFiは簡単にONにできるんですが毎回やるのはまんどくさい。

これはCarPlayエミュレータのZLINK5アプリが起動前にバックグラウンドでAndroidナビのWiFiをアクセスポイント(AP)モードに変更するのが原因で、このときWiFiがオフ(になった感じ)になります。

根本的な解決はCarPlayをあきらめZLINK5を消すことで、工場設定から [ZLINK] のチェックを外してください。それでもアプリランチャーにZLINK5がある場合はアイコンを長押ししてアンインストールします。

APKInstallerでZLINK5(CarplayZlink.apk)を再インストール

ZLINK5を再度戻す場合は工場設定で [ZLINK] にチェックを入れてみて、それでも表示されないときはラインチャーにある [APKInstaller] からインストールして下さい。

起動のたびにWiFiがオフになるのを防ぐ② 自動化ツールでオン

ZLINKをアンインストールしたくない場合は、ZLINKがオフにするWiFiをあとからオンにしてあげます。自動化アプリのTaskerまたはMacroDroidを使いAndroid起動時にそれを行わせることで、初期画面が出た約1分後にWiFiがオンになります。前回電源オフ時にWiFiオンだと、起動後オン、ちょっと経ってオフ(ZLINK5のしわざ)、さらに経ってオンという推移。ZLINKを実行すればまたAPモードオン(WiFiオフ)になるので問題ありません。もともとオフにならない環境の方はもちろん対策不要です。

Taskerを使う場合

プレイストアでダウンロードできる有料の“Tasker”を使う場合はこちら。WiFi制御のため、ここの Assets から“Tasker.Settings.1.x.x.apk”をインストールしておきましょう。Tasker Settings実行時に出る権限変更の画面ではなぜか一生変えられないので、キャンセルして、Android設定 – [アプリと通知] (A12は[アプリ]) – […個のアプリを全て表示] – [Tasker Settings] – [権限] で必要な権限を付与します。長期のテストはできていません。

ファイルをダウンロードし、Tasker の [プロファイル] タブを長押しして [プロファイルをインポートする](実際にはうしろの文字が切れている) を選択。右下のスマホアイコンをタップしダウンロードしたフォルダ(通常はDownload)から Restart_WiFi を開きます。

MacroDroidを使う場合

プレイストアでダウンロードできる無料“のMacroDroid”を使う場合はこちら。WiFi制御のため、設定中に指示される“MacroDroidヘルパー”のインストールをしておきましょう。

上のボタンをタップするとMacroDroidが起動し読み込むはずです。

ワイヤレスCarPlayがつながらないとき

別記事にまとめました。こちらをどうぞ。

KSW-ToolKitでさらに便利に

Androidディスプレイのメインソフトウェア(KswCarProject)を補完するオープンソースソフトウェアの KSW-ToolKit が超便利です。名前の通りKSW専用で、他のシステムではたぶん使用できません。私もcocoakaikeの名前で一部のプログラムを書きました。

Discord の Automotive Android Headunits サーバー(英語。誰でも参加可) #ksw-toolkit がサポートチャット。寄付は作者のSnaggleさんのPayPal URLから([DE]はドイツ在住の意)。うちは送金済。

なお私が独自に改良・ビルドしてきたカスタム版は、その内容が最新の公式バージョンに全て反映されているため、公開を終了しました。カスタム版の方がバージョンナンバーが進んでいる場合がありますが公式が最新です。

インストール

KSW-ToolKitは サービス(本体)クライアント(操作部) でできています。それぞれのapkをダウンロードし、どちらもインストールしてください。

Tasker外部アクセス用設定

Androidの自動実行アプリ“Tasker”のタスクを車両ボタンに割り当てることができます。予め次の作業をしてください。Taskerを使わない場合は不要です。

まずKSW-ToolKitクライアント&サービスより先にTaskerをインストールしておく必要があります。後からTaskerを入れる場合は、KSW-ToolKitクライアント&サービスをアンインストールし、再度インストールして下さい。Android OSの権限の仕様です。

次にTaskerメインメニュー 右上 [︙] – [Tasker 基本設定] – [その他]タブ – [外部からのアクセス許可] を有効にしてください。

MAIN MENU

アプリランチャーで KSW-ToolKit を開き [START SERVICE] を押して写真のように “Running…” となれば全て正常に動いています。“Not installed”だとサービスがインストールされていません。[START AT BOOT] をオンにしておけばAndroid起動後ちょっとしてからサービスが自動開始されます。

これまで動作しなかった [CHECK FOR UPDATES] が機能するようになったかは、次のアップデートがあるまでわかりません(笑)。

SYSTEM TWEAKS

クライアント v1.1で機能に説明が併記されました。スマホのGoogleレンズで翻訳する手もあります。

[AUTO DARK THEME]
Androidのダークモードをライトの点灯状態で切り換える機能。昼間のトンネルでGoogleマップが黒ベースになり便利です。ただYahoo!ナビは時間でしか暗くならないなどOSのダークモードにあわせないアプリもあるようです。オン推奨

[AUTO VOLUME]
車速に応じて音量を調整する機能。純正iDriveのオートボリュームを使わない場合に

[MAX VOLUME AT BOOT]
起動時にAndroidの音量を最大にする機能。Android側で音楽の音量を合わせた後に純正に戻ると爆音になる現象を抑えます。オン推奨

[SOUND RESTORER]
Androidモードから純正に切り換えた時に音楽再生が停止するのを抑える機能。Androidで音楽再生しながら純正ナビを見ることができます。めちゃいい! 逆の操作時制御はKSWの工場設定“AUX切り替えモード”を“手動”にします

[MEDIA-BUTTON HACK]
Androidモードで押すと純正モードに切り替わってしまい使いものにならないいくつかのボタンの動作を無視・変更する機能。PDC(ソナー機能)も無効になるのでこれがある車両ではオフ推奨。たとえば [MEDIA] ボタンが [MODE] ボタンと同様の動作になり、[MODE] に音楽アプリを割り当てておけばiDriveダイヤルまわりに手を置いた状態で音楽操作が楽にできます([MODE]にSpotifyが設定されているので予め要見直し)。その変更にPDCも含まれており、リバースギアでの自動切り換えも含め作動しなくなります。Androidナビ自体の裏モード(?)なのでカスタマイズ不可

[DECOUPLE NAV BUTTON]
未確認。車両ナビボタンを押したとき、工場設定にかかわらずその時の画面モードでナビを表示する。純正(OEM)なら純正ナビ、AndroidならKSW-ToolKitのBUTTON MAPPINGで設定したナビアプリに

[TABLET MODE]
画面密度を変更して表示領域を広げる機能。特にタブレット対応アプリの操作性が向上します。固定解像度で作られたランチャーUIだと背景画像がずれ、工場設定のパスコードも入れられなくなるので、その時は元に戻します。ID8とID7_V2のUIが解像度変更にいくらかは対応していますが、Androidナビの購入時期によってはこれらのUIは手動での追加作業が必要です。別項参照

[HIDE STARTUP MESSAGE]
サービス起動時のトーストウインドウを表示しないようにします。メッセージはいつからKSW-ToolKitの機能が有効になるのかを示すものなので、慣れるまではオンにしておくことをおすすめします

[HIDE TOPBAR] [SHRINK TOPBAR]
Android 11以降非対応。カスタム版では対応OSでのみ表示されます

[NIGHT BRIGHTNESS]
ディマー時の明るさを調整する非常に便利な機能。昼夜モードの切り換えポイントは、KSWはヘッドライト点灯(ダイヤル一番右)なのに対し、KSW-ToolKitはパーキングライト(車幅灯。右から2番目)です。設定限界よりさらに暗くしたい場合は別項記載のハードウェア改造が必要です。なお一部のAndroidナビはライト状態をAndroid側に伝えないため機能しません。ライトを切り換えたとき [MCU LISTNER] で “CARData – 161 / 10-x-1” が出力されなければ非対応で、NBT EVO版はどうもそのようです。今後こっそり配布されるかもしれないMCUプログラムに更新すると改善される可能性がわずかにあります。

[GIVE TASKER READ_LOGS PERMISSION]
自動化ツールのTaskerにAndroidのログを読み取る権限を与える機能。KSW-ToolKitとは直接関係ありませんが、TaskerがKSWファームウェア – MCU間の通信を見ることで車両ボタンに複雑な機能を追加できます。うちではadbコマンドですでに行っていたため動作未確認

MCU EVENT MANAGER

Androidモード時の車両物理ボタンの機能の割り当てが変更できます。車両によりいくつかのボタンは変更しても動作しませんがAndroidナビのMCUプログラムの問題なので改善は不可能です。左メニュー [MCU LISTNER] でボタンを押したときどう認識されたか表示されるので判断材料になるでしょう。次のようにadbコマンドを使うことでもわかりますが、AndroidモードとiDriveモードで通信内容が異なることに注意して下さい。

adb logcat KswMcuListener:I *:S

その他の情報

Android OS起動完了のシグナルを得て初めてサービスが実行されます。ランチャー画面が出てからさらに10秒ぐらい必要ですが、これはOSの仕様なので短縮できません。

サービスを起動するとそれまでのAndroid内部ログ(Logcat)がクリアされます。通常は問題になりませんが、そうでない場合はKSW-ToolKitは使用できません。

起動時に “Could not start Service”や”Could not check Service”と出てサービスが起動できない場合は、Androidの開発者向けオプションをオンにし、そこの [USB デバッグ] をオンにしてください。その後クライアントアプリを再起動すると解決します。

ステータスバーを消す試験とアプリ

標準
ステータスバーなし

Android 11以降はOSの仕様変更で簡単にはステータスバーを消すことができなくなっています。個人的にはステータスバー表示の有無はどうでもいいことですが気にする人が多いので調べました。別項KSW-ToolKitの説明で、A11以降はもともと自動でシュリンクするとウソを書いていたのを反省する意味もあります。

結論から言うと条件付きで消せます。

build.prop の書き換え

調べるとAndroidのシステムファイル build.prop に ro.statusbar.alwayshide=true を追加するといいという古い情報があったので、Androidナビにある全ての build.prop に書き込んでみました。場所は以下のとおり。残念ながら変化ありませんでした。

/product/etc/build.prop
/system/build.prop
/system_ext/etc/build.prop
/vendor/build.prop
/vendor/odm/etc/build.prop
/mnt/scratch/overlay/system/upper/build.prop (/system/build.prop と同じ)
/mnt/scratch/overlay/vendor/upper/build.prop (/vendor/build.prop と同じ)

ちなみに上の画像は /vendor/build.prop の qemu.hw.mainkeys=10 にして下部のナビゲーションバーを追加しさらに画面を狭くした、全くムダな状態。

build.prop の書き換えはAndroidが起動不可になる危険を伴うので方法は案内しません。どうせ意味無いですし。

アプリで条件付きフルスクリーン
Fullscreen Immaersive

“Fullscreen Immersive”アプリ(以下FI)だけがAndorid 11/12でもステータスバーを消した没入(immersive)モードが実現できました。有料モードのもありますが、今のところAndroidナビで使うには無料のBAISCモードが一番いいです。

仕組み的にはアプリの上にFIを重ねそれのステータスバーを消すことで実現しており、FIを通してアプリの操作を行っている状態のようです。そのためフルスクリーン適応中はキーボード入力ができない、バックボタンが効かない、一部のタッチが反映されないといった問題があります。

ですので常用するのではなく、必要なときだけ上からシュリンとしたときに出る通知でフルスクリーンに切り換えるのがいいでしょう。小さいく押しづらいですがアイコンタップで機能します。キーボード入力は、入力欄をタッチした後この“キーボード”を押すとできます。無料版でもできるのかはちょっとわかりませんが。

有料でアンロックされるPROモードでは、下からのスワイプでノーマルモードに一瞬で戻れる便利機能が付きます。それがじゃまでキーボードの下の方がなかなか押せなくなるんですが、キーボードをフローティングにすることで解決しました。通常時でも30cm近い画面いっぱいに広がったキーボードより入力が楽なのでこの発見はケガの功名。キーボードを一番下に寄せると同じ問題で移動できなくなります(笑)。その場合はBAISCモードに変更してください。

先のように無料版で使うことをおすすめするのは、PROモードにしていると上左の画面みたいなチュートリアルがAndroidナビ起動ごとに出て、超絶うざいんですよね。無視してると一生アピールしています。なので結局BASICモードを使っています。あとAndroid 11以降はULTRAモード非対応です。

なんとか作者との連絡手段を見つけて改善を伝えたいところですね、そしたらPROモードで常用できます。

アナログフロントカメラを接続

ディスプレイのDVRビデオ端子にアマゾンで6,000円のブラインドカメラを付けました。レーダーをよけ、端にオフセット。動作確認で電源配線を抜き差ししていたらカメラのヒューズが切れたので1Aのミニ管ヒューズを1,2本準備しておくと良いかもしれません。

エンジンルームとの配線はF10では運転席側グロメットを通すといいでしょう。電源はAndroidディスプレイ配線(黄色12V・黒色GND)に接続しました。車種は違いますが配線の取り回しは“【F30dMカスタム】フロントカメラとAVインターフェイスを付けてみました” が参考になります。購入したカメラもこのサイトで紹介していたものです。

Androidナビではフロントカメラへの切換が“ドライブレコーダー”(DVR)のアプリアイコンを選択する形式でとても面倒なので、先述のKSW-ToolKitで“Open DVR”をiDriveの [OPTION] ボタンに割り当てました。純正ナビからフロントカメラ表示へは、[OPTION] ボタン長押しでAndroid表示(Android標準機能)、もう一度押してDRV表示(KSW-ToolKitの機能)という手順です。操作が多少手間ですし、始動後すぐはKSW-ToolKitの起動を待たねばなりませんが(Androidの画面が出てからさらに15秒かかる)、メディアインターフェイス要らずなんですからそう文句もありません。

あと工場設定で“ドライブレコーダー”の項目を“CVBSドライブレコーダー”に設定してください。

先日気付いたんですが、フロントカメラへの切替を Menu Button に割り当てると、純正ナビ画面からiDriveのMenuボタン長押しでAndroidに切り換えたとき、すぐカメラ画像になりちょっと便利そうです。ただどういうタイミングか謎ですがその画面からなかなか抜けられなくなる(純正にもAndroidにもならない)こともあったのでやめました。

USBフロントカメラを接続

170度USBカメラを仮付け
この位置で確認
USBカメラ
上項のアナログカメラ

AliExpressでHD画質魚眼170度USBブラインドスポットカメラをテストしました。今使っている上項のカメラがアナログだからか画像が荒く、この点が気に入らないためです。

Androidナビの工場設定でUSBホストモードをオン、Android設定の開発者向けオプションをデータ転送無し(変更後は要再起動)にします。そしてカメラのUSBケーブルをAndroidナビに接続するとこれがUSBストレージになっているので、アプリランチャーのESファイルエクスプローラーからこの中の“DVR.APK”をインストール。USBをいったん抜き差しし、ランチャーにできた“USB Camera”を起動すると映るはずです。KSW-ToolKitでこのアプリを好きな車両ボタンに設定しときましょう。工場設定の“ドライブレコーダー”でアプリのapkを選択しておけば、アプリランチャーの“ドライブレコーダー”からも起動できると思います(未確認)。

写真のようにきれいな映像なんですが、感覚では170度もなく広がりが足りないので鼻先を出して交通の確認をするにはいまいちかな。固定ステーのため上下角度調整無し、表示モードもこれだけです。右側のピントがちょっとずれてる感じ。

先のアナログカメラの方が使えるかな。180度タイプが見つかればまたテストします。

アンチグレアフィルムに交換

このAndroidナビに流用できそうな良い感じのアンチグレアフィルムをようやく見つけたので交換しました(15.6型ノートパソコン 縦横比 16:9 用)。横幅は数ミリの余裕がありました。

切れ端で効果を確認
矢印部分がフィルム

お試しでこのアンチグレアフィルムの切れ端を純正フィルムの上に貼ってみたところ、反射部分でも道や地名が視認できました。文字のエッジは少しぼやけますがこの装置の用途としては特に問題なさげ。

ほとんど役に立ってない純正フィルムははがして、フィルムカット用の型にしました。0.4mmと結構厚め。何かと便利なカーボンはがしヘラを差し込み浮かせ、割れないよう少しずつはがします。アンチグレアフィルムは液晶面に近い方がボケが少ないです。ただ後戻りできない恐怖はあるので純正の上に貼るという選択もありでしょう、実は結構悩みました。

「純正台紙」があるのでフィルムカットが楽。断面が立ちづらいよう、切れ味の良いカッター替え刃にして目一杯寝かせ、力を入れず繰り返しカットしました。今回は間違えちゃいましたがフィルムの背面側から刃を当てた方が、貼ったとき手前に折れ曲がる状態になるのでエッジが浮きづらいような気がします。

メガネマンならみんな使ってる東レのトレシーでナビパネル面の汚れとホコリを一つ残らず全て拭き取り、カットしたアンチグレアフィルムを下辺にあわせ、台紙を残しながら少しずつ貼っていきます。ほこりはトレシーで取れますが、場合によってはマスキングテープも併用するといいかもしれません。途中で空気が入ったらいったんそこまではがして再開。先の通りカット面を間違えたからかエッジが浮いちゃいましたが、空気を抜く要領で爪でぐりぐりやっていたら接着剤が回ってほぼ消えました。これめちゃいいフィルム。ほこりが付く前に全周、根気よくやりましょう。

刃傷でどうやっても浮きが直らなかった左上以外きれいにできました。

光がまわりに散らされていることがよくわかります。

このアンチグレアフィルム、今のところかなり満足です。タッチ操作にも問題ありません。表面さらさらなので指がよく滑ります。ただ1点、純正フィルム以上に指紋が目立ちました。ただの汚れじゃなく、皮脂が白く光を放つ感じ。マイクロファイバータオルなどふきふきしましょう。

USB DACでオーディオ品質を改善

値段の割に高性能と海外掲示板で評判の USB DAC(プリアンプ/ヘッドホンアンプ) Fiio E10K Type-C をつなげました。Androidナビ内蔵のサウンドアナログ変換部品を使わず、デジタルデータをそのままこのDACで処理する仕組み。Fiioは聞いたこと無いメーカーですが有名なんだとか。

もともとAndroidナビの音声に不満はありませんでしたが、E10Kを通すことで明らかに音楽に厚みが出ました。また純正iDriveとAndroidで同じmp3ファイルを再生させてもこっちの方が切れの良い迫力があります。音が良くなるとやっぱ気持ちいい。プリアンプって大事なんですね。E10Kのバスブースト機能はオフ。フロントスピーカーだけはこの記事を見てもとから交換済みです。

接続はこんな感じ。ナビ メインハーネスのAUDIO INとOUTをはずし、IN側をオーディオ延長ケーブルで E10K ヘッドホン端子に接続、USBもつなげます。E10KにはType-Aケーブルが付属し、電源はここから取られます。AUDIO INはAndroidからのオーディオ出力を車両センターコンソールのAUXに割り込ませている部分なので、車両iDriveの外部入力設定は今までどうりAUXでかまいません。

設定等は一切不要ですが、音が鳴らないときはまずAndroid設定 – [音] – [メディアの音量] を最大にしてください。0になっている可能性があります。別項記載のKSW-ToolKitで [MAX VOLUME AT BOOT] をオンにしておくのといいでしょう。

またナビのオーディオ出力を使ったあとにDACをつなげたような場合はデバイスの切り換えがされず音が出ないことがありました。違う再生アプリを使ったりAndroidを再起動するのも手です。

Android音量最大時には、E10Kのボリュームダイヤルは3あたりが純正iDriveと音量が同じになる感じです。ダイヤルが回らないようアセテートテープでとめ、グローブボックスの上に貼り付けておきました。コード類が硬いのでこすれ音対策もしておきましょう。

ここまで説明しておいてあれですが、AndroidナビのBluetoothで通話をする人はE10Kを買ってはいけません。Androidのマイク入力もUSBに移ってしまい、本体接続マイクが機能しなくなります。ただいろいろ試してたら使えるようにはなったんですが(なぞ)、いまだ相手の声がUSB DACから聞こえません。どうもAndroid通話の相手の声はAUXからしか出ないみたいで、ミキサーが必要なようです。もちろん通話を純正iDriveで行うのなら関係ありませんし、通常はこの方法がベスト。

クルマで音楽を聴くのがさらに楽しくなりました。

Discord の Automotive Android Headunits サーバー(英語。誰でも参加可) ではE10Kの半額の Sound Blaster G3 の動作確認情報もありました。ON時に数秒間サーという音が出るという話もありますが総じて満足度は高い模様。マイク入力もあります。使ってないのでE10Kとの比較や通話についての情報はありません。

再起動のしかた

Androidを再起動するには車両電源をオフにして15秒ほど待ちオンにするのが一番簡単ですがこの時間が無駄です。[工場設定] – [プロファイルのイ…] – [再起動します] が確実ですが、KSW-ToolKit をインストールしていればこれの [IMPORT/EXPORT CONFIG] – [RESTART SYSTEM] もいいでしょう。

標準の“ESファイルエクスプローラ”は遅い

ESファイルエクスプローラ 9MB/s
CXファイルエクスプローラ 22MB/s

ファイル転送に標準インストールの“ESファイルエクスプローラ”を使っていましたが、なんでこんなに遅いんだろうと疑問でした。内部ストレージを“sdcard”と表現しているので「こいつSDカードで動いてるの!?」と分解確認してみたほど(笑)。CPDT BenchmarkではSequential write 190MB/s、同write 280MB/sありました。

Android関連サイトでたまたま見かけた“CXファイルエクスプローラ”でUSBメモリから内部ディスクへのコピーを行ってみたところ22MB/s、その後のESでは9MB/sと半分以下です。WiFiを使ったWindows PCからのコピーでも同じ傾向でした。ただCXはUIの縦が足りなくて操作しづらいんですよね、上に掲載した画面でもキャンセルボタンは下の見えないところにあります。

次に“ファイルマネージャー +”を試しました。UIはいいんですが速度にかなりムラがある感じで、大容量ファイルの転送にはちょっとびみょー。

しばらくはCXを使います。

外付けCarPlay

内蔵CarPlayエミュレーターのZLINKは最新ファームウェアでずいぶん良くなりましたが、ワイヤレス接続時の反応が遅い、通話時に相手に声が届かない(うちだけ?)、AndroidナビのWiFiが使えなくなるという点が気になります。

ということでUSB接続のAndroid用Carlinkitを買ってみました。Carlinkitはいろいろな種類がありますが、Androidナビで使う場合はアプリで起動するこれを選びます。試してませんがAndroid Autoも使えます。

専用品だけあって簡単につながりました。ワイヤレス時の反応はやっぱりよくありませんが、音楽もSiriもぶちぶち切れること無く使え気持ちいいです。CarPlay中にもAndroidナビのWiFiが有効なのはメリットでしょう。ZLINK同様アプリタイプなので車両始動から使えるようになるまでに多少時間かかることは同じですが、最初からシステムで考慮されているZLINKより6、7秒遅いです。あとどういう意味か理解できませんが接続前に画面が純正iDriveモードに切り替わってしまいます。CarPlay起動後に元に戻る場合もそのままの場合もあってその点はかなりウザいです。

最初は音質が絶望的に悪く捨てようかと思いましたが、車をとめて半日後に試したら直ってました。Android再起動は効果無かったので、不調の時には電源オフが必要だったのかもしれません。別項で紹介のUSB DACを使っているので純正iDriveより音がいいのはAndroidモードと同様です。

アプリのダウンロードは説明書に書いてありますがここから。

設定・バージョンアップはギアアイコンで行いますが、ZLINK同様、スマホとペアリングしたあとはこの画面がすぐ終わっちゃいます。接続中にダッシュでここをタッチするか、起動前ならスマホのBluetoothをオフにする、CarPlay中ならさらにWiFiもオフにする(オンへはWiFi、Bluetoothの順で)、機内モードにするなどがいいでしょう。車両とBluetoothがつながった状態でスマホのBluetoothをオフにすると、車両との再接続はiDriveで行わなければならないかもしれません。

バージョンアップ
おすすめ設定

アプリもUSBモジュールも自動更新ではないですし、特に初回はたぶんモジュールの更新があるので設定の一番下をチェックしてください。ボックスバージョンが出ない場合はスマホと繋がりかけていることが原因かもしれません。全体が英語表示だった場合は [Advanced Settings] -> [ Language Settings] で日本語にできます。選択後、わかりづらい [OK] を押すのを忘れずに。ちょっと時間かかります。

設定のポイントだけ説明しときます。

接続モード
AutoKitアプリ起動時にスマホに勝手に接続しCarPlayを起動する場合は [自動]、スマホのBluetooth設定から手動接続する場合は [マニュアル]

自動スタート
Android起動後にAutoKitアプリを自動で開く機能

運転位置
CarPlayのメニュー列を出す位置

あとはたぶんデフォルトでOK。購入後販売店から(電話のオーディオプロパディを)[互換性]にせよと言われますが今んとこ違いはわかりません。普段使いはAndroidナビで、気が向いたときCarPlayという使い方なら写真の感じが良いでしょう。常時利用の場合は自動スタートオンで。

別項のKSW-ToolKitを使っているとCarPlayでiDriveダイヤルの動作があんばい良くないんで、公開済のオリジナル対応版に入れ替えることをおすすめします。また対応版を使うとAutoKitでキーの学習ができるようになるので、例えばダイヤルを上に倒したときホームに戻るといった設定が可能です。

起動時にApple Musicを自動再生

Apple Musicは再生ボタンを押すまで何もしないので、自動実行アプリのTaskerまたはMacroDroidを使い、Android起動時にアプリを開いて再生開始し元の画面に戻るマクロをつくりました。再生するだけのアプリもTaskerでつくりました(実行にはTasker不要)。マクロは少変更で他のメディアプレイヤーでも使えると思います。動作が不安定な場合は内部の待ち時間が足りてないので調整してください。

残念ポイントですが、OSの制御の問題か、アプリが開いた後も再生がなかなか始まりません。Android始動直後から70〜80秒かかるので、待ちきれない場合は自分で再生ボタンを押して下さい。どうやっても直せませんでした。

Taskerを使う場合

プレイストアでダウンロードできる有料の“Tasker”を使う場合はこちら。起動しているのでちょっとは出るはずのApple Musicの画面が、Android起動時だとなぜか出ません。3つ載せたうちでこれが一番スマート。

ファイルをダウンロードし、Tasker の [プロファイル] タブを長押しして [プロファイルをインポートする](実際にはうしろの文字が切れている) を選択。右下のスマホアイコンをタップしダウンロードしたフォルダ(通常はDownload)から Play_Apple_Music を開きます。

MacroDroidを使う場合

プレイストアでダウンロードできる無料“のMacroDroid”を使う場合はこちら。Apple Musicが開く画面が一瞬出ます。

上のボタンをタップするとMacroDroidが起動し読み込むはずです。

再生アプリを使う場合

別項記載のID7 Launcherでは起動時にアプリの実行ができるので、TaskerもMacroDroidも持っていな人用にapkを載せます。インストールしてください。ちなみにTasker + “Tasker App Factory”で簡単につくれるんですが、Androidナビでは“エラー:エクスポートに失敗.”となりどうやってもうまくいきません。海外掲示板に同じ不具合が書かれていたのでKSWでは無理なのかも。一般的なAndroidタブレットで作成しました。

ID7 Launcherの設定は [AutoStart backgroud] オンがおすすめですが、Apple Musicを開いた画面はちょっと出ます。[(同) immediatery] はオンの方が早く再生が始まる感じ。起動時のアプリ通知やリマインダーがうざいので、タッチしてオフにしときましょう。別項の改変 Apple Music アプリでも使えます。

Apple Musicなど毎回縦長表示されるアプリを改善

全画面表示には再起動が必要
最初から全画面表示

Android 12だとOSの改善なのかApple Musicは最初から(両側がちょっと切れた)全画面表示で起動するようです。たまに縦長になりますけど。他のアプリも同じでしょう。なのでA12では不要です。特にこの改造 Apple Music は数日ごとにAppleID認証を要求されまんどくさいのであんまり実用的じゃ無かったんですよね。A11以下用に以下は残しておきます。認証が(厳しく)ないアプリではこの方法は有効でしょう。

このウルトラワイド画面に非対応のアプリでは“タップしてこのアプリを再起動すると、全画面表示になります”と表示されタップが毎回まんどくさいんですが、アプリの改変で修正できました。Windowsが必要です。

apkファイルがダウンロードできる“APKMirror”で、今回はApple Musicを検索します。

ここで [APK] マークがあるものをダウンロードします。このサイトは多くの人が使っているようですが、apkに何が組み込まれているか誰も保証できないので、セキュリティー的なリスクがあることは充分認識して下さい。

このapkを“androidの縦長画面に対応していない古いアプリを全画面表示”の通りにしてコンパイルし直します。ツールは“APK Easy Tool v1.60 Portable.zip”(Windows用)。ただ1つ変更があって、追記する行の数値“2.1”はAndroidナビのアスペクト比にあわせ増やす必要があります。今回はてきとーに3にしました。

<meta-data android:name="android.max_aspect" android:value="3" />

すでにApple Musicがあればアンインストールし、つくったapkをAndroidナビからインストールすれば終わり。ストアアプリのように更新はされません。

いろいろグレーですがこの改変したapkをダウンロードサイトに置きました。基本は本物なの手多言語対応しています。無料アカウントなのでいつ使えなくなるかわかりませんし、無くなっても対応しません。先のリスクも充分検討ください。あと数日ごとにAppleIDの確認をされますが改造版だからか他の理由かはわかりません。

USBデバイスが認識されないとき

工場設定 – [USBホストモード] のチェックをオフ・オンとすると直ることがあります。意味がよくわかりません。

Bluetoothキーボードは使えない?

大量の文字入力ではUSBキーボードが便利なことは書きましたが、コンパクトでワイヤレスならさぞよかろうと写真のBluetoothキーボードを買ってみました。

タッチタイプは無理でも両手親指でのポチポチが思いのほか操作しやすいんですが、AndroidナビではBluetoothデバイスに表示されずペアリングができません。AndriodナビにHIDプロファイルが無いようでそのままでは使えないみたいですが表示はされてもいいかと。付属のUSB-Bluetoothドングルでも同じっぽい。なお別のAndroidタブレットやPCでは使えたのでキーボードは正常です。電話以外のデバイスに他の家のテレビ2台が登場したので(イマドキのテレビにはBluetoothがついてることを初めて知ってびっくり)、音声を扱うものしか受け付けない制限があるのでしょうか。

なおこの項はAndroid 12で確認しています。A11でもファームウェア2.4.0かその前からOBD2 – Bluetoothインターフェースが認識しないとのことなので同じ理由かもしれません。

自動音声入力切換の“裏側”

工場設定でオンオフできる、純正iDriveからAndroidモードにしたとき音声入力をAUXに自動切り換えする仕組みが判明しました。どうやってるのか不思議だったんですよね。

特殊な方法で純正・Androidを高速切り換えすると内部動作が間に合わず、動画のようにKSWがiDriveダイヤルを通信的に操作してAUXに切り換えている様子を見ることができます。アイデアが面白いですね。

初期設定のバックアップ

出荷時に発売元が入れる設定ファイルをバックアップしておくと、初期状態に戻したいことがあったとき多少便利です。ユーザが設定変更してもこれが書き換えられることはありません。

別項記載のようにadbコマンドを使えるようにして以下順に実行すると、factory_config.xml というファイルがAndroidからPCのホームフォルダにコピーされます。

adb root

adb pull /mnt/vendor/persist/OEM/factory_config.xml

工場設定のパスワード

よくあるパスワードが書かれたサイト情報は別項目に書きましたが、自分で調べる方法もあります。

上項の初期設定 factory_config.xml が手元にあればメモ帳などテキストエディタで開き “password” を探せばそこにあります。

または別項掲載のようにadbコマンドを使えるようにて以下順に実行すると FACTORY_SETTINGS という現在の設定ファイルがパソコンのホームフォルダにコピーされるので、それを同じように探してください。

adb root

adb pull /mnt/vendor/persist/OEM/FACTORY_SETTINGS

UIの変更① factory_config.xml

BMW_ID8_UI

ファームウェアの更新とそれに対応した出荷時設定ファイルを導入することで、新たなユーザインタフェース(UI)が追加されます。

LEXUS_LS_UI
PEMP_ID7_UI
Benz_MBUX_2021_KSW_V2
Audi_UI_mib3_V2

アイコンの追加ができるUIもあります。メニューに最初から [+] があったり、画面を長押しすると編集モードになり項目入れ換えができたり、さらにサイドバーも長押し変更できたり。

この作業で出荷時設定ファイル factory_config.xml が上書きされるので必要なら別項の方法でバックアップを取っておいて下さい。通常は不要。

  • 32GB以下のUSBメモリー(FAT32フォーマット)を準備します
  • 別項記載の方法でAndroidナビのファームウェアを新しくします
  • Kriさんが作ってくれたこちらの記事から Factory_config_BMW_A10_394.zip をダウンロードして展開、 factory_config.xml ができたことを確認します
  • USBメモリのルートに OEM フォルダを作り、そこに factory_config.xml を入れます
  • USBメモリをAndroidナビに接続し、[工場設定] – [プロファイルのインポート] で [インポート設定] を押します。成功したらUSBメモリを抜いておきましょう
  • [UI選択] から好きなものを選び再起動します

factory_config.xml は出荷設定用という性質上、導入すると全て書かれた内容に変わるので、ナビ全体の再設定が必要です。また工場設定のパスワードは“0”に変わります(ファイル中の password タグで変更可)。また工場設定では選択できないデカアプリアイコンモードになります(意外にいい)。通常サイズに戻すにはテキストエディタでファイル中の AppsIcon_Select タグを検索し 1 を 0 に変更して再度導入してください。

該当記事はAndroid 10で書かれていますが A11 / A12 も共通です。メルセデスベンツ、AUDI用ナビの設定ファイルもあります

UIの変更② ID7 Launcher

標準ランチャーを置き換える ID7 Launcher を導入しました。めちゃくちゃニッチな用途なので2せんえんぐらいしますがその価値は充分あります。タッチ操作だけでなく、純正iDriveダイアルにもフル対応。使い心地抜群で、標準のKSWランチャーに戻ることはないでしょう(設定変更時には使いますが)。

元は英語でちょっと難しかったんで、日本のみんなにも使って欲しくてうちで日本語訳をしました。

インストール後にホームアプリ(ランチャー)選択のダイアログが出ればそこで、またはAndroid設定の [デフォルトのアプリ] – [ホームアプリ] を ID7 Launcher に設定すれば、ホームアイコンをタッチしたとき常にここに戻るようになります。これをしても再起動にホームアプリがAndroidナビ標準ランチャーのKSWに戻っちゃう場合は下記参照。

アプリアイコンも置ける
タイルを埋めていく

純正iDrive(ID)7がどういう感じかわかりませんが、これは画面内に情報表示やアプリ起動機能といった“タイル”をはめ込む仕組み。タイルのサイズは画面1/2と1/4のものが選べますが、“ダブルタイル”を使えばアプリ起動のみ1/8サイズが使えます。

アプリランチャーは名前順のリスト形式
項目のお気に入り、非表示設定

名前順のアプリランチャーは、長押しすることで表示されるダイアログで表示設定ができます。ピンはリスト上位に並ぶお気に入り、目は非表示化。アプリだけでなく再起動などの機能リストについても同様に調整可能です。非表示にしたアプリの復活は [設定] – [アプリ] – [アプリの管理] から。連続で設定する場合はここで行う方が楽でしょう。

細かいところでは、走行データタイルはF10の場合、航続可能距離と燃料残量しか出ません。内部通信を調べたところ定義されているはずの平均速度や移動距離などいくつもの情報がAndroidナビのMCUから出力されていないため、対応不可なようでした。

地図タイルの地図データはGoogleマップ固定。その地図タイルに設定できる“自動拡大”は車速で地図が拡大縮小してちょっとゆかい。同設定の地図の“テーマの変更”を [自動] にし、別項で紹介のKSW-ToolKitで [AUTO DARK THEME] をオンにしておくと、ライトのオンオフで明暗切り換えがされ目に優しくなります。

天気タイルの地名は現在地ではなく、このアプリが利用している世界的なお天気サービスの気象ポイントで一番近い場所です。地名によってはなぜか英語で出たりしますがまあそういうものです。

右ハンドル車(RHD)向けにメニューを右側にする機能もあるんですが、アプリリストや設定類は左のままで手の移動がまんどくさいので、結局使ってません。

自動化ツール“Tasker”アプリのタスクをID7 Launcherから実行するためには権限を2つとも有効にする必要があります。大事なのは、ID7 Launcherより先にTaskerをインストールしておかなければならないということ。Androidの権限の仕組みで、制御される側のアプリは制御する側より先に存在していなければなりません。そのためID7 Launcherより後からTaskerを入れる場合は、Taskerインストール後、デフォルトランチャー(ホームアプリ)をID7 Launcher以外のもに変更し、再インストールします。レイアウト設定は手動で保存できますがアプリ設定はたぶんできません。読み込んだレイアウトが反映されない場合はそのまま再起動すると復活するかもしれません。なお再インストールはせず、次のバージョンアップによる自動インストールを待つという手もあります。

[Tasker 外部アクセス] は、ここタッチすると表れるTaskerで [外部からのアクセス許可] にチェックを入れます。TaskerをID7 Launcherより後に入れた場合は上記の都合で×から変わることはありません。

[Tasker コマンド権限] は、下の [権限の管理] をタッチし [権限] – [その他の権限] -[アプリからの呼び出されたコマンドに反応して、Taskerの(略)] で許可します。

項目をタッチすると権限取得状況が更新されます。

Discord の Automotive Android Headunits サーバー(英語。誰でも参加可) #id7-launcher がサポートチャット。ただし作者のサポートはあまり期待できません(^^;)。

デフォルトランチャーが起動ごと戻される場合

フォルトランチャー(ホームアプリ)をいくら変更しても起動ごとにKswCarServiceに戻されてしまう症状がようやく直りました。困っている声を聞かないので私だけの問題だったようです。

直し方は [BMW Androidナビが正常に動作しないときに試すこと] の中にあるリカバリーモードで [Wipe data/factory reset] を選択することでした。その前に [Mount /system] も選んでいましたが関係あるかはわかりません。インストールされたアプリからAndroid設定まで全て初期化されます。リカバリーモードに入るために必要な Ksw-R-M600_OS_v-ota-only-reset-data_factory.zip は0バイトのダミーファイルで大丈夫でした。

これまでもミスで何度か初期化してきたはずなんですが、、、まあ結果オーライです。

力技でランチャー設定を書き換える KSW-LauncherHijack アプリを作って公開していましたが、もう不要なので削除しました。

ファームウェアの更新

非公式でファームウェアの更新ができます(Android 11用)。動作に問題が無い場合は行うべきでは無いとのことですがぼくはいつも最新版にしちゃいます。Android 9/10用はこちら。

使用中のバージョンは [システム情報] に表示される“Ksw-R-M600-OS_v”の数字です(写真は1.7.0)。これと表記が異なる場合は別のファームウェアなのでアップデートできません。ちなみに途中の“R”はAndroid 11用で、9は“P”、10は“Q”、12は“S”。

ダウンロードしたzipファイルを展開せずそのまま空のUSBメモリ(4〜32GBのFAT32フォーマット)のルートに入れ、Androidナビにつなげてちょっと待つと、アップデートのダイアログが出て進められます。

なお KSW-ToolKit を使用している場合、このダイアログが表示されません。このツールはシステムの通信を“ハイジャック”し独自の操作を行うもので、動作させたままアップデートを行うのは危険です。そのためあえてそうしているそうです。更新前には [STOP SERVICE] で一時的に止めておきましょう。

10分程度かかるアップデートの間に車両電源が落ちないよう、エンジン始動中か、IGN ONで運転席シートベルトを締めた状態で行います。後者は純正ナビの更新時にも使える技(ナビは時間がかかるので要充電器)。自動再起動後もまた同じインストールのダイアログが出ますが“NO”を選んでUSBメモリを抜いてください。

もし [Update Failed!] 的な表示が出てうまくいかない時はこの記事のようにリカバリモードで入れるとうまくいくでしょう。普通に入れた時と同じく設定類はそのまま引き継がれます。2.3.6から2.4.2へのアップデートでなぜか必要でした。

2.4.2で追加された“Weather”というアプリはそのままでは使用できませんが、別項でアクティベーションの方法を紹介しているのでどうぞ。

MCUの更新

掲載時点でMCUバージョン“220601”が導入できるので試してみました。最後の日付部分がそれ。今までは“221015”で、半年ほど新しくなりました。ファームウェアはソフトウェア側、MCUはハードウェア側のプログラムが変わる感じでしょうか。ただ今のところ違いは全くわかりませんし、電源断などでミスると不動になる可能性もあるので、更新はあまりおすすめしません。

Discord の Automotive Android Headunits サーバー(英語。誰でも参加可) #mcu-android-11-bmw でダウンロードできる zip ファイルを展開し、中の ksw_mcu.bin を空のUSBメモリ(32GBまでのFAT32フォーマット)のルートにいれ、この画面の“MCUアップデート”を選びます。バージョン中の英文字列が全てあうものを用いてください。別のグループにAndroid10版もあります

なお KSW-ToolKit を使用している場合、このダイアログが表示されません。このツールはシステムの通信を“ハイジャック”し独自の操作を行うもので、動作させたままアップデートを行うのは危険です。そのためあえてそうしているそうです。更新前には [STOP SERVICE] で一時的に止めておきましょう。

ファイルが壊れている的なエラーが出る場合は、USBメモリーをWindowsPCでFAT32のクイックフォーマットをしファイルを入れ直す、別のナビUSBポートに挿す、Androidナビを再起動するなどしてみてください。

Weatherアプリのアクティベーション

この情報を教えてくれたロシアの友人Shamanixさんによれば、国・地域によってはすでにこの方法は使えないとのことです。その場合もVPNで見た目の接続場所を変更すればうまくいくそうなのでダメだったらお試し下さい。なおメーカーはID8 UI用の新しいWeatherアプリを開発中らしく、それを待ってもいいでしょう。

アクティベーション成功
ID8 UIのウィジェットで本領発揮

Android 11ファームウェア2.4.x / Android 12で追加された“Weather”(お天気)アプリは、ナビ購入時から動いていたもの以外では、アクティベーションコードエラーで使えません。有効にする方法が海外掲示板で公開され、そのようにしたらばっちりでした。

方法は、AndroidナビのWiFiを次の名前のSSIDに接続してWeatherを開くこと。これならメーカーは出荷前チェックのついでにアクティベーションできます。面白いですね。

44FESRAN

自宅WiFiの変更は要らぬトラブルを招くので、iPhoneの名前([設定] – [一般] – [情報] – [名前])を一時的にこれに変更し、インターネット共有をオンに(オン状態ならオフ・オン)してAndroidナビを接続しました。写真のように一度Weatherアプリが起動すれば両者の設定は元に戻して構いません。

Android 12の更新

ロシアの友人Shamanixさんが Android12 v1.2.1NEXAI のアップデートファイルを送ってくれました(mega.nz)Bimmerpostには別のダウンロードサイト(wetransfer.com)の案内もあります。またこちらにはこれまでのA12ファームウェアがそろっています。削除されていたらBimmerpostを探すかそこでおねだりしてみてください。

NEXAIというのはAI音声システムが付いたパッケージでのこと、Googleアシスタントと、ToppalというAI音声認識アプリが含まれます。ただしToppalは日本語非対応ですし、ライセンスが必要なので、通常は使いません。ちなみに通信偽装テストをさんざん行っていたAndroidナビではその影響かラッキーなことに勝手にアクティベートされてましたが、画面に常駐するデカいロボがちょっとした声にも反応してとんでもなくじゃまだったので、使用5分で削除しました。

A12のアップデートが行えるはA11/A12で、A9/A10は不可。A11も念のため最新ファームウェアのVer2.4.xにしてから行って下さい(別項参照)。

A12はマーケティング目的以外に(そもそもA11も)意味は無いと言う人もいるように、AndroidのUIが変わった以外ほぼ同じです。起動時間さえも。

しいてあげるならちょっとずつ悪くなった点が多く、予め海外の仲間から聞いていたことですがBMW_ID8_UIでのウィジェットの入れ換えができなくなったこと(NEXAI版で改善された)、A11の過去のファームウェア2.1系で起きていたiDriveダイヤルの反応が悪くなる不具合が復活したこと(KSW-ToolKitで改善される)、公式版のKSW-ToolKitが動かなくなったこと(別項で対応済み)、Androidの開発者向けオプションの多くの項目が再起動ごとにデフォルトに戻されまんどくさくなったこと(これは少しつらい)、でしょうか。まあ慣れます。

良くなった点は、ウルトラワイド非対応のApple Musicのようなアプリが最初から普通に表示されること(これはかなりいい)、上からスワイプして出すメニューで再起動ができるようになったこと、起動画面の変更が自由になったことでしょうか。

A12にしたあとはA11には戻せません。リカバリーモードでもインストール後の再起動が一生終わらないのでだめでした。

こういうのを楽しめない方はA11からA12への更新はおすすめしません。私は最初苦労しましたが、そのためにAndroidアプリの開発をはじめるなど、なぜか学びにもつながっています。

A11は2.4.4で更新が止まり、A12の開発だけが進んでいる状態です。A12最新版にはA13化のための準備ファイルがみつかっているようです。

Android 12 低dpi(高dp)時に表示されるナビゲーションバーの削除方法

Android 12でKSW-ToolKitのTablet Modeを有効にすると下にナビゲーションバーが追加され、せっかく画面が縮小表示されているのに縦の有効幅は通常時とそんなに変わりません。どうやっても消せず諦めていましたが、Discordで詳しい方に教えてもらったので案内します。出ない人もいるようです。

ちなみにこのTablet Modeは通常の density 240 を 196 で維持するもので、開発者向けオプションの [最小幅] で言えば 480dp を 540dp にした感じです。数字は12.3インチの場合。広い画面用のUIに内部的に切り替わります。

それでこのバーは何なのかというとQuickstepというAndroid標準ランチャーらしく、指定してもいないのにアプリランチャーとして表示されているとのこと。

方法はまず、Android設定 – [アプリと通知] – [デフォルトのアプリ] – [ホームアプリ] で上画像のように Quickstep を選びデフォルトランチャーをこれにします。その後ホームアイコンを押して Quickstep を呼び出し、何も無いところを長押しすると出るメニューで [ホームの設定] – [Developper Options] を選択。

ここで [ENABLE_TASKBER] を探して無効にし [APPLY] で決定すればじゃまだったナビゲーションバーが消え去ります(嬉)。最後にホームアプリを標準の KswCarProject (か好きなランチャー) に戻して終了です。

起動画面の変更

スプラッシュスクリーンを変更することができます。静止画 => 動画 => “スマートフォンの起動中…” というAndroid起動中の部分で、A11は動画のみ、A12は静止画と動画の変更に対応しています。A12は権利の問題か、標準で準備されている画像からBMWロゴが全て消されたので、代わりに自分で作れという事なのでしょう。

方法は海外掲示板に書かれているように、1920×720ドットのビットマップ(BMP)画像を imagefv.bmp とし、空のUSBメモリ(FAT32フォーマット)に OEM というフォルダーを作ってそこに入れ、USBメモリーを10秒ほどAndroidナビに差し込んでおくというもの。なんのメッセージも無く次回から起動画面がそれに変わります。

次は動画。標準だと途中からクルクル回る画面が動画ファイルで、それを変更します。方法はちょっと難しくこちらの“SD625”部分を参考に行いますが、ユーザが作ったものも公開されているのでその1つを入れてみました。1920×720を使います。上の静止画と同じフォルダ・方法で、ブートアニメーションが変更されました”と表示されれば成功。起動時間に変化は無し。書き込むとクルクル動画にはもうもどれないのでその前にadbコマンドを使ってルートで /mnt/vendor/persist/OEM/bootanimation.zip を予めpullしておくといいかもしれません(未確認)。なお空の bootanimation.zip を入れるとアニメ表示となるはずの間も imagefv.bmp のままになり、それはそれでシンプル。同ページに消し方もありますが、”android”と出るようになって萎えます。

A12のスプラッシュスクリーンの静止画とアニメーションの関係はこんな感じ。ボケて見えるのはアンチグレアフィルムのせいで、実際にはもっときれいです。

A12で消されたBMWロゴのスプラッシュ画像ですが、それ以前のシステムから抜き出したものをロシアの友人Shamanixさんが送ってくれました。画像だけまとめたものを以下に置くので必要なら先の方法で入れて下さい。A11以前では元々入っているので不要です。

KswCarProject が繰り返し停止する

いつものナビ画面が出なかったり、“「KswCarProject」が繰り返し停止しています”とエラーになったり、画面輝度が最大のままだったりしたときの修理(?)方法を別ページにまとめました。システムファイルを消してしまった、Android自体が起動しなくなったなどの場合にも対応できるかも。

BMW Androidナビが正常に動作しないときに試すこと

adbコマンドの使い方

Androidの内部を調整するには、AndroidとPCを接続し、別途インストールするadbコマンドで行います。Windows, Mac, Linuxいずれでもかまいません。スマホでもできるようです。これに必要なAndroid SDK Platform-Tools のダウンロード・環境設定は“android adb”などで検索すれば親切な解説サイトがたくさん見つかるので予め準備しておいてください。

接続方法はUSBケーブルとWiFiの2通りあり、どちらも長所・短所があります。Android 9/10はUSBのみのようですが以下も含め全て未確認です。

USBケーブルでの接続

AndroidナビのUSBはType-Aなので、PCのポート形状によって Type-A to Type-A か Type-C to Type-A のケーブルを準備します。黄色のUSBポートの方が良いようです。

USBホストモードをオフ
デフォルトのUSB設定をPTP

2つの設定方法があって、手軽なのは工場設定の [USBホストモード] をオフにすること。再起動するとたぶん勝手にオンに戻ります。Android 12でのUSB使用ではこの方法しか無いようです。

2つ目の方法は、Androidの開発者オプションをオンにし、その中の [デフォルトの USB 設定] (“USB”で検索すると見つけやすい) を“ファイル転送”か“PTP”にすること。こっちは反映に再起動が必要でまんどくさいですが、ずっとこの状態が続きます。Android 12では再起動後にその変更が無効になるので使えません。

なおこの間は他のUSB機器が使えません。特に開発者オプションで変更した場合は“データ転送無し”に戻すのを忘れないように。

WiFiでの接続 (Android 11以降)

AndroidナビとPCを同じネットワークにつなげます。

Androidの開発者向けオプションをオンにし(方法は検索してね)、その中の [ワイヤレス デバッグ] を捜してこれもオン、そして項目をタッチして開きます。Android 11の場合は簡単接続するために、表示されるダイアログの [このネットワークで常に許可する] にチェックを入れておきましょう。Android 12では起動ごとにワイヤレスデバッグがオフにされ簡単接続の意味が無いので無視します。

表示される [IPアドレスとポート] のIPアドレスをPCのコマンドプロンプトで次のように指定し接続します。Androidナビのば場合は常に変わるコロン(:)以降のポート番号は使わず、常に5555で大丈夫。

adb connect 192.168.2.248:5555

これでadbコマンドが通るようになります。他にも接続がある場合はつながらないので、次のコマンドで全て切断し、(キーボード↑キーの履歴を使うなどして)再度 connect してください。

adb disconnect

クイック起動
ID7 Launcherにタスク登録

Android 12では先ほどの通り再起動ごとにワイヤレスデバッグがオフになり、USBデバッグもまんどくさいんですが、上からのスワイプで出るクイック起動にワイヤレスデバッグを入れておけば楽にオンにできます。長押しでIPアドレス項目の表示。DHCPでもIPアドレスはそう変わらないので、Windowsなら先の connect だけの1行のbatファイルをつくれば接続の手間が省けます。

この一連の動作を Tasker + AutoInput (それぞれ有料アプリ)でつくったので公開します。Taskerでワイヤレスデバッグをオンにし、許可のダイアログが出たころにAutoInputで“許可”(日本語)を押すというだけの仕組み。Taskerの [タスクタブ] 長押し-> [タスクをインポート] で導入してください。なお日本語OS以外にも対応するよう、内部には非使用状態で英語版(“ALLOW”のタッチ)と、状況関係無く “ボタン1″(このダイアログでは”許可”に当たる) を押す2つの仕組みが入ってます。他言語の方はどちらか一方に入れ替えてお使いください。“ボタン1”タイプはダイアログが出なかったとき無関係なボタンを押す可能性がありますので使わない方がいいかも。

私はこれをID7 Launcher (別項参照)に登録しワンタッチでオンにしています。とても楽。このランチャーではTaskerを選ぶとタスク一覧が出てそれもアプリ起動タイルに登録できちゃうことを発見したんですよ。痒いところに手が届きますね。

と長々書いておいてなんですが、IPアドレスがわかっていればワイヤレスデバッグがオフのままでもなぜかconnectできちゃいます。最近気付きました。ただ以前はそうでなかった気もするのですが、、、自信なし。ファームウェアによるのかも。

Taskerについての電源オフに関する注意

IGN ON状態を長く続けたあとの急な電源断などによるAndroid強制終了で、Taskerのプロファイルやタスクが初期化されることがあります。OFF状態からの動作確認のため電源ブチ切りをしていて、これに気付くまで何度も作り直すはめになりました。。。

バックアップは右上 [︙] – [データ] – [バックアップする] を選びそのまま左上 [←] で戻ると行われるので、Tasker変更時は忘れずに。同時にGoogle Driveへの保存もできます。

なお復旧は [︙] – [データ] – [復旧する] から。掲載時のバージョンでは日本語訳が [Google ドライブバックアップ] とありますが“からの間違いです。アプリの翻訳ってデータベースのテキストを順に作業していくだけで、実際に使われてる状況がわからないから結構難しいんですよね。

左ハンドル車用のマイクをなんとかしたいかも

メインメニューが左側にあることから想像できるように、このAndroidナビは左ハンドル車(LHD)につくられています。外付けマイクとは別にある内蔵マイク(Android的には背面マイクという扱いみたい)もそのため左にあって、右ハンドル車(RHD)では運転席からの一部の音の認識が悪いようです。金型をケチったようでマイク穴(裏ぶたの切り欠きみたいなの)の位置もずれてます。運転席側に移すことを考えましたが、まんどくさいので今のところアイデアだけ。

システム情報から見る、Andoridナビの構造とつくられ方

通常はファームウェアと呼ばれる“アプリバージョン”が大事で、ここの“Ksw”がソフトウェアとハードウェアを設計した会社の、通称KSW(社名を含む何だったかの略称)というシステムであることを示します。BMW用Androidナビでこれ以外は一般的に“にせもの”なので、情報や関連アプリを得ることは絶望的。このブログの内容も全てKSWについて書かれています。次のアルファベットがAndroidOSのバージョン名の頭文字、最後がバージョン番号。Androidナビの基本ソフトウェアです。

その上の“MCUバージョン”はこの投稿の“MCU Firmware Updates”に書かれた見方が全てですが、MCUベンダーが存在するという点が重要です。MCUは車両の通信を制御し(物理的にCANを切断してブリッジし通信改変を行う)、Androidモジュールとシリアル通信し、画面表示やタッチ、外部機器のコントロールなど裏方的なことを他のIC類と一緒に引き受けています。Android起動前にリバースカメラが動作するのもMCUのおかげ。先のKSWはソフトウェア(+Androidモジュール?)とリファレンス回路を提供し、実際の電子基板と外装類の設計製造はMCUベンダーが行うという業界構造だと思います。MCUのベースプログラムもKSWが提供しているはずですが、周辺回路とあわせMCUベンダーが独自性を出せる部分でもあります。

KSW同士ではほとんどの動作は共通するけど、ベンダーや車両通信によるMCUの違いで一部異なるということにつながってきます。どのベンダーがいいかはわかりませんが、私が使っていること、ユーザが一番多いということで、dGS(GS)がベターでしょうか。なんとなくMekede系のNaviFlyで購入していましたが、結果的に無難な選択でした。

ちなみに”システムバージョン”はわりとどうでもいい情報で、Androidのバージョン数字、CPUの種類、本体のシリアル番号です。

改造・修理・その他

3Dプリンターでアダプター製作 (ダウンロードリンクあり)

リヤガラスの写り込みを減らすため、ディスプレイをもう少し上に向けてみます。

家庭用3Dプリンターでベース全体を作り直すのは無理なので、ディスプレイ取付部分を格安3Dスキャナーで取り込み、そこにかぶせるアダプターをつくりました。

付属ベース
アダプター装着後

本体をある程度寝かせたことで反射元が天井となり写り込みが無くなりました。また視線移動を少しでも減らすため上に1cmほどオフセットさせています。写真だと視界を少々さえぎってますがぼくのポジションだとギリで問題ありません。

以下はオリジナルから変更した角度ごとの3Dデータ(stl)です。デジタル傾斜計をディスプレイに当て、ドライビングポジションでいいあんばいのを探ってください。ちなみに今は11度を使っています。なお別項記載のようにベンダーがdGS(GS)の本体なので、他社製だと形状が異なる可能性があります。

熱溶解積層(FDM)3Dプリンターを使いABS材、積層ピッチ0.2mm、インフィル50%、モニター取付面を下・水平にしてサポートありで印刷しました。長辺は約19cmあるのでプリンターのサイズを確認ください。元のベースは超音波カッターでコネクター穴の拡大と、ネジ止め用の穴(4.5mm)あけをしました。固定は6本の超低頭ネジM4x10にて。4本でも充分だったので気になる人はMeshmixerなどで穴を埋めてください。こすれ音が出そうなところはテサテープを貼っておきます。

リヤウインドウが見えなくなるまで上に向けると今度はルームミラーの裏側が写り込みます。これも結構ウザいので25mm幅のテサテープを貼って反射を抑えました。効果大。気温40度の夏を屋根無し駐車で越しましたがテープののりも大丈夫でした。

ディスプレイの輝度調整①

ディスプレイの明るさを一番低くしても(ぼく的には)夜間まぶしいので、回路を調整してみました。

ケースは全てはめ込み。下側の溝をマイナスドライバーでこじり、できた隙間にカーボンヘラなどを差し込んで外していきます。ツメは横側3カ所ずつ、上下5カ所ずつあります。

基板右下がバックライト制御回路で、2.2Ω(2R2)と1.1Ω(1R10)が並列について合成抵抗が0.73Ωとなっているとこの値を増やすと全体的に暗くなります。計測用に電線をつけている場所。2.2Ωを外して1.1Ωにすると夜は暗めで良い感じでした。たぶん電流3割減になっています。この1.1Ωは人によるはんだ付けだったのでディスプレイサイズなどによって変更されているのでしょう。

ただAndroidディスプレイのディマー機能による減光が足りていないため、夜にあわせると昼は暗いという状況はそのままでした。

輝度を ax + b で例えるとここは b の部分です。

ディスプレイの輝度調整②

さらに調べると、もともと75kΩでつながってる上側にCPUから3.3V 30kHzのPWMでバックライトが調整されていました。デューティー0で最大輝度。ここを常時チェックして下側の部分に再現し、車両通信(CAN)でライトが点いたら好みの暗さまでデューティーを増やす仕組みの装置を作ってみました。このPWMを手抜きしてマイコンの入力端子に直接つないじゃうと、ディスプレイが輝度調整してる状態でオンにしたとき入力に切り替わる前のわずかな出力状態の時間でショートしてディスプレイのCPUが壊れますので注意してください。2台壊しました(涙。冒頭で3台購入の理由はこれ)。今は大きめの電流制限抵抗+コンパレーターで受けています。外付け回路なくここの75kΩを小さい値にするだけでもAndroidの輝度調整で暗い側が増えて調整幅が広がると思います。後述しました。

輝度を ax + b で例えるとこれは a の部分ですね。

CANと電源はディスプレイ用ハーネスから分岐しました。配線色は次の通り。黄 : 12V / 黒(黄の横) : GND / 紫 : 車両側CAN-H / 紫黒 : 車両側CAN-L / 緑 : HU(ヘッドユニット)側CAN-H / 緑黒 : HU側CAN-L 。CANはディスプレイで中継されおり、電気的には車両と純正HUは切断された状態です。

どんな感じになったかは次の動画をどうぞ。中で触れてませんがAndroidが起動するまでは無制御状態の最大輝度だったのを、車両電源オフ時の輝度のまま始めるようにしました。

ディスプレイの輝度調整③

後日。上記は変更しました。まずディマーでの減光をやめ、CANID 0x393のByte0がiDriveとメーター向けにどこかの純正ECUが外光により調整した輝度データだったのでこれ利用します。内装照明ダイヤルも考慮されます。0で最低輝度、0xFFでAndroidの設定輝度にすることで、環境によってこの間で自動的に明るさが変わります。

Androidがいくらかでも早く使えるように、ドアを開けるなどでCANが通信を始めた段階でディスプレイ輝度0のバックグラウンドのような状態で起動を始めるようにしました。純正iDriveも実際にはそんな感じです。Androidが参照する起動・非表示フラグは 0x3A5 Byte0 bit0 で、非表示のメッセージが10秒ほど連続するとAndroidのシャットダウンが始まります。iDriveまわりの通信が止まるのは、通信開始してIGN ONにならなかった時またはOFFしてから約32秒後(実測)なので、バックグラウンド起動のフラグは20秒後には消さないとそこから10秒必要なシャットダウン指示時間が足りず、数分後の車両電源断で一緒に強制終了となりあんばいよくありません。念のため早めに通信が止まった時には非表示の通信は継続するようにしました。このフラグは純正ディスプレイ表示・非表示用なので勝手な変更でiDrive動作に何らかの影響が出る可能性があります(今のとこ問題なし)。

Androidの早期ON/遅延OFFをしたことで、IGNによる急な画面点灯・消灯を、純正のようにふわっとさせられるようにもなりました。

上記を実現するため車両ハーネス-Androidディスプレイ間のCANを切ってその間をブリッジする装置をつくっています。非売品。

元のAndroidで設定できないほどの(夜間のぼく好みの)暗さにするとディスプレイ側制御回路の特性でバックライトがちらつきます。そのポイントを調べてそれ以下にならないような制限が必要です。

一般の方でも頑張れば何とかなるディスプレイ輝度調整方法

装置開発は一般的には難しいので簡単に調べたところ、前述②のCPUにつながる75kΩのチップ抵抗を68kΩに減らすと最低輝度がいいあんばいに下がりました。最高輝度ごと変わる下側の2.2Ω・1.1Ωはそのまま触りません。使われてるチップ部品のサイズはたぶん2012(2mm x 1.2mm。インチだと0805)で、送料的にRSコンポーネンツが買いやすいでしょう。

はんだごて2本で部品を熱してつまみ上げ、基板側2辺のはんだ跡の片側をはんだ吸い取り線で除去、68kΩの抵抗をピンセットで設置、上から押さえながらもう一方のはんだをこてで溶かし抵抗を仮づけ、未はんだ側をはんだ付け、仮付け側にちょっと追いはんだ、10倍程度のルーペで確認、という手順です。

作業は請け負わないので壊れたらまた買うぐらいのつもりでどうぞ。まあうちは2回買い直したわけですが(涙)。

テストベンチハーネス製作・コネクター修復

うちで使うAndroidナビのコネクター品番がわかりました。当然のようにコピー品が使われていますが、一部を除き正規品が国内で購入できます。

種類品名
20極コネクター (メイン)JST製 PADP-20V-1-S
12極コネクター (AV)JST製 PADP-12V-1-S
8極コネクター (USB)カタログにない“中国オリジナル品” (笑)
PADP-8V-1-S相当。入手困難
端子 AWG28-24用JST製 SPND-002T-C0.5
端子 AWG26-22用JST製 SPND-001T-C0.5

送料的に国内電子部品商のRSコンポーネンツが買いやすいでしょう。電線は被覆が薄いものでないとコネクターに入りません。

これらに12V 2AのACアダプターDCジャック、スイッチなどをつなげば、Androidナビを部屋でも気軽にテストできちゃいます。起動中に1.5A程度必要なのと、過電流防止の簡易ヒューズ的に、このあたりの対応電流品がいいでしょう。

コネクターを使わずてきとうな端子を差し込んでも電源は入れられますが、筐体裏側なのでごろんと転がらないよう注意しないとピンを曲げたりショートさせたりで結構危険。基板につく複合ハウジングは“中国オリジナル品”で入手困難なのでピンの修理は難しいでしょう。

端子番号内容
112V 2A以上
2GND
4CAN-L 純正HU側
5CAN-L 車両ハーネス側
端子番号内容
8AUDIO OUT R
9AUDIO OUT GND
10AUDIO OUT L
13CAN-H 純正HU側
14CAN-H 車両ハーネス側

私の20極メインハーネスのピンアウトは上記の通り。ベンダーdGS(GS)・NBT用なので他では違うかもしれません(別項参照)。テストに不要なものは省きました。またSnapdragon 662搭載でコネクター形状が同じでも異なるものが何種類もあるようです。利用前には必ず確認して下さい。

Androidの起動・使用には端子1,2の電源以外、他のコネクターも含め全て不要。内蔵アンテナでWiFi / Bluetoothも使えます。音は鳴らないので、AUDIO OUTに3.5mmステレオミニジャック(先リンクの秋月電子で購入可)をつけアナログ入力対応PC用スピーカーなんかをつなげてもいいでしょう(アナログ入力非対応スピーカーが多いので購入時注意)。Bluetoothスピーカーの接続は確認していません。CANは両側ともターミネータ内蔵。

端子の圧着にはエンジニア製PA-09PAD-11、IWISS製SN-01BMなどがいいんじゃないでしょうか。当たり外れがものすごく激しい中華IWISS工具の中でこのSN-01BMは結構いい感じなんですが、電線と被覆を同時に圧着するため慣れないと扱いが結構むずいです。量産しないならエンジニア製の方がらくかも。

電源を入れる前に配線が間違っていないか目視とテスターでチェックしてください。壊れても知りませんよ。電源投入後“No Signal”と表示されビビらされることがありますが純正iDriveの雪像がないためです。たいていそのうちAndroidモードになりますが、1分ほど待ってから画面タッチしても切り替わるでしょう。電源線に電流計をいれておけば電源オン後3秒ほどで30mAぐらいからどんどん電流が増えていくことでNo Signalで画面が映らなくても起動状態が確認(想像)できます。どうやってもAndroidが表示されない場合はいったん車両に戻して工場設定で常にAndroidモードで起動するようにしておくといいでしょう。というか最初からそうしておくのがベスト。

電源の切り方が“難しい”です。CANかadbコマンド以外でのちゃんとしたシャットダウン方法がたぶん無いので、気にせずACアダプターを抜くか、せめて再起動をさせ“No Signal”が出たときに抜くかといった結局ブチ切りしかありません。

端子の品番がわかっているので補修もできます。被覆が硬いUSBハーネスが特にちぎれやすいんですよね、私もやっちゃってます。

電線の引き抜きはこういう端子抜きセットのクワガタタイプでロックを持ち上げながら行います。特に8Pコネクターは入手困難なのでこれを折り曲げないよう慎重に。

電線がちぎれて端子だけが中に残ってる場合は、この状態でクワガタの隙間からさらに別の細い端子抜きなどを差し込み地道にずらしていく感じ。ある程度出て来たら電線側から極細ピンセットでつまみ出します。修理は単に切れたところに端子を付けるだけだと電線が短くなってさらにちぎれやすくなるので、長さがそろうよう関連部分の端子も全部付け直すか、見た目は悪くても電線を長めに延長しておきましょう。

Androidと内部モジュールとの通信用端子

Androidナビは内部的にはKSW(ソフトウェア)とMCU(制御用ハードウェア)がお互いに通信をしており、ある程度整形されものを adb logcat コマンドで見ることができます。そこをもっとローレベルで調べるために、Androidユニットにつながる端子を(オシロでちまちまと)探しました。

写真の向きで見たとき、右から19番目の端子から左へ GND、Tx(logcatで言えばMcuSendMessage)、Rx(同KswMcuListner)で、1.8V 115,200bps のUARTでした。

AndroidのTxとRxを同時にも見たいので、スイッチとショットキーバリアダイオードでこんな感じにして1.8V対応USB通信変換装置のRxにつなげます。そのうち送信テストもできるよう、ON-OFF-ONのスイッチにしておきました(初めて使った中華製絶縁素材がゴテゴテになってちょっと悲しい)。PC用モニターソフトウェアには汎用的なものが利用できますが、私は Eltima Software 製 Serial Port Monitor(有料) を使っています。

MCUがチェックしているもの以外の通信を外部からKSWに送ることは通常不可能ですが、ここにうまく独自コマンドを割り込ませればTaskerやKSW-ToolKitなどで受信・処理できるので、何か面白いことができるかも知れません。同じように外部からのMCU制御もきっとできます。

その通信ですが、VincentZ4さんがAndroid 9のKSWで解析した2020年の資料をここにおきました。点在しているので最新版かはわかりませんし、かぶってる内容のもありますし、A11/12ではちょっと違う感じのところもありますがとても有用。整形された adb logcat コマンドでも見方がわかれば便利に使えます。

いちいちデバッグモードに入れなくてもモニターできるのがいいですね。

後付け装置によるフロントカメラ切替

純正ナビからのフロントカメラ切換をiDriveダイヤルの前方向入力で行えるよう簡単な制御を先の装置に追加しました。

設定済みのKSW-ToolKitによるDVR起動との連携で、前方向入力(0x267 Byte3 が 0x11)が0.5秒以上あったとき、 [OPTION] ボタン(0x267 Byte5 が 0x6)を長押し、短押しします。長押しはほんとに待つ必要は無く、Byte3を1(短押し),2(長押し),0(オフ)と順に送信すればOK。ただ起動後の最初の1回だけはなぜかうまく通らずいざというときに切り替わらないので使ってません。結局は [OPTION] の長押しを同じような仕組みで0.5秒に短縮させ、KSW-ToolKitと組み合わせで純正画面から [OPTION] 長押し・短押しの2アクションで行うことにしています。

掲示板で質問をするときのアドバイス

何か困ったときや情報が欲しいときは海外のコミュニティーを頼ることになります。英単語の羅列で検索すればたいていは解決しますが、そうでない場合は自ら質問しなければなりません。BimmerpostのBMW Android 11/12ナビスレッドBMW Android 10ナビスレッドDiscord の Automotive Android Headunits サーバー(誰でも参加可。アウディー、メルセデスベンツも) が主なところでしょう。そこで回答が得られやすいポイントがあるので記します。

まず当然、英語で書くこと。英語圏以外のユーザもかなり多いので、“Sorry, Japane only”な私は臆することなく、完全に翻訳ツール頼みです(笑)。“翻訳してます”とか“英語が下手で”とかを書く必要はありません。ただほんとに下手な英語は無視されやすいので、私はDeepLという優秀な翻訳ツールのPCアプリ版を利用しています。訳された英文をそのまま貼り付けるのでは無く、“誰”や“それ”が見当違いのものを差していないか、単語のニュアンスはどうかを確認します。たいていは思いからちょっとずれてるので、翻訳ツールが理解しやすいよう日本語文を修正したり、表示された英単語をクリックし別の表現に調整したりします。DeepLは句点(“。”)が無いと“!”をつけたがり、理解できないのかたまに文章の後半をごそっと無視するので気が抜けません。できた英訳を日本語に訳させるとある程度答え合わせができますが、もともとの日本語は消えるので、私はテキストエディタに日本語を書いてそれをショートカットキーで翻訳させています。“Hi guys!”や“Thank you”なんかを足しとけば雰囲気満点(たぶん)。

外国語のウェブサイトを読むときはChromeの全文翻訳機能が楽でしょう。私がメインで使っているFirefoxではTWPプラグインを利用しています。独特の表現方法にも気付くので、翻訳させる日本語文に反映させてください。

ココアシステムズでは顧客以外のサポートは一切しませんが、チェックしている掲示板などで質問している人がいれば手助けすることはあります。他の回答者もその基準はそれほど変わらないでしょう。一番はその人がコミュニティーに貢献していることですが、これを読む人はきっとゼロスタートですよね。であれば内容的には、回答者が答えられることであるのはもちろんですが、必要な情報が最初から示されているかがほんと大きいです。興味が無い相手の状況なんて誰も探ってくれません。自分のことすら説明できない人に対応した結果のむなしさは回答者全員が過去に何度も味わわされているのでそっとスルーするだけです。

質問内容により、英語モードにしたシステム情報のスクリーンショットかその全文(アプリケーションバージョンやAPP Ver.と書かれたファームウェア名で回答が分かれる場合が多いのでとても重要)、Androidの種類、車種、iDriveの種類、購入時期、どういうときどうなるという情報などが必要です。こうしてみた、こうすると少し変わる的な頑張った感じや、相手が再現できる手法があると回答率は上がるでしょう。きれいに撮られたその時の写真の添付も状況説明には効果的かもしれません。知らない言語の画面は拒否反応が出るので先の通り英語モードがベスト。動画を見てもらうにはその内容と載せた理由を記します。読んでる人がいっきに萎える、情報の後出しにならないように。

この他には、相手への敬意が重要です。引き続き答えてあげたいと思わせること。まんどくさいでしょうが、画面の向こうにいる世界中の高時給な大人たちの時間を0えんで奪うことを自覚すれば、姿勢は決まってくるはず。

返事をもらったら、結果を含めてお礼をしましょう。確認に時間がかかるときはそう書きます。掲示板を汚すからなんて考えなくてもよく、質問者が話題を締めくくるつもりで。サポートする人はこれが嬉しくて続けているわけで、私のように心が狭いと聞くだけの人には二度と回答しませんし、今後の気力も萎えます。

そうそう、Androidナビのことは”Android HU”(ヘッドユニット)か単に”HU”と書きます。それに対しメーカー品は“OEM”(違和感は別項参照)。どこの世界でも趣味の人は関連掲示板を網羅しているので、マルチポストは意味が無いどころか嫌われます。資料が残らないダイレクトメッセージも悪手。

まあそれでも返答がなければ誰も知らないレアケースだったんだと思います。多少メゲるでしょうが、あなたの質問には世界中の誰かが無償で必ず答えなければならないというわけではありませんから、そういうこともあります。販売店に相談しましょう。

お問い合わせ、作業依頼等は承りません。開発した装置類は非売品です