这是一个规模虽小却很重要的维护版本:修复了最近重新设计的 Android Zygote 插桩在启用 BTI 的 arm64 系统上的崩溃,扩大了设备兼容范围;同时修复了一项 GumJS 崩溃,并改进了对 Termux 环境的开箱即用支持。

  • android:把 zymbiote 有效载荷放入更安全的地址范围,避免与 Zygote 使用的内存范围冲突(在 fork 出的应用/服务有机会在意此事之前就会还原)。
  • android:确保注入的有效载荷在构建时启用 BTI,使间接分支跳入其中时不会触发故障,从而修复全新、低侵入性的 Zygote 插桩在启用 BTI 的 arm64 系统上的崩溃。
  • android:调整静态链接的 OpenSSL,使其自动使用 Termux 的 ca-certificates,让 Frida.PackageManager(frida-pm)无需设置 SSL_CERT_FILE 即可在 Termux 上开箱即用。
  • compiler:避免使用 memfd 路径,修复 Android 上的后端加载问题。该路径可能因使用更严格的权限重新打开同一底层文件而失败。现在,即使支持 memfd,我们也会使用临时文件。
  • gumjs:NativeCallback 构造失败时(例如参数类型无效)避免释放 NULL ffi_closure,从而防止 libffi 崩溃,并允许 JavaScript 异常继续传播。

感谢 @leg1tsoul 修复 GumJS,也感谢 @as0ler 和 @ApkUnpacker 协助追踪 Android Zygote 插桩问题。