Smart Software provides amazing power and control over your devices. With Smart Software, you can deploy almost any software or settings to your devices. Moreover, you can deploy any needed MDM profiles along with your software automatically. This article serves as a step-by-step guide to creating Smart Software items utilizing all available functionality in the feature to the fullest extent.
For more information about how to use Smart Software, see Smart Software Overview.
-
Creating a New Smart Software Item
- Attached Profiles
- Condition for Install
- Self Service
- Removal Command
Creating a New Smart Software Item
- On the left sidebar, navigate to the Catalog page.
- Select the Software tab or select the Software option in the body of the page.
- Smart Software will be automatically selected. Next, select New.
Name your Smart Software Item
To start, add the software name and the version. For the purpose of this article, we have used the software name My Custom Software and used version number 1.0.
Note: The following special characters are not supported for Software Name: &,<, >, ", ', /
Add Installation Files
Next, add your file(s) to the Smart Software item by clicking Select File(s) in the Installation section. Once selected, Smart Software will detect apps in the files added (if applicable) and show how many apps it found in the Add Profiles column.
Some Smart Software do not require any installation files and some require multiple.
Note: Many file types are supported for installation (examples: pkg, dmg, zip, sh, mobileconfig, app, tar.gz xml, json).
Installation Commands
Once you've uploaded your file(s), press Add under the Install Command column to automatically generate an Installation Command for the Smart Software item.
Currently, only .pkg and .sh type files are supported for this functionality (auto generating installation commands). The following articles can be used as general guidance to write Installation Commands for other file types:
- How-To: Create Custom/Smart Software items (.dmg files)
- How-To: Create Smart Software items (.app files)
However, if a Custom Installation Command/Script is provided by the software's developer, it should always be used as the Install Command for the Smart Software item rather than using our generic/auto-generated commands/scripts.
Note: If you are dealing with a license key or other value that is unique per-client, you can leverage our Variables feature to simplify deployment: Addigy Variables
Priority Order
By default, Smart Software items have an Installation Priority of 10. In most cases, this value can be left as is. For more information on Priority Order, please reference the following documentation:
- Installation Priority
- Pre-Enrollment Deployments
Attached Profiles
Many applications require whitelisting via MDM Profiles for silent software installation and/or to prevent popups that require end user approval. It is best to consult developer documentation to help determine what particular MDM Profiles are needed for the application you are deploying.
Smart Software allows you to deploy PPPC, Service Management, and System Extension MDM profiles alongside software to prevent end users from experiencing prompts to allow permissions upon installation of a new application. In some cases, additional MDM Profiles not available in Smart Software may need to be created and deployed separately using standalone MDM Profile functionality: How to Create MDM Profiles
When a qualifying file is added to a Smart Software item, Addigy will automatically search for any Bundle IDs and Code Requirements to generate whitelisting MDM Profiles. You can use the MDM Profiles automatically generated by Addigy or manually create the necessary MDM Profiles by entering the appropriate information.
If no profiles are being detected, one of the below points may be causing that:
- The file type of the application installer does not qualify for this feature
-
The binaries that require whitelisting are nested too deep within the installer file.
- The auto-sensing tool will only search a certain amount of sub-directories within the installer file. If the binaries are nested too deep, we will not detect them.
Notes:
- MDM Profiles in a Smart Software item will not apply to a device when deployed via GoLive. They will only apply when deployed via the Policy.
- Some software requires certain MDM Profiles (for example, Full Disk Access) to be deployed prior to software to allow a successful remote installation.
- Service Management is only supported by macOS 13.0+ devices. System Extension is only supported by macOS 10.15+ devices. Kernel Extensions have been deprecated by Apple and are no longer supported in newer operating systems.
- When deploying System Extensions through Smart Software, Addigy automatically adds the Removable System Extensions key to all System Extensions and matches the team identifier to any bundle identifiers added. This allows System Extensions to be removed by an administrator at a later date, if necessary.
Auto-sensing MDM Profiles
- Click on the '# apps found' drop-down to see all apps found. Then select any or all of the different types of MDM profiles you'd like to deploy and click Create Profiles.
- The Attached Profiles section will now show all the profiles you've generated.
- You can open each app to see the individual PPPC, Service Management, or System Extension profiles. You can also delete profiles you may have added that are no longer needed.
Adding Profiles Manually
- In the Add manually section, click the MDM profile you would like to create. They will show up in a new section called Manually Added Profiles with a placeholder name.
- Open your manually added profile to give that profile a name and enter in any appropriate information for it.
Condition for Install (Condition Script)
Under Condition for Install, you can utilize any prebuilt condition or create your own custom condition to specify which criteria to check prior to installation. This allows you to see if the software item is already installed and if so, skip the installation.
Note: Smart Software items without a Condition for Install will not be enforced with regular policy deployments. Addigy will attempt to install them once, and then ignore them during future policy deployments. Adding a simple Condition for Install (for example, a condition to check if the application being installed already exists) will allow reinstallation to be attempted each time the Condition for Install is passed.
Prebuilt Conditions
Prebuilt conditions are conditions that Addigy has created that will check for numerous criteria without admins needing any scripting knowledge. You may use one, all or zero of these conditions when creating Smart Software.
If you'd like to see the script Addigy has created for a prebuilt condition, check a specific condition and add values to it. On the bottom right of the Condition for Install section, click the Preview command link to see the code.
Custom Conditional Commands
Custom Conditional Commands allow for a space for admins to create their own conditional commands or scripts that don't exist as Prebuilt Conditions.
Install if return value is 0 refers to the behavior of installation based on the exit code of the entire condition script.
Note: To enable or disable this option, a Custom Conditional Command must be present.
When a script is done running, it will always return an exit code. If there is no explicit exit code in the script, it will naturally exit with 0. By default, having this option checked will cause the software to install when the condition script exits with code 0. Disabling this option changes the behavior so that any non-zero exit code causes the software to install. This is particularly useful for some one-line condition scripts where you are relying on the natural exit code of the command used to determine whether to install the software or not. In most cases, Addigy recommends leaving this option enabled.
-
- Exit Code Values
- 0 = Success
- Any non-zero values = Error
- Exit Code Values
Self Service
The Self Service section allows you to configure options about a Smart Software item that will display to your end users through a native Swift application. This allows your end users to install Smart Software items on demand.
-
Description - This gives an end user an idea of what they're installing on their device. This is especially helpful for Smart Software items that only contain scripts.
- Note: Currently not implemented in Self Service and will be in a future date.
- Change icon: An icon that will show inside of Self Service for the Smart Software item. A 256x256 png file is recommended. If no file is uploaded, it will display the default image shown above.
- Category: This creates filters within Self Service that will show you items based on the category an item was given. General is the default category and if no category is explicitly given, it will be set to General.
More information on Smart Software deployment via Self Service can be found in Smart Software Overview. (link to Self Service section)
Removal Command
Smart Software also offers the optional ability to add a Removal Command to your items.
Note: If a Smart Software item includes a Removal Command, it will run -
- when a device is removed from the policy the Smart Software item exists in. The Removal Command will run on the device with its next regular policy deployment.
- when a Smart Software item is removed from a policy. The Removal Command will run on all devices in that policy with their next regular policy deployments.
- when a device is removed from Addigy completely. The Removal Command will run alongside cleanup scripts to remove Addigy and Addigy created data.
As always, we first suggest referencing documentation or reaching out to the developer to attain an official removal script for the application you are deploying. Using an official removal script is the only way to ensure a clean uninstall of the application - some software can be removed by simply deleting the app from the /Applications folder, but many apps store data in various other locations on a device only known to the developer.
To generate a simple Removal Command for your software item, add the path to the application in the Add directory path to script section, then select the Add to script button. This will add a Removal Command similar to the following:
/bin/rm -Rf '/Applications/YourApp.app'
It is extremely important that you use the correct path to the application or directory you are hoping to delete when leveraging this feature. Pairing an incorrect path with an rm command can lead to data loss and potentially severe device issues.
Removal Commands should be added to your items with great caution. We suggest that you only add a Removal Command if you are experienced with bash scripting, or if you are using an official removal script from the software's developer and have a clear understanding of its functionality. Additionally, we strongly recommend testing your removal commands before adding them to your Smart Software items.
If you need a Removal Command for a particular application, please reach out to the software developer. Please keep in mind that our Support Team is not permitted to write Removal Commands on behalf of clients as they can be dangerous, and as stated previously, only the software's developer will have the information necessary for a clean uninstall. However, if you must use a Removal Command but are unsure about its functionality, please reach out to support@addigy.com for assistance and we can help confirm if it is safe to include in a Smart Software item.
Note: The rm Terminal command should be used very carefully as misuse could lead to data loss.