* Willkommen // Welcome

Dieses Forum war im Bereich Siemens Router sehr aktiv. Ich behalte es online damit der Inhalt weiter gelesen werden kann.
This board was very active within Siemens router themes. I keep it online so that the content can still be read.


Autor Thema: BCM96345 (SE515) Firmware zerlegen und wieder zusammensetzen  (Gelesen 8583 mal)

Offline hph

  • Administrator
  • Tastaturkenner
  • *****
  • Beiträge: 474
    • heinz.hippenstiel.org
Eine kurze Anleitung zum zerlegen und zusammenbauen eines BCM963XX Images (Siemens SE515, TCom Sinus 1054 DSL, USR 9105/9106, usw). Die Binaries sind unten (bcm96345-toolbox.tar) und nur unter Linux verwendbar.

1. Zuerst das Original Image mit decompose zerlegen
./decompose se515b-v021402_19_ba09b6f
vendor  = '                    '
version = '                    '
model   = 'RTA770BW'
image size      = 3250374
loader address  = 3217031168
loader size     = 64412
root fs address = 3217096960
root fs size    = 2646016
kernel address  = 3219742976
kernel size     = 539946
header checksum = 1413864534, calculated = 1413864534
data checksum = 574286319, calculated = 574286319
payload checksum = 2450854774, calculated = 2450854774
Dabei werden ein paar Dateien im aktuellen Verzeichnis erzeugt. Zum Beispiel:
-rw-r--r--   1 hph hph 2646016 Dec 27 14:53 root_fs
-rw-r--r--   1 hph hph   64412 Dec 27 14:53 loader
-rw-r--r--   1 hph hph  539946 Dec 27 14:53 kernel
-rw-r--r--   1 hph hph     256 Dec 27 14:53 header

Für uns relevant ist das root_fs und der kernel. Der CFE Loader wird aus Sicherheitsgründen nicht wieder mit eingebaut (falls er überhaupt im Image war), da im Falle eines Flash Fehlschlags dadurch der CFE selber nicht zerstört wird und mit Boardmitteln (Webinterface auf 192.168.1.1) ein Recovery möglich ist. Der Header wird neu generiert.

2. Jetzt könnte das root_fs zerlegt, modifiziert und wieder zusammengesetzt werden (cramfsck, mkcramfsck).

3. Nun wird das Image mit recomp wieder zusammengesetzt. Dabei ist ein kleines Script hilfreich um die Parameter besser editieren zu können.
#!/bin/sh
#     '1234567890123456'
MODEL='RTA770BW'
#       '12345678901234'
VERSION='2.18.01_07c_a0_23e8'
#      '12345678901234567890'
VENDOR='hph'
#       '123456'
BOARDID='6345'

if [ -e loader ]; then
  echo "Found loader ... removing loader ..."
  rm loader
fi

echo "Recomposing image using ..."
echo "  MODEL   : $MODEL"
echo "  VERSION : $VERSION"
echo "  VENDOR  : $VENDOR"
echo "  BOARDID : $BOARDID"
./recomp -2 -m $MODEL -n $VERSION -v $VENDOR -b $BOARDID

Beispiel:
./se515
Found loader ... removing loader ...
Recomposing image using ...
  MODEL   : RTA770BW
  VERSION : 2.18.01_07c_a0_23e8
  VENDOR  : hph
  BOARDID : 6345
-rw-r--r--  1 hph hph 3186218 Dec 27 15:27 firmware.bin
Vier Parameter können übergeben werden, dabei sind VERSION und VENDOR eher informativ. Üblicherweise muss das MODEL mit der im Router vorhandenen Firmware übereinstimmen. Ansonsten verweigert das System den Flashvorgang. Die BOARDID könnte auch relevant sein, aber ein ändern erachte ich als nicht sinnvoll.

In der Vergangenheit habe ich zu Testzwecken Images von TCom, Dynalink, USR etc. zerlegt, mit dem MODEL Tag des SE515 versehen und im SE515 geflasht. Besonders interessant sind die Images von Dynalink, jedoch haben dieser leider alle Annex A und sind so in Deutschland unbrauchbar. In Frankreich, Belgien, Polen etc. aber nicht - wer also Lust hat seinen SE515 mal richtig aufzupeppen ... now you know it. ;-)

HP
« Letzte Änderung: 12 April 2007, 10:03:13 von hph »
Beschwerden an /dev/null senden