macOS MDM Deployment
Deploy We360.ai macOS agent via MDM — Jamf, Mosyle, Kandji, Hexnode, Addigy, and SimpleMDM setup for mass endpoint monitoring.
The MyZen macOS installer is distributed as a standard .pkg file, which can be deployed through any MDM that supports macOS package distribution. This guide covers deployment steps, PPPC configuration profiles, and background items management for each supported MDM platform.
App & Team Identifiers
Apple Developer Team ID: 5KPT5U8WVR (Zenstack Private Limited)
Bundle Identifiers:
Standard
ai.we360.MyZenV2
/Applications/MyZenV2.app
Stealth
ai.zs.zs
/usr/local/zs/zs.app
Code Requirement (Stealth):
identifier "ai.zs.zs" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "5KPT5U8WVR"To extract the code requirement yourself, run on a Mac with the app installed:
codesign -dr - /usr/local/zs/zs.app # Stealth
codesign -dr - /Applications/MyZenV2.app # StandardImportant Points for Stealth App Install
Do not rename the stealth installer file. The stealth installer filename is tied to your organization's license. Renaming it, or allowing extra characters to be appended (e.g. (1) or (2) from duplicate downloads), will cause the installation to fail.
If you're having issues with the Stealth App installation, with install please check the /tmp/zs-postinstall.log . If the PACKAGE_PATH variable in the first few lines does not match the package file name as downloaded from portal, you will require a pre-install script to run on the machine before the package can be installed, as our unique package name contains your tenant/org's license details.
The following preinstall script should work:
#!/bin/sh
basename "<pkg_file_name>" .pkg | base64 --decode | tee /Library/Preferences/zs.jsonIf your MDM does not support pre-install scripts, please contact our support team for a custom installer. (Not all custom installer requests may be approved)
Restart may be required after MDM install. When installing via MDM, by default our installer tries to start the apps immediately via launchctl. This should not fail unless there's some MDM or OS level controls blocking this.
A logout/login or system restart may be required to circumvent such scenarios.
macOS Permissions
MyZen requires several macOS privacy permissions. How they are granted depends on whether you use an MDM with PPPC support.
With MDM (PPPC profile):
Accessibility — can be pre-approved via a PPPC configuration profile.
Browser URL Reading (AppleEvents/Automation) — can be pre-approved via PPPC per browser. If not granted via PPPC, the user will be prompted to allow browser URL access the first time a browser is used.
Screen Recording (Optional) — cannot be approved via any MDM. Apple does not allow Screen Recording to be granted programmatically. The end user must approve this manually.
Without MDM:
All permissions will prompt the user at first use.
After granting Screen Recording permission, the user must perform a logout/login or restart the MyZen/zs app for the permission to take effect.
Configuration Profiles
Three .mobileconfig profiles are provided for MDM deployment. Deploy these before installing the agent PKG.
PPPC (Privacy Preferences)
Pre-approves Accessibility, simplifies Screen Recording prompt, and grants browser Automation (AppleEvents) for URL reading
Background Items
Suppresses "Background Items Added" notification and prevents users from disabling ZS services (macOS 13+)
Screen Capture (standalone)
Standalone Screen Recording PPPC entry — use if you deploy screen capture permissions separately
PPPC profiles must be delivered via MDM. Manually installed .mobileconfig files (double-clicked by users) cannot grant TCC permissions — macOS may ignore TCC payloads from user-installed profiles for security reasons.
Background Items (macOS 13+)
Starting with macOS 13 Ventura, macOS shows a "Background Items Added" notification when an application installs LaunchAgents or LaunchDaemons. Users can disable these from System Settings > General > Login Items & Extensions. The background items profile prevents this.
Managed background items for MyZen:
Standard
ai.we360.MyZenV2
ai.we360.MyZenV2-updater
Stealth
ai.zs.zs
ai.zs.zs-updater
The provided profile uses a TeamIdentifier rule (5KPT5U8WVR) which covers all current and future LaunchAgents/Daemons signed by Zenstack.
Install Locations
MDM administrators may need these paths for configuration profiles, detection rules, or post-install scripts.
Application
/Applications/MyZenV2.app
/usr/local/zs/zs.app
Launch Agent
/Library/LaunchAgents/ai.we360.MyZenV2.plist
/Library/LaunchAgents/ai.zs.zs.plist
Updater Daemon
/Library/LaunchDaemons/ai.we360.MyZenV2-updater.plist
/Library/LaunchDaemons/ai.zs.zs-updater.plist
Config file
-
/Library/Preferences/zs.json
Install logs
/tmp/MyZenV2-*.log
/tmp/zs-*.log
General Deployment Sequence
Regardless of which MDM you use, follow this order:
Deploy the PPPC profile (
zs-pppc.mobileconfig) to target devices.Deploy the Background Items profile (
zs-background-items.mobileconfig) to target devices.Upload and deploy the MyZen
.pkginstaller.Instruct end users to grant Screen Recording permission when prompted, then logout/login.
Verify the agent appears online in the We360.ai dashboard.
Note: The PKG is signed by Zenstack Private Limited (Team ID
5KPT5U8WVR). You may need to add this to your allowed developers list.
MDM Platform Guides
Jamf Pro
PKG Upload & Deployment
Log in to Jamf Pro (
your-instance.jamfcloud.com).Navigate to Settings > Computer Management > Packages.
Click New to create a new package entry.
Upload the MyZen
.pkgfile.Set a Display Name (e.g., "MyZenV2 Stealth").
Click Save.
Navigate to Computers > Policies and click New.
Configure the General payload:
Display Name: e.g., "Deploy MyZenV2"
Trigger: Recurring Check-in (or Enrollment Complete for new devices)
Execution Frequency: Once per computer
Click the Packages payload and click Configure.
Select the uploaded PKG and set the Action to Install.
Click the Scope tab and add target computers or smart/static groups.
Click Save.
PPPC Profile Deployment
Option A — Built-in PPPC builder:
Navigate to Computers > Configuration Profiles.
Click New.
Set a Name (e.g., "ZS App Permissions").
In the left sidebar, click Privacy Preferences Policy Control.
Click Add (+).
Fill in the fields:
Identifier:
ai.zs.zsIdentifier Type: Bundle ID
Code Requirement: paste from
codesign -dr -outputStatic Code: No
Under App or Service, click Add:
Select Accessibility and set to Allow.
Repeat for additional permissions (AppleEvents for each browser).
Scope to target computers and Save.
Option B — Upload pre-built profile:
Navigate to Computers > Configuration Profiles > Upload.
Upload
zs-pppc.mobileconfig.Scope to target computers and Save.
Background Items
Navigate to Computers > Configuration Profiles > New.
Upload
zs-background-items.mobileconfig(or use Managed Background Items payload in Jamf Pro 10.44+).Scope and Save.
Verification
Navigate to Computers > Search Inventory and select a target device.
Go to the Configuration Profiles tab — confirm both PPPC and Background Items profiles are installed.
Go to the Applications tab — confirm MyZenV2 or zs.app is listed.
Ask the end user to logout/login or restart.
Verify the endpoint appears online in the We360.ai dashboard at
portal.we360.ai.
Jamf Pro preserves the original PKG filename during distribution. Stealth deployments work without issues.
Jamf Now
PKG Upload & Deployment
Log in to Jamf Now (
your-instance.jamfnow.com).In the left sidebar, click Apps.
Click Add an App and select the Upload Your App tab.
Drag and drop the MyZen
.pkgfile, or click browse to select it.Jamf Now will process the file and show a Review Your App dialog.
Verify the App Name (e.g., "zs") and the Bundle ID are correct.
Click Done to finish the upload.
Navigate to Blueprints and select the target Blueprint.
Go to the Apps section and add the uploaded app.
Click Save Blueprint.
Devices assigned to this Blueprint will receive the app at next check-in.
PPPC Profile Deployment
Navigate to Blueprints > target Blueprint.
Go to the Custom Profiles section.
Click Upload and select
zs-pppc.mobileconfig.Click Save Blueprint.
Jamf Now does not have a built-in PPPC profile builder. You must upload a pre-built .mobileconfig file. The profiles provided in this guide are ready to use.
Filename renaming concern: Jamf Now may rename the uploaded PKG to app.pkg during distribution. This breaks MyZen's stealth licensing (which is encoded in the filename). Please request a custom stealth installer from our team. If unavailable, request our team for stealth config zs.json file, which has to be placed in /Library/Preferences/zs.json
Background Items
Upload zs-background-items.mobileconfig via the Custom Profiles section (same process as PPPC).
Verification
Navigate to Blueprints and select the target Blueprint.
Check the Devices section — confirm the device appears and app is installed.
Ask the end user to logout/login or restart.
Verify the endpoint appears online in the We360.ai dashboard at
portal.we360.ai.
Limitations
Custom Apps and Custom Profiles require the Jamf Now Plus plan.
No Smart Groups or conditional logic — only static Blueprint assignments.
Limited troubleshooting and logging compared to Jamf Pro.
Addigy
PKG Upload & Deployment
Log in to Addigy (
app.addigy.com).Navigate to Catalog > Software.
Click New to create a new software item.
Upload the MyZen
.pkgfile.Addigy auto-generates an
_install.shscript. Review it — typically no changes are needed.Optionally configure a Condition to control when the install runs (e.g., only if the app is not already installed).
Click Save.
Navigate to Policies and select the target Policy.
Add the software item to the Policy's Catalog.
Devices in that Policy will receive the software.
PPPC Profile Deployment
Option A — Built-in profile builder:
Navigate to Catalog > MDM Profiles.
Click New to create a new profile.
Select Privacy Preferences Policy Control payload.
Configure the fields as described in the Identifiers section above.
Click Save and add to target Policy.
Option B — Upload custom profile:
Navigate to Catalog > MDM Profiles > Custom Profile.
Upload
zs-pppc.mobileconfig.Add to target Policy.
Background Items
Navigate to Catalog > MDM Profiles and use the Service Management - Managed Background Items payload, or upload zs-background-items.mobileconfig as a custom profile.
Addigy uses an agent-based architecture for software installs and MDM for profiles. Profile deployment may be slightly slower than software deployment. Addigy preserves the original PKG filename.
Mosyle Business
PKG Upload & Deployment
Log in to Mosyle Business (
business.mosyle.com).Navigate to Management (bottom navigation).
Select Install App.
Click Add new profile (top-right).
Choose macOS as the platform.
Select Enterprise App (not App Store).
Choose Upload a PKG file as the source.
Upload the MyZen
.pkgfile.Configure:
Installation type: "Install and keep" or "Install once"
Assignment: Scope to specific users, devices, or groups.
Click Save.
PPPC Profile Deployment
Option A — Built-in builder:
Navigate to Management.
Select Privacy & Security > Privacy Preferences.
Click Add new profile.
Configure with the identifiers and code requirements above.
Scope and Save.
Option B — Custom profile upload:
Navigate to Management > Custom MDM Profiles.
Upload
zs-pppc.mobileconfig.Scope and Save.
Background Items
Use the Managed Background Items profile under the macOS 13+ management section, or upload zs-background-items.mobileconfig as a custom profile.
MyZen is a custom app — use the Enterprise App path, not "Auto Apps." Ensure the Package Identifier matches exactly to avoid reinstallation loops.
Kandji
PKG Upload & Deployment
Log in to Kandji (
your-tenant.kandji.io).Navigate to Library.
Click Add New and select Custom App.
Upload the MyZen
.pkgfile.Configure:
Install Type: "Install once per device" or "Continuously enforce"
Audit Script (optional):
Click Save.
Navigate to Blueprints and add the Custom App to the target Blueprint.
PPPC Profile Deployment
Option A — Native PPPC builder:
Navigate to Library.
Click Add New and select Privacy Preferences.
Configure with identifiers and code requirements above.
Toggle Accessibility to Allow.
Click Save and add to target Blueprint.
Option B — Custom profile upload:
Navigate to Library > Add New > Custom Profile.
Upload
zs-pppc.mobileconfig.Add to target Blueprint.
Background Items
Use the dedicated Managed Background Items library item. Kandji provides a UI to configure rules by label, bundle ID, or team ID. Add Team ID 5KPT5U8WVR.
Kandji's "Continuously enforce" mode will reinstall the app if the audit script fails — useful for ensuring the agent stays installed. Kandji preserves the original PKG filename.
Hexnode UEM
PKG Upload & Deployment
Log in to Hexnode UEM (
your-instance.hexnodemdm.com).Navigate to Apps > +Add Apps > Enterprise App.
Select macOS as the platform.
Upload the MyZen
.pkgfile.Provide a Name and optional description.
Click Add.
Navigate to Policies > New Policy (or edit an existing one).
Go to macOS > App Management > Mandatory Apps.
Select the uploaded app.
Navigate to Policy Targets and assign to device groups.
Click Save.
PPPC Profile Deployment
Navigate to Policies > New Policy (or edit existing).
Go to macOS > Security > Privacy Preferences.
Click Configure.
Add a new app entry:
Bundle Identifier:
ai.zs.zsCode Requirement: paste from
codesign -dr -outputPermissions: Toggle Accessibility to Grant.
Assign the policy to target devices/groups.
Click Save.
Background Items
Use Policies > macOS > Security > Managed Background Items (Hexnode 7.8+).
Hexnode preserves the original PKG filename. PPPC profiles require the MDM channel (not the agent channel).
SimpleMDM
PKG Upload & Deployment
Log in to SimpleMDM (
a.simplemdm.com).Navigate to Apps in the left sidebar.
Click Add App and choose Custom App (Enterprise App).
Upload the MyZen
.pkgfile.Configure:
Name: e.g., "MyZenV2"
Deploy automatically: Toggle on if desired.
Click Save.
Navigate to Device Groups and assign the app.
PPPC Profile Deployment
Option A — Native PPPC builder:
Navigate to Profiles in the left sidebar.
Click Create Profile.
Select Privacy Preferences payload.
Configure with identifiers and code requirements above.
Click Save and assign to a Device Group.
Option B — Custom profile upload:
Navigate to Profiles > Create Profile > Custom.
Upload
zs-pppc.mobileconfig.Assign to a Device Group.
Background Items
Use Profiles > Create Profile > Managed Background Items, or upload zs-background-items.mobileconfig as a custom profile.
SimpleMDM preserves the original PKG filename. No Smart Groups — only static Device Group assignments.
ManageEngine Endpoint Central
ManageEngine Endpoint Central (formerly Desktop Central) is part of the Zoho ManageEngine suite and supports macOS MDM enrollment, app deployment, and configuration profiles.
Step 1 — Enroll macOS Devices
Before deploying apps or profiles, devices must be MDM-enrolled:
Log in to ManageEngine Endpoint Central (cloud:
endpointcentral.manageengine.com, or your on-premise URL).Navigate to MDM > Enrollment > Apple Enrollment.
Ensure your Apple Push Notification (APNs) certificate is valid and uploaded.
Choose an enrollment method:
Open Enrollment Link — share a URL with users to self-enroll.
Apple Business Manager (ABM) — for zero-touch automated enrollment.
Email Invitation — send enrollment invitations to users.
Enrolled devices will appear under MDM > Inventory > Devices.
Step 2 — Deploy PPPC Profile (Before PKG)
Option A — Built-in macOS PPPC Policy (recommended):
ManageEngine Endpoint Central has a native macOS PPPC Policy builder under its configuration management:
Navigate to Configuration > macOS PPPC Policy.
Click Create Collection (or Add Configuration).
Fill in:
Collection Name: e.g., "zen-apps-access-grants" (internal reference)
Description: "Allow permissions of Accessibility and per browser grants"
Category: macOS PPPC Policy
Platform: Mac
Under the first app entry, configure the ZS agent:
Identifier:
ai.zs.zsCode sign requirement:
identifier "ai.zs.zs" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "5KPT5U8WVR"Static code validation: No
Allowed permissions: Accessibility
Other permissions: User Controlled
Add browser entries for AppleEvents (URL reading). Click Add for each browser:
Google Chrome:
Identifier:
com.google.ChromeCode sign requirement:
identifier "com.google.Chrome" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = EQHXZ8M8AVStatic code validation: No
Safari:
Identifier:
com.apple.SafariCode sign requirement:
identifier "com.apple.Safari" and anchor appleStatic code validation: No
Click Save.
Navigate to Targets and select the target scope (Remote Office, custom groups, or individual devices).
Click Deploy / Associate.
Check the Execution Status — devices should show "Succeeded" after next check-in.
Option B — Custom profile upload:
Navigate to Configuration > Profiles & Policies > macOS.
Click Create Profile and select Custom Configuration.
Upload
zs-pppc.mobileconfig.Click Save and associate with target groups/devices.
Step 3 — Deploy Background Items Profile
Navigate to MDM > Configuration > Profiles & Policies.
Click Create Profile and select macOS.
Name: e.g., "ZS Background Items".
Select Custom Configuration as the payload type.
Upload
zs-background-items.mobileconfig.Click Save.
Associate with the same target groups/devices as the PPPC profile.
Step 4 — Upload and Deploy the PKG
ManageEngine renames uploaded PKG files internally. The stealth installer's filename contains the encoded license key, so a rename breaks installation. You must use a custom installation command that renames the file back to the original before running installer. See the installation command below.
Navigate to Software Deployment > Packages > Add Package.
Select Mac as the platform.
Fill in:
Application Name: e.g., "zs-mac" (internal reference only)
Version: Current version (e.g., "4.x")
Vendor:
ai.zsPackage License Type: Commercial
Path Type: "This computer (used across multiple remote offices)"
Upload two files:
The MyZen
.pkginstaller (e.g.,zs.pkg)The uninstallation script (
remove_myzenv2_Version3.sh) — download this from the We360.ai admin portal
Set the Installation Command to rename the file back to its original name before installing:
Replace
<CUSTOM_INSTALLER_PREFIX>with the exact original filename of your stealth PKG (without the.pkgextension). This is the filename as downloaded from the We360.ai portal.Set the Uninstallation Command to:
Click Save.
Navigate to Software Deployment > Deploy and create a new deployment configuration.
Select the package and target the same groups/devices as your profiles.
Deploy.
Step 5 — Verify Deployment
Navigate to MDM > Inventory > Devices and select a target device.
Check the Profiles tab — both PPPC and Background Items profiles should show as Installed.
Check the Apps tab — the MyZen app should show as Installed.
Ask the end user to logout/login or restart for the agent to start.
Verify the endpoint appears online in the We360.ai dashboard at
portal.we360.ai.
Cloud vs. on-premise: ManageEngine Endpoint Central supports both cloud and on-premise deployments. The navigation paths above apply to both. Ensure your instance has the macOS MDM module enabled (it is a separately licensed module in some editions).
APNs certificate renewal: Your Apple Push Notification certificate must be renewed annually. If it expires, MDM communication with all macOS/iOS devices will break. Set a calendar reminder 30 days before expiration. Navigate to MDM > Enrollment > Apple Enrollment > APNs Certificate to check the expiry date.
Platform Comparison
PKG upload
Yes
Yes (Plus)
Yes
Yes
Yes
Yes
Yes
Yes
Preserves PKG filename
Yes
Verify
Yes
Yes
Yes
Yes
Yes
Yes
Native PPPC builder
Yes
No
Yes
Yes
Yes
Yes
Yes
Yes
Custom .mobileconfig upload
Yes
Yes (Plus)
Yes
Yes
Yes
Yes
Yes
Yes
Background Items Management
Yes
Via custom profile
Yes
Yes
Yes
Yes
Yes
Via custom profile
Smart Groups / conditional logic
Yes
No
Yes
Yes
Yes
Yes
No
Yes
Supported Browsers for AppleEvents (URL Reading)
The PPPC profile (zs-pppc.mobileconfig) includes AppleEvents entries for the following browsers. This allows MyZen to read the active browser URL without triggering an Automation permission prompt for the user.
If a browser used in your organization is not listed above, you can add an additional AppleEvents entry to the PPPC profile using the browser's bundle ID and code requirement. Run codesign -dr - /Applications/BrowserName.app to obtain the values.
PPPC Profile Contents
Below is the full content of the zs-pppc.mobileconfig file for reference:
Last updated
Was this helpful?