XIPを別ボリュームへ展開する時ボリューム間コピーなしで展開したい
xipを別ボリュームに展開する時
一回起動ボリュームの/private/tmpに展開されてから
それをコピーする
みたいな挙動をする
同一SSD別ボリュームとかだと実質的にそのSSDへのwriteが2倍になる
エコじゃない
環境を気にするんだったらここも気にしてほしい
これをどうにかできないか
xipコマンドは内部的に-(void)_startUnarchivingAtPath:なんちゃら:かんちゃら: を使っている
PKSignedContainer はどうやってテンポラリディレクトリを求めているのか?
NSTemporaryDirectory() に [NSUUID UUID] を足してる
NSTemporaryDirectoryを変えられればいい?
うわっだるそ〜 https://stackoverflow.com/a/1760936
confstrって何?
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/confstr.3.html
ふ〜む
confstrで失敗してかつissetugid()が0ならTMPDIRを見るっぽいが…
confstr 失敗しなさそうな気がする
とりあえず NSTemporaryDirectory() を swizzling して解決した
https://github.com/rinsuki/NSTemporaryDirectoryOverrider