ゴースト更新システム(ネットワーク更新)で使用される更新定義ファイルの仕様である。
更新定義ファイルにはゴーストを構成するファイルの一覧とそのハッシュ値が記録されており、ベースウェアはこれをサーバから取得してローカルのファイルと比較し、差分更新を行う。
現在有効な形式は以下の2種類である。旧形式のupdates.dau (Version 1) は廃止済みのため省略する。
バイト値1をフィールド区切りとし、各行をCRLFで終端する形式である。
デフォルトはOSデフォルトのcharset。先頭エントリの末尾に charset=文字コード名 フィールドを付加することで指定できる。
各行は以下の形式である。
ファイルパス\x01MD5ハッシュ\x01拡張フィールド1\x01拡張フィールド2\x01...
\x01 はバイト値1を示す。改行はCRLF。
ghost/master/descript.txt\x01a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\x01size=1234\x01date=2024-01-15T12:34:56\x01charset=Shift_JIS\x01
ghost/master/shiori.dll\x01f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3\x01size=65536\x01date=2024-01-15T12:34:56\x01
shell/master/surface0.png\x01deadbeefdeadbeefdeadbeefdeadbeef\x01size=32768\x01date=2024-01-15T12:34:56\x01
※ \x01 は実際にはバイト値1である。charset= は先頭エントリの末尾にのみ付加される。
updates2.dauと同じバイト値1区切りだが、各行に行種別プレフィックスを持つテキスト形式である。
各行は行頭のプレフィックスにより種別が決まる。file, でも charset, でもない行は無視される。
file, プレフィックスの後の内容はupdates2.dauと同一フォーマットである。charset,Shift_JIS
file,ghost/master/descript.txt\x01a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\x01size=1234\x01date=2024-01-15T12:34:56\x01
file,ghost/master/shiori.dll\x01f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3\x01size=65536\x01date=2024-01-15T12:34:56\x01
file,shell/master/surface0.png\x01deadbeefdeadbeefdeadbeefdeadbeef\x01size=32768\x01date=2024-01-15T12:34:56\x01
※ \x01 は実際にはバイト値1である。
updates2.dauおよびupdates.txtの file, 行で共通のフィールド定義である。
/) 区切り。key=value 形式で記述する。すべて省略可能。
2024-01-15T12:34:56全エントリがパーセントエンコード済みの場合はデコードして使用する。そうでない場合はURL側のみエンコードされる。
以下の条件に該当するエントリは無効として扱われる。
/ または \(ディレクトリエントリ)。..\ や ../ を含む(ディレクトリトラバーサル防止)。SSPの「更新ファイル作成」機能などにより、ゴーストのファイル一覧からupdates2.dau / updates.txtを生成できる。
ディレクトリを再帰的に走査する。以下のファイルは除外される。
FILE_ATTRIBUTE_HIDDEN)noupdate で指定されたファイルディレクトリ直下に ghost\master フォルダが存在する場合、生成した更新ファイルをそこにもコピーする。