Files
zyt/artifacts/huangguo-diagnosis/diagnosis.md
T
2026-09-09 15:52:46 +08:00

4.1 KiB
Raw Blame History

黄果短剧启动闪退诊断

检查时间:2026-09-09Asia/Shanghai。

直接故障已确认:黄果短剧在应用加固库 libjiaguv1.sondk_init 初始化过程中发生原生崩溃。两份已安装应用均能稳定复现,尚未进入应用主界面。

现有证据最支持加固模块与当前 MuMu Android 15 / ARM64 转译运行环境不兼容。仅凭崩溃堆栈,无法最终区分加固库自身缺陷、转译层兼容问题或加固模块的环境检测;不能断言是故意封禁模拟器或 Root 检测。

实测结果

项目 第一份应用 第二份应用
桌面名称 黄果短剧 黄果短剧
包名 dark.qgbevkxqql.ebyrhddxwd dark.ufnoinfolj.gfvrmybvrf
版本 1.0.3 / versionCode 1 1.0.3 / versionCode 1
安装所选 ABI arm64-v8a arm64-v8a
SDK minSdk 24 / targetSdk 36 minSdk 24 / targetSdk 36
本次启动 15:48:22.014PID 30459 15:49:40.866PID 30638
致命信号 15:48:22.506 15:49:41.313
启动至致命信号 约 0.49 秒 约 0.45 秒
系统退出原因 APP CRASH(NATIVE)status=11 APP CRASH(NATIVE)status=11

两份应用的加固库 BuildId 相同:cda80a0729e49c2a514407b56d77b8cb9c37e01e,崩溃位置均为 ndk_init+248

关键堆栈:

Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)
#00 .../.jiagu/libjiaguv1.so (ndk_init+248)
#01 .../.jiagu/libjiaguv1.so (native_attach(...)+60)
#02 /system/lib64/libtcb.so

宿主 x86_64 崩溃堆栈同时落在 /system/lib64/libhoudini.so。应用进程日志显示它已启用 arm64 Native Bridge,并成功初始化 Houdini,随后加载加固库并在初始化阶段退出。证据支持崩溃发生于加固模块与 ARM 转译链路中,不代表已确定哪一方存在实现缺陷。

SIGSEGV 属于本地代码崩溃信号,参见 Android 官方崩溃说明;堆栈阅读方法见 AOSP 原生崩溃诊断。官方资料用于解释日志类型,不是本应用兼容问题的官方确认。

环境与判断边界

  • MuMu 6.6.0.0Android 15 / API 35,系统 x86_64ABI 列表为 x86_64,arm64-v8a,x86
  • 两份应用安装所选 ABI 都是 arm64-v8a,在此实例中经 Houdini 转译运行。
  • 宿主配置启用了 Root 模式;仅记录环境事实,没有证据证明 Root 是这次崩溃的触发条件。ADB shell 未取得 Root,也未访问受限的模块目录。
  • 虚拟机和 Vulkan 渲染器均成功初始化。系统继续运行,两个目标应用进程分别崩溃。
  • 本次故障发生于加固初始化阶段,日志不是连接超时或服务端错误;切换代理不针对当前已确认的崩溃点。
  • 不能仅因 targetSdk 36 高于运行系统 API 35 就判定不兼容。应用已安装并进入启动流程。
  • 没有读取应用源码、完整调试符号或进行其他系统版本/真机对照,因此不能声称已经修复,或保证换环境一定有效。

后续验证路径

  1. 用同一安装包在 ARM64 安卓真机对照启动,判断是否仅在模拟器出现。
  2. 用独立、干净的 Android 12/其他受支持版本模拟器实例对照启动,保留当前实例;这能帮助区分 Android 15、实例配置及转译兼容差异,尚未执行。
  3. 若仍闪退,将加固库 BuildId、上述堆栈和系统版本交给应用开发方,要求检查或更新加固组件;安装经其确认兼容的版本。

本地证据

  • startup-a.txtstartup-b.txt:本次两个应用进程的完整启动日志。
  • crash-reproduced-a.txtcrash-reproduced-b.txt:本次采集的崩溃缓冲区片段。
  • exit-info-a.txtexit-info-b.txt:Android 系统记录的退出原因和历史复现。
  • package-a.txtpackage-b.txt:版本、ABI 和安装元数据。
  • host-findings.md:独立核对的 MuMu 配置、虚拟化及图形日志证据。
  • crash-before.txt:复现前保留的历史崩溃缓冲区。

本次仅打开应用复现并读取日志。没有卸载应用、清理应用数据、重启模拟器或修改代理、Root、系统设置。