• Hook.java v3.1 (315 行):
    - body 捕获:okio.Buffer 读取 POST/PUT body(截断 2000 字符)
    - Proxy poller(后台线程,1s 轮询 /xhs_proxy/pending):
        executeOkHttp() 在 XHS 进程内用 OkHttpClient 执行代理请求,
        自动经过 XHS 拦截器签名,结果 POST /xhs_proxy/result
    - 手写 JSON 解析器(无外部依赖)
    - 保留 /xhs_params 转发(每条 edith 请求实时上报)
    
    event_server.py(Hermes 编写):
    - proxy_requests 表(pending→ok/error 状态机)
    - POST /xhs_proxy — Hermes 下发代理请求
    - GET  /xhs_proxy/pending — Hook 轮询取下一个任务
    - POST /xhs_proxy/result — Hook 上报执行结果
    - GET  /xhs_proxy/result/{id} — Hermes 轮询取结果
    - DELETE /xhs_proxy/{id} — 清理完成的任务
    
    架构:Hermes → event_server → Hook(XHS进程内OkHttp签名) → event_server → Hermes
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
    yibo authored
     
    Browse File »
  • Hook.java v3:在现有 logcat 日志基础上,后台线程 POST 每条
    edith.xiaohongshu.com 请求(method/url/全量 headers)到
    Hermes event_server(127.0.0.1:8765/xhs_params)。
    Hermes server 未运行时静默失败,logcat 捕获不受影响。
    
    rebuild_xhshook.sh:d8 步骤改用 find 通配所有 .class 文件,
    避免新增匿名类时漏掉(之前写死 Hook$1.class)。
    
    update_xhshook_db.sh:两阶段更新策略
    - Phase 1:Python in-place UPDATE + commit(不做 checkpoint,
      lspd 持有写锁时 checkpoint 会 OperationalError)
    - Phase 2:pull DB+WAL → Mac 本地 checkpoint → push 干净主文件
      → 删设备端 WAL/SHM,确保重启后 DB 正确
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
    yibo authored
     
    Browse File »