DEV Community

Cover image for Extracting PKGs on macOS
H. Kamran
H. Kamran

Posted on • Originally published at hkamran.com on

Extracting PKGs on macOS

Photo by: seth schwiet on Unsplash

Let's say you're on a computer where you don’t have administrative access, but you really need to use this one piece of software. In my case, this was Apple’s SF Symbols app. There’s a pretty simple way to extract the payload from the package (.PKG).

To get started, you first need two things. A macOS-equipped computer and a DMG with a PKG inside, or just a PKG. This tutorial will detail both.

Extracting the Package Contents

If your PKG is inside of a DMG, start here

To extract the payload from a PKG inside of a DMG, we need to mount the DMG. There are two ways to do this. You can either use the Finder (double-click the DMG to mount it) or use the terminal with the following command: hdiutil attach [path to your DMG]. For example, hdiutil attach ~/Downloads/SF\ Symbols.dmg.

PKG Extraction

Now is where we have to use the terminal. In your terminal, navigate to the folder just above where you want your PKG to be extracted. An example command is as follows: cd ~/Documents.

You can then proceed to extract the PKG with: pkgutil --expand-full [package to PKG] [folder to extract to]. For example, pkgutil --expand-full /Volumes/SFSymbols/SF\ Symbols.pkg extracted_package.

The contents of the PKG are now available in the extracted_package folder. With the SF Symbols.pkg extracted, it has three directories: Distribution and Resources, SFSymbols.pkg.

The content of the PKG is stored in the (in my case) SFSymbols.pkg folder.

The folder hierarchy of the Payload folder (extracted_package/[package name]/Payload) is very simple. The directories are the places to put the files. For example, the directory Applications has SF Symbols.app, because that needs to be put in the Applications folder on your computer.

Once you have extracted the Payload, you can eject the volume (if you are using a DMG) or delete the PKG, as you no longer need it.

Discussion (0)