Support for Rosetta 2 Emulation

Sentinel LDK Envelope is supported when running with the Rosetta 2 emulator as follows:

1.Envelope can be used on an Apple-Silicon Mac machine.

2.Envelope does not support 32-bit Intel binaries.

If a binary contains 32-bit Intel code (for example, as part of a universal binary), Envelope strips the 32-bit code from the resulting binary.

3.64-bit Intel binaries protected by Envelope can be executed on an Apple-Silicon Mac machine.

Code written for native Apple-Silicon cannot be protected. If the binary contains native code for Apple-Silicon (for example, as part of a universal binary), Envelope strips the native Apple-Silicon code from the resulting binary.

4.If a binary does not contain code for the 64-bit Intel architecture, Envelope reports an error.

This can occur when the binary contains only 32-bit Intel code or only Apple-Silicon code.

5.Newer versions of Xcode/Clang may generate code with embedded data. At runtime, the contents of the code section are both executed and read from

When dump protection is enabled, it blocks read access to certain memory portions, including the generated code. However, to execute the code, it may be necessary to read from these blocked portions. This causes an EXC_BAD_ACCESS exception. To handle such an occurrence gracefully, Envelope enables exception handling, including handling for the EXC_BAD_ACCESS exception.

Limitations

This section describes limitations that apply when Sentinel LDK Envelope is running with the Rosetta 2 emulator.

Given the following circumstances:

>You are using the Envelope command line interface to work with PRJX files from earlier versions.

>Dump protection is enabled

Exception Handling for EXC_BAD_ACCESS is activated automatically.

If this is not the desired option, open the PRJX file with the Envelope GUI and adjust the settings to satisfy your requirements.