App Auto-Patch combines local application discovery, an Installomator integration, and user-friendly swiftDialog prompts to automate application patch management across Mac computers.
App Auto-Patch was developed based on a similar concept as the Patchomator project, with a significant portion of its code borrowed from there. The main requirement for its use was to create a script deployable through Jamf Pro without the need for installing multiple dependencies on end-user computers. Since the original concept, it has since become an independent repository hosted here.
The script simplifies the process of taking an inventory of installed applications and patching them, eliminating the need for creating multiple Smart Groups, Policies, Patch Management Titles, etc., within Jamf Pro. It provides an easy solution for keeping end-users' applications updated with minimal effort.
This project has since been applied to MDMs outside of Jamf Pro, showcasing its versatility and adaptability.
- Days Deadlines - allows you to specify the maximum number of days the user can defer after the Patching Start Date. You can set multiple days deadlines with one of each type; focus, and hard.
- WorkflowInstallNowPatchingStatusAction - Added MDM keys and triggers for determining what happens with the Patching Completion Status when using the
--workflow-install-now
option - Moved the Defer button next to the Continue button to position it underneath the deferral menu drop-down
- Adjusted logic to use deferral_timer_workflow_relaunch_minutes after AAP completes the installation workflow
- Fixed logic for workflow_disable_relaunch_option to disable relaunch after successful patching completion if set to TRUE
- Added exit_error function to handle startup validation errors
App Auto-Patch 3.1 automatically installs itself and necessary components anytime it's ran from outside the working folder /Library/Management/AppAutoPatch/
For more information on getting started and testing, please visit the AAP 3.1.0 Wiki page for more information
- After installed, you can simply run
sudo appautopatch
from terminal with any parameters to configure as you'd like. Examples:
sudo appautopatch --interactiveMode=2 --workflow-install-now --deadline-count-focus=2 --deadline-count-hard=4 --ignored-labels="microsoft* googlechrome* jamfconnect zoom* 1password* firefox* swiftdialog" --verbose-mode
Or trigger from the script directly to perform an install with parameters as you'd like. Example:
./App-Auto-Patch-via-Dialog.zsh --interactiveMode=2 --workflow-install-now --deadline-count-focus=2 --deadline-count-hard=4 --ignored-labels="microsoft* googlechrome* jamfconnect zoom* 1password* firefox* swiftdialog" --verbose-mode
-
You can find a mapping of 2.x variables to 3.1.0 configuration and command line options from the following TSV file: Migration Options
-
Profile Manfiests to assist with building a configuration profile can be found in the Resources folder: Profile Manifests
-
An example configuration profile and a profile & plist containing All available options can be found in the resources: Example Configurations
-
To reset AAP to defaults:
./App-Auto-Patch-via-Dialog.zsh --reset-defaults
-
Clear Ignored, Required, and Optional Labels:
./App-Auto-Patch-via-Dialog.zsh --reset-labels
-
Uninstall App Auto Patch:
./App-Auto-Patch-via-Dialog.zsh --uninstall
Please review the wiki: App Auto-Patch Wiki
You can also join the conversation at the Mac Admins Foundation Slack in channel #app-auto-patch.
To everyone who has helped contribute to App Auto-Patch, including but not limited to:
- Robert Schroeder (@robjschroeder)
- Andrew Spokes (@TechTrekkie)
- Dan Snelson (@dan-snelson)
- Andrew Clark (@drtaru)
- Andrew Barnett (@andrewmbarnett)
- Trevor Sysock (@bigmacadmin)
- Bart Reardon (@bartreardon)
- Charles Mangin (@option8)
- Gil Burns (@gilburns)
- Armin Briegel (@scriptingosx)
- Isaac Ordonez (@issacatmann)
- Søren Theilgaard (@Theile)
- Adam Codega (@acodega)