Analysis of the Firmware Download and Upgrade Process

'''This is an analysis of how Linkstations and Terastations are updating. This gives valuable insights on where to get the firmware without any password.'''

Validity
This analysis has been done on a LS-WVL with firmware 1.52. It should be valid for at least for all other Linkstations sharing the same firmware (LS-AVL, LS-CHL-V2, LS-VL, LS-QVL, LS-SL, LS-WSXL, LS-WXL, LS-XHL) and for Terastation X- and V-Series (checked with V-Series 1.14 firmware).

= Analysis =

VERSION=1.52 SUBVERSION=HDD 2.81 PRODUCTID=0x00000000 BUILDDATE=2011/07/19 19:58:30 234121284 12-09-2011 08:15   hddrootfs.buffalo.updated 9613712 12-09-2011 08:15   initrd.buffalo 407704 11-14-2011 02:54   u-boot_lsqvl.bin 236120 11-14-2011 02:54   u-boot_lssl.bin 401608 11-14-2011 02:54   u-boot_lsvl.bin 407704 11-14-2011 02:54   u-boot_lswvl.bin 407448 11-14-2011 02:54   u-boot_lswxl.bin 401352 11-14-2011 02:54   u-boot_lsxh.bin 401508 11-14-2011 02:54   u-boot_lsxl.bin 408060 11-14-2011 02:54   u-boot_lsxlv2_64mb.bin 2135060 12-09-2011 08:09   uImage-88f5182.buffalo 2729776 12-09-2011 08:10   uImage-lsp.5.x.buffalo 337 12-09-2011 08:10   u-boot.map 408 12-09-2011 08:10   uImage.map
 * Current available firmware updates are listed at
 * for Terastation V-Series: http://buffalo.jp/download/driver/hd/autoup/fw_info.xml
 * for Linkstation Series: and Terastation X-Series: http://buffalo.jp/download/driver/hd/autoup/fw_info2.xml
 * This XML contains several entries (XML-nodes) describing:
 * list of Product-IDs the respective firmware is for
 * binary_url, e.g. http://driver.buffalo.jp/buf-drv/hd/terastation_v_series_1.14-1.36.zip
 * release_note URL, e.g. http://buffalo.jp/download/driver/hd/autoup/note/tsv114_en.txt
 * The URL for the release-notes contain only the major version and are easy to guess. The URL for the binary (zip-file) additionally contains the "minor" version, which has to be guessed. Please see below for a list of known major/minor-combinations.
 * The major an minor version currently installed on your box can be found in /etc/linkstation_release (even on Terastation!)
 * The zip-file is downloaded using wget without any special parameters. It can be unzipped without password.
 * Binaries can be extracted without password. The contents of these files is e.g.:
 * hddrootfs.buffalo.updated is a .tar.gz containing the root-filesystem. For all other files, please refer to the XXX
 * After download, all file contained in the zip-file will be moved to /boot.
 * The update itself will be performed when rebooting the system. (What is automatically done when performing a "Update" via the Web-UI). Please refer to Analysis of the ARM9 boot process for more information about this.

Major and Minor versions
This is a list of some major and minor versions. Please add more if you get them known.

Linkstation Series

Terastation V-Series

= Intermediate Insights =

These insights have been found while analyzing the update process. They may be relevant again if the above results are no longer valid.


 * Update script: /etc/cron/cron.d/S29_update_notifications.sh (links to /etc/rc.d/sysinit.d/S29_update_notifications.sh)
 * All relevant paths and URLs are at the top.
 * Results of XML-parsing go into `/tmp/fwinfo` (`$RESULT_FILE`)
 * Release-note go into `/tmp/fwinfo_note` (`$RELEASE_DST`)


 * XML gets parsed by file:`/usr/local/bin/up_notifications.py`