User Tools

Site Tools


accton:ros

.ros appears to be used for Marvell-powered switches.

I found this in some Dell and Netgear switches.

Offset Comment
00-0f Devicename?
10-1f Type of compression?
20-2f ?
Filemetadata, every 0x20
00-0f ASCII filename
10-13 Offset in file, excluding first 0x20 bytes
14-17 Length of file
17-1f ?

The offset and length is sometimes bigendian, sometimes little-endian, probably depending on CPU-type of the device.

Some of the files are uncompressed, some are compressed with LZMA (recognizable by 5D 00 00 80 header), some are compressed with LHA, some are ZIP-ish, etc. Interestingly, all parts are mostly decompressable by standaard tools (lharc, zip, lzma, etc.)

I made a small script to retrieve the parts from the rosfile: unros.pl

I have not yet been able to replace a LHA-part yet, succesfully. Probably there is a minor difference between the format the bootloader expects and what 'LHa for UNIX V 1.14i' generates. If I don't use any parameters it complains about the compression method (lh7) used. If I use compression method lh5, I get the following error on my PowerConnect 3324:

Autoboot in 2 seconds - press RETURN or Esc. to abort and enter prom.
Preparing to decompress...

Decompressing SW from image-1
There's an extended compress header.
There's an extended compress header.

Here is some stuff I found inside the powerconnect 35xx firmware:

smite@embatron:~/tmp/ros$ cat powerconnect_35xx-20029.ros | perl -w unros.pl
Filename: CLI_FILE
Offset: 400
Length: 132824
Filename: DELSCRF
Offset: 133224
Length: 428944
Filename: EWS_FILE
Offset: 562168
Length: 881732
Filename: UPNP_FILE
Offset: 1443900
Length: 15164
Filename: POE_FILE
Offset: 1459064
Length: 153713
Filename: CPLD_FILE_24
Offset: 1612777
Length: 60721
Filename: CPLD_FILE_48
Offset: 1673498
Length: 61025
Filename: CPLD_FILE_124
Offset: 1734523
Length: 62981
Filename: CPLD_FILE_148
Offset: 1797504
Length: 61153
Filename: DATETIME_C
Offset: 1858657
Length: 161
Filename: RSCODE
Offset: 1858818
Length: 3300176
Written 132824 bytes to CLI_FILE
Written 428944 bytes to DELSCRF
Written 881732 bytes to EWS_FILE
Written 15164 bytes to UPNP_FILE
Written 153713 bytes to POE_FILE
Written 60721 bytes to CPLD_FILE_24
Written 61025 bytes to CPLD_FILE_48
Written 62981 bytes to CPLD_FILE_124
Written 61153 bytes to CPLD_FILE_148
Written 161 bytes to DATETIME_C
Written 3300176 bytes to RSCODE
smite@embatron:~/tmp/ros$ cat CLI_FILE | lzma -d | strings | head
 !.%
 u3%
!GA%
!qD%
"CL%
#*W%
$el%
8>source-url-enum
running-config
Copy from the current running configuration file.
smite@embatron:~/tmp/ros$ head POE_FILE
Product  Number:            00
S0   Software Number:     0603
S0   Param    Number:       04
S0   Build:                        002
S0   File Name - 00060304_0355_002.s19
S0   Base On File - Kerenl_22022007.s19
S0   Time 08:53:36  Date  22/02/2007
S0  /*************************************************************************************************/
S0  /*                                                                                               */
S0  /*                                                                                               */
smite@embatron:~/tmp/ros$ cat RSCODE | lzma -d | strings | head
 MPU
 MMU
 ARCH 5
1.2/1.6.1
Detected DRAM
Detect SysClk  %dMHz
Detect Tclk    %dMHz
Marvell Controller initialization failed
Marvell Controller initialization Done.
mvCtrlInit2..... done
smite@embatron:~/tmp/ros$ strings DATETIME_C
:37";
char OGCFG_link_date[] = " 13-Jan-2009";
char OGCFG_link_version[] = "2.0.0.29";
char OGCFG_link_arc_magic[] = "DE03";
DE032.00
smite@embatron:~/tmp/ros$ zip -F EWS_FILE
zip: reading LineGraphApplet.class
zip: reading META-INF/MANIFEST.MF
zip: reading linechart.class
zip: reading netscape/javascript/JSException.class
zip: reading netscape/javascript/JSObject.class
smite@embatron:~/tmp/ros$
accton/ros.txt · Last modified: 2013/04/17 01:01 (external edit)