包只是具有不同扩展名和指定文件层次结构的.xar文件。不幸的是,该文件层次结构的一部分是实际可安装文件的cpio.gz存档,通常这就是您要编辑的内容。还有一个Bom文件,包括该cpio归档文件内的信息,以及一个包含摘要信息的PackageInfo文件。
如果你真的只需要编辑一个信息文件,这很简单:
mkdir Foo
cd Foo
xar -xf ../Foo.pkg
# edit stuff
xar -cf ../Foo-new.pkg *
但是如果你需要编辑可安装的文件:
mkdir Foo
cd Foo
xar -xf ../Foo.pkg
cd foo.pkg
cat Payload | gunzip -dc |cpio -i
# edit Foo.app/*
rm Payload
find ./Foo.app | cpio -o | gzip -c > Payload
mkbom Foo.app Bom # or edit Bom
# edit PackageInfo
rm -rf Foo.app
cd ..
xar -cf ../Foo-new.pkg
我相信你可以得到mkbom(和lsbom)大多数linux发行版。 (如果你可以得到同上,这使事情更容易,但我不知道,这是几乎无处不在)。