APK = E:\KuGou\2026-09-15-18-17-47\android_mcp\dist\RevMCP-debug.apk
APK 大小 = 47.8 MB
条目总数 = 67   原生库 = 48

── blutter 二进制（20 个）──
   libblutter_2_14.so
   libblutter_2_15.so
   libblutter_2_16.so
   libblutter_2_17.so
   libblutter_2_18.so
   libblutter_2_19.so
   libblutter_3_0_90.so
   libblutter_3_0_aa.so
   libblutter_3_1.so
   libblutter_3_10.so
   libblutter_3_11.so
   libblutter_3_12.so
   libblutter_3_2.so
   libblutter_3_3.so
   libblutter_3_4.so
   libblutter_3_5.so
   libblutter_3_6.so
   libblutter_3_7.so
   libblutter_3_8.so
   libblutter_3_9.so

── r2 相关（24 个）──
   libr2.so, libr_anal.so, libr_arch.so, libr_asm.so, libr_bin.so, libr_bp.so, libr_config.so, libr_cons.so, libr_core.so, libr_debug.so, libr_egg.so, libr_esil.so, libr_flag.so, libr_fs.so, libr_io.so, libr_lang.so, libr_magic.so, libr_main.so, libr_muta.so, libr_reg.so, libr_search.so, libr_socket.so, libr_syscall.so, libr_util.so

── 依赖闭包：blutter 及其全部传递依赖 ──
   libblutter_2_14.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_2_15.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_2_16.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_2_17.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_2_18.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_2_19.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_0_90.so     liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_0_aa.so     liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_1.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_10.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_11.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_12.so       liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_2.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_3.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_4.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_5.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_6.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_7.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_8.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libblutter_3_9.so        liblog.so[系统] libcapstone.so[内置] libdl.so[系统] libc.so[系统] libicuuc.so[内置] libc++_shared.so[内置] libm.so[系统]
   libc++_shared.so         libc.so[系统] libm.so[系统] libdl.so[系统]
   libcapstone.so           libc.so[系统]
                              RUNPATH=/data/data/com.termux/files/usr/lib（Termux 路径，靠 LD_LIBRARY_PATH 兜底）
   libicudata.so            
                              RUNPATH=/data/data/com.termux/files/usr/lib（Termux 路径，靠 LD_LIBRARY_PATH 兜底）
   libicuuc.so              libicudata.so[内置] libc.so[系统] libm.so[系统] libc++_shared.so[内置] libdl.so[系统]
                              RUNPATH=/data/data/com.termux/files/usr/lib（Termux 路径，靠 LD_LIBRARY_PATH 兜底）
   
   ✔ 闭包完整 —— 所有非平台依赖都在包内（共检查 24 个库）
   [PASS] 闭包完整，共 24 个库

dex 合计 = 787240 bytes

── MCP 工具名 ──
   service_status             True
   job_result                 True
   job_status                 True
   job_list                   True
   flutter_probe              True
   blutter_run                True
   blutter_doctor             True
   analyze_so                 True
   analyze_file               True
   r2_cmd                     True
   r2_doctor                  True
   r2_info                    True
   r2_strings                 True
   r2_xrefs                   True
   r2_disasm                  True
   read_log                   True
   write_note                 True
   list_apk_entries           True
   unpack_apk_libs            True
   verify_apk                 True
   extract_entry              True
   list_artifacts             True
   read_artifact              True
   dart_symbols               True
   patch_so                   True
   patch_file                 True
   so_map_addr                True
   replace_entry              True
   sign_apk                   True
   read_so_bytes              True
   copy_to_input              True
   list_copied_inputs         True
   list_workdirs              True
   read_pp_summary            True

── 本轮修复：签名闭环 / 读类串行 / patch_so 批量与预演 / 地址锚点 ──
   读类工具服务端串行                                  True
   内置 debug keystore                          True
   revmcp.keystore                            True
   像不像函数入口                                    True
   预演模式                                       True
   写后回读校验                                     True
   处补丁到                                       True
   地址锚点 + 上下文                                 True
   已排除二进制                                     True
   或关系                                        True
   签名完成（v1=                                   True
   v2-only 路径逐字节搬运                            True
   走 v2-only 逐字节搬运路径                          True

── 产物目录统一（REVMCP/ 在存储根目录）+ 自检结论串 ──
   RevMCP                                     True
   revmcp                                     True
   REVMCP                                     True
   产物根目录                                      True
   logs/ 报告与流水                                True
   原生库打包合规                                    True
   Failed to extract native libraries         True
   签名已失效                                      True
   结构损坏                                       True
   hex dump                                   True

── 本轮修复：临时目录可升级 / r2 预检可绕过 / 产物白名单 ──
   临时目录（候选目录不可写                               True
   授权后重启服务会自动切到正式目录                           True
   跳过 8MB 大文件预检                               True
   预检拦截                                       True
   产物白名单                                      True
   只允许读本工具产物目录内的文件                            True

── 产物目录：旧目录提示 + 用户手选（SAF 目录选择器）──
   REVMCP                                     True
   旧目录                                        True
   历史位置，内容可自行迁移或删除                            True
   期望目录                                       True
   选择目录                                       True
   用户选定目录                                     True
   已选目录不可写                                    True
   未选择产物目录                                    True
   产物目录已设为                                    True
   先授予「所有文件访问权限」                              True
   已选，但当前写不进去                                 True
   实际写入                                       True
   android.intent.action.OPEN_DOCUMENT_TREE   True
   android.provider.extra.INITIAL_URI         True
   com.android.externalstorage.documents/tr   True

── 本轮修复：点击启动后界面状态实时刷新 ──
   已请求启动，等待服务就绪                               True
   已请求停止                                      True
   正在启动…                                      True
   已启动                                        True
   启动失败                                       True

── 本轮修复：布局 ↔ Java id 绑定（一打开就闪退）──
   布局控件 btn_pick_dir                          True
   布局控件 btn_clear_dir                         True
   布局控件 outdir                                True
   布局缺少控件                                     True
   已跳过点击绑定                                    True

── 本轮界面改造：删「授权/导入」+ 启动上移 + 底部实时日志 ──
   实时日志 ·                                     True
   （暂无日志                                      True
   server.log                                 True
   analysis.log                               True
   ▶                                          True
   布局按钮 启动服务                                  True
   布局按钮 选择目录                                  True
   布局按钮 清除                                    True
   布局按钮 复制                                    True
   布局按钮 复制目录                                  True
   布局按钮 选择 APK / .SO 文件分析                     True
   布局里独立的小复制按钮                                True（出现 2 次）
   布局按钮 停止                                    True（期望已删除：合并为 Java 侧切换）
   授权文件访问                                     True（期望已删除）
   导入 APK 到缓存                                 True（期望已删除）
   深度函数分析（r2 aa                               True（布局里期望已删除）
   Flutter 符号还原（blutter                       True（布局里期望已删除）
   布局控件 logview                               True
   布局控件 logtitle                              True
   布局控件 logscroll                             True

── 本轮：启动/停止单键切换 + 两个小复制按钮各说各的提示 ──
   停止服务                                       True
   MCP 地址已复制                                  True
   日志目录已复制                                    True
   通用提示 已复制到剪贴板                               True（期望已替换为具名提示）

── 关键实现/防护字符串 ──
   BlutterPick                                True
   BlutterRunner                              True
   libblutter_                                True
   blutter_                                   True
   已内置 blutter                                True
   真实版本                                       True
   ELF64                                      True
   Dart 包路径                                   True
   Dart 快照符号                                  True
   _kDartVmSnapshotData                       True
   AArch64 (arm64)                            True
   nativeLibraryDir                           True
   libr2.so                                   True
   已拦截：radare2 不能直接分析容器文件                     True
   重试                                         True
   r2_doctor                                  True

── Dart AOT 路由 + 符号还原阶段 ──
   ★ 这是 Dart AOT 快照库                          True
   blutter_run                                True
   Flutter 符号还原                               True
   只用于**字符串级**定位                              True
   blutter_out                                True
   选文件分析 ·                                    True
   符号还原                                       True

── 本轮新增：依赖闭包诊断（真机 CANNOT LINK 的根因）──
   依赖闭包                                       True
   实际跑通                                       True
   试跑结果                                       True
   CANNOT LINK EXECUTABLE                     True
   libicudata.so                              True
   不在包内                                       True

── 本轮新增：产物命名（不用 blutter 的工程名 pp.txt）+ 只分析逆向相关 .so ──
   dart_symbols.tsv                 True
   dart_symbols.txt                 True
   read_artifact                    True
   list_artifacts                   True
   dart_symbols                     True
   只分析逆向破解用得到的库                     True
   已跳过                              True
   与逆向无关                            True
   extra_libs                       True
   第三方库，默认不分析                       True

── 仍然不提供的写入类（期望 False）──
   repackage_apk                              False

── 端点（运行期拼装，整串不在 dex 属正常）──
   http://127.0.0.1:                          True
   /mcp                                       True

== 全部通过 ==