Print

FirmwareComparison

Your IP: 38.107.179.213
View number: 8749

Firmware Build Comparison
Close
noteComment

The details shown here are from the February, 2010, ASUS firmware release.
The procedure should be the same or similar for any release.



1. Download the archives.

Download copies of the archives to your usual location for downloaded files.
Be certain that the download tool you use does a binary transfer.

The archives used in this example where:
ftp://ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R1/Firmware/HDP_R1_FW_V121NTSC.zip(external link)
ftp://ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R1/Firmware/HDP_R1_FW_V121PAL.zip(external link)
ftp://ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R3/Firmware/HDP_R3_FW_109PAL.zip(external link)
ftp://ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R3/Firmware/HDP_R3_FW_109NTSC.zip(external link)

2. Make a workspace directory.

The name and location are not significant.
Create a new directory and make it the current directory.

mszick@deb2core:/Builds$ mkdir ASUS
mszick@deb2core:/Builds$ cd ASUS

3. Make copies of the downloads.

The source path should match wherever you downloaded them too.
The trailing '.' means: "destination here".

mszick@deb2core:/Builds/ASUS$ cp -a /Builds/SRCS/ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R1/Firmware/HDP_R1_FW_V121NTSC.zip .
mszick@deb2core:/Builds/ASUS$ cp -a /Builds/SRCS/ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R1/Firmware/HDP_R1_FW_V121PAL.zip .
mszick@deb2core:/Builds/ASUS$ cp -a /Builds/SRCS/ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R3/Firmware/HDP_R3_FW_109PAL.zip .
mszick@deb2core:/Builds/ASUS$ cp -a /Builds/SRCS/ftp.asus.com.tw/pub/asus/Digital_Media_Player/HDP-R3/Firmware/HDP_R3_FW_109NTSC.zip .

4. Test the integrity of the archives.

ASUS does not provide checksums for their posted files but the archive format used does have checksums that should be sufficient to detect the results of a non-binary transfer.

mszick@deb2core:/Builds/ASUS$ for f in `ls *.zip` ; do echo $f ; unzip -t $f ; done
HDP_R1_FW_V121NTSC.zip
Archive:  HDP_R1_FW_V121NTSC.zip
    testing: HDP_R1_FW_V121NTSC/      OK
    testing: HDP_R1_FW_V121NTSC/install.img   OK
No errors detected in compressed data of HDP_R1_FW_V121NTSC.zip.
HDP_R1_FW_V121PAL.zip
Archive:  HDP_R1_FW_V121PAL.zip
    testing: HDP_R1_FW_V121PAL/       OK
    testing: HDP_R1_FW_V121PAL/install.img   OK
No errors detected in compressed data of HDP_R1_FW_V121PAL.zip.
HDP_R3_FW_109NTSC.zip
Archive:  HDP_R3_FW_109NTSC.zip
    testing: HDP_R3_FW_109NTSC/       OK
    testing: HDP_R3_FW_109NTSC/install.img   OK
No errors detected in compressed data of HDP_R3_FW_109NTSC.zip.
HDP_R3_FW_109PAL.zip
Archive:  HDP_R3_FW_109PAL.zip
    testing: HDP_R3_FW_109PAL/        OK
    testing: HDP_R3_FW_109PAL/install.img   OK
No errors detected in compressed data of HDP_R3_FW_109PAL.zip.

5. Expand archives with included pathnames.

We can see in the above step that each archive includes a different pathname.
So all four can be unpacked in-place without overwriting each other.

mszick@deb2core:/Builds/ASUS$ for f in `ls *.zip` ; do echo $f ; unzip $f ; done
HDP_R1_FW_V121NTSC.zip
Archive:  HDP_R1_FW_V121NTSC.zip
   creating: HDP_R1_FW_V121NTSC/
  inflating: HDP_R1_FW_V121NTSC/install.img
HDP_R1_FW_V121PAL.zip
Archive:  HDP_R1_FW_V121PAL.zip
   creating: HDP_R1_FW_V121PAL/
  inflating: HDP_R1_FW_V121PAL/install.img
HDP_R3_FW_109NTSC.zip
Archive:  HDP_R3_FW_109NTSC.zip
   creating: HDP_R3_FW_109NTSC/
  inflating: HDP_R3_FW_109NTSC/install.img
HDP_R3_FW_109PAL.zip
Archive:  HDP_R3_FW_109PAL.zip
   creating: HDP_R3_FW_109PAL/
  inflating: HDP_R3_FW_109PAL/install.img

6. Make some progress checks.

Just to get an idea of what our results are at this point.

Close
noteOSS Tool

The sha1deep tool is part of the md5deep set of tools.
Not included in all linux distributions, but available here:
http://md5deep.sourceforge.net/(external link)

6.1. View the size, sha1sum and full names.

Expect that each file now present will have different checksums.

mszick@deb2core:/Builds/ASUS$ sha1deep -r -z *
 104622096  3149b76c903ecfda4816d9f8cbf6959cecb1f896  /Builds/ASUS/HDP_R1_FW_V121NTSC/install.img
  29027177  44e37279748ccf7fdbf4a7ab7b7c6ac5f526f840  /Builds/ASUS/HDP_R1_FW_V121NTSC.zip
 102481936  c420a47e11b79dcd09964bd11d2e117d658079e0  /Builds/ASUS/HDP_R1_FW_V121PAL/install.img
  28362748  ebde85abd1e0fc8c53857b350f4ade302f2450fe  /Builds/ASUS/HDP_R1_FW_V121PAL.zip
 104622096  75f474d5134d6823af0f8274f98e3b4c10002cef  /Builds/ASUS/HDP_R3_FW_109NTSC/install.img
  29026517  bbe1e4b41cea30acb730155779cd822cbda13992  /Builds/ASUS/HDP_R3_FW_109NTSC.zip
 104622096  22aa51bf803950f5b7bd67d4d2ec7b5b2e988808  /Builds/ASUS/HDP_R3_FW_109PAL/install.img
  29027611  3ca461b591d0b8181c30246b8b69293d8afbe2eb  /Builds/ASUS/HDP_R3_FW_109PAL.zip

6.2. Check the file types.

Expect that each image file is the same type of file.

mszick@deb2core:/Builds/ASUS$ for f in `find . -name "*.img" ` ; do file $f ; done
./HDP_R3_FW_109NTSC/install.img: POSIX tar archive (GNU)
./HDP_R3_FW_109PAL/install.img: POSIX tar archive (GNU)
./HDP_R1_FW_V121PAL/install.img: POSIX tar archive (GNU)
./HDP_R1_FW_V121NTSC/install.img: POSIX tar archive (GNU)

7. Extract all four images in-place.

Each will be extracted into their corresponding part of our workspace tree.

mszick@deb2core:/Builds/ASUS$ for d in `find . -type d -a ! -wholename '.'` ; do cd $d ; tar --extract --file=install.img ; cd .. ; done

8. Identify common files.

Our primary interest is in the files of the four packages that differ.
Start with a list of all files, grouped by common content checksums.

Close
noteNote

I have added in comments and blank lines to the output of the following command.

mszick@deb2core:/Builds/ASUS$ sha1deep -r * | sort  -n

- - Common yaffs2 image utility
a0bf7c2d6bf69dfaf531dc10a0fb3e2341cfb787  /Builds/ASUS/HDP_R1_FW_V121NTSC/mkyaffs2image
a0bf7c2d6bf69dfaf531dc10a0fb3e2341cfb787  /Builds/ASUS/HDP_R1_FW_V121PAL/mkyaffs2image
a0bf7c2d6bf69dfaf531dc10a0fb3e2341cfb787  /Builds/ASUS/HDP_R3_FW_109NTSC/mkyaffs2image
a0bf7c2d6bf69dfaf531dc10a0fb3e2341cfb787  /Builds/ASUS/HDP_R3_FW_109PAL/mkyaffs2image

a17245e575d1f6c434ee9ffefad735a25bef72d6  /Builds/ASUS/HDP_R1_FW_V121PAL/package2/yaffs2_1.img

a5d3b96daaa70e462b6005119d105e866b8301b1  /Builds/ASUS/HDP_R3_FW_109NTSC/package2/usr.local.etc.tar.bz2

- - Common audio binary blob
b6e4f539ac353b756941713c3f659609b41bfa52  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/bluecore.audio
b6e4f539ac353b756941713c3f659609b41bfa52  /Builds/ASUS/HDP_R1_FW_V121PAL/package2/bluecore.audio
b6e4f539ac353b756941713c3f659609b41bfa52  /Builds/ASUS/HDP_R3_FW_109NTSC/package2/bluecore.audio
b6e4f539ac353b756941713c3f659609b41bfa52  /Builds/ASUS/HDP_R3_FW_109PAL/package2/bluecore.audio

- - One of the download copies
bbe1e4b41cea30acb730155779cd822cbda13992  /Builds/ASUS/HDP_R3_FW_109NTSC.zip

c420a47e11b79dcd09964bd11d2e117d658079e0  /Builds/ASUS/HDP_R1_FW_V121PAL/install.img

c4fdb53b6352a7a688b4322658d52b450be48f1b  /Builds/ASUS/HDP_R1_FW_V121PAL/package2/usr.local.etc.tar.bz2

- - Common Linux kernel
d2e9f62d0a2d962e769d9678e6caab8837be95ad  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/vmlinux.develop.avhdd.mars.nand.bin
d2e9f62d0a2d962e769d9678e6caab8837be95ad  /Builds/ASUS/HDP_R1_FW_V121PAL/package2/vmlinux.develop.avhdd.mars.nand.bin
d2e9f62d0a2d962e769d9678e6caab8837be95ad  /Builds/ASUS/HDP_R3_FW_109NTSC/package2/vmlinux.develop.avhdd.mars.nand.bin
d2e9f62d0a2d962e769d9678e6caab8837be95ad  /Builds/ASUS/HDP_R3_FW_109PAL/package2/vmlinux.develop.avhdd.mars.nand.bin

d3cffd6bc087e44e050b923ff180ded8a3c0854b  /Builds/ASUS/HDP_R3_FW_109PAL/package2/yaffs2_1.img

e0365012fa758cb0e7d2c128ea0c4b96a8f76829  /Builds/ASUS/HDP_R3_FW_109PAL/configuration.xml

e45d0ba92d2eeb06b64b3e5344228434669e289c  /Builds/ASUS/HDP_R1_FW_V121PAL/configuration.xml

- - Common video binary blob
e8c9a7acc3ed16b4251d752c9c22f06497fb4888  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/video_firmware.bin
e8c9a7acc3ed16b4251d752c9c22f06497fb4888  /Builds/ASUS/HDP_R1_FW_V121PAL/package2/video_firmware.bin
e8c9a7acc3ed16b4251d752c9c22f06497fb4888  /Builds/ASUS/HDP_R3_FW_109NTSC/package2/video_firmware.bin
e8c9a7acc3ed16b4251d752c9c22f06497fb4888  /Builds/ASUS/HDP_R3_FW_109PAL/package2/video_firmware.bin

- - One of the download copies
ebde85abd1e0fc8c53857b350f4ade302f2450fe  /Builds/ASUS/HDP_R1_FW_V121PAL.zip

- - Common video binary installer
f3a5270e8a57633b5916db29bfc191587666730d  /Builds/ASUS/HDP_R1_FW_V121NTSC/video_firmware.install.bin
f3a5270e8a57633b5916db29bfc191587666730d  /Builds/ASUS/HDP_R1_FW_V121PAL/video_firmware.install.bin
f3a5270e8a57633b5916db29bfc191587666730d  /Builds/ASUS/HDP_R3_FW_109NTSC/video_firmware.install.bin
f3a5270e8a57633b5916db29bfc191587666730d  /Builds/ASUS/HDP_R3_FW_109PAL/video_firmware.install.bin

- - Common flash erase tool
fc904efae0e7099886169e5f5bd5389b5f0780d5  /Builds/ASUS/HDP_R1_FW_V121NTSC/flash_erase
fc904efae0e7099886169e5f5bd5389b5f0780d5  /Builds/ASUS/HDP_R1_FW_V121PAL/flash_erase
fc904efae0e7099886169e5f5bd5389b5f0780d5  /Builds/ASUS/HDP_R3_FW_109NTSC/flash_erase
fc904efae0e7099886169e5f5bd5389b5f0780d5  /Builds/ASUS/HDP_R3_FW_109PAL/flash_erase

- - Common font file
2ba93371b9ad827d33b3f4f77bc823bcc601ad39  /Builds/ASUS/HDP_R1_FW_V121NTSC/arial.ttf
2ba93371b9ad827d33b3f4f77bc823bcc601ad39  /Builds/ASUS/HDP_R1_FW_V121PAL/arial.ttf
2ba93371b9ad827d33b3f4f77bc823bcc601ad39  /Builds/ASUS/HDP_R3_FW_109NTSC/arial.ttf
2ba93371b9ad827d33b3f4f77bc823bcc601ad39  /Builds/ASUS/HDP_R3_FW_109PAL/arial.ttf

- - One of the download copies
3ca461b591d0b8181c30246b8b69293d8afbe2eb  /Builds/ASUS/HDP_R3_FW_109PAL.zip

4ea2688acd316dc4cfd8d60ae6060da480c90397  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/yaffs2_1.img

- - Common file system creation tool
5b43f0ec31c23ed511b2a5a0f571eafaf4a9a48f  /Builds/ASUS/HDP_R1_FW_V121NTSC/mkfs.jffs2
5b43f0ec31c23ed511b2a5a0f571eafaf4a9a48f  /Builds/ASUS/HDP_R1_FW_V121PAL/mkfs.jffs2
5b43f0ec31c23ed511b2a5a0f571eafaf4a9a48f  /Builds/ASUS/HDP_R3_FW_109NTSC/mkfs.jffs2
5b43f0ec31c23ed511b2a5a0f571eafaf4a9a48f  /Builds/ASUS/HDP_R3_FW_109PAL/mkfs.jffs2

7ca277599d757dbf30cdc0cbac4f74f80ac7a4af  /Builds/ASUS/HDP_R1_FW_V121NTSC/configuration.xml

22aa51bf803950f5b7bd67d4d2ec7b5b2e988808  /Builds/ASUS/HDP_R3_FW_109PAL/install.img

- - One of the download copies
44e37279748ccf7fdbf4a7ab7b7c6ac5f526f840  /Builds/ASUS/HDP_R1_FW_V121NTSC.zip

73e8f5023ec852cca082faa82ca678ae94d820f7  /Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2_1.img

75f474d5134d6823af0f8274f98e3b4c10002cef  /Builds/ASUS/HDP_R3_FW_109NTSC/install.img

- - Common audio binary installer
83a967ba97ceedeef8da332acad1e2744507c8ab  /Builds/ASUS/HDP_R1_FW_V121NTSC/audio_firmware.install.bin
83a967ba97ceedeef8da332acad1e2744507c8ab  /Builds/ASUS/HDP_R1_FW_V121PAL/audio_firmware.install.bin
83a967ba97ceedeef8da332acad1e2744507c8ab  /Builds/ASUS/HDP_R3_FW_109NTSC/audio_firmware.install.bin
83a967ba97ceedeef8da332acad1e2744507c8ab  /Builds/ASUS/HDP_R3_FW_109PAL/audio_firmware.install.bin

2492a82e5dfe6a004893e9f6d5092750a21fc999  /Builds/ASUS/HDP_R3_FW_109PAL/package2/usr.local.etc.tar.bz2

3149b76c903ecfda4816d9f8cbf6959cecb1f896  /Builds/ASUS/HDP_R1_FW_V121NTSC/install.img

5576f2745f14d20ff60b7a71ab05e1af45fdd616  /Builds/ASUS/HDP_R3_FW_109NTSC/configuration.xml

- - Common installation binary
8250be031d5c9e02f544f95636b5e4edceb92339  /Builds/ASUS/HDP_R1_FW_V121NTSC/install_a
8250be031d5c9e02f544f95636b5e4edceb92339  /Builds/ASUS/HDP_R1_FW_V121PAL/install_a
8250be031d5c9e02f544f95636b5e4edceb92339  /Builds/ASUS/HDP_R3_FW_109NTSC/install_a
8250be031d5c9e02f544f95636b5e4edceb92339  /Builds/ASUS/HDP_R3_FW_109PAL/install_a

47693b80310dfdacf90c78a890c4156d27be99ce  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/usr.local.etc.tar.bz2

- - Common flash write tool
866925e2c4727d65a4305a2ad06fced58f832908  /Builds/ASUS/HDP_R1_FW_V121NTSC/nandwrite
866925e2c4727d65a4305a2ad06fced58f832908  /Builds/ASUS/HDP_R1_FW_V121PAL/nandwrite
866925e2c4727d65a4305a2ad06fced58f832908  /Builds/ASUS/HDP_R3_FW_109NTSC/nandwrite
866925e2c4727d65a4305a2ad06fced58f832908  /Builds/ASUS/HDP_R3_FW_109PAL/nandwrite

Identification of the items common in all four files is a step towards identifying what is different.
Also note that the "package1" and "squashFS" stuff has been removed from the firmware archives since Firmware R1 1.21 / R3 1.09.

9. Files to be examined.

The four firmware images have three files that differ between them and the common Linux kernel binary.
The kernel binary is on our list of things to be examined because it can contain an early userspace file system which can contain scripting.

Work List
d2e9f62d0a2d962e769d9678e6caab8837be95ad  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/vmlinux.develop.avhdd.mars.nand.bin

7ca277599d757dbf30cdc0cbac4f74f80ac7a4af  /Builds/ASUS/HDP_R1_FW_V121NTSC/configuration.xml
5576f2745f14d20ff60b7a71ab05e1af45fdd616  /Builds/ASUS/HDP_R3_FW_109NTSC/configuration.xml
e45d0ba92d2eeb06b64b3e5344228434669e289c  /Builds/ASUS/HDP_R1_FW_V121PAL/configuration.xml
e0365012fa758cb0e7d2c128ea0c4b96a8f76829  /Builds/ASUS/HDP_R3_FW_109PAL/configuration.xml

4ea2688acd316dc4cfd8d60ae6060da480c90397  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/yaffs2_1.img
73e8f5023ec852cca082faa82ca678ae94d820f7  /Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2_1.img
a17245e575d1f6c434ee9ffefad735a25bef72d6  /Builds/ASUS/HDP_R1_FW_V121PAL/package2/yaffs2_1.img
d3cffd6bc087e44e050b923ff180ded8a3c0854b  /Builds/ASUS/HDP_R3_FW_109PAL/package2/yaffs2_1.img

47693b80310dfdacf90c78a890c4156d27be99ce  /Builds/ASUS/HDP_R1_FW_V121NTSC/package2/usr.local.etc.tar.bz2
a5d3b96daaa70e462b6005119d105e866b8301b1  /Builds/ASUS/HDP_R3_FW_109NTSC/package2/usr.local.etc.tar.bz2
c4fdb53b6352a7a688b4322658d52b450be48f1b  /Builds/ASUS/HDP_R1_FW_V121PAL/package2/usr.local.etc.tar.bz2
2492a82e5dfe6a004893e9f6d5092750a21fc999  /Builds/ASUS/HDP_R3_FW_109PAL/package2/usr.local.etc.tar.bz2

10. Check for early userspace scripting.

Close
noteComment

Detailed instructions can be found on the Custom Initial ramFS page.

10.1. Change to package2 directory.

mszick@deb2core:/Builds/ASUS$ cd HDP_R1_FW_V121PAL/package2/
mszick@deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2$ ls
bluecore.audio  usr.local.etc.tar.bz2  video_firmware.bin  vmlinux.develop.avhdd.mars.nand.bin  yaffs2_1.img

10.2. Locate start of Early Userspace archive.

mszick@deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2$ od -A d -t x1 vmlinux.develop.avhdd.mars.nand.bin | grep "1f 8b 08 00"
4161536 1f 8b 08 00 77 c5 57 4b 02 03 33 30 37 30 37 30

Data Translation
0x1F 0x8B 31, 139 - gzip magic number
0x08 compression method (deflate)
0x00 flags (none)
0x77 0xC5 0x57 0x4B modification time
0x02 extra flags (maximum compression)
0x03 operating system (Unix)

For all the gory details see section 2.3 of: http://tools.ietf.org/html/rfc1952(external link)

10.3. Copy the archive off kernel image.

mszick@deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2$ dd if=vmlinux.develop.avhdd.mars.nand.bin bs=1 skip=4161536 of=vmlinux.develop.avhdd.mars.nand.cpio.gz
134+0 records in
134+0 records out
134 bytes (134 B) copied, 0.000408345 s, 328 kB/s

10.4. Check for appended data.

A gzip compressed file may have additional data appended to it.
For instance, some Linux distributions like to append their graphic logo file to this early userspace archive.
A gzip compressed file may also have executable code appended to it (a rarely used feature of gzip).

For an example see the investigation of the kernel in the yaffs2 image below.

10.5. Uncompress the archive.

mszick@deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2$ gunzip vmlinux.develop.avhdd.mars.nand.cpio.gz

10.6. Extract archive to file system.

Close
warningWarning

You must be "root" to properly extract the special files and permissions.
Either switch user (su) or use the sudo command for the extraction.
Be certain to include the --no-absolute-filenames option!


mszick@deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2$ su
Password: 
deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2# cpio --extract --make-directories --no-absolute-filenames -I vmlinux.develop.avhdd.mars.nand.cpio
cpio: Removing leading `/' from member names
1 block

If you want to check the file format for a valid cpio format, see: http://people.freebsd.org/~kientzle/libarchive/man/cpio.5.txt(external link)

10.7. Check what was added to the file system tree.

deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2# ls -l
total 94712
-rw-r--r-- 1 mszick mszick  1787432 2009-12-01 23:23 bluecore.audio
drwxr-xr-x 2 root   root       4096 2010-02-13 11:23 dev
drwx------ 2 root   root       4096 2010-02-13 11:23 root
-rw-r--r-- 1 mszick mszick     5258 2010-02-11 04:54 usr.local.etc.tar.bz2
-rwxr-xr-x 1 mszick mszick  2267176 2010-02-05 04:54 video_firmware.bin
-rwxr-xr-x 1 mszick mszick  4161670 2010-01-20 21:13 vmlinux.develop.avhdd.mars.nand.bin
-rw-r--r-- 1 mszick mszick      512 2010-02-13 11:21 vmlinux.develop.avhdd.mars.nand.cpio
-rw-r--r-- 1 mszick mszick 88630080 2010-02-11 04:54 yaffs2_1.img
deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2# ls -l dev root
dev:
total 0
crw------- 1 root root 5, 1 2010-02-13 11:23 console

root:
total 0

Close
warningDetermined

Translation: No Early Userspace scripting present.

10.8. Create a eus workspace directory and move the archive contents.

deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2# mkdir eus
deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2# mv dev root eus
deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2# ls -l eus
total 8
drwxr-xr-x 2 root root 4096 2010-02-13 11:23 dev
drwx------ 2 root root 4096 2010-02-13 11:23 root

10.9. Drop "root" user level and return to top workspace.

deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2# exit
exit
mszick@deb2core:/Builds/ASUS/HDP_R1_FW_V121PAL/package2$ cd -
/Builds/ASUS
mszick@deb2core:/Builds/ASUS$

11. Comparing configuration.xml files

This is the flash burner's configuration file.

11.1. R3 to R1 for NTSC

mszick@deb2core:/Builds/ASUS$ diff -u ./HDP_R3_FW_109NTSC/configuration.xml ./HDP_R1_FW_V121NTSC/configuration.xml
--- ./HDP_R3_FW_109NTSC/configuration.xml	2010-02-11 04:15:32.000000000 -0600
+++ ./HDP_R1_FW_V121NTSC/configuration.xml	2010-02-11 04:43:17.000000000 -0600
@@ -2,9 +2,9 @@
 <packageFile>
     <info>
         <company>Realtek Semiconductor Corp.</company>
-        <description>HDP-R3</description>
-        <version>01.09N</version>
-        <releaseDate>02/11/10 18:15</releaseDate>
+        <description>HDP-R1</description>
+        <version>01.21N</version>
+        <releaseDate>02/11/10 18:43</releaseDate>
         <signature>MARS AVHDD on NOR or NAND</signature>
     </info>
     <installerAP>

Close
warningDetermined

Differs only by release version and date. Not functionally significant.

11.2. R3 to R1 for PAL

mszick@deb2core:/Builds/ASUS$ diff -u ./HDP_R3_FW_109PAL/configuration.xml ./HDP_R1_FW_V121NTSC/configuration.xml
--- ./HDP_R3_FW_109PAL/configuration.xml	2010-02-11 04:07:10.000000000 -0600
+++ ./HDP_R1_FW_V121NTSC/configuration.xml	2010-02-11 04:43:17.000000000 -0600
@@ -2,9 +2,9 @@
 <packageFile>
     <info>
         <company>Realtek Semiconductor Corp.</company>
-        <description>HDP-R3</description>
-        <version>01.09P</version>
-        <releaseDate>02/11/10 18:07</releaseDate>
+        <description>HDP-R1</description>
+        <version>01.21N</version>
+        <releaseDate>02/11/10 18:43</releaseDate>
         <signature>MARS AVHDD on NOR or NAND</signature>
     </info>
     <installerAP>

Close
warningDetermined

Differs only by release version and date. Not functionally significant.

11.3. R1 NTSC to R1 PAL

mszick@deb2core:/Builds/ASUS$ diff -u ./HDP_R1_FW_V121NTSC/configuration.xml ./HDP_R1_FW_V121PAL/configuration.xml
--- ./HDP_R1_FW_V121NTSC/configuration.xml	2010-02-11 04:43:17.000000000 -0600
+++ ./HDP_R1_FW_V121PAL/configuration.xml	2010-02-11 04:54:28.000000000 -0600
@@ -3,8 +3,8 @@
     <info>
         <company>Realtek Semiconductor Corp.</company>
         <description>HDP-R1</description>
-        <version>01.21N</version>
-        <releaseDate>02/11/10 18:43</releaseDate>
+        <version>01.21P</version>
+        <releaseDate>02/11/10 18:54</releaseDate>
         <signature>MARS AVHDD on NOR or NAND</signature>
     </info>
     <installerAP>

Close
warningDetermined

Differs only by release version and date. Not functionally significant.

11.4. R3 NTSC to R3 PAL

mszick@deb2core:/Builds/ASUS$ diff -u ./HDP_R3_FW_109NTSC/configuration.xml ./HDP_R3_FW_109PAL/configuration.xml
--- ./HDP_R3_FW_109NTSC/configuration.xml	2010-02-11 04:15:32.000000000 -0600
+++ ./HDP_R3_FW_109PAL/configuration.xml	2010-02-11 04:07:10.000000000 -0600
@@ -3,8 +3,8 @@
     <info>
         <company>Realtek Semiconductor Corp.</company>
         <description>HDP-R3</description>
-        <version>01.09N</version>
-        <releaseDate>02/11/10 18:15</releaseDate>
+        <version>01.09P</version>
+        <releaseDate>02/11/10 18:07</releaseDate>
         <signature>MARS AVHDD on NOR or NAND</signature>
     </info>
     <installerAP>

Close
warningDetermined

Differs only by release version and date. Not functionally significant.

12. Extract yaffs2 file system images.

Close
noteOSS Tool

This requires the unyaffs tool which is rarely a part of any Linux distribution.
The archivist of this code is:
http://code.google.com/p/unyaffs/(external link)
You can also find archives in our file gallery with both source and pre-compiled binaries of the tool.
Currently both 32 and 64 bit Linux and 32 bit Mac OSx binaries. Somebody want to build us a Windows version?


Extract each image into a sub-directory of the package2 directories.
Close
warningProcedural Note

If you intend to modify and re-create this yaffs2 image, you should be "root" during this extract operation so that all ownership, permissions and special files are preserved.
Modifications here means adding opt, root and home empty directories to the root of the file system or other changes to the image contents.
I did not do that in the following step because I do not intend to put this copy back together later.

mszick@deb2core:/Builds/ASUS$ for d in `find . -name package2 2>/dev/null` ; do mkdir -p $d/yaffs2 ; cd $d/yaffs2 ; unyaffs ../yaffs2_1.img ; cd - ; done
end of image
/Builds/ASUS
end of image
/Builds/ASUS
end of image
/Builds/ASUS
end of image
/Builds/ASUS
mszick@deb2core:/Builds/ASUS$

12.1. Identify common files.

This is a similar process to the one used above. In this case the sha1deep command is restricted to only listing regular files. I.E: Skipping all of the links to the four copies of busybox.

There will be some error messages from this command, caused by broken symbolic links. Usually "normal" for a file system that has not yet been installed and running at the time those links where listed.

The command:

mszick@deb2core:/Builds/ASUS$ sha1deep -r -o f */package2/yaffs2 | sort -n >../pak2files.txt

Results in a text file of the regular files found. In this case, 4,634 of them.
Readers will please excuse me for not listing all of them in-line here.
The sorted text file from the above command is available from our file gallery:
pak2files.txt (614.87 Kb)
A script that will generate the following six reports in a format for loading into a spreadsheet program for study can be found in our file gallery:
file_audit-1.0.tgz (27.21 Kb)

12.2. Isolate the files that differ.

This is one of the things we want to know, which files make the difference between R1 and R3, NTSC and PAL (and howto support ATSC).

Close
noteProgress note

Given a 4,600+ record input file, it took the Lua script 1.214 seconds of wall clock time to produce the 41,000+ line report set.
A sneak peak at the firmware audit report for a dozen input records.
The example test package in our file gallery has been updated to the one which does concordance counting.

Content ID's appearing once
dae78c320033e00b35cebcd72f55d258d4903797
        DvdPlayer	HDP_R1_FW_V121PAL	/usr/local/bin
8140134587b0f4aa9490ddf02b69191f942ce97d
        DvdPlayer	HDP_R3_FW_109PAL	/usr/local/bin
641f74a59802776d21e2135c4678ba06d2635a4e
        DvdPlayer	HDP_R1_FW_V121NTSC	/usr/local/bin
4108a3042442b792dcf7eec2bf8744f9a5990635
        DvdPlayer	HDP_R3_FW_109NTSC	/usr/local/bin
Content IDs appearing three times.
4a5ed49d10ffdd3e99ae4d99b054dc869e965e48
        wpa_cli	HDP_R1_FW_V121NTSC	/usr/local/bin
        wpa_cli	HDP_R3_FW_109NTSC	/usr/local/bin
        wpa_cli	HDP_R3_FW_109PAL	/usr/local/bin
5f68095853428d9d0e0a86cb8a1c1f339db15754
        wpa_supplicant	HDP_R1_FW_V121NTSC	/usr/local/bin
        wpa_supplicant	HDP_R3_FW_109NTSC	/usr/local/bin
        wpa_supplicant	HDP_R3_FW_109PAL	/usr/local/bin
Occurances of DvdPlayer
DvdPlayer	4
    dae78c320033e00b35cebcd72f55d258d4903797	HDP_R1_FW_V121PAL	/usr/local/bin
    641f74a59802776d21e2135c4678ba06d2635a4e	HDP_R1_FW_V121NTSC	/usr/local/bin
    4108a3042442b792dcf7eec2bf8744f9a5990635	HDP_R3_FW_109NTSC	/usr/local/bin
    8140134587b0f4aa9490ddf02b69191f942ce97d	HDP_R3_FW_109PAL	/usr/local/bin
Files occuring three times.
wpa_cli
        4a5ed49d10ffdd3e99ae4d99b054dc869e965e48	HDP_R1_FW_V121NTSC	/usr/local/bin
        4a5ed49d10ffdd3e99ae4d99b054dc869e965e48	HDP_R3_FW_109NTSC	/usr/local/bin
        4a5ed49d10ffdd3e99ae4d99b054dc869e965e48	HDP_R3_FW_109PAL	/usr/local/bin
wpa_supplicant
        5f68095853428d9d0e0a86cb8a1c1f339db15754	HDP_R1_FW_V121NTSC	/usr/local/bin
        5f68095853428d9d0e0a86cb8a1c1f339db15754	HDP_R3_FW_109NTSC	/usr/local/bin
        5f68095853428d9d0e0a86cb8a1c1f339db15754	HDP_R3_FW_109PAL	/usr/local/bin

Interesting, the R1-PAL firmware doesn't do encrypted Wifi

12.3. Duplicated Content

Files differing in name but having identical content.

Content sums appearing 8 times:
	a9e21cb419190b4d2b16a246f4cf2d87c3739490
		PORTUGAL.str	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource
		VIETNAMESE.str	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource
		PORTUGAL.str	HDP_R1_FW_V121PAL	/usr/local/bin/Resource
		VIETNAMESE.str	HDP_R1_FW_V121PAL	/usr/local/bin/Resource
		PORTUGAL.str	HDP_R3_FW_109NTSC	/usr/local/bin/Resource
		VIETNAMESE.str	HDP_R3_FW_109NTSC	/usr/local/bin/Resource
		PORTUGAL.str	HDP_R3_FW_109PAL	/usr/local/bin/Resource
		VIETNAMESE.str	HDP_R3_FW_109PAL	/usr/local/bin/Resource
	5d83bf36113cfa258e5c60e369e6bccd5b061065
		Italy.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		Italy.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		Italy.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		Italy.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		Italy.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		Italy.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		Italy.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		Italy.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	68faf23ae2993eab39f2376f9f068a25a6e947f5
		Asia.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		Asia.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		Asia.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		Asia.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		Asia.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		Asia.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		Asia.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		Asia.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	f4396342c1350014a2be48b9fdea4830b53ad078
		Germany.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		Germany.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		Germany.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		Germany.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		Germany.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		Germany.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		Germany.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		Germany.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	db8d399560f83238f46efce623be0a54f2580abc
		myfavorites.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		myfavorites.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		myfavorites.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		myfavorites.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		myfavorites.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		myfavorites.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		myfavorites.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		myfavorites.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	5261c66f774e3ddc9d80a19c074a123e784bf186
		mostlysunny.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		partlycloudy.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		mostlysunny.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		partlycloudy.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		mostlysunny.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		partlycloudy.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		mostlysunny.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
		partlycloudy.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
	f55e4db891cc556340b0021b277020893d48856b
		United_Kingdom.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		United_Kingdom.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		United_Kingdom.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		United_Kingdom.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		United_Kingdom.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		United_Kingdom.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		United_Kingdom.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		United_Kingdom.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	6f189dc59f840a6eab4ce72aec36ae27d80ec36e
		France.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		France.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		France.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		France.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		France.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		France.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		France.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		France.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	571ef26da343fa88b8bb9a69f408f9caa1e05b93
		Europe.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		Europe.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		Europe.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		Europe.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		Europe.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		Europe.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		Europe.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		Europe.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	6eee86f890239d1792a716257bf88db322f18efa
		IMAGE_KEN_BURNS.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_KEN_BURNS.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_KEN_BURNS.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_KEN_BURNS.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	2a9afde1f4b034dd8f96686319e869a307b12ba8
		North_America.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		North_America.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		North_America.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		North_America.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		North_America.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		North_America.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		North_America.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		North_America.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	30b006caf13354a0b9e3cf9534f3bcab4371bdc2
		Africa.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		Africa.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		Africa.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		Africa.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		Africa.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		Africa.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		Africa.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		Africa.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	d4a70f607ba96eeb8e7b39762c87514a6c386a26
		IMAGE_SET_PWD_FOCUS2_SMALL.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3_SMALL.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS2_SMALL.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3_SMALL.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS2_SMALL.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3_SMALL.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS2_SMALL.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3_SMALL.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	f12ecc74657ec0375a173b3c0bee70414d2ed603
		South_America.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		South_America.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		South_America.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		South_America.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		South_America.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		South_America.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		South_America.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		South_America.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	f5ec080544156f803f5bdadda6b80cf7fe60464f
		IMAGE_SET_PWD2_SMALL.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3_SMALL.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD2_SMALL.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3_SMALL.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD2_SMALL.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3_SMALL.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD2_SMALL.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3_SMALL.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	90a2ce35aa20883b2012bc334127e3fb81b019a5
		Oceania.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		Oceania.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		Oceania.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		Oceania.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		Oceania.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		Oceania.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		Oceania.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		Oceania.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	ff88c5f01ad2f91f48e02d77ac5d6edd9cf2e9d7
		IMAGE_KEN_BURNS_FOCUS.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK_FOCUS.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_KEN_BURNS_FOCUS.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK_FOCUS.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_KEN_BURNS_FOCUS.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK_FOCUS.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_KEN_BURNS_FOCUS.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_SEAMLESS_PLAYBACK_FOCUS.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	1a52471f6e660492a9dcb36af088b264c1bf2630
		clear.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		sunny.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		clear.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		sunny.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		clear.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		sunny.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		clear.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
		sunny.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
	6642439bdf140322cea4a8d87502eeebe58a7d5e
		China.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		China.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		China.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		China.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		China.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		China.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		China.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		China.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	96de05e583e79930c2363db2ba724475cbcffdcd
		IMAGE_SEL_SLIDESHOW.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SLIDE_SHOW_TIME.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SEL_SLIDESHOW.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SLIDE_SHOW_TIME.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SEL_SLIDESHOW.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SLIDE_SHOW_TIME.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SEL_SLIDESHOW.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_SLIDE_SHOW_TIME.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	b66e7075ecdc0c68a8605017cb91dec02cfabb88
		IMAGE_SET_PWD2.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD2.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD2.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD2.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD3.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	79335881da2ffdb0b0f780472abb623da5d5b9bd
		cloudy.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		fog.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		cloudy.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		fog.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		cloudy.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		fog.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		cloudy.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
		fog.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
	95368824cda062cc88a9ec3bd7edd39152e4faff
		world.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		world.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		world.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		world.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		world.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		world.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		world.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		world.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	5af976aee5ca30c811e4aaae97c8ab84cf28d544
		IMAGE_SET_PWD_FOCUS2.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS2.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS2.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS2.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_SET_PWD_FOCUS3.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	6961bc3d3737896e9a825801357c8185b6d11604
		Russia.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map_root
		Russia.rss	HDP_R1_FW_V121NTSC	/usr/local/bin/scripts/map/root
		Russia.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map_root
		Russia.rss	HDP_R1_FW_V121PAL	/usr/local/bin/scripts/map/root
		Russia.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map_root
		Russia.rss	HDP_R3_FW_109NTSC	/usr/local/bin/scripts/map/root
		Russia.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map_root
		Russia.rss	HDP_R3_FW_109PAL	/usr/local/bin/scripts/map/root
	d3fb1f1b425b73bc36e3ba5b868f8d1d41d800c8
		chancetstorms.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		tstorms.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		chancetstorms.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		tstorms.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		chancetstorms.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		tstorms.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		chancetstorms.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
		tstorms.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
	21af4e11f369fe7ace74a75d936124dc08aa55d4
		pps.jpg	HDP_R1_FW_V121NTSC	/usr/local/bin/image
		pps.jpg	HDP_R1_FW_V121NTSC	/usr/local/bin/IMS_Modules/PPS/image
		pps.jpg	HDP_R1_FW_V121PAL	/usr/local/bin/image
		pps.jpg	HDP_R1_FW_V121PAL	/usr/local/bin/IMS_Modules/PPS/image
		pps.jpg	HDP_R3_FW_109NTSC	/usr/local/bin/image
		pps.jpg	HDP_R3_FW_109NTSC	/usr/local/bin/IMS_Modules/PPS/image
		pps.jpg	HDP_R3_FW_109PAL	/usr/local/bin/image
		pps.jpg	HDP_R3_FW_109PAL	/usr/local/bin/IMS_Modules/PPS/image
	3bf9bfe977db6d6a1065b239167c38085cae6507
		chancesnow.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		snow.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		chancesnow.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		snow.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		chancesnow.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		snow.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		chancesnow.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
		snow.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather

Content sums appearing 12 times:
	c90640834159d3a016c6f1b586738a26c4fda613
		IMAGE_FOCUS.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_DEVICE_FOCUS.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_IMAGE_FOCUS.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_FOCUS.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_DEVICE_FOCUS.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_IMAGE_FOCUS.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_FOCUS.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_DEVICE_FOCUS.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_IMAGE_FOCUS.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_FOCUS.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_DEVICE_FOCUS.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_GBROWSER_IMAGE_FOCUS.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
	d8516e1df391691c054549ea91b06a19112e7807
		chancesleet.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		flurries.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		sleet.png	HDP_R1_FW_V121NTSC	/usr/local/bin/image/asus/weather
		chancesleet.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		flurries.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		sleet.png	HDP_R1_FW_V121PAL	/usr/local/bin/image/asus/weather
		chancesleet.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		flurries.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		sleet.png	HDP_R3_FW_109NTSC	/usr/local/bin/image/asus/weather
		chancesleet.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
		flurries.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather
		sleet.png	HDP_R3_FW_109PAL	/usr/local/bin/image/asus/weather

Content sums appearing 16 times:
	11a6fcc007b241a548759fbfa419addd313e4246
		IMAGE_ANGLE.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_CHANNEL.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_SUBSCRIBE.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_UNSUBSCRIBE.bmp	HDP_R1_FW_V121NTSC	/usr/local/bin/Resource/bmp
		IMAGE_ANGLE.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_CHANNEL.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_SUBSCRIBE.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_UNSUBSCRIBE.bmp	HDP_R1_FW_V121PAL	/usr/local/bin/Resource/bmp
		IMAGE_ANGLE.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_CHANNEL.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_SUBSCRIBE.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_UNSUBSCRIBE.bmp	HDP_R3_FW_109NTSC	/usr/local/bin/Resource/bmp
		IMAGE_ANGLE.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_CHANNEL.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_SUBSCRIBE.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp
		IMAGE_NEWRSS_UNSUBSCRIBE.bmp	HDP_R3_FW_109PAL	/usr/local/bin/Resource/bmp

12.4. Summary

mszick@deb2core:/Builds/ASUS$ ls */package2/yaffs2
HDP_R1_FW_V121NTSC/package2/yaffs2:
bin  dev  etc  lib  linuxrc  mnt  proc  sbin  sys  Test.fat  tmp  tmp_orig  usr  var  vmlinux

HDP_R1_FW_V121PAL/package2/yaffs2:
bin  dev  etc  lib  linuxrc  mnt  proc  sbin  sys  Test.fat  tmp  tmp_orig  usr  var  vmlinux

HDP_R3_FW_109NTSC/package2/yaffs2:
bin  dev  etc  lib  linuxrc  mnt  proc  sbin  sys  Test.fat  tmp  tmp_orig  usr  var  vmlinux

HDP_R3_FW_109PAL/package2/yaffs2:
bin  dev  etc  lib  linuxrc  mnt  proc  sbin  sys  Test.fat  tmp  tmp_orig  usr  var  vmlinux

The above is obviously the "root" directory of the file system (to be).
Note the lack of the directories root, home, and opt - you probably want to add those at some point.

Note also that the brain-dead, development board, fat filesystem with a swap file on it is still there.
One would almost think that ASUS hasn't yet read our comments on that piece of cr...

No special scripting, linuxrc is a link to busybox (init).

mszick@deb2core:/Builds/ASUS$ ls -l */package2/yaffs2/linuxrc
lrwxrwxrwx 1 mszick mszick 11 2010-02-13 13:10 HDP_R1_FW_V121NTSC/package2/yaffs2/linuxrc -> bin/busybox
lrwxrwxrwx 1 mszick mszick 11 2010-02-13 13:10 HDP_R1_FW_V121PAL/package2/yaffs2/linuxrc -> bin/busybox
lrwxrwxrwx 1 mszick mszick 11 2010-02-13 13:10 HDP_R3_FW_109NTSC/package2/yaffs2/linuxrc -> bin/busybox
lrwxrwxrwx 1 mszick mszick 11 2010-02-13 13:10 HDP_R3_FW_109PAL/package2/yaffs2/linuxrc -> bin/busybox

Note that the kernel in the yaffs2 image is not the same kernel as in the install image:

mszick@deb2core:/Builds/ASUS$ ls -l */package2/yaffs2/vmlinux
-rwxr-xr-x 1 mszick mszick 4919721 2010-02-13 13:10 HDP_R1_FW_V121NTSC/package2/yaffs2/vmlinux
-rwxr-xr-x 1 mszick mszick 4919721 2010-02-13 13:10 HDP_R1_FW_V121PAL/package2/yaffs2/vmlinux
-rwxr-xr-x 1 mszick mszick 4919721 2010-02-13 13:10 HDP_R3_FW_109NTSC/package2/yaffs2/vmlinux
-rwxr-xr-x 1 mszick mszick 4919721 2010-02-13 13:10 HDP_R3_FW_109PAL/package2/yaffs2/vmlinux
mszick@deb2core:/Builds/ASUS$ sha1sum */package2/yaffs2/vmlinux
18bfa238efbe2a46c67080367d8363f9ee596c89  HDP_R1_FW_V121NTSC/package2/yaffs2/vmlinux
18bfa238efbe2a46c67080367d8363f9ee596c89  HDP_R1_FW_V121PAL/package2/yaffs2/vmlinux
18bfa238efbe2a46c67080367d8363f9ee596c89  HDP_R3_FW_109NTSC/package2/yaffs2/vmlinux
18bfa238efbe2a46c67080367d8363f9ee596c89  HDP_R3_FW_109PAL/package2/yaffs2/vmlinux

Just eyeball the sha1 checksum of these vs that listed above.
Better check this kernel for Early Userspace scripting also.

12.5. Check the yaffs2 kernel for Early Userspace archive.

The kernel inside of the yaffs2 image is not the same kernel file as in the install image that was checked above.

Close
warningNote:

Same procedure as above, same cautions apply.

Create and Enter workspace.
mszick@deb2core:/Builds/ASUS$ cd ./HDP_R3_FW_109NTSC/package2/yaffs2/
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2$ mkdir linux
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2$ cd linux
Make a work copy of kernel.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ cp -a ../vmlinux .
Locate the compressed archive.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ od -A d -t x1 vmlinux | grep "1f 8b 08 00"
4169728 1f 8b 08 00 77 c5 57 4b 02 03 33 30 37 30 37 30
Copy appended data.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ dd if=vmlinux bs=1 skip=4169728 of=vmlinux.cpio.gz
749993+0 records in
749993+0 records out
749993 bytes (750 kB) copied, 2.09401 s, 358 kB/s
Close
noteNote:

Either we have a significant sized early userspace archive here or an archive plus appended data.

List compressed file details.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ gunzip -lv vmlinux.cpio.gz
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 6e696d5f Feb 14 08:54              749993             7889261  90.5% vmlinux.cpio
Make a copy of the compressed file.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ cp -a vmlinux.cpio.gz vmlinux.data.cgz
Decompress the archive and check size.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ gunzip -v vmlinux.cpio.gz
vmlinux.cpio.gz:	
gzip: vmlinux.cpio.gz: decompression OK, trailing garbage ignored
-6300.0% -- replaced with vmlinux.cpio

mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ ls -l vmlinux.cpio
-rw-r--r-- 1 mszick mszick 512 2010-02-14 08:54 vmlinux.cpio
Close
noteNote:

Obviously we have data appended to the compressed file.
So we need to figure out where it starts so that we can copy it before gunzip bit buckets it.

Compress a copy of the archive and check sizes.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ cp -a vmlinux.cpio vmlinux.cpio-2
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ gzip -1 vmlinux.cpio-2
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ ls -l
total 5568
-rwxr-xr-x 1 mszick mszick 4919721 2010-02-13 13:10 vmlinux
-rw-r--r-- 1 mszick mszick     512 2010-02-14 09:27 vmlinux.cpio
-rw-r--r-- 1 mszick mszick     166 2010-02-14 09:27 vmlinux.cpio-2.gz
-rw-r--r-- 1 mszick mszick  749993 2010-02-14 09:27 vmlinux.data.cgz
Close
noteNote:

Using the type 1 compression option above results in the largest possible compressed size for the cpio archive.
Then using dd to copy various lengths from the front of the original compressed archive (use binary search trial sizes) we soon discover that 134 bytes is the correct compressed size of the archive.
In other words, 135 bytes gives us the "trailing garbage" message and 133 bytes gives us the "unexpected end" message.
Sorry, folks, the gzip format does not save the "134" number in the file image for us, you have to search for what works.
Somewhere in the world is probably a patched version of gunzip that reports the "used" archive bytes but I haven't found (or made) it yet.
Just enjoy reverse engineering at its roughest for now.

Copy data from the compressed archive.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ dd if=vmlinux.data.cgz bs=1 skip=134 of=vmlinux.data
749859+0 records in
749859+0 records out
749859 bytes (750 kB) copied, 2.19022 s, 342 kB/s
See if it is a known file type.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ file vmlinux.data
vmlinux.data: data
Close
warningDetermined

Additional examination of that part of the file shows that the "trailing garbage" happens to be the kernel symbol table.
Not used by the kernel, normally only used by the kernel debuggers, but might be used by any of the closed source applications in this firmware image.
If it is possible for the O!Play applications to run without the kernel symbol table, we could get back 6 eraseblocks of flash space by stripping it off the kernel.

Extract the cpio archive.
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$ su
Password: 
deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux# cpio --extract --make-directories --no-absolute-filenames -I vmlinux.cpio
cpio: Removing leading `/' from member names
1 block
deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux# ls -l
total 4832
drwxr-xr-x 2 root   root      4096 2010-02-13 15:53 dev
drwx------ 2 root   root      4096 2010-02-13 15:53 root
-rwxr-xr-x 1 mszick mszick 4919721 2010-02-13 13:10 vmlinux
-rw-r--r-- 1 mszick mszick     512 2010-02-13 15:50 vmlinux.cpio
deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux# ls -l dev root
dev:
total 0
crw------- 1 root root 5, 1 2010-02-13 15:53 console

root:
total 0
deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux# exit
exit
mszick@deb2core:/Builds/ASUS/HDP_R3_FW_109NTSC/package2/yaffs2/linux$
Close
warningDetermined

No Early Userspace scripting there either.

13. Extract the usr/local/etc archives

Put the contents into a ule sub-directory of each package2 directory.

mszick@deb2core:/Builds/ASUS$ for d in `find . -name package2` ; do mkdir -p $d/ule ; cd $d/ule tar --extract --bzip2 -v --file=../usr.local.etc.tar.bz2 ; cd - ; done
/Builds/ASUS
/Builds/ASUS
/Builds/ASUS
/Builds/ASUS
mszick@deb2core:/Builds/ASUS$

Note two things:

  • the -v in the tar command (which should list each file as it is extracted)
  • the lack of anything reported as being extracted.

Yup, further checking confirms, that archive is an empty placeholder.

14. Customizing the image.

The above procedure is 100% reversible.
-- No offense intended, but readers without enough *nix experience to see that for themselves have no business trying. --
It is extremely easy to "brick" your machine by making changes to the firmware image, so be careful and have your serial port cable handy.


Contributors to this page: mikez and somerandomhash .
Page last modified on Thursday 25 of February, 2010 09:18:53 CST by mikez.


As ever mikez a superb article lol




really nice howto. exactly what i was looking for.
but now i need an howto to go backwards.
from modified rootfs/kernel over packed yaffs to ziped flashimage