OCLP 在老旧Mac上遇到 App 崩溃 Namespace SIGNAL, Code 4 Illegal instruction:4 的解决办法

OCLP 是一个允许老旧Mac允许不被支持的系统解决方案,目前,如果你的机器CPU不支持 AVX/AVX2指令集,在更新到 Sequioa 后一些App会崩溃,报错。Namespace SIGNAL, Code 4 Illegal instruction: 4,这是因为 JetEngine.JSStack.scheduler 需要 AVX/AVX2 支持,否则就会报错。

目前越来越多的App会调用 JIT,甚至JavaScriptCore也会调用,这就导致相当多的App无法启动或正常加载,包括 Safari,Music,App Store等,目前的的解决办法是:

  1. 在OCLP 中注入 no AVX/AVX2 kext, 具体名称为
    NoAVXFSCompressionTypeZlib.kext
    NoAVXFSCompressionTypeZlib-AVXpel.kext
  2. 重启机器后在命令行输入一下命令:
    launchctl setenv JSC_useJIT true; launchctl setenv __XPC_JSC_useJIT true
  3. 再次开启会崩溃的App,问题解决。

这个方法仅限目前有效,以后再更新到新的系统,可能会无法禁用 JIT 调用,方法会失效。

这个方法同样适用于老旧 CPU 架构的 X86 用户,通常2012年之前的CPU都不支持AVX/AVX2,具体可以用 MacCPUID 查看。

Related post

  1. NO IMAGE
  2. NO IMAGE
  3. NO IMAGE
  4. NO IMAGE
  5. NO IMAGE
  6. NO IMAGE

There are no comment yet.

ABOUT

老赵的个人博客,关于 Mac, iPhone, iPad, iPod等产品的软件和硬件技术交流。也讨论Linux/UNIX技术,服务器运维技术等。

2025 年 4 月
 12345
6789101112
13141516171819
20212223242526
27282930  

Powerd by WordPress on Xserve
Xserve 2009
@2012-2024 HelloMac Copyright