Skip to content

refactor(tools): 收拢三档权限并按清单整理工具目录 - #92

Open
3316891527 wants to merge 4 commits into
devfrom
refactor/tools-permissions-layout
Open

3316891527 wants to merge 4 commits into
devfrom
refactor/tools-permissions-layout

Conversation

@3316891527

@3316891527 3316891527 commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

变更说明 / Description

工具设置已经采用标准、管理员和 Root 三档模式,内部实现仍沿用无障碍、调试、管理员等多层继承,修改工具时难以判断实际执行位置。此 PR 将权限实现收口为三档,在保留现有操作能力的基础上,按逐文件清单整理内置工具、插件包和系统能力目录,让维护者能按功能找到实现。

背景与动机 / Context and motivation

原文件、系统、设备和 UI 工具中存在没有独立行为的继承壳,管理员功能跨历史等级分散;packTool 同时放置解析、加载、运行、安装及 UI DSL 文件。继续按原结构开发会增加定位成本,也容易漏掉同一功能的不同权限实现。

改动范围 / Changes

  • 在 core.tools.builtin 中按文件、界面、系统、网页、媒体等功能归类工具。管理员直接承接原无障碍和 Shell 操作,Root 保留专有 UI 行为;删除历史等级和没有独立行为的工具壳,维护者无需沿五层继承查找具体操作。
  • 将实际提供 Shizuku 能力的 Shell 执行器和操作监听器准确命名为 Shizuku,工厂、日志及提示同步更新,避免实现名称继续暗示一个独立调试权限等级。
  • 运行时权限模式只解析 STANDARD、ADMIN、ROOT;旧偏好由已有 DataStore 迁移入口转换为 ADMIN,避免旧配置继续作为运行时模式传播。
  • packTool 按 parser、loader、runtime、install、minify、uidsl、metadata 归类;工具执行与注册进入 core.tools.runtime,授权检测与安装、Shell、终端和屏幕捕获分别归入对应职责目录。
  • 在目录迁移前记录 117 个文件的当前路径、目标路径、包名及源摘要,按清单迁移 111 个并保留 6 个。同步同包隐式依赖、调用方导入、内部 Manifest 组件、测试资源、维护脚本及开发文档,避免仅移动文件后出现编译或资源定位失败。
  • 在 packTool.parser 的 ToolPkgParser 与 ToolPkgMainRegistrationScriptParser 中显式导入 metadata 共享注册常量,覆盖校验提示里的字符串插值;解析器拆分为独立包后,这些引用仍能正确解析,避免缺少导入导致编译失败。
  • 保留安装、刷新和 UI DSL 调试三个公开广播入口的原组件名,使现有 ADB 与编辑器调用继续有效。
文件清单与目录说明

兼容性与风险 / Compatibility and risks

工具名、参数和结构化结果类型保持现有契约;无障碍、Shizuku 继续作为实际执行后端,用户模式只有三档。Root 设置与其他偏好沿用现有迁移规则。

内部完整类名发生调整,直接反射引用这些内部类的扩展需要同步对应引用。仓库内引用和内部组件声明已同步,三个已被外部脚本调用的公开广播组件保持原名。本次不调整应用标识、数据库模型或 JNI 接口。

关联 Issue / Related issue

N/A:本次为维护者安排的内部权限实现与工具目录重构,没有关联 Issue。

验证方式 / Verification

检查或命令:git diff --check;权限操作体与路由对比;迁移声明体、导入和目标路径核对;共享常量及字符串插值导入检查;XML、Python AST、Markdown 链接检查
环境与变体:Android 项目源码静态核对;远端 Build 使用 assembleDebug;Android Tests 使用仓库 JVM 单测流程
本次修订:cf31c7c7
结果:静态核对通过;本地未执行编译、构建或测试,未执行实机回归
Build 派发:HTTP 204 已受理,最终运行结果未核实
Android Tests 派发:HTTP 204 已受理,最终运行结果未核实

工作分支先派发上述仓库工作流,再创建本 PR。HTTP 204 仅表示派发受理,构建和单测最终结果尚未核实;没有等待或轮询 CI。

静态核对与回归范围
  • 权限收口比较 61 个原操作体及辅助方法,以及 17 个文件操作路由。
  • 目录迁移比较 264 份受影响 Kotlin 文件的声明内容,未发现包名、导入和清单对应显式路径引用以外的变化。
  • 全部 117 个清单目标及包名已核对;共享常量检查覆盖 60 个定义和 29 个 Kotlin 引用文件,包含字符串插值,目前未发现这组常量的导入遗漏。
  • 10 份变更 XML、2 份 Python 文件和 22 份 Markdown 的相应静态检查通过。
  • 既有权限能力测试覆盖三档模式与 16 种授权状态的 48 组能力组合;历史偏好迁移、操作路由、会话缓存和迁移后的工具测试交由仓库工作流运行。
  • 验证记录

证据 / Evidence

  • 完整实施记录
  • 权限收口与目录迁移分别提交,文件路径与关联引用可按清单核对。

检查清单 / Checklist

  • 我已记录可复现验证和未运行项原因 / Reproducible verification and reasons for unrun checks are recorded
  • 日常开发 PR 的目标分支为 dev;如目标为 main,我已说明这是维护者发布同步 / The target branch is dev for regular work; if it is main, I explained why this is a maintainer-led release sync
  • 我已确认 Candidate checks 覆盖改动范围,并会处理技术失败项 / Candidate checks covers the change scope and technical failures will be addressed
  • 最终 diff 无无关、临时、生成、二进制或敏感内容 / Final diff has no unrelated, temporary, generated, binary, or secret content
  • 已提供对应的回归、UI、文档/字符串或兼容性证据 / Relevant regression, UI, docs/strings, or compatibility evidence is provided

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant