I bought this camera in the hope I could make a cheap security system out of it. I first tried ESP32’s but the image quality was horrible. I’m not talking resolution, but it had green and magenta stripes that flickered randomly to the point it wasn’t worth looking at.
Anyways, here is the good stuff:
The camera I am operating on is A9-L2-V7 and is running Thread Operating System 3.1.0 build Aug 19 2021
I was able to communicate with the device over the micro USB port and connect it to a USB to TTL
I am an amateur on hacking devices but I was able to dump part of the flash using the in-device command fal probe
. The output of this command gave me a table.
[I/FAL] | name | flash_dev | offset | length |
[I/FAL] -------------------------------------------------------------
[I/FAL] | bootloader | beken_onchip_crc | 0x00001f00 | 0x0000e000 |
[I/FAL] | app | beken_onchip_crc | 0x00010000 | 0x00110000 |
[I/FAL] | download | beken_onchip | 0x00132000 | 0x000cc000 |
[I/FAL] =============================================================
With this information, I used the commands fal probe bootloader
then fal read *address *length
. These commands made it read and paste the output of the flash memory. As this command didn’t give me the ability to write to a file, I had to copy and paste from the putty terminal. This is of itself isn’t horrible, but the device was only able to print out 12KB of data at a time, or else it crashed.
With some copy and paste magic, with along sprinkle of programming to format files, I was able to make some .bin files.
Here are the files:
https://cdn.discordapp.com/attachments/755599394182660136/934028339864297532/A9_cam_dump.zip
I haven’t had the chance to error-check the files, so it might be possible that I didn’t copy and paste a section. I added the raw text so you can check to make sure that the address is in the correct order and without gaps.
Of the three available partitions, the download partition kept just giving errors, so there was no luck of me recovering it. Also, the other partitions that I did get, the end of the partition read was acting weird, It was giving errors such as out of bounds of partition when I know for a fact I was inside. Therefore, the trailing end of the dumps might be missing or incorrect.
I was able to do a binwalk of the files:
P.S. To stop the device from constantly looking for an AP, type rxsens
it shuts it up for some reason.
also, as per the console, the resolution of this device is 640x480, don’t believe any China marketing lies that say it is HD.
I hope this helps someone!