Skip to content

App-Auto-Patch/App-Auto-Patch

Repository files navigation

App Auto Patch

App Auto-Patch 3.1.0

GitHub release (latest by date) GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests

Introduction

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

Why Build This

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.

New features/Specific Changes in 3.1

  • 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

Getting Started with 3.1

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

Learn More

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.

Thank you

To everyone who has helped contribute to App Auto-Patch, including but not limited to:

And special thanks to the Installomator Team