jshook 中文文档 下载 App

跨大版本更新后崩溃——清数据 + 删两个目录 + 重激活

什么情况

从 1.0.x 直接跳到 1.1.x+(或更大跨度)更新后,JsHook App 打开就闪退或根本打不开。

根因是大版本变更可能涉及运行时文件格式变化、守护进程协议变更、或内核驱动不兼容——旧的激活产物和新版本对不上。

标准恢复流程

第一步:确认备份

操作前确认:

清数据和删目录会丢失 JsHook 应用内的所有配置和激活产物。脚本如果在应用内部存储里,清数据也会删。

第二步:清 JsHook 应用数据

第三步:手动删激活产物

用 MT 管理器或终端(需要 root)删两个目录:

# 删系统级配置
su
rm -rf /data/system/jshook

# 删运行时文件、内核驱动、守护进程
rm -rf /data/adb/jshook

这两个目录是 JsHook 激活时自动创建的。App 本身的清数据不会删它们——必须手动删才能确保干净。

第四步:安装新版本 APK

正常覆盖安装新版 APK 就行。之前清数据了,所以旧版本残留不会影响。

第五步:重新激活

打开新版 JsHook → 点激活 → 给 root 授权 → 等部署完成。激活成功后首页显示 Activated + Daemon 进程。

第六步:恢复脚本和订阅

从备份里把脚本复制回 JsHook 脚本存储目录,重新订阅仓库。

跨小版本一般没事

小版本更新(如 1.3.0 → 1.3.1 → 1.3.2)一般直接覆盖安装就行,不用清数据。跨大版本(1.0.x → 1.1.x → 1.2.x)才可能崩。

日常更新尽量小步走,一次跳一个小版本,出问题概率最小。

如果恢复后还是崩

  1. 确认 APK 包名是 me.jsonet.jshook(不是仿冒包)
  2. 试试恢复旧版本 APK(如果之前备份了)
  3. 检查 SELinux 是不是 Enforcing(getenforce 输出 Enforcing 的话先 setenforce 0)
  4. 换设备/虚拟环境试试

预防措施

每次大版本更新前:

  1. 先把脚本从手机复制到电脑备份
  2. 订阅列表记下来(仓库 JSON URL)
  3. 确认当前版本号(runtime.coreVersionCode 或设置里看)
  4. 小版本跳升级(1.0.5 → 1.1.0 → 1.1.5 → ...),观察每个小版本是否正常后再往下跳

避免从 1.0.0 直接跳到最新的 1.x.x——中间跳的版本越多,兼容性破坏的概率越高。