R-LinkUpdateEntpacken

Eine kurze Anleitung zum Entpacken der Firmware nach einem Software Update. Nur für Neugierige!

Die Datei content1 findet man nach dem Download im Cache Ordner der R-Link Toolbox. Das nachfolgende Skript ist etwas schnell zusammengehackt. Verbesserungsvorschläge willkommen.

"content1" ist (genauso wie all .ttpkg Dateien) ein Tar Archiv in dem alle 100k ein zusätzlicher Ballast (20 Byte) hinzugefügt wurde. Dazu kommen noch ein paar Byte am Anfang.

#!/bin/bash

while:; do
   dd conv=notrunc bs=102400 iflag=skip_bytes,fullblock \
       oflag=append skip=20 count=1 2>&1 >&3 | grep 0+1 && break
done < <(tail -c +9 content1) 3>&1 | tail -c +55 > content1.tar

Das Skript gibt ein content1.tar aus, das mit tar -xf content1.tar entpakt werden kann.

Neben Dateien für die Version (package.id), Pseudo-Updater (system-update_xxxxx_all.ipk), Prüfsummen (files) und Signaturen (files.sig) befindet sich im Archiv auch ein Ordner "system-update_xxxxxx_all_data". In diesem befindet sich der Linux Kernel (zImage) und das root-Dateisystem (rootfs.img.new). Letzteres kann man einfach loopback mounten. Das Kernelimage (mit der initramdisk) lässt sich mit Hilfe von z.B. repack-zImage.sh [1] weiter entpacken.

Leider sind alle Dateien signiert, sodass sich ein DIY Update nicht direkt einspielen lässt.