Skip to main content

Hi,



It looks like Zoom just released a Zoom Update with a separate download for M1 Mac,
Is there a way to download/install that version on M1 Macs and skip intel? If you try to install the M1 version on an intel machine you'll get the "crossed out Zoom icon"

Seems like for some applications, double-packaging is required


There are 2 different installers now, 1. Intel, 2. M1 (Apple Silicon)


You can yous this script to deploy and update zoom I have tested it on all my M1



!/bin/sh



#########################################################################################


# ABOUT THIS PROGRAM



NAME



ZoomInstall.sh -- Installs or updates Zoom



SYNOPSIS



sudo ZoomInstall.sh



########################################################################################


###################################################################################################



Script to download and install Zoom.



Only works on Intel systems.



Set preferences



hdvideo="true"
ssodefault="true"



ssohost="xxx.zoom.us"



choose language (en-US, fr, de)



lang=""



CHECK TO SEE IF A VALUE WAS PASSED IN PARAMETER 1 AND, IF SO, ASSIGN TO "lang"



if [ "$4" != "" ] && [ "$lang" == "" ]; then
lang=$4
else
lang="en-US"
fi



pkgfile="ZoomInstallerIT.pkg"
plistfile="us.zoom.config.plist"
logfile="/Library/Logs/ZoomInstallScript.log"
processname="zoom.us"



killall "$processname" &> /dev/null
if [ $? -eq 0 ]; then
echo "Killing $processname"
fi



Are we running on Intel?



if [ '/usr/bin/uname -p'="i386" -o '/usr/bin/uname -p'="x86_64" ]; then
## Get OS version and adjust for use with the URL string
OSvers_URL=$( sw_vers -productVersion | sed 's/[.]/_/g' )



## Set the User Agent string for use with curl
userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X ${OSvers_URL}) AppleWebKit/535.6.2 (KHTML, like Gecko) Version/5.2 Safari/535.6.2"



# Get the latest version of Reader available from Zoom page.
latestver=$(/usr/bin/curl -s -A "$userAgent" https://zoom.us/download | grep 'ZoomInstallerIT.pkg' | awk -F'/' '{print $3}')
echo "Latest Version is: $latestver"



# Get the version number of the currently-installed Zoom, if any.
if [ -e "/Applications/zoom.us.app" ]; then
currentinstalledver=$(/usr/bin/defaults read /Applications/zoom.us.app/Contents/Info CFBundleVersion)
echo "Current installed version is: $currentinstalledver"
if [ ${latestver} = ${currentinstalledver} ]; then
echo "Zoom is current. Exiting"
exit 0
fi
else
currentinstalledver="none"
echo "Zoom is not installed"
fi



url="https://zoom.us/client/${latestver}/ZoomInstallerIT.pkg"



echo "Latest version of the URL is: $url"
echo "date: Download URL: $url" >> ${logfile}



# Compare the two versions, if they are different or Zoom is not present then download and install the new version.
if [ "${currentinstalledver}" != "${latestver}" ]; then



# Construct the plist file for preferences
echo "<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>google</key>
<string>1</string>
<key>nofacebook</key>
<string>1</string>
<key>ZDisableVideo</key>
<true/>
<key>ZAutoJoinVoip</key>
<true/>
<key>ZDualMonitorOff</key>
<ZDisableVideo/>
<true>" > /tmp/${plistfile}



if [ "${ssohost}" != "" ]; then
echo "
<key>ZAutoSSOLogin</key>
<false/>
<key>ZSSOHost</key>
<string>$ssohost</string>" >> /tmp/${plistfile}
fi



echo "<key>ZAutoFullScreenWhenViewShare</key>
<true/>
<key>ZAutoFitWhenViewShare</key>
<true/>" >> /tmp/${plistfile}



if [ "${hdvideo}" == "true" ]; then
echo "<key>ZUse720PByDefault</key>
<true/>" >> /tmp/${plistfile}
else
echo "<key>ZUse720PByDefault</key>
<false/>" >> /tmp/${plistfile}
fi



echo "<key>ZRemoteControlAllApp</key>
<true/>
</dict>
</plist>" >> /tmp/${plistfile}



# Download and install new version
/bin/echo "date: Current Zoom version: ${currentinstalledver}" >> ${logfile}
/bin/echo "date: Available Zoom version: ${latestver}" >> ${logfile}
/bin/echo "date: Downloading newer version." >> ${logfile}
/usr/bin/curl -sLo /tmp/${pkgfile} ${url}
/bin/echo "date: Installing PKG..." >> ${logfile}
/usr/sbin/installer -allowUntrusted -pkg /tmp/${pkgfile} -target /



/bin/sleep 20
/bin/echo "date: Deleting downloaded PKG." >> ${logfile}
/bin/rm /tmp/${pkgfile}



#double check to see if the new version got updated
newlyinstalledver=$(/usr/bin/defaults read /Applications/zoom.us.app/Contents/Info CFBundleVersion)
echo "Version on Mac is ${newlyinstalledver}"
if [ "${latestver}" = "${newlyinstalledver}" ]; then
/bin/echo "date: SUCCESS: Zoom has been updated to version ${newlyinstalledver}" >> ${logfile}
echo "Zoom updated successfully"
# /Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -title "Zoom Installed" -description "Zoom has been updated." &
else
/bin/echo "date: ERROR: Zoom update unsuccessful, version remains at ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
echo "Zoom not updated - Installation error"
exit 1
fi



# If Zoom is up to date already, just log it and exit.
else
/bin/echo "date: Zoom is already up to date, running ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
fi
else
/bin/echo "date: ERROR: This script is for Intel Macs only." >> ${logfile}
fi



exit 0


I found that the regular Zoom install package includes a Universal binary now, so you can use that on both platforms.



I’m really not sure why they’ve released a separate “M1 Only” package at all. I checked both and they seem to install the same app on Apple Silicon Macs.


Like @UESCDurandal stated just use the Zoom IT Installer (Universal package):
https://zoom.us/client/latest/ZoomInstallerIT.pkg


Using the ZoomInstallerIT.pkg in script still gets me the Rosetta 2 requirement as of 08January.
Script result: installer: This package requires Rosetta 2 to be installed.
Please install Rosetta 2 and then try again.
sudo softwareupdate --install-rosetta



installer: Error - Zoom can’t be installed on this computer.


Just confirming that the IT installer (ZoomInstallerIT.pkg) that Fernando mentioned above also works for me. The installed binary is a universal binary.



# file /Applications/zoom.us.app/Contents/MacOS/zoom.us
/Applications/zoom.us.app/Contents/MacOS/zoom.us: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]
/Applications/zoom.us.app/Contents/MacOS/zoom.us (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/zoom.us.app/Contents/MacOS/zoom.us (for architecture arm64): Mach-O 64-bit executable arm64

Just create two smart groups, once for Intel Macs w/o Zoom and one for M1 Macs w/o Zoom. Scope two different packages to two different sets of machines.


Reply