How can I download MacOS 15.5 Pkg

preranabhatt
New Contributor II

The devices that I am managing Shows as MacOS 15.3.1 and shows as up to date. I don't have any restrictions on MacOS update. somehow users are unable to see any new MacOS update? When I try pushing the update through Software update, it's failing. possible it's because these devices were user enrolled.

I am trying to  get a MacOS 15.5 Pkg and make users download from Self service and update. 

How to get the latest Pkg or any script that i can use. It's been 2 days of me trying all sorts of scripts and nothing works. 

Thanks in advance

20 REPLIES 20

mschlosser
Contributor III

Last I read this command was broken in one of apple's recent updates, that said it is worth a go:

softwareupdate --fetch-full-installer --full-installer-version 15.5

Another alternative that oyu can use is mist, from here, you can download the updates in various formats; one of which being a package for easy distribution via jamf. https://github.com/ninxsoft/Mist

tdenton
Contributor III

I'm also having issue rolling 15.5 through software update.

Seeing a lot issues regardless of how you set it up in software update. 
We currently using download and schedule install, have little issues with previous updates so does seem to be something about 15.5 

Seeing this error a lot currently have open ticket with Jamf support.

Current state:PlanFailed
Error reasons:DeclarativeDeviceManagementStatusResponseFailureReasonReceived.

While it is working for us its not as smooth as normal, don't get me wrong its not perfect. but we seen much improvment since introducation of new software update process.

You say its failing, what are you seeing in computer record under management Operating system  & history operating system history.

You may find this usefull in understading the error genrated by software updates  https://learn.jamf.com/en-US/bundle/technical-articles/page/Troubleshooting_Managed_Software_Updates...

If you looking for 3rd party options Super would be option https://github.com/Macjutsu/super this gets away from haing to deploy an installer as its all handled via super. Can recommend as where coming to end of MacOS 14 to MacOS 15 upgrade.




Thank you. For some reason few of these devices shows upto date with whatever version they are on ( 15.3 or 15.3.1 ) instead of showing updates available? I don't even have restrictions. I am surprised what's causing it. I tried updating 15.4.1 with Software update option and it shows no update available. I know they have updates available as these are all new Macs. I will try the link you mentioned. thank you

whats happens if deploy something like this through jamf software update 

Screenshot 2025-05-15 at 16.01.25.png

 have you restrictions in place under restrict software 

I don't have any restrictions. I did try this, tried pushing 15.4.1 and if I go to see the operating system history, it shows it's running this command but It shows no available updates available?

this is what I see 

UUID: d9448239-670c-48c1-89a2-aa95a4393225View event store
Install action:Download, install, and allow deferral (1 deferrals allowed)
Update action:Specific version (15.4.1)
Current state:PlanFailed
Error reasons:UnableToFindUpdatesAndOutOfRetries
Deferrals:Collecting
Previous notifications sent:Collecting
 
I tried updating to 15.4.1 and same issue

@preranabhatt  What about if you use download and schedule to install 
set to todays date and 17:00pm or what ever you want.
set  target version to latest version based on device eligibility or specific version either should work.

Leave device powered on  and connected to power and see what happens.
Are these intel device or Apple silcon?
Do the device have bootstrap tokens under secuirty section?


sdagley
Esteemed Contributor III

@preranabhatt Have you tried turning off the "Use new feature" option in the Software Update screen on your Jamf Pro console, waiting a few minutes, then re-enabling it and trying a new update push?

sdagley
Esteemed Contributor III

@preranabhatt I see that @mschlosser and @tdenton have provided links to tools that can be used to download or run  them on target Macs, but my preference for when I need to push an installer is still to download the Install macOS... package from Apple then push it through Jamf Pro. For those download links I rely on @ClassicII 's "Mr. Macintosh" web site: https://mrmacintosh.com/macos-sequoia-full-installer-database-download-directly-from-apple/ 

thank you. I used this on my device and was able to update. Now trying to see how I can use this to install on other devices. I want to use scripts but failing miserably. 

sdagley
Esteemed Contributor III

@preranabhatt If you're good with the push the installer then run it approach I'll recommend using the combination of erase-install (https://github.com/grahampugh/erase-install) to manage the update installation and the erase-install-launcher (https://github.com/grahampugh/erase-install/blob/main/erase-install-launcher.sh) script to run it. The latter is required so that the Jamf Pro policy you'll use to run erase-install can log completion before the reboot needed to finish the update is triggered.

See the erase-install Wiki for more details: https://github.com/grahampugh/erase-install/wiki/6.-Use-in-Jamf-Pro (see the "A note about Policy Logs" regarding use of the launcher script)

PaulHazelden
Valued Contributor

There is an app called Download Full Installer, where you can get the full installer from Apple.

I would suggest going back in to your configs and rechecking again. If you have Restrictions Config it will be in there under Functionality. However if you have Login Window as a seperate Config, even though you are not managing it specifically, it can also appear in there. I keep Login Window, Restrictions, and Security and Privacy in the one config for this very reason.

preranabhatt
New Contributor II

Thank you everyone. I mean it shouldn't be this hard to update to latest version right? I am starting to panic because if it's going to be this difficult each time. 

it shouldnt no, but it much better than it us to be.

It also acknowledge by Jamf & Apple which is setup in right direction Im sure many other admins will tell you its been on a bit of journey over the years.

If you not aware of it this might give you some insight https://www.youtube.com/watch?v=6r8qB7GuQSU

howie_isaacks
Valued Contributor III

You could create a Jamf policy that will download the full installer as an install assistant package. I use an app called Download Full Installer to get the install assistant package. In the app you can right-click the downloads to get their URL which you can then use with this script that I created a couple years ago. I did this when I noticed that the "softwareupdate --fetch-full-installer --full-installer-version XX" command did not always work reliably on my company's network. Users need to be an admin to run the install app but you can create a workflow that would temporarily promote those users to admin and then demote them after the the macOS upgrade has been completed.

#!/bin/zsh

:<<ABOUT_THIS_SCRIPT
--------------------------------------------------------------------------------------
This script will download the desired macOS installer using the download URL that is 
specified in parameter 4. Use parameter 5 specify the macOS version which will be part
of the installer package name.

The downloaded package will install the macOS install app to /Applications.

Use the Download Full Installer app from scriptingosx GitHub.
https://github.com/scriptingosx/DownloadFullInstaller/releases
Right click the desired version of macOS in the app to obtain its download URL

6/30/2023 | Howie Canterbury
--------------------------------------------------------------------------------------
ABOUT_THIS_SCRIPT

# Parameters for Jamf Pro
downloadURL="$4"  # Obtain this by right-clicking the macOS version you want from the list
macOSVersion="$5" # Example: 14.5, 15.0, etc.

# Download destination
pathToInstaller=/private/tmp/macOS_$macOSVersion.pkg

### Download the macOS installer using the URL obtained from Download Full Installer app.
echo "Downloading macOS $macOSVersion installer package"
curl -o $pathToInstaller $downloadURL

### Extract the macOS install app from the downloaded package
installer -pkg $pathToInstaller -target /

### Delete the installer package to free up space
rm $pathToInstaller


exit 0

 Right after pasting this script into this thread I remembered that I need to add a step to verify that the macOS install app successfully downloaded. I'll work on that. 

easyedc
Valued Contributor II

Throwing my 2¢ into this as well.  I like Mist (https://github.com/ninxsoft/Mist) for downloading. Offers a nice gui and can make deployable packages as well all in the interface.  

Are these Intel or Apple Silicon computers having this problem? Had this with Apple silicon on a few devices and Apple suggested performing a revive on them through configurator.  It helped with a few, but not all.  

pikachu07
New Contributor

I've been trying to update user-enrolled macOS devices from version 15.3.1 to 15.5, but I’m running into a wall—these Macs show as up to date, and pushing the update via Software Update keeps failing. Since we don’t have any restrictions set for macOS updates, it’s likely the issue stems from the devices being user-enrolled, which limits MDM control over software updates. After trying multiple scripts over the past two days with no success, I’m now looking to get the macOS 15.5 installer package so users can download it through Self Service and run the update manually. I’ve explored tools like installinstallmacos.py to fetch the full installer and am hoping to deploy the InstallAssistant.pkg that way. If anyone has a reliable method or script that works with user-enrolled devices, I’d really appreciate the help.

regards: Nulls brawl

sdagley
Esteemed Contributor III

@pikachu07 See my earlier post regarding erase-install (it can be used to update in addition to re-imaging) and the accompanying erase-install-launcher script. That combination has worked well in the past for my org to do Self Service initiated updates as an alternative to the Software Update initiated approach.

Super should also work https://github.com/Macjutsu/super 

howie_isaacks
Valued Contributor III

Here's an updated version of the script that I posted before. I added a function to verify that the macOS installer did get installed to /Applications.

#!/bin/zsh

:<<ABOUT_THIS_SCRIPT
--------------------------------------------------------------------------------------
This script will download the desired macOS installer using the download URL that is 
specified in parameter 4. Use parameter 5 specify the macOS version which will be part
of the installer package name. A verify function will confirm that the download and
installation of the macOS installer app was successful.

The downloaded package will install the macOS install app to /Applications.

Use the Download Full Installer app from scriptingosx GitHub.
https://github.com/scriptingosx/DownloadFullInstaller/releases
Right click the desired version of macOS in the app to obtain its download URL

Parameters:
4 - Download URL
5 - Target macOS version
6 - Target macOS build
7 - Path to macOS installer - example: "/Applications/Install macOS Sequoia.app"

Created on 6/30/2023 | Howie Canterbury
Updated on 5/19/2025 to include verification of successful installation

--------------------------------------------------------------------------------------
ABOUT_THIS_SCRIPT

# Parameters for Jamf Pro
downloadURL="$4"  # Obtain this by right-clicking the macOS version you want from the list
macOSVersion="$5" # Example: 14.5, 15.0, etc.
targetBuild="$6" # Found in info.plist key: DTSDKBuild contained in the Install Assistant package
macOSInstaller="$7" # Path to the installer package in /Applications

# Function to verify the macOS installer was installed in /Applications
verify_Install() {
	local installedBuild=$(/usr/libexec/PlistBuddy -c "Print :DTSDKBuild" "$macOSInstaller/Contents/Info.plist")
	if [ "$installedBuild" = "$targetBuild" ] && [ -d "$macOSInstaller" ]; then
		echo "macOS installer for macOS ${macOSVersion} has been installed"
	else
		echo "macOS installer for macOS ${macOSVersion} install failed"
		exit 1
	fi
}

# Download destination
pathToInstaller=/private/tmp/macOS_$macOSVersion.pkg

# Download the macOS installer using the URL obtained from Download Full Installer app.
echo "Downloading macOS $macOSVersion installer package"
curl -o $pathToInstaller $downloadURL

# Extract the macOS install app from the downloaded package
installer -pkg $pathToInstaller -target /

# Delete the installer package to free up space
rm $pathToInstaller

# Verify the macOS installer was installed
verify_Install


exit 0

The script will exit with exit 1 if the installer app did not make it into /Applications. The Jamf Pro policy will show a failure.