Poddałem się, jest strasznie namotane w tym skrypcie. Zamiast go analizować, jednak go użyłem 
Za to udało mi się go postawić w łatwy, czysty i przyjemny sposób - załączam Dockerfile, może się komuś przyda:
FROM ubuntu:16.04
ARG USER=padavan
ARG HOME=/home/${USER}
RUN set -eu; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat \
wget \
tree \
sudo \
less \
vim; \
useradd -m -G sudo ${USER}; \
echo '%sudo ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
USER ${USER}
WORKDIR ${HOME}
RUN set -eu; \
wget -O start.sh http://prometheus.freize.net/script/start-100.sh; \
chmod +x start.sh; \
echo -e '2\n2\n7\nQ\n' | ./start.sh
CMD ["./start.sh"]
Przy jego pomocy udało się cofnąć firmware do tego:
Dioda mrugała na czerwono, po podłączeniu pena i wciśnięciu resetu załapało i mogłem podziwiać chińskie krzaczki na http://192.168.31.1
Mając już ten tool uruchomiony, postanowiłem też przetestować opcję odgadywania hasła SSH bez tej całej parady z aplikacjami i kontami Xiaomi - po omacku po krzakach ustawiłem hasło na 1234567890 - i ku mojemu zdziwieniu, to również zadziałało 
Tak wygląda tablica partycji na tym sofcie:
root@XiaoQiang:~# cat /proc/mtd
dev: size erasesize name
mtd0: 07f80000 00020000 "ALL"
mtd1: 00080000 00020000 "Bootloader"
mtd2: 00040000 00020000 "Config"
mtd3: 00040000 00020000 "Bdata"
mtd4: 00040000 00020000 "Factory"
mtd5: 00040000 00020000 "crash"
mtd6: 00040000 00020000 "crash_syslog"
mtd7: 00040000 00020000 "reserved0"
mtd8: 00400000 00020000 "kernel0"
mtd9: 00400000 00020000 "kernel1"
mtd10: 02000000 00020000 "rootfs0"
mtd11: 02000000 00020000 "rootfs1"
mtd12: 03580000 00020000 "overlay"
mtd13: 012a6000 0001f000 "ubi_rootfs"
mtd14: 030ec000 0001f000 "data"
Postanowiłem ją "uwiecznić" na wypadek gdyby coś poszło nie tak dziś lub w przyszłości:
for i in $(seq 0 14); do cat /dev/mtdblock$i > /extdisks/sda1/backup/mtdblock$i.bin; done
Zassałem `kernel1` i `rootfs0` od Cezarego: https://dl.eko.one.pl/openwrt-19.07/tar … ps/mt7621/ i dalej tak jak na wiki OpenWRT: https://openwrt.org/toh/xiaomi/mir3g#in … sh_for_r3g (dla bezpieczeństwa skopiowałem biny do `/tmp` aby nie flashować z pena).
root@XiaoQiang:~# mtd write /tmp/kernel1.bin kernel1
Unlocking kernel1 ...
Writing from /tmp/kernel1.bin to kernel1 ...
root@XiaoQiang:~# mtd write /tmp/rootfs0.bin rootfs0
Unlocking rootfs0 ...
Writing from /tmp/rootfs0.bin to rootfs0 ...
root@XiaoQiang:~# nvram set flag_try_sys1_failed=1
root@XiaoQiang:~# nvram commit
root@XiaoQiang:~# reboot
No i stała się światłość:
BusyBox v1.30.1 () built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------------------------------
| |
| OpenWrt 19.07-SNAPSHOT, r11081-6a89098935 |
| |
| Build time: 2020-05-23 13:42 CEST |
| Cezary Jackiewicz (obsy), http://eko.one.pl |
| |
-----------------------------------------------------------------------------
| Machine: Xiaomi Mi Router 3G |
| Uptime: 0d, 00:03:12 |
| Load: 0.14 0.15 0.07 |
| Flash: total: 98.0MB, free: 93.2MB, used: 0% |
| Memory: total: 247.8MB, free: 220.5MB, used: 11% |
| Leases: 1 |
| lan: static, 192.168.1.1 |
| wan: dhcp, ? |
| wan6: dhcpv6, ? |
-----------------------------------------------------------------------------
BTW. Jeszcze zostawię informację dla tych, którzy jednak są za Padavanem - analizując ten skrypt trafiłem na adres repo i okazuje się, że jednak ktoś to utrzymuje: https://gitlab.com/dm38/padavan-ng/-/commits/master
Ostatni commit z dzisiaj - więc rozważam jednak drugą szansę dla niego, skoro mam już całe środowisko postawione do obracania firmware w tym routerze.
Podobno ten Padavan ma być bardziej wydajny i stabilny z powodu zastosowania zamkniętych sterowników - ten stan jest utrzymany na rok 2020? A może polecicie jakiś zestaw narzędzi aby to samemu zweryfikować i przetestować? iperf3?