HS-DGL のファームウェア(2)image.dat


HDD 上に展開される image.dat を見てみる

展開

HS-DGL

HS-DGLシリーズ ファームウェア アップデータ Ver.1.46 の image.dat(を unzip した tmpimage.tgz)を展開する
[root@giga hsdgl146]# tar zxvf tmpimage.tgz
	:
./boot/
[root@giga hsdgl146]# ls
bin  boot  dev  etc  home  image.dat  lib  lost+found  mnt  mnt2  proc  root  sbin  tmp  tmpimage.tgz  usr  var  www
[root@giga hsdgl146]# rm image.dat tmpimage.tgz
rm: `image.dat' を削除しますか(yes/no)? y
rm: `tmpimage.tgz' を削除しますか(yes/no)? y
[root@giga hsdgl146]# find . -print | wc -l
   3462
HDD 上に展開されるファイル/ディレクトリは 3462

HD-HGLAN

同様に、 HD-HGLANシリーズ ファームウェア アップデータ Ver.1.46β2 の image.dat(を unzip した tmpimage.tgz) を展開する
[root@giga hglan146b2]# tar zxvf tmpimage.tgz
	:
./boot/
[root@giga hglan146b2]# ls
bin  boot  dev  etc  home  image.dat  lib  lost+found  mnt  mnt2  proc  root  sbin  tmp  tmpimage.tgz  usr  var  www
[root@giga hglan146b2]# rm image.dat tmpimage.tgz
rm: `image.dat' を削除しますか(yes/no)? y
rm: `tmpimage.tgz' を削除しますか(yes/no)? y
[root@giga hglan146b2]# find . -print | wc -l
   3238
HDD 上に展開されるファイル/ディレクトリは 3238
DLNA の分だけ(?)ファイルが少ない。

比較

[root@giga /tmp]# diff -rc hsdgl146 hglan146b2 > hsdgl146-hglan146b2.diff
diff: hsdgl146/etc/hosts.allow: そのようなファイルやディレクトリはありません
diff: hglan146b2/etc/hosts.allow: そのようなファイルやディレクトリはありません
diff: hsdgl146/etc/melco/scheduler: そのようなファイルやディレクトリはありません
diff: hglan146b2/etc/melco/scheduler: そのようなファイルやディレクトリはありません
	:
[root@giga /tmp]# ls -l hsdgl146/etc/hosts.allow hglan146b2/etc/hosts.allow
lrwxrwxrwx    1 root     root           20 Oct  9 12:52 hglan146b2/etc/hosts.allow -> /var/tmp/hosts.allow
lrwxrwxrwx    1 root     root           20 Oct  9 12:47 hsdgl146/etc/hosts.allow -> /var/tmp/hosts.allow
例によってシンボリックリンクがエラーになるが、無視

どちらかだけにあるファイル

どちらかだけにあるファイルをリストアップしてみる
[root@giga /tmp]# grep 'だけ' hsdgl146-hglan146b2.diff
hsdgl146/etc/dhcpcだけに発見: autoip-eth0.info
hsdgl146/etc/init.dだけに発見: rService
hsdgl146/etc/rc.d/init.dだけに発見: rService
hsdgl146/libだけに発見: libls.so.1
hsdgl146/usr/etcだけに発見: mediaserver.conf.init
hsdgl146/usr/etcだけに発見: mediaserver_accesscontrol.conf.init
hsdgl146/usr/libだけに発見: gconv
hsdgl146/usr/libだけに発見: iconv_no_i18n
hsdgl146/usr/libだけに発見: libcharset.so
hsdgl146/usr/libだけに発見: libcharset.so.1
hsdgl146/usr/libだけに発見: libcharset.so.1.0.0
hsdgl146/usr/libだけに発見: libiconv.so
hsdgl146/usr/libだけに発見: libiconv.so.2
hsdgl146/usr/libだけに発見: libiconv.so.2.1.0
hsdgl146/usr/libだけに発見: libiconv_plug.so
hsdgl146/usr/libだけに発見: libiconv_plug_linux.so
hsdgl146/usr/libだけに発見: libmbms_cmanager.so
hsdgl146/usr/libだけに発見: libmbms_cmanager.so.1.8
hsdgl146/usr/libだけに発見: libmbms_cmanager.so.1.8.191
hsdgl146/usr/libだけに発見: libmbms_upnp.so
hsdgl146/usr/libだけに発見: libmbms_upnp.so.1.8
hsdgl146/usr/libだけに発見: libmbms_upnp.so.1.8.191
hsdgl146/usr/libだけに発見: libmediabolic_client.so
hsdgl146/usr/libだけに発見: libmediabolic_client.so.1.8
hsdgl146/usr/libだけに発見: libmediabolic_client.so.1.8.224
hsdgl146/usr/libだけに発見: libmediabolic_import.so
hsdgl146/usr/libだけに発見: libmediabolic_import.so.1.8
hsdgl146/usr/libだけに発見: libmediabolic_import.so.1.8.194
hsdgl146/usr/libだけに発見: libmediabolic_mediaserver.so
hsdgl146/usr/libだけに発見: libmediabolic_mediaserver.so.1.8
hsdgl146/usr/libだけに発見: libmediabolic_mediaserver.so.1.8.220
hsdgl146/usr/libだけに発見: libmediabolic_mediaserver_verify.so
hsdgl146/usr/libだけに発見: libmediabolic_mediaserver_verify.so.1.8
hsdgl146/usr/libだけに発見: libmediabolic_mediaserver_verify.so.1.8.220
hsdgl146/usr/libだけに発見: libmediabolic_mediaspace.so
hsdgl146/usr/libだけに発見: libmediabolic_mediaspace.so.1.8
hsdgl146/usr/libだけに発見: libmediabolic_mediaspace.so.1.8.191
hsdgl146/usr/libだけに発見: libpcap.so
hsdgl146/usr/libだけに発見: libpcap.so.0.6.1
hsdgl146/usr/libだけに発見: mediaserver
hsdgl146/usr/local/PCast/www/cgi-binだけに発見: charm.pl
hsdgl146/usrだけに発見: mediaserver
hsdgl146/www/cgi-binだけに発見: mellib_conf_dgl.pl
hsdgl146/www/cgi-binだけに発見: ms-changesync.cgi
hsdgl146/www/cgi-binだけに発見: ms-deldb.cgi
hsdgl146/www/cgi-binだけに発見: ms-delhostname.cgi
hsdgl146/www/cgi-binだけに発見: ms-function.pl
hsdgl146/www/cgi-binだけに発見: usb-printer_dgl.pl
hsdgl146/www/cgi-bin2だけに発見: usb-printer_dgl.pl
hsdgl146/www/helpだけに発見: b-name-dgl.htm
hsdgl146/www/helpだけに発見: m-name-dgl.htm
[root@giga /tmp]#
HD-HGLAN だけにあるファイルはない。

違いのあるファイル

[root@giga /tmp]# grep '^diff' hsdgl146-hglan146b2.diff
diff -rc hsdgl146/etc/init.d/default_hostname.sh hglan146b2/etc/init.d/default_hostname.sh
diff -rc hsdgl146/etc/init.d/ftpd hglan146b2/etc/init.d/ftpd
diff -rc hsdgl146/etc/init.d/networking hglan146b2/etc/init.d/networking
diff -rc hsdgl146/etc/init.d/pcastd hglan146b2/etc/init.d/pcastd
diff -rc hsdgl146/etc/init.d/smb hglan146b2/etc/init.d/smb
diff -rc hsdgl146/etc/issue hglan146b2/etc/issue
diff -rc hsdgl146/etc/issue.net hglan146b2/etc/issue.net
diff -rc hsdgl146/etc/linkstation_release hglan146b2/etc/linkstation_release
diff -rc hsdgl146/etc/pcast/theme/pcast/capture_setting/epg_genre.html hglan146b2/etc/pcast/theme/pcast/capture_setting/epg_genre.html
diff -rc hsdgl146/etc/pcast/theme/pcast/capture_setting/epg_genre_high.html hglan146b2/etc/pcast/theme/pcast/capture_setting/epg_genre_high.html
diff -rc hsdgl146/etc/pcast/theme_us/pcast/capture_setting/epg_genre.html hglan146b2/etc/pcast/theme_us/pcast/capture_setting/epg_genre.html
diff -rc hsdgl146/etc/pcast/theme_us/pcast/capture_setting/epg_genre_high.html hglan146b2/etc/pcast/theme_us/pcast/capture_setting/epg_genre_high.html
diff -rc hsdgl146/etc/rc.d/init.d/default_hostname.sh hglan146b2/etc/rc.d/init.d/default_hostname.sh
diff -rc hsdgl146/etc/rc.d/init.d/ftpd hglan146b2/etc/rc.d/init.d/ftpd
diff -rc hsdgl146/etc/rc.d/init.d/networking hglan146b2/etc/rc.d/init.d/networking
diff -rc hsdgl146/etc/rc.d/init.d/pcastd hglan146b2/etc/rc.d/init.d/pcastd
diff -rc hsdgl146/etc/rc.d/init.d/smb hglan146b2/etc/rc.d/init.d/smb
diff -rc hsdgl146/etc/rc.d/rc0.d/K91smb hglan146b2/etc/rc.d/rc0.d/K91smb
diff -rc hsdgl146/etc/rc.d/rc0.d/K92ftpd hglan146b2/etc/rc.d/rc0.d/K92ftpd
diff -rc hsdgl146/etc/rc.d/rc0.d/K92pcastd hglan146b2/etc/rc.d/rc0.d/K92pcastd
diff -rc hsdgl146/etc/rc.d/rc2.d/S91smb hglan146b2/etc/rc.d/rc2.d/S91smb
diff -rc hsdgl146/etc/rc.d/rc2.d/S92ftpd hglan146b2/etc/rc.d/rc2.d/S92ftpd
diff -rc hsdgl146/etc/rc.d/rc2.d/S92pcastd hglan146b2/etc/rc.d/rc2.d/S92pcastd
diff -rc hsdgl146/etc/rc.d/rc6.d/K91smb hglan146b2/etc/rc.d/rc6.d/K91smb
diff -rc hsdgl146/etc/rc.d/rc6.d/K92ftpd hglan146b2/etc/rc.d/rc6.d/K92ftpd
diff -rc hsdgl146/etc/rc.d/rc6.d/K92pcastd hglan146b2/etc/rc.d/rc6.d/K92pcastd
diff -rc hsdgl146/etc/rc.d/rcS.d/S36default_hostname.sh hglan146b2/etc/rc.d/rcS.d/S36default_hostname.sh
diff -rc hsdgl146/etc/rc.d/rcS.d/S44networking hglan146b2/etc/rc.d/rcS.d/S44networking
diff -rc hsdgl146/mnt2/info/manual.pdf hglan146b2/mnt2/info/manual.pdf
diff -rc hsdgl146/usr/local/PCast/www/cgi-bin/html/en/body.pl hglan146b2/usr/local/PCast/www/cgi-bin/html/en/body.pl
diff -rc hsdgl146/usr/local/PCast/www/cgi-bin/html/en/menu.pl hglan146b2/usr/local/PCast/www/cgi-bin/html/en/menu.pl
diff -rc hsdgl146/usr/local/PCast/www/cgi-bin/html/en/setup_server.pl hglan146b2/usr/local/PCast/www/cgi-bin/html/en/setup_server.pl
diff -rc hsdgl146/usr/local/PCast/www/cgi-bin/html/jp/body.pl hglan146b2/usr/local/PCast/www/cgi-bin/html/jp/body.pl
diff -rc hsdgl146/usr/local/PCast/www/cgi-bin/html/jp/menu.pl hglan146b2/usr/local/PCast/www/cgi-bin/html/jp/menu.pl
diff -rc hsdgl146/usr/local/PCast/www/cgi-bin/html/jp/setup_server.pl hglan146b2/usr/local/PCast/www/cgi-bin/html/jp/setup_server.pl
diff -rc hsdgl146/usr/local/PCast/www/cgi-bin/module/BufCommonSyslog.pm hglan146b2/usr/local/PCast/www/cgi-bin/module/BufCommonSyslog.pm
diff -rc hsdgl146/www/cgi-bin/maintenance.cgi hglan146b2/www/cgi-bin/maintenance.cgi
diff -rc hsdgl146/www/cgi-bin/mellib.pl hglan146b2/www/cgi-bin/mellib.pl
diff -rc hsdgl146/www/cgi-bin/mellib_common.pl hglan146b2/www/cgi-bin/mellib_common.pl
diff -rc hsdgl146/www/cgi-bin/setup-basic-in.cgi hglan146b2/www/cgi-bin/setup-basic-in.cgi
diff -rc hsdgl146/www/cgi-bin/setup-basic.cgi hglan146b2/www/cgi-bin/setup-basic.cgi
diff -rc hsdgl146/www/cgi-bin/sysinfo.cgi hglan146b2/www/cgi-bin/sysinfo.cgi
diff -rc hsdgl146/www/cgi-bin/top.pl hglan146b2/www/cgi-bin/top.pl
diff -rc hsdgl146/www/cgi-bin/usb-printer.cgi hglan146b2/www/cgi-bin/usb-printer.cgi
diff -rc hsdgl146/www/cgi-bin2/mellib2.pl hglan146b2/www/cgi-bin2/mellib2.pl
diff -rc hsdgl146/www/cgi-bin2/mellib_common.pl hglan146b2/www/cgi-bin2/mellib_common.pl
diff -rc hsdgl146/www/cgi-bin2/usb-printer.cgi hglan146b2/www/cgi-bin2/usb-printer.cgi
diff -rc hsdgl146/www/script/melsub_disk_repair.sh hglan146b2/www/script/melsub_disk_repair.sh
diff -rc hsdgl146/www/script/melsub_filepath.sh hglan146b2/www/script/melsub_filepath.sh
diff -rc hsdgl146/www/script/melsub_flash.sh hglan146b2/www/script/melsub_flash.sh
diff -rc hsdgl146/www/script/melsub_init.sh hglan146b2/www/script/melsub_init.sh
diff -rc hsdgl146/www/script/set_hdd_format.sh hglan146b2/www/script/set_hdd_format.sh
diff -rc hsdgl146/www/script/set_ip.sh hglan146b2/www/script/set_ip.sh
[root@giga /tmp]# grep '^バイナリー・ファイル' hsdgl146-hglan146b2.diff
バイナリー・ファイルhsdgl146/lib/libls.soとhglan146b2/lib/libls.soは違います
バイナリー・ファイルhsdgl146/lib/libls.so.1.0.1とhglan146b2/lib/libls.so.1.0.1は違います
バイナリー・ファイルhsdgl146/lib/modules/2.4.20_mvl31-ppc_linkstation/kernel/drivers/scsi/sg.oとhglan146b2/lib/modules/2.4.20_mvl31-ppc_linkstation/kernel/drivers/scsi/sg.oは違います
バイナリー・ファイルhsdgl146/lib/modules/LSUVCD.oとhglan146b2/lib/modules/LSUVCD.oは違います
バイナリー・ファイルhsdgl146/mnt2/info/LsClient/LsClient.exeとhglan146b2/mnt2/info/LsClient/LsClient.exeは違います
バイナリー・ファイルhsdgl146/mnt2/info/LsClient/Setup.iniとhglan146b2/mnt2/info/LsClient/Setup.iniは違います
バイナリー・ファイルhsdgl146/sbin/dhcpcdとhglan146b2/sbin/dhcpcdは違います
バイナリー・ファイルhsdgl146/sbin/mkshinfoとhglan146b2/sbin/mkshinfoは違います
バイナリー・ファイルhsdgl146/sbin/mkshinfo.hglanとhglan146b2/sbin/mkshinfo.hglanは違います
バイナリー・ファイルhsdgl146/usr/lib/libv4lrap.soとhglan146b2/usr/lib/libv4lrap.soは違います
バイナリー・ファイルhsdgl146/usr/local/PCast/DbAcRapとhglan146b2/usr/local/PCast/DbAcRapは違います
バイナリー・ファイルhsdgl146/usr/local/PCast/EPGdとhglan146b2/usr/local/PCast/EPGdは違います
バイナリー・ファイルhsdgl146/usr/local/PCast/Schedulerとhglan146b2/usr/local/PCast/Schedulerは違います
バイナリー・ファイルhsdgl146/usr/local/PCast/iRCommanderとhglan146b2/usr/local/PCast/iRCommanderは違います
バイナリー・ファイルhsdgl146/usr/local/PCast/pcastdとhglan146b2/usr/local/PCast/pcastdは違います
バイナリー・ファイルhsdgl146/usr/sbin/ap_servdとhglan146b2/usr/sbin/ap_servdは違います
バイナリー・ファイルhsdgl146/usr/sbin/write_ngとhglan146b2/usr/sbin/write_ngは違います
バイナリー・ファイルhsdgl146/usr/sbin/write_okとhglan146b2/usr/sbin/write_okは違います
[root@giga /tmp]#
思ったより差が少ない。

雑感

hsdgl146-hglan146b2.diff をながめていると、結構おもしろい。

同じ MAC アドレスのマシンで HS-DGL のファームと HD-HGLAN のファームとが動作している。
単なる設定だけの問題で、実際には動作していないかも知れないが。

HS-DGL と HD-HGLAN とで番組のジャンル名が違う。 どっちかがバグってるな。

HD-HGLAN では、やたらとサーバをリスタートしているが、
HS-DGL ではリスタートしなくなっている。
バグが取れてリスタートの必要がなくなったか?

Web による設定機能は、機種毎に動作が切り替えられている。
近い将来統一される可能性あり
玄箱のコードまで(一部?)入っている

HD-HGLAN のWeb による設定にも実は DLNA のコードが埋め込まれている
動かないようにされているだけ。

HS は HomeStation の略。商品名は LinkStation

mediabolic とは、 Mediabolic, Inc.の ことと思われる。
「We develop digital media player and server software that enables our OEM customers to ship DLNA-compliant connected entertainment products.」とか 「Buffalo Licenses Mediabolic Source Code SDK for New Digital Home Products」とあるので、 Mediabolic, Inc. から DLNA の関連のライセンスを受けているのだろう。




HS-DGL のファームウェア
ハックの記録
LinkStation/玄箱 をハックしよう

HD-HGLAN のジャンク入手

Copyright (C) 2005 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市