แพ็กเกจเป็นเพียงไฟล์เก็บถาวร. 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 distros ส่วนใหญ่ (ถ้าคุณสามารถหาสิ่งต่าง ๆ ได้นั่นจะทำให้สิ่งต่างๆง่ายขึ้น แต่ฉันไม่แน่ใจว่ามันเกือบจะพร้อมใช้งานทั่วไปหรือไม่)