Close

Talking to the device

A project log for Cheapy 'rearview mirror' dashcam/Carplay/AAuto dev

Rooting, reverse engineering, and binary patching software on a closed device

mjc506mjc506 08/30/2023 at 19:590 Comments

So, step one, let's figure out how to talk to this thing. It's not running Android, but it's gotta be some form of Linux, so that means a shell somewhere, surely...

The front of the device is taken up by the letterbox touch screen. There is a 'settings' section in the GUI, but this doesn't contain what we want.

Left and right sides of the device are empty.

Bottom of the device has a button (screen on/off) and there's a little microphone inside there.

Rear of the device has a couple of 'grills' for the built in speaker and vents, a reset button (this just resets the device, no 'hold while powering on to get a shell') and the front facing camera (which can be gimballed a bit for aiming). It also has the stock 'straps' for attaching to the car rearview mirror - these can be unscrewed by removing the rubberised stickers/pads. The screws go into brass inserts in the plastic case - these will be useful for mounting properly.

At the top of the device, we have 3.5mm aux output, microSD card slot, 2.5mm A/V in (rear camera, 4-way jack - 5V, Gnd, composite video, 12V 'reverse light detection') and a USB-C socket.

Sticking a blank microSD card in results in the device offering to format it - partitionless fat32 with three directories - video, photos, events.

Connecting to a laptop via a USB cable... the device boots fine, but there's no sign of any data connection to the computer. Power only :-( There must be some signalling going on, as the (included) hardwire power adapter allows the device to continue to receive power with the ignition off (parking monitor) but this is likely to be fairly basic stuff, no data being transferred across.

Ok, next step...

The case is clipped together quite well, no large gaps to get fingernails into, but once started unclips quite easily. There are two DSI style cables between the board and the screen (a DSI for video, and a much smaller once for the touchscreen), but everything else is mounted to the back case.

The mainboard is pretty small, covering pretty much the whole height of the device, but about a third of the width. There is a tiny microphone at the bottom (connected by twisted pair into a removable connector), a small speaker (twisted pair, but soldered directly to the board), a small wifi antenna (perhaps also does bluetooth and FM), and that's pretty much it!

The mainboard has a few markings in English and a couple in Chinese, but not obvious UART pins or pads.

The rear of the mainboard has some interesting pads (a group of 8 and a group of 7, staggered), but most is covered by a metal shield.

After a while of holding logic analyser wires against various pads, and powercycling, managed to identify a serial port on the front of the mainboard. This was the serial console, and provided boot messages, a banner (Tina Linux) and login prompt - no autologin to root... Tina Linux appears to be an Allwinner OpenWRT fork. No default passwords, and the few 'obvious' combinations (root, password, admin etc) didn't work. The board also doesn't use uboot, and there appears to be no uboot-style recovery console :-(

Oh well. There is at least a shell there, waiting to be unlocked...

Discussions