Packages are just .xar archives with a different extension and a specified file hierarchy. Unfortunately, part of that file hierarchy is a cpio.gz archive of the actual installables, and usually that’s what you want to edit. And there’s also a Bom file that includes information on the files inside that cpio archive, and a PackageInfo file that includes summary information.
If you really do just need to edit one of the info files, that’s simple:
mkdir Foo cd Foo xar -xf ../Foo.pkg # edit stuff xar -cf ../Foo-new.pkg *
But if you need to edit the installable files:
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
I believe you can get mkbom (and lsbom) for most linux distros. (If you can get ditto, that makes things even easier, but I’m not sure if that’s nearly as ubiquitously available.)