On November 10 2020, Apple CEO Tim Cook made his mark on history by announcing a bold new path for the company. A strong and decisive move away from conventional Intel processors for their macOS devices, to their personally curated ARM-based silicon processors, the Apple M1 chip. After 14 years of producing Macs with the intel core series processors, the M1 chip marked the beginning of a new and improved generation of Macs.
“With its unique combination of remarkable performance, powerful features, and incredible efficiency, M1 is by far the best chip we’ve ever created.”
— Johny Srouji
Senior vice president of Hardware Technologies, Apple
However, Apple’s new silicon Macs brought forth a slightly unprecedented concern. For the past decade, macOS apps were built to run on the Intel core processors.
With the introduction of the new M1 Macs, Mac admins and developers found themselves in the middle of a fix to make previous-gen apps compatible with the new Apple Silicon Macs. These new Macs by default, could not run previous-gen Intel x86 apps on their ARM processors. This is where the need for Apple’s Rosetta 2 software comes in.
What is Rosetta 2?
Rosetta 2 is a translation software developed by Apple that bridges the transition from Intel to ARM and enables M1 powered Macs with the ARM processor to run previous-gen Intel x86 apps.
Apple introduced Rosetta 2 to help both Mac admins and developers ease the process of shifting to the new M1 Macs, and ensure that the apps supported by previous-gen Intel Macs were compatible with the new ARM-based silicon Macs.
What does Rosetta 2 do?
Rosetta 2 essentially translates instructions written for Intel processors into commands that Apple’s ARM processor can understand.
“Rosetta 2 automatically translates existing Mac apps so they work on the new Macs with Apple Silicon chips. It translates the apps when you install them so that they can launch immediately and be instantly responsive.”
— Craig Federighi
Software engineer, Apple
@Apple WWDC 2020
If an app or plugin only contains Intel instructions, Apple’s M1 Mac automatically launches Rosetta and translates the x86 code into native commands, which is then launched instead of the original.
A little backstory on the Rosetta series
Apple’s first Rosetta translation software was introduced back in 2006 when the Macs were undergoing a transition from PowerPC processors to Intel. Its basic function remained the same — to enable PowerPC apps to run on Intel processors.
However, the method of transformation differs between the two. Whereas the first version of Rosetta converted instructions in real-time, Rosetta 2 converts an application right after installation, creating an ARM-compatible version of the app even before it is opened. This ensures reduced processing time, which improves the overall user experience.
What apps require Rosetta 2 to run?
Almost all apps that are developed by Apple are already compatible with the native M1 chip. However, certain apps in the Mac app store, as well as specific third-party apps supporting Intel x86 instructions may still not have received an update that would make them compatible with Apple’s Silicon processor. These apps will require the Rosetta 2 software on the Mac in order to successfully run.
What software is Rosetta 2 unable to translate?
It is worth noting that Rosetta 2 has some limitations to what it can translate. It is not compatible with specific programs including virtual machine apps. Rosetta is also unable to translate kernel extensions and AVX vector instruction sets.
How do I check if an installed Mac app requires Rosetta 2 to run?
To identify which apps will require Rosetta, you can go to the Applications tab in the Finder menu and select the specific app you need to check. Once you right-click on the app and select the ‘Get info’ tab on the pop-up menu, you can scroll down to General > Kind, which will show you if the app is a native ARM app, an Intel app, or a universal app.
Universal apps are compatible with both ARM and Intel processors, and can be run on both previous-gen Macs as well as the new silicon Macs.
You can also force a universal app to be converted using Rosetta and then run, by checking the ‘Open using Rosetta’ box from the ‘Get info’ tab.
How to install Rosetta 2 on Apple M1 Macs?
Unfortunately, Rosetta 2 does not come pre-installed on the new M1 Macs. If your enterprise needs to install and run an Intel-based app that has not been updated to the universal build, you will need to install Rosetta first. The same case applies when you are using a Unified Endpoint Management solution to install and manage Intel apps on an M1 Mac.
There are two cases when a user will be prompted by the system to install Rosetta on their macOS device.
- When a user tries to open an app that hasn’t been updated to the universal build.
- When a user tries to install an app or package that hasn’t been updated to the universal build.
However, if your enterprise manages a UEM solution that supports the execution of macOS scripts, it is possible for IT admins to push the following script to automatically install Rosetta 2 on managed macOS devices. (Root permission is required for the following scripts.)
macOS script to install Rosetta 2
- /usr/sbin/softwareupdate -install-rosetta
- /usr/sbin/softwareupdate -install-rosetta -agree-to-license
UEM apps on Apple M1 Macs that aren’t updated to the universal build — including the UEM agent app — will depend on Rosetta’s translation process to successfully monitor and manage the device.
- If you are enrolling the ARM-based macOS devices directly from the UEM portal, the end-user will be prompted to install Rosetta 2 on the first launch of the UEM app.
- However, if the device is enrolled in UEM via Automated Device Enrollment, then the UEM agent will be installed with the help of macOS setup assistant. In this case, the device fails to show a prompt to the end-used to install Rosetta 2, and the UEM agent app fails to run.
In such cases, the best solution is to recommend users to manually install Rosetta by either trying to open or install an Intel-based app, or to provide a script that runs a command to install Rosetta 2 on their device.
In order to ensure a streamlined device enrollment process for your enterprise, it is highly advisable to switch to a UEM solution that supports a universal build, or contact your current UEM service provider and request them to update to the latest universal build.
How will performance be impacted when using Rosetta?
Although the new Rosetta 2 translates Intel x86 instructions to native code right after app installation — or in certain cases, upon the first run of the app (when the app is installed via a third-party installer) — it won’t be as efficient as when the app is written specifically for the native processor. However, this drop in performance is generally unnoticeable and the CPU load is more or less the same on the macOS device. Despite the drop, the performance of the Rosetta converted apps on the M1 Mac still outperforms that of any other Intel Mac.
Will Rosetta be a permanent software?
Although Apple proclaims support for the Intel series and its apps for the coming years, Rosetta 2 cannot be considered a permanent fix to the issue. Apple introduced Rosetta 2 with the intention of providing developers with more time to have their apps compatible with Apple’s native silicon processor. Once enterprises and developers have updated their apps to the universal versions, Rosetta 2 will eventually become obsolete.
The first instance of Rosetta was introduced back in 2006 for macOS 10.4.4, became a downloadable option for 10.6, and disappeared the following year. Considering the case that Apple still supports the Intel Mac and its apps, it seems likely that Apple will maintain support for Rosetta 2 at least for the coming years.
Originally published at https://www.hexnode.com on May 27, 2021.