site_archiver@lists.apple.com Delivered-To: installer-dev@lists.apple.com Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=borisfx.com; s=google; t=1739937741; x=1740542541; darn=lists.apple.com; h=message-id:in-reply-to:to:references:date:subject:mime-version:from :from:to:cc:subject:date:message-id:reply-to; bh=Z04bGtmmfw5+WxgxwxU/LIF4OgMK2ZJPttInb23JXco=; b=Uhrr90DmWiLfiqG9xyx2XUYSTJMBr0h2VNV+fEzKuWobhTQp5NdIzMFlbDRySRI4FC RCBHjV12tHXu7463GvEv40hQyuucj4/R0yuuCv2FEx6iWpLU+5GoNtSv5rUgnSB2FWAO 7DLSsGjD5pVE0R1wSBkFSX6VfJSBs0SMPlXVMuWuDidNK5hvs9q9ozdrfuBSGzG8vKpg in5ut7XSdMCwHegjV+OPTg26RD1kKLbMpKG5N3M3FTxWGBgdYXvkQavZbz4JlJPX5zEx uZm7fUGWEVZDbkuAN0OwpABeQUaIrijaVsUQ4URTw0AHEwFvFUUiL2I9dH+RgdpCCiWt qlJA== The bashscript I use to expand an installer pkg is below. Sample arguments to run the script would be, Where the directory you'll expand to is the first argument a subdirectory for each component goes into the path at the 2nd arg, where it is intended to be a subfolder of the first a directory that holds the original pkg, the one you'd like to expand, is in the 3rd argument the name of the installer, including the .pkg extension, is in the final 4th argument ./expandpkg.sh installer-layout installer-layout/PackagesInstallerTest1 ~/Downloads InstallerTest1.pkg Image assets will be expected to arrive in a dist/Resources directory under the installer-layout/InstallerBuildInstallerTest1 directory. acquirepackage() { shortpackagename=`echo $packagename | perl -e '$line = <>;if ($line=~/^(.+)\.pkg$/){print $1;}'` /bin/rm -Rf "$packagedir""/$shortpackagename" /bin/mkdir "$packagedir""/$shortpackagename" /usr/sbin/chown root:admin "$packagedir""/$shortpackagename" /bin/chmod 775 "$packagedir""/$shortpackagename" /bin/mkdir "$packagedir""/$shortpackagename""/info" /usr/sbin/chown root:admin "$packagedir""/$shortpackagename""/info" /bin/chmod 775 "$packagedir""/$shortpackagename""/info" /usr/bin/rsync -avzE "$installexpanddir""/""$packagename""/PackageInfo" "$packagedir""/$shortpackagename""/info/Info.plist" if [ -a "$packagedir""/$shortpackagename""/tempdir" ]; then /bin/rm -Rf "$packagedir""/$shortpackagename""/tempdir" fi /bin/mkdir "$packagedir""/$shortpackagename""/tempdir" /usr/sbin/chown root:admin "$packagedir""/$shortpackagename""/tempdir" /bin/chmod 775 "$packagedir""/$shortpackagename""/tempdir" /usr/bin/rsync -avzE "$installexpanddir""/""$packagename""/Payload" "$packagedir""/$shortpackagename""/tempdir""/Archive.pax.gz" /usr/bin/gunzip "$packagedir""/$shortpackagename""/tempdir""/Archive.pax.gz" if [ -a "$packagedir""/$shortpackagename""/component" ]; then /bin/rm -Rf "$packagedir""/$shortpackagename""/component" fi /bin/mkdir "$packagedir""/$shortpackagename""/component" /usr/sbin/chown root:admin "$packagedir""/$shortpackagename""/component" /bin/chmod 775 "$packagedir""/$shortpackagename""/component" /usr/bin/rsync -avzE "$packagedir""/$shortpackagename""/tempdir/Archive.pax" "$packagedir""/$shortpackagename""/component/Archive.pax" cd "$packagedir""/$shortpackagename""/component" /bin/pax -r -f "$packagedir""/$shortpackagename""/component/Archive.pax" /bin/rm -f "$packagedir""/$shortpackagename""/component/Archive.pax" if [ -a "$packagedir""/$shortpackagename""/extras" ]; then /bin/rm -Rf "$packagedir""/$shortpackagename""/extras" fi /bin/mkdir "$packagedir""/$shortpackagename""/extras" /usr/sbin/chown root:admin "$packagedir""/$shortpackagename""/extras" /bin/chmod 775 "$packagedir""/$shortpackagename""/extras" if [ -f "$installexpanddir""/""$packagename""/Scripts/""preinstall" ]; then rsync -avz "$installexpanddir""/""$packagename""/Scripts/""preinstall" "$packagedir""/$shortpackagename""/extras/preinstall" fi if [ -f "$installexpanddir""/""$packagename""/Scripts/""postinstall" ]; then rsync -avz "$installexpanddir""/""$packagename""/Scripts/""postinstall" "$packagedir""/$shortpackagename""/extras/postinstall" fi #cleanup if [ -a "$packagedir""/$shortpackagename""/tempdir" ]; then /bin/rm -Rf "$packagedir""/$shortpackagename""/tempdir" fi } phase="Set original installer, package output dir, and new installer's build dir" installerprojectdir="$1" packagedir="$2" if ! [ -a "$packagedir" ]; then /bin/mkdir "$2" chmod 775 "$2" chown root:admin "$2" fi originaldir="$3" originstallername="$4" phase="checkdirs" if ! [ -a "$originaldir""/""$originstallername" ]; then echo "$originaldir""/""$originstallername" echo "$phase";exit 1 fi if ! [ -d "$packagedir" ]; then echo "$packagedir" echo "$phase";exit 1 fi installername="$originstallername"; shortorigname=`echo $originstallername | perl -e '$line = <>;if ($line=~/^(.+)\.pkg$/){print $1;}'` installbuilddir="$installerprojectdir""/InstallerBuild_""$shortorigname" if [ -a "$installbuilddir" ]; then /bin/rm -Rf "$installbuilddir" fi if [ -a "$installbuilddir" ]; then echo "$installbuilddir" echo "$phase";exit 1 fi /bin/mkdir "$installbuilddir" /usr/sbin/chown root:admin "$installbuilddir" /bin/chmod 775 "$installbuilddir" if ! [ -d "$installbuilddir" ]; then echo "$installbuilddir" echo "$phase";exit 1 fi phase="expand" installexpanddir="$installbuilddir""/expanded" if [ -a "$installexpanddir" ]; then /bin/rm -Rf "$installexpanddir" fi if [ -a "$installexpanddir" ]; then echo "$installexpanddir" echo "$phase";exit 1 fi if ! [ -a "$originaldir""/""$originstallername" ]; then echo "$originaldir""/""$originstallername" echo "$phase";exit 1 fi /usr/sbin/pkgutil --expand "$originaldir""/""$originstallername" "$installexpanddir" if ! [ -d "$installexpanddir" ]; then echo "$installexpanddir" echo "$phase";exit 1 fi /usr/sbin/chown -R root:admin "$installexpanddir" /bin/chmod -R 775 "$installexpanddir" if ! [ -f "$installexpanddir""/Distribution" ]; then echo "$installexpanddir""/Distribution" echo "$phase";exit 1 fi /bin/mkdir "$installbuilddir""/dist" /usr/sbin/chown root:admin "$installbuilddir""/dist" /bin/chmod 775 "$installbuilddir""/dist" phase="acquire dist material" if ! [ -d "$installexpanddir" ]; then echo "$installexpanddir" echo "$phase";exit 1 fi if ! [ -f "$installexpanddir""/Distribution" ]; then echo "$installexpanddir""/Distribution" echo "$phase";exit 1 fi /bin/mkdir "$installbuilddir""/dist" /usr/sbin/chown root:admin "$installbuilddir""/dist" /bin/chmod 775 "$installbuilddir""/dist" if ! [ -d "$installbuilddir""/dist" ]; then echo "$phase";exit 1 fi /usr/bin/rsync -avzE "$installexpanddir""/Distribution" "$installbuilddir""/dist/distribution.dist" if ! [ -f "$installbuilddir""/dist/distribution.dist" ]; then echo "$phase";exit 1 fi if ! [ -d "$installexpanddir""/""Resources" ]; then echo "" #echo "$phase";exit 1 fi /bin/mkdir "$installbuilddir""/resources" /usr/sbin/chown root:admin "$installbuilddir""/resources" /bin/chmod 775 "$installbuilddir""/resources" if ! [ -d "$installbuilddir""/resources" ]; then echo "$phase";exit 1 fi /usr/bin/rsync -avzE "$installexpanddir""/""Resources" "$installbuilddir""/resources" if [ -d "$installexpanddir""/Plugins" ]; then if [ -a "$installbuilddir""/Plugins.zip" ]; then /bin/rm -Rf "$installbuilddir""/Plugins.zip" fi if [ -a "$installbuilddir""/Plugins.zip" ]; then echo "$phase";exit 1 fi /usr/bin/ditto -c -k --rsrc --keepParent "$installexpanddir""/Plugins" "$installbuilddir""/Plugins.zip" /usr/sbin/chown root:admin "$installbuilddir""/Plugins.zip" /bin/chmod 775 "$installbuilddir""/Plugins.zip" if ! [ -f "$installbuilddir""/Plugins.zip" ]; then echo "$phase";exit 1 fi hasplugin=yes else hasplugin=no fi phase="list packages" /bin/ls -1 "$installexpanddir" | egrep -i '.*\.pkg$' > "$installbuilddir""/packagelist.txt" chmod 666 "$installbuilddir""/packagelist.txt" for packagename in `/bin/cat "$installbuilddir""/packagelist.txt"` do if [ -n "$packagename" ]; then acquirepackage fi done exit 0
On Feb 18, 2025, at 3:00 PM, installer-dev-request@lists.apple.com wrote:
Send Installer-dev mailing list submissions to installer-dev@lists.apple.com
To subscribe or unsubscribe via the World Wide Web, visit https://lists.apple.com/mailman/listinfo/installer-dev or, via email, send a message with subject or body 'help' to installer-dev-request@lists.apple.com
You can reach the person managing the list at installer-dev-owner@lists.apple.com
When replying, please edit your Subject line so it is more specific than "Re: Contents of Installer-dev digest..." Today's Topics:
1. Question: Extracting PKG Image Assets? (Sinan Karaca) 2. Re: Question: Extracting PKG Image Assets? (Johan Landin) 3. Re: Question: Extracting PKG Image Assets? (Sinan Karaca)
From: Sinan Karaca <bhatiaviresh@icloud.com> Subject: Question: Extracting PKG Image Assets? Date: February 18, 2025 at 4:50:53 AM EST To: installer-dev@lists.apple.com
Dear Developers,
How would I extract the assets contained in the PKG user interface itself (the wizard screens - blue dots, green checkmarks, etc.)?
Thanks, VB
From: Johan Landin <jol@ensys.se> Subject: Re: Question: Extracting PKG Image Assets? Date: February 18, 2025 at 6:31:22 AM EST To: Sinan Karaca <bhatiaviresh@icloud.com> Cc: Installer-dev@lists.apple.com
I sugget that you use "Suspicious Package” which can be downloaded from
https://www.mothersruin.com/software/SuspiciousPackage/
Best Regards /Johan Landin
On 18 Feb 2025, at 10:50, Sinan Karaca via Installer-dev <installer-dev@lists.apple.com> wrote:
Dear Developers,
How would I extract the assets contained in the PKG user interface itself (the wizard screens - blue dots, green checkmarks, etc.)?
Thanks, VB _______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/installer-dev/jol%40ensys.se
This email sent to jol@ensys.se
From: Sinan Karaca <bhatiaviresh@icloud.com> Subject: Re: Question: Extracting PKG Image Assets? Date: February 18, 2025 at 7:13:01 AM EST To: Johan Landin <jol@ensys.se> Cc: Installer-dev@lists.apple.com
The goal is not to look inside what’s contained within packages, but to extract the bitmaps/icons/dialogs used in the package installer itself (not the payload, but the package UI).
On Feb 18, 2025, at 14:31, Johan Landin <jol@ensys.se> wrote:
I sugget that you use "Suspicious Package” which can be downloaded from
https://www.mothersruin.com/software/SuspiciousPackage/
Best Regards /Johan Landin
On 18 Feb 2025, at 10:50, Sinan Karaca via Installer-dev <installer-dev@lists.apple.com> wrote:
Dear Developers,
How would I extract the assets contained in the PKG user interface itself (the wizard screens - blue dots, green checkmarks, etc.)?
Thanks, VB _______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/installer-dev/jol%40ensys.se
This email sent to jol@ensys.se
_______________________________________________ Installer-dev mailing list Installer-dev@lists.apple.com https://lists.apple.com/mailman/listinfo/installer-dev
_______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/installer-dev/site_archiver%40lists.... This email sent to site_archiver@lists.apple.com
participants (1)
-
Mike Escola via Installer-dev