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

BMW F10 で使っている Android 11 ディスプレイオーディオが、工場設定変更後ぐらいから “「KswCarProject」が繰り返し停止しています” (英語版 "KswCarProject keeps stopping") や “「CarService」が繰り返し停止しています” (同 "CarService keeps stopping") とダイアログを出し、この中華ナビのファームウェア KSW がまともに動作しなくなりました。

KSWが動かないのでたぶん画面輝度は常時最大になります(うちでは自作装置制御なので未確認)。

Android 11ナビの詳細はこちら。

設定が全く反映されない

ほとんどのメニューで先のエラーとともにKSWが再起動または黒画面になり、たまにKSWで見られる設定にはなんもチェックが入ってません。チェックを入れてもその後見るとまた消えています。

ファームウェアの一部か設定ファイルの損傷が疑われますが、設定のバックアップはとって無いし、そもそもそれを導入するための工場設定モードに入れません。ちなみに設定ファイルの保存方法は別ページに記載しました

リカバリモードでファームウェアを入れ直す

このページに書かれている方法でダウンロードしたファームウェアをリカバリーモードで入れ直してみました。以下で解説します。Android OS自体が起動しなくなったような場合でもこれは動くはず。ただ結果的に今回の場合は、これは効果ありませんでした。

Android 11のリカバリには4〜32GBのmicroSDカードを1枚準備します。USBメモリは使えません。この容量で新品ならたぶん最初からフォーマットは FAT32 ですが、そうで無い場合はWindowsで初期化しなおしてください。今回はシリコンパワーの32GBリード85MB/sを購入しました(FAT32でした)

なおインストールは時間がかかるので、途中で電源が落ちないようエンジン始動中かIGN ONで運転席シートベルトをした状態で行います。

Android 11の場合

このページのリンク先からお好きな(通常は最新の)ファームウェアをダウンロードし、展開せずzipアーカイブのままmicroSDカードにコピーします。

分岐1 : 【推奨】adbコマンドを使わない場合

Android開発用ツール adb コマンドを使わず行う方法で、一般的ですが多少まんどくさいです。

① コピーしたファイルの名称を次のように変更します。コピペ推奨

Ksw-R-M600_OS_v-ota-only-reset-data_factory.zip

② カード内に ① のファームウェア以外のファイルがあれば全て削除します

③ microSDカードのボリューム名を次のようにします

_KSWOTA_

起動後Androidがフラグファイル作成とボリューム名変更を勝手に行いリカバリモードのループにならないようにするので、何度も作業する場合は都度PCで ② 以降を行う必要があります。

分岐2 : adbコマンドを使う場合

話が前後するのでadbコマンドの説明は省きますが、次のコマンドで再起動後リカバリモードに入るのでらくちん。分岐1記載の操作も不要です。

adb reboot recovery

ここから共通

PCから正規の手順で取り出したmicroSDカードをAndroidナビ左側の [TF Card] スロット奥まで入れてください。マイナスドライバーなどがあるといいでしょう。バネでカードがぶっ飛ぶことがあるのでマジ注意。まっすぐ無理なく入らなければ挿入角度が間違ってます。

分岐1を実行した場合、電源を入れ(または再起動し)しばらくするとリカバリモードになります。普通にAndroid OSが起動しちゃったときはmicroSDカードの状態を見直してください。分岐2の場合はすでにこうなっているはず。

ボリュームボタンなどで操作と書かれてますが本体にそういった物理ボタンはありません。代わりにタッチパネルの上下スワイプでカーソル移動、右スワイプで決定、左スワイプでキャンセル(バック)が行えるようになっています。もしメインメニューに戻れなくなった場合、分岐1の場合カードスロットの上にある穴のリセットボタンを押してください。またたぶん②以降が再度必要です。分岐2のadbコマンドはこのとき通りません。

[Apply update from SD card] を選択、決定します。

microSDカードに入れたファームウェアファイル(この場合 Ksw-R-M600_OS_v-ota-only-reset-data_factory.zip)を選択、決定します。

インストールが始まり、しばらーくして下に “Install from SD card completed (略)” が出れば成功。[Reboot system now] で再起動して終わりです。

ちなみに先に紹介したmicroSDカードでファームウェア2.4.2を入れたとき、“Update package verify(忘れた)” に1分弱、“Step 1/2”に3分、“Step 2/2”に10秒かかりました。メディアの速度でもかわるでしょう。初回再起動もいつよりちょっと長め。

このリカバリ方法を載せた先ページには、画面が映らないなどの場合でも"thumbstick"(USBメモリ?)を挿して電源ONで10分待てばOK的な事が記されていますが、USBメモリでもmicroSDカードでも、20分待っても変化ありませんでした。文鎮化したAndroid 11を復旧(unbrick)する方法もまだ無いようです。

Android 10の場合

A10で難しいのは、KSWという正規システム以外に、フェイク(?)ユニットが存在することです。KSW以外では使えません。また実際にうちで試したわけでもありません。

リカバリを紹介したページにあるリンクからお好きな(?)ファームウェアをダウンロードします。4〜32GBのUSBメモリにコピーしファイル名を次のようにします。

Ksw-Q-Userdebug_OS_v-ota-reset-data_factory.zip

ボリューム名は次のようにします。

_KSWOTA_

このUSBメモリをAndroidナビに挿して起動まはた再起動すると自動的にリカバリが始まるようです。文鎮化したAndroid 10を復旧(unbrick)する方法も先のページに紹介されています。

壊れた設定ファイルを修復する

リカバリではKSW設定を更新しないようで、ファイルが壊れていても変化ありませんでした。先のリカバリメニューの [Wipe data/factory reset] でも消しません。Android OSの初期化も同様です。

いろいろ試していると “FACTORY_SETTINGS” ファイルを消して再起動すると(過去に起動成功したデータを元に??)これが作り直されることがわかりました。Android 10でも同じだと思います。

ちなみに FACTORY_SETTINGS は毎回上書きされるので、直接書き換えてAndroidナビの設定をいじることはできませんでした。

FACTORY_SETTINGS を削除

Androidナビ詳細記事を参考にadbコマンドを使えるようにして下さい。ただKSWがクラッシュするのでなかなかAndroid設定に辿り着けませんがそこは気合いで。設定状態によってはそのままいける場合もあるので、とにかくUSBケーブルをつなげ adb devices コマンドでナビが認識されているかを確認するのも手です。WindowsならUSBケーブルを挿したときよく聞く認識音があればたぶんOK。

次のコマンドを順に実行していきます。

adb root

adb shell

cd /mnt/vendor/persist/OEM

mv FACTORY_SETTINGS FACTORY_SETTINGS.old

reboot

FACTORY_SETTINGS の問題であればこれで直るはずです。

お問い合わせ、作業依頼等は承りません