upgrade_tool uf custom_update.img
I connected the box to my PC using a USB-to-USB cable (a male-to-male USB cable is essential for Rockchip boxes).
The tricky part is getting the box into Mask ROM Mode (also known as Flash Mode). I found a tiny hole on the bottom of the case—the reset button.
The Rockchip Batch Tool lit up green, showing "Found One LOADER Device."
"Okay," I muttered, "so far, so good."
I selected the custom ROM .img file I downloaded. The tool parsed the file and showed a progress bar. I hit "Upgrade".
The bar moved to 100%. Then, the box rebooted.
Here is the scary part of any RK3229 story. Sometimes, the screen stays black. The remote stops working. Panic sets in. Did I brick it?
I unplugged the power, waited ten seconds, and plugged it back in. The familiar Android logo appeared, but this time, it was different. It was clean. No "SuperTV" or weird Chinese text.
Step 1: Enter Mask ROM Mode (The Hard Part) The RK3229 has no hard reset button. To force it into flash mode:
Step 2: Load the Firmware
Step 3: Erase Flash (Crucial)
Step 4: Download the ROM
Step 5: First Boot
The RK3229 has decent mainline support (kernel 6.1+).
U-Boot mainline:
git clone https://github.com/u-boot/u-boot.git
cd u-boot
make rk3229_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf-
# Generates idbloader.img and u-boot.itb
Build mainline kernel:
git clone https://github.com/torvalds/linux.git
cd linux
make multi_v7_defconfig
make menuconfig
# Enable: Rockchip RK3229, Mali 400 DRM driver, HDMI CEC
make zImage dtbs modules CROSS_COMPILE=arm-linux-gnueabihf-
Create bootable SD card:
sudo dd if=idbloader.img of=/dev/sdX seek=64
sudo dd if=u-boot.itb of=/dev/sdX seek=16384
# Partition 1: FAT32 with kernel + DTB
# Partition 2: ext4 with rootfs (e.g., Armbian Ubuntu)
Armbian build script (automated):
git clone https://github.com/armbian/build
cd build
./compile.sh BOARD=rk322x-box BRANCH=current RELEASE=focal BUILD_MINIMAL=yes