A hardening & tuning guide that takes the Handsome UZ801 from an unstable Android-remnant to a rock-solid Linux micro-server.
We use abootimg to modify the boot partition directly. This fix expands CMA memory available
to the modem and strips dead parameters that cause kernel confusion at boot time.
/dev/mmcblk0p12 are permanent and irreversible.
Always verify your PARTUUID before executing the update command.
sudo abootimg -i /dev/mmcblk0p12
We remove no_framebuffer=true (an unrecognized parameter) and add hugepages=0
to prevent the kernel from wasting resources on 1 GB memory pages that don't exist on this hardware.
sudo abootimg -u /dev/mmcblk0p12 \ -c "cmdline=earlycon root=PARTUUID=a7ab80e8-e9d1-e8cd-f157-93f69b1d141e \ console=ttyMSM0,115200 rw cma=64M androidboot.emmc=true hugepages=0"
Headless ARM devices frequently suffer from Entropy Starvation, causing SSH sessions
to hang for 30+ seconds on connect. Installing haveged ensures the Cryptographic Random
Number Generator (CRNG) initializes instantly at boot.
sudo apt update && sudo apt install haveged -y sudo systemctl enable --now haveged
With only 512 MB of physical RAM, every byte counts. Switching zRAM to zstd
(Zstandard) compression delivers a significantly better ratio than the default lz4,
effectively expanding usable memory headroom under load.
# Switch to Zstandard for better compression density ALGO=zstd
# Aggressively use zRAM — correct on memory-constrained devices vm.swappiness=100
sudo sysctl -p && sudo service zramswap restart
USB form-factor servers run hot. We implement a lightweight thermal monitor and suppress noisy deprecation warnings from leftover Android binaries to keep logs meaningful.
The adbd binary emits oom_adj is deprecated spam on every boot.
Lower kernel log verbosity to suppress it:
sudo sysctl -w kernel.printk="3 4 1 3"
Create /root/heat_check.sh to monitor thermal_zone0 and broadcast an alert if the device exceeds 75 °C:
#!/bin/bash TEMP=$(cat /sys/class/thermal/thermal_zone0/temp) if [ "$TEMP" -gt 75000 ]; then echo "CRITICAL HEAT: $((TEMP/1000))°C" | wall fi
remoteproc0, remoteproc1) and
l13 voltage warnings are normal for the PM8916 PMIC and can be safely ignored once the
CMA pool is correctly sized.
| Metric | Baseline | Optimized |
|---|---|---|
| CMA Reservation | 32 MB (default) | 64 MB +100% |
| Boot Log Status | Unknown parameter errors | 100% clean fixed |
| zRAM Algorithm | lz4 | zstd upgraded |
| HugePage Overhead | Enabled (invalid on HW) | Disabled removed |
| CRNG Init Time | 7.96 s | ~7.27 s −9% |
| Idle System Load | Unstable / noisy | 0.26 stable |