The android at the head unit is the first valuable target.
This video tells us the first step to access the filesystem and install additional software. This might be different at your car based on your software version. For example there are versions where you have to press five times at the airbag-symbol in the lower right corner or maybe in the upper right corner. Find out how to get there and document it here together with the software version you have.
At the developer menu ignore the adb switch, this does not help much. Find the ES-Browser and open it. It gives you access to the filesystem, lets you install apps and execute it.
If you enable the adb-mode the usb-port flips to OTG and does not work with USB-sticks anymore and carplay will be gone as well.
Aiways79210000). It can browse a USB stick and install APKs.adbd. It can do this because it is system-signed (see below).http://<HEAD-UNIT-IP>:8080/ and paste your public key — unlike plain ADB it survives reboots and doesn't fight a laptop's adb for this unit's single connection.ssh root@<HEAD-UNIT-IP> (once a key is set) or adb connect <HEAD-UNIT-IP>:5555. Either gets you a root shell and you can install and debug everything else — see Development.
These steps were taken on a software-version 1.7.0. - head-unit build F5.37 (firmware
MX64_V2.01.0051.05-9-R-210326, dated 2021-03-26). The hidden-menu unlock might differ between software versions — check yours in the car's About screen first.
sharedUserId=“android.uid.system” and run with system rights — needed to toggle ADB, overlay the driver cluster, and reach the CAN service — and can update itself in place without losing its settings. Fingerprint and where to get the key: Signing — the platform key. This is what makes the bootstrap app possible.
adbd is a disabled init service, started only by a USB-config trigger, and it reads its TCP port
only at startup. The bootstrap app sets service.adb.tcp.port 5555 then cycles
sys.usb.config (none → adb), which restarts adbd bound to TCP. This is not persistent
across reboots, so the app re-applies it automatically on each boot.