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

純正
Android 12.3インチ

記事は 2022年12月4日 に更新されています。

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

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

この記事があなたのお役に立てたならブログやSNSなどで紹介いただけると嬉しいです

もくじ

細かい紹介 (購入前に)

Androidナビとは

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

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

純正とAndroidの利用・操作は完全に別れており、画面分割での同時表示はできません。画面を切り換え、表示している方を操作します。純正がタッチ対応にもなりません。

Android 11モデルを購入

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

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

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

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

基本的にはポン付け

取付方法は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にした時から。車両電源が8分前後(F10での実測)でほぼ全部落ちるBMWの制約からか、スマホのようなスリープはありません。起動中も純正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の画面が表示されます。走行するか障害物ボタン?を押すと元に戻るのも純正と同じ動作。

外部映像・音声入力もあり

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

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

内蔵WiFi以外でのインターネット接続はスマホとのWiFiテザリングと、SIMカード(マイクロSIM)を追加しての4Gモバイルデータ通信があります。裏技的にBluetoothもいけるんですが(こちら参照。"rec"と検索するとこは日本語モードでは"blue"にし"Bluetoothファイル受信"だったかを選んで下さい)起動ごとに毎回手動ペアリングが必要っぽいので現実的じゃありません(アプリによる自動接続だとなぜかテザリングされないもよう。相手はiPhoneで試行)。USBテザリングはグレーアウトされONにできませんでした。

なお標準のCarPlay機能(ZLINK5)がAndroid起動ごとに内蔵WiFiをOFFにします。対策は後述します。

CarPlayを利用する機会が全く無い

iPhoneと接続するCarPlayエミューレーション(?)がありますがAndroidで事足りますし、CarPlay対応アプリが少なく便利でもないので使っていません。

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

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

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なのを確認して下さい。

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

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

ナビ・音楽・通話を全てAndroidで行うことももちろん可能です。通常はそういう使い方がメインでしょう。

取付時のひと工夫 (取付前に)

ハーネス

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

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

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

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

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

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

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

GPSアンテナは、当然地図アプリ用です。付属しませんが、社外ナビのように下に金属板を置くといいでしょう。GPS専用の板は売られてますが、アンテナに磁石はないので鉄板である必要も無く、アルミテープでもたぶん同じ。余った電線を束ねるときは大きく。後述の分岐ケーブルを使う場合、このアンテは不要です。

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

マイクは、Androidナビで通話するときに使用します。アプリの音声認識はナビ内蔵マイクマイクを使うようですが、通話は外部入力マイク専用みたい。ただ相手に聞こえる音量がかなり小さく、社外品のピンマイクが必要かもしれません。これで改善されるかは未確認。通話を純正iDriveで行う時は未接続でOK。

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

USBケーブルは、キーボードやUSBメモリ、内部設定を行うためPCを接続するときなどに使用するので、今は使わなくともグローブボックスなどに通しておくことのがおすすめ。

AUX接続ケーブルは、Android専用通話用マイクの他、アナログ出力のDVDやBluray、社外フロントカメラを使うときに利用します。要るときにつなげばいいでしょう。

GPS分岐ケーブル

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

取付前にGPSアンテナ用電源電圧を測ってみると、車両ヘッドユニットが4.7V、Androidが3.3Vで、直結はあんばいがよくないことがわかりました。探すとダイオード入り版というのも売られており、なるほどそうやるのねということで高周波用ダイオードを間に入れました。電圧も問題なし。これで後付けGPSアンテナが無くなることでダッシュボードがすっきりし、さらにGPS TestアプリではSNRが3〜4dB上がりました。1.5倍ぐらい受信性能が良くなった感じ?

いちいち工作するのは高くつくしまんどくさいので、分岐ケーブルは最初から高周波ダイオードが入ったこういうのを買うといいでしょう("Fakra Z M to 2 Z F90"の0.5M)。ダイオードがある側のコネクターをAndroidに接続します。

ヘッドユニットのGPSコネクターは写真の位置で、上の黒コネクターみたいに中タブを途中まで引っ張ってそれをつまみむみながら引き抜きます。分岐コネクターは前後の遊びで異音が出るのでエプトシーラーを根本に貼りテンションをかけておきました。

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

工場設定

純正iDriveメインのうちの使い方では、工場設定は以下のようになりました。パスワードは 1314 でしたが、通らない場合、こちらの海外掲示板に他のパターンも記載されていますので参考にしてください。よくわからない設定項目の説明もあります。どうでもいいことですが 1314 は “一生一緒に過ごそう(一生一世 / Yi sheng yi shi)”という、4649 = ヨロシクみたいなことみたい。

最低限 [カーディスプレイ] は設定しないと純正画面がヘンテコ表示です。

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

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

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

※3 車両によります。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を入れ(オン時に入れた場合は再起動)、通信会社が公開するAPN情報をAndroidに設定してください。LinksMateなら次の通り。

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

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

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

すぐ横の穴はリセットボタンで、SIMを押し出すものではありません。

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

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

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

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

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

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

Taskerを使う場合

プレイストアでダウンロードできる有料の“Tasker”を使う場合はこちら。MacroDroidだと必要なPCをつないでの権限設定が(たぶん)要らないので楽ちん。長期のテストはできていません。

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

MacroDroidを使う場合

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

アプリが位置情報サービスを操作するために“MacroDroid の ADB hack”が必要です。adbコマンドの使い方は別項参照。次の2つのコマンドをそれぞれ実行しMacroDroidに権限を与えて下さい。

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設定 - [アプリと通知] から付与します。長期のテストはできていません。

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

MacroDroidを使う場合

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

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

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

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

KSW-ToolKitでさらに便利に

※ 今のところAndroid 12では使用できません。AndroidでiDriveのボタン類が効かなくなります

Androidディスプレイのメインソフトウェア(KswCarProject)を補完するフリーウェアの KSW-ToolKit が超便利です。

Discord の Automotive Android Headunits#ksw-toolkit が専用のチャットルーム(要登録)。同サーバの community-apps には、起動にバッテリー制限を掛けてくる装置の仕様をコントロールする KSWBatteryManager のリンクもあります。

寄付は作者のSnaggleさんのPayPal URLから([DE]はドイツ在住の意)。ぼくは送金済。

インストール

KSW ToolKitはクライアント(操作部)とサービス(本体?)の2つで成り立つ仕組みです。クライアントはこちらから、またサービスはこちらから、最新版の apk ファイルをそれぞれダウンロードし、順にインストールしてください。

MAIN MENU

アプリランチャーで KSW-ToolKit を開き [START SERVICE] を押して写真のように "Running..." となれば全て正常に動いています。[START AT BOOT] はオンにしておきましょう。OSの仕様でしょうが、Android起動後さらに10秒ほどたってからこのサービスが開始されます。

[CHECK FOR UPDATES] はまだ機能しません。

SYSTEM TWEAKS

詳しい説明が無いのでたぶんこうかなーという感想的な。

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

[AUTO VOLUME]
(たぶん)車速に応じて音量を調整する機能。純正で設定していれば不要でしょう

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

[HIDE TOPBAR] [SHRINK TOPBAR]
Android11では効果ありません

[SOUND RESTORER]
Androidモードから純正に切り換えた時に音楽再生が停止するのを抑える機能。逆の操作時制御はKSWの工場設定“AUX切り替えモード”にて

[MEDIA-BUTTONHACK]
オンにしてMEDIAボタンを押すとクラッシュしました。Android11だからF10だからかは不明です

[TABLET MODE]
画面密度を変更して表示領域を広げる機能。特にタブレット対応アプリの操作性が向上します。ON後の始動では、最初に標準解像度、KSW-ToolKit起動後に切り替わるという感じ。固定解像度で作られたKSWランチャーは背景画像がずれ、工場設定のパスコードが入れられなくなります。ON・OFF切り換え時にKSW ToolKitがクラッシュする場合も。

[Night Brightness]
ディマー時の明るさを調整する機能。うちは後述の後付け装置で制御しているためオフですが、たぶん全員オンにして次のバーで調整しておくのがいいでしょう

[GIVE TASKER READ_LOGS PERMISSION]
Taskerアプリと連動するとき必要な権限を設定する機能。たぶん。未確認です

MCU EVENT MANAGER

Androidモード時の車両物理ボタンの機能の割り当てが変更できます。ただ通信が関わる部分なので作者との車両違いからか、いくつかのボタンは変更できません。左メニュー [MCU LISTNER] でボタンを押したときどう認識されたか表示されるので判断材料になるかもしれません。

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

そのまま取付
カメラ埋め込み

ディスプレイのDVRビデオ端子にアマゾンで6,000円のブラインドカメラを付けました。レーダーをよけ、端にオフセット。そのままだとカメラが目立ったので3Dプリンターでてきとーなスペーサをつくってナンバーベースに少し埋め込みました。動作確認で電源配線を抜き差ししていたらカメラのヒューズが切れたので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から聞こえません。通話音量が0なのか、切り離したアナログAUXに出てるのか、、、メゲました。もちろん通話を純正iDriveで行うのなら関係ありません。

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

再起動のしかた

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を使います。

起動時に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など毎回縦長表示されるアプリを改善

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

このウルトラワイド画面に非対応のアプリでは“タップしてこのアプリを再起動すると、全画面表示になります”と表示されタップが毎回まんどくさいんですが、アプリの改変で修正できました。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をダウンロードサイトに置きました。基本は本物なの手多言語対応しています。無料アカウントなのでいつ使えなくなるかわかりませんし、無くなっても対応しません。先のリスクも充分検討ください。

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

工場設定でオンオフできる、純正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

LEXUS_LS_UI
PEMP_ID7_UI

今売られているものはわかりませんが、ぼくが買ったものはユーザインタフェースにID(iDrive) 5〜7の3タイプしか選べませんでした。ある程度ファームウェアを新しくし(上の方の記事参照)、こちらの factory_config.xml (BMW用) を導入して再起動すると、BMW用が増える以外にもアウディ、ベンツ、レクサスなどのデザインが選択できるようになります。設定ファイルはAndroid10と11で共通みたい。

USBメモリ(32GB以下のFAT32フォーマット)のルートに "OEM" (ダブルクオーテーションマークは不要)フォルダを作りその中に入れ、工場設定の[プロファイルのイ...]でインポートします。起動前にメディアを接続しておくと案内とともに自動読み込みされます(その後はすぐにメディアを外しておきましょう。再起動ごとに設定がこれに戻されます)。

いくつか見ただけですが特に LEXUS_LS_UI はトップ画面下部にアプリのショートカットを置けるのが便利(背景のアプリ画像は直前のスクリーンショットで何も使えない)。ぼくは今のところ、ホームの下にアプリランチャーボタンがあって押しやすい PEMP_ID7_UI にしました。サイドバーの一部は長押しで好きなアプリに置き換えられます。

なお factory_config.xml を導入するとこれまでの設定が全部その内容変わっちゃうので注意。工場設定のパスワードも“0”になります(ファイル中の password タグで変更可)。また工場設定では選択できないデカアプリアイコンモードになります(意外にいい)。通常サイズに戻すには、PCのエディタでファイル中の AppsIcon_Select タグを検索し 1 を 0 に変更して再度導入してください。

たぶんファームウェア2.4以降で ID8 のテーマが追加されました(アップデート方法は別項参照)。オサレですね。アプリの登録も可。画面を長押しするとメニューの入替ができ、サイドバーに持っていけばそれに変わります。Weatherアプリのアクティベーション方法は別項参照。

テーマの追加方法は、テキストエディタで factory_config.xml 内 <SupportUIList> タグ中に以下を入れ、Androidナビからインポートします。1行目が見たとおりID8でそれ以降はおまけですが、いずれもKSW-ToolKfitのタブレットモードでのずれが少なくなっており、工場設定のパスワード入力ができます。

<Item id="1" name = "BMW_ID8_UI" />
<Item id="1" name = "BMW_EVO_ID7_V2" />
<Item id="1" name = "UI_KSW_ID7" />

UIの変更② ID7 Launcher

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

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

アプリアイコンも置ける
アプリランチャーは名前順のリスト形式

純正iDrive(ID)7がどういう感じかわかりませんが、これは画面内に置いたタイルに情報表示とアプリ起動機能を持たせる仕組み。名前順のアプリランチャーには上位に来るお気に入りとアプリ非表示の機能があり、選びやすいよう変更できます。操作はタッチはもちろん、純正のiDriveダイアルがフルに利用可。今のところ日本語表示はありませんがうちで全文翻訳したのでそのうち選択できるようになるでしょう。

細かいところでは、標準で右上にある“Trip Data”はF10の場合、航続可能距離と燃料残量しか出ませんでした。

あとタイルのナビはGoogleマップ固定。アプリのGoogleマップ起動中は(APIを同時に使えないからか)ナビタイルの更新がされなくなる模様で、Yahoo!ナビとかだと問題なし。そのナビタイルで設定できる“Auto zoom”設定は車速で地図が拡大縮小してちょっとゆかい。同設定の地図の色味(Change Theme)で [Auto] を選び、先のKSW-ToolKitで [AUTO DARK THEME] をオンにしておくと、地図再描画のタイミングでライトのオンオフによる明暗切り換えがされ少し便利。

外部入力選択でAUXはあるのにDVRが無いのでうちで使ってるフロントカメラにボタンで切り換えられません。KSW-ToolKitで物理ボタンに割り当ててるのであまり困りませんが、この要望はそのうち追加されるとのことです。

Discord の Automotive Android Headunits#id7-launcher が関連掲示板(要登録)。

ホームアプリ(ランチャー)がKSWに戻される場合

うちでは何度設定しても次回起動時に必ずAndroidホームアプリが標準のKSWランチャーに戻されてしまいました(これに限らずKSWは各Android設定を毎回変更します)。Android10を使う開発者によるとそういった報告は無いということだったので、Android11用KSWか、ひょっとしたらうちだけの問題かもしれません。

同じく固定ランチャーのFire HDやFire TVで別のランチャーを使うために作られ(そしてAmazonの対策により役目を終え)た LauncherHijack という神アプリがこの不便をおおむね解決してくれました。Androidのホームアプリ設定自体はKSWのままなのでホームアイコンの連打などでそっちになったりしますが、もう一度押せばいいだけです。

ただ気になる点もありました。

  • 純正画面表示にしているときも起動時に必ずAndroidモードに切り替わる
  • 設定の保存ボタンが画面外で押せない

そこで公開されているプログラムをKSW用に数カ所変更してみたところ、Androidプログラムは初体験でしたが、なんかうまく直せました。Androidナビで下のボタンを押せばインストールできます。寄付はうちではなく LauncherHijack の作者まで。ソースコードはこちら

設定はデフォルトで問題ありませんが一応説明すると、[Broadcast receiver detection] はオフだと動作しません。[Launcher open detection] はKSWランチャーが出ちゃったときすぐ消す便利機能ですがそのためKSW設定にも入れなくなります。[Overlay detection] はナゾ。他は全部物理ボタン関連なので無視してOK。

flowUX など他のAndroidナビ用ランチャーはもちろん、あえて通常のアプリを設定することも可能です。後者の場合当然ランチャーに戻れなくなりますが、先の通りホームアイコンを連打するとKSWが出るので、それでckを開いて再設定できます。

気をつける点は、画面上部からのスワイプで出る機能でバックグラウンドアプリを全部消すとLauncherHijack自体も動かなくなりホームアイコンでKSWに戻っちゃうことです。再度起動し、アクセシビリティサービスの権限も付与し直してください。

ファームウェアの更新

非公式でファームウェアの更新ができます(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] で一時的に止めるか、[STARTAT BOOT] をオフにし再起動後に行いましょう。

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版もあります

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

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

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

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

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

44FESRAN

自宅WiFiの変更は要らぬトラブルを招くので、iPhoneの名前([設定] - [一般] - [情報] - [名前])を一時的にこれに変更し、インターネット共有をオンに(オン状態ならオフ・オン)してAndroidナビを接続しました。

Android 12に更新

このところのニュースは、ナビOSをAndroid 12(以降A12などと略)に更新できるという事でしょう。海外のユーザが詳細を公表できるよう準備してくれているようですが、ただ彼らが言うにはA12は(そもそもA11も)マーケティング以外の意味は無いそうです。

そんな中、海外の仲間がA12のファームウェアを送ってくれたので試してみました。ファイル公開できませんので興味のある人は海外ユーザによる準備を待つか自分で探してください。で、AndroidのUIは当然変わりましたが、よくなったことは特にありませんでした。起動速度も同じ、別項に載せたApple Musicの自動再生開始までの時間も変わりませんでした。

しいて言うなら、予め仲間から聞いていたことですがBMW_ID8_UIでのウィジェットの入れ換えができなくなったことでしょうか。A11の過去のファームウェア2.1系で起きていたiDriveダイヤルの反応が悪くなる不具合も復活しています。

あと(ひとによっては)残念なことに、KSW-ToolKitが有効だとAndroidを車両の物理ボタンで操作することができなくなりました。キー割り当て機能も同様です。車両情報が全く読めてない感じ。

かといってA11にはリカバリーモードでも戻せません(インストール後の再起動が一生終わらない)。こういうのを楽しめない方は、今のところA12への更新は様子見がおすすめ。

Android 12 起動画面の変更方法

A12では、A11では不可能だったスプラッシュスクリーン変更ができるようになりました。権利の問題か標準で準備されている画像からBMWロゴが全て消されたので、代わりに自分で作れという事なのでしょう。

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

KswCarProject が繰り返し停止する

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

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

adbコマンドの使い方

Androidの内部を調整するにはPCと接続しadb(Android Debug Bridge)というコマンドを使用します。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ホストモード] をオフにすること。再起動すると勝手にオンに戻ります。Android12の場合はこの方法しか無いようです。

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

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

WiFiでの接続

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

Androidの開発者向けオプションをオンにし、その中の [ワイヤレス デバッグ] を捜してこれもオン、そして項目をタッチして開きます。そこで表示されるダイアログでは簡単接続するために [このネットワークで常に許可する] にチェックを入れておきましょう。Android 9/10にはこのメニューは無いようです。

表示される [IPアドレスとポート] をPCのコマンドプロンプトで次のように指定し、Androidナビに接続します。

adb connect 192.168.2.238:42773

これでadbコマンドが通るようになりますが、管理者(root)への変更や再起動ごとに数字(ポート番号)が変わるので都度これを行わねばなりません。古い接続が残ってる場合はタイムアウトを待つか、いちいち disconnect をする必要があります。

Taskerについての注意

通常はありませんが、例えばIGN ON状態を長く続けたあとの急な電源断などによる強制終了で、Taskerのプロファイルやタスクが初期化されることがあります。再起動ではなくOFFの状態からの動作テストでこれを行っており、これに気付くまで何度も作り直すはめになりました。。。

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

復旧は [︙] - [データ] - [復旧する] から。掲載時のバージョンでは [Google ドライブバックアップ] とありますが“からの間違いです。あとこういった事故でプロファイル類が消えたときは自動的にローカルバックアップから復旧されてるような気もします。

改造

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

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

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

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

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

以下はオリジナルから変更した角度ごとの3Dデータ(stl)です。デジタル傾斜計をディスプレイに当て、ドライビングポジションでいいあんばいのを探ってください。ちなみに今は11度を使っています。

熱溶解積層(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回買い直したわけですが(涙)。

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

純正ナビからのフロントカメラ切換を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アクションで行うことにしています。

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