Skip to content

[BUG] --fetch-full-installer mode detects an installer anywhere on disk rather than just in Applications #531

@grahampugh

Description

@grahampugh

Describe the bug
On macOS Sequoia (maybe older too?), it seems that using --fetch-full-installer mode detects an installer anywhere on disk rather than just in Applications. This causes the script to fail because it is expecting the installer to be in Applications. Additionally, --update is not successfully being induced in this circumstance to download it again.

To Reproduce

  • Download an installer, move it to somewhere else like /Users/Shared.
  • Run e.g. sudo ./erase-install.sh --os 15 --reinstall --update --test-run --ffi. The installer is found by softwareupdate but not by erase-install.sh.
  • Worse still, the installer is launched!

Expected behavior
We can't affect the behaviour of startosinstall, so I guess we are going to have to use mdfind to find and move the installer or to give a dialog that says the installer is in the incorrect location. We may also need to force it to quit.

Code/log output

% sudo ./erase-install.sh --os 15 --reinstall --update --test-run --ffi
2024-11-06 09:25:50 | v36.1 | [log_rotate] Finished rotating logs in /Library/Management/erase-install/log

2024-11-06 09:25:50 | v36.1 | [erase-install] v36.1 script execution started: Wed Nov  6 09:25:50 CET 2024

2024-11-06 09:25:50 | v36.1 | [erase-install] Arguments provided: --os 15 --reinstall --update --test-run --ffi

2024-11-06 09:25:50 | v36.1 | *** TEST-RUN ONLY! ***
2024-11-06 09:25:50 | v36.1 | * This script will perform all tasks up to the point of erase or reinstall,
2024-11-06 09:25:50 | v36.1 | * but will not actually erase or reinstall.
2024-11-06 09:25:50 | v36.1 | * Remove the --test-run argument to perform the erase or reinstall.
2024-11-06 09:25:50 | v36.1 | **********************

2024-11-06 09:25:51 | v36.1 | [set_localisations] Set language to en-CH
2024-11-06 09:25:51 | v36.1 | [erase-install] System version: 15.1 (Build: 24B83)
2024-11-06 09:25:51 | v36.1 | [check_for_swiftdialog_app] swiftDialog v2.5.2.4777 is installed (/Library/Application Support/Dialog/Dialog.app)
2024-11-06 09:25:51 | v36.1 | [check_for_swiftdialog_app] Creating dialog log (/var/tmp/dialog.Qwg)...
2024-11-06 09:25:51 | v36.1 | [erase-install] Caffeinating this script (pid=11040)
2024-11-06 09:25:51 | v36.1 | [check_free_space] OK - 131 GB free/purgeable disk space detected
2024-11-06 09:25:51 | v36.1 | [erase-install] Looking for existing installer app or pkg
2024-11-06 09:25:51 | v36.1 | [find_existing_installer] No valid installer found.
2024-11-06 09:25:51 | v36.1 | [erase-install] Running on architecture arm64
2024-11-06 09:25:51 | v36.1 | [get_user_details] ask for user credentials (attempt 1/5)
2024-11-06 09:25:51 | v36.1 | [get_default_dialog_args] Invoking utility dialog
yes gpugh is a member of everyone
2024-11-06 09:25:56 | v36.1 | [get_user_details] gpugh is a Volume Owner
2024-11-06 09:25:57 | v36.1 | [check_password] Success: the password entered is the correct login password for gpugh.
2024-11-06 09:25:57 | v36.1 | [get_default_dialog_args] Invoking utility dialog
2024-11-06 09:25:58 | v36.1 | [run_fetch_full_installer] Found version 15.1
2024-11-06 09:25:58 | v36.1 | [run_fetch_full_installer] Running /usr/sbin/softwareupdate --fetch-full-installer --full-installer-version 15.1 
Scanning for 15.1 installer
Install finished successfully
2024-11-06 09:26:13 | v36.1 | [check_installer_is_valid] Checking validity of .
2024-11-06 09:26:13 | v36.1 | [check_installer_is_valid] Using DTSDKBuild value from Info.plist
2024-11-06 09:26:13 | v36.1 | [check_installer_is_valid] Installer Info.plist could not be found!
2024-11-06 09:26:13 | v36.1 | [check_installer_is_valid] Build of existing installer could not be found, so it is assumed to be invalid.
2024-11-06 09:26:13 | v36.1 | [run_fetch_full_installer] The downloaded app is invalid for this computer. Try with --version or without --fetch-full-installer

2024-11-06 09:26:13 | v36.1 | [erase-install] terminating the process 'caffeinate' process

2024-11-06 09:26:13 | v36.1 | [finish] sending quit message to dialog (/var/tmp/dialog.Qwg)
2024-11-06 09:26:13 | v36.1 | [finish] Script exit code: 1

Environment (please complete the following information):

  • OS version - 15.1 (24B83)
  • erase-install version - 36.1

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions