GarageBand and Apple Essential Sounds?

DanJ_LRSFC
Contributor III

Now that GarageBand is available for free, we're assigning it to our Macs using VPP App Store licenses.

However, when a user tries to run it for the first time, it prompts them for an administrator password to download and install the Essential Sounds library.

There used to be a script to do this, but as we're using VPP assignments now, there's no .pkg file for us to attach a "postinstall" script to.

How do we get just the bare essentials installed for users to be able to run GarageBand, without them being prompted for an administrator username and password? Ideally it would be great if this could happen automatically as soon as GarageBand is on the Mac.

Thanks,
Dan Jackson (Senior ITServices Technician)
Long Road Sixth Form College
Cambridge, UK

8 REPLIES 8

RLR
Valued Contributor

Not sure if this would be of any help: https://github.com/carlashley/appleLoops

We only have a few MACs so just installed it manually but I agree there should be an easier way.

DanJ_LRSFC
Contributor III

@RLR yes I think that's the script we were using previously, but how can we associate that with the installation of a Mac App Store App that's assigned through VPP? The "Mac App Store Apps" area of Jamf Pro does not provide any way to add a script to the installation.

EDIT: I guess a policy would be the logical place, but how can I make a smart group that will only include computers that have GarageBand but don't have the Essential Sounds?

JMR
New Contributor II

Maybe this could work?

You can capture the packages being downloaded from the App Store using something along these lines:

http://techion.com.au/blog/2014/10/18/pkgkeeper-script

So start GarageBand and grab the sounds using the above script. The sounds are downloaded as packages so the above script will work (turn off SIP first).

Then maybe create a Smart Group that looks for GarageBand being installed and if it is run a policy to install the captured packages.

kirk_magill
New Contributor

JMR - That can work, but the download creates a ton of .pkg files. 116 to be specific.

DanJ_LRSFC
Contributor III

The Carl Ashley Apple Loops script has been considerably updated since the last time I used it and is now able to create a DMG full of the .pkgs, which I've uploaded to Jamf Admin and now have a script that can mount the dmg and install all the .pkgs from cache:

#!/bin/sh

LOG=/var/log/appleloopsinstaller.log

log () {
    d=`date`
    echo "[$d] $@" >>$LOG
}

Exit () {
    log $1
    echo "EXIT:$2"
    exit $2
}

PACKAGE_PATH="/Library/Application Support/JAMF/Waiting Room"
input="installdmg"
dmg="$PACKAGE_PATH/GaragebandMandatorySounds.dmg"
log "input: $input"
log "dmg: $dmg"
TMPDIR=/tmp/appleloops-dmg-$RANDOM
log "Temp Mount Dir: $TMPDIR"
echo "installer:PHASE:Verifying and mounting disk image..."
log "cmd: hdiutil attach "$dmg" -mountpoint "$TMPDIR" -nobrowse -puppetstrings"
hdiutil attach "$dmg" -mountpoint "$TMPDIR" -nobrowse -puppetstrings || Exit "Could not mount $dmg at $TMPDIR" 3
for PKG in $(ls "$TMPDIR/lp10_ms3_content_2016" | grep "pkg$"); do
    input="installpkg"
    package="$TMPDIR/lp10_ms3_content_2016/$PKG"
    target="/"
    log "input: $input"
    log "package: $package"
    log "target: $target"
    log "cmd: /usr/sbin/installer -dumplog -pkg "$package" -target "$target" -verboseR >> $LOG 2>&1"
    /usr/sbin/installer -dumplog -pkg "$package" -target "$target" -verboseR >> $LOG 2>&1
    err=$?
    log "The package installed successfully"
    echo "EXIT:$err" # send back the exit code from /usr/bin/installer
done
log "/usr/bin/hdiutil detach "$TMPDIR""
hdiutil detach "$TMPDIR" # Don't care about failed detach
Exit "The helper finished with no errors" 0 # caller told us to quit

Note that the .dmg is not a Jamf-compatible .dmg, so you can't use the "Install" action to install it, the way I've got it working is to Cache this (which just copies it to /Library/Application Support/JAMF/Waiting Room) then run this script which mounts it and installs all the PKGs. The process takes around 15 minutes on our Macs here.

blackholemac
Valued Contributor III

I have used Carl Ashley's script for years here and it's good. Last summer he had to tweak it just a little bit because it was missing a very small handful of available loops, but he has since done so and given his script's functionality, I've went back to using it because it works well.

thebrucecarter
Contributor II

Just as an aside, we have complained about this to our field SE as well as bugreported it, feedbacked it, and just generally whined about it everwhere we could think of. In the meantime, we are also using the appleloops solution.

bsuggett
Contributor II

To grab the GarageBand or Logic installers for sound libraries use the below...
SoundsLibrariesExtract

Then use InstallPKGsfromDMG from below
InstallPKGsfromDMG