DAAP iTunes 10.5問題対応のQNAP用バイナリ
http://forum.qnap.com/viewtopic.php?f=182&t=48593&p=230860&hilit=itunes#p230860
qpkgで対応パッチ出した人がいた。
QNAPのパッケージ管理システムなんだけど、これってたぶんバイナリしか入ってないんだろうね。
qpkgって、どんな構造なんだろう。
kinneko@BuildSV:~$ mkdir its105daap kinneko@BuildSV:~$ cd its105daap/ kinneko@BuildSV:~/its105daap$ wget http://dl.dropbox.com/u/7535410/QNAP/Firefly_svn-1696-3_x86.qpkg kinneko@BuildSV:~/its105daap$ wget http://dl.dropbox.com/u/7535410/QNAP/Firefly_svn-1696-3_arm-x19.qpkg kinneko@BuildSV:~/its105daap$ file ./* ./Firefly_svn-1696-3_arm-x19.qpkg: POSIX shell script text executable ./Firefly_svn-1696-3_x86.qpkg: POSIX shell script text executable
あら。
でも、開いてみると、バイナリとのハイブリッドだね。
頭に実行シェルがあって、ddでバイナリ取り出すようになっている。
ddでオフセット位置固定なので、お手軽に直接頭を書き換えるわけにもいかない。
こんな感じ。
/bin/echo "Install QNAP package on TS-NAS..." /bin/grep "/mnt/HDA_ROOT" /proc/mounts >/dev/null 2>&1 || exit 1arch_ok || wrong_arch _EXTRACT_DIR="/mnt/HDA_ROOT/update_pkg/tmp" /bin/mkdir -p $_EXTRACT_DIR || exit 1 script_len=1038 /bin/dd if=${0} bs=$script_len skip=1 | /bin/tar -xO | /bin/tar -xzv -C $_EXTRAC T_DIR || exit 1 offset=$(/usr/bin/expr $script_len + 10240) /bin/dd if=${0} bs=$offset skip=1 | /bin/cat | /bin/dd bs=1024 count=5033 of=$_EXTRACT_DIR/data.tar.gz || exit 1 offset=$(/usr/bin/expr $offset + 5153751) ( cd $_EXTRACT_DIR && /bin/sh qinstall.sh || echo "Installation Abort." )
手動でやってみる。
kinneko@BuildSV:~/its105daap$ dd if=Firefly_svn-1696-3_x86.qpkg bs=1038 skip=1 | /bin/tar -xO | /bin/tar -xzv -C ./ ./ ./package_routines ./qpkg.cfg ./qinstall.sh kinneko@BuildSV:~/its105daap$ /bin/dd if=Firefly_svn-1696-3_x86.qpkg bs=11278 skip=1 | /bin/cat | /bin/dd bs=1024 count=5033 of=./data.tar.gz 456+1 records in 456+1 records out 5153851 bytes (5.2 MB) copied, 0.0183812 s, 280 MB/s 5033+0 records in 5033+0 records out 5153792 bytes (5.2 MB) copied, 0.0185663 s, 278 MB/s
data.tar.gzを展開してみたけど、バイナリ入ってただけだった。