给 AI 编程工具看的文档
这一页给 Codex、Cursor、Claude Code、Copilot Chat 这类 AI 编程工具使用。下面的内容都可以直接复制,正文尽量保留用户自己的口吻。
通用项目上下文
text
我正在维护 ZeroTermux。这个项目基于 Termux 二次开发,是 Android 多模块项目。
请你先按现有项目结构理解代码,先不要重构,也不要自己另起一套架构。
项目基本情况:
- 主包名仍然是 com.termux。
- ZeroTermux 自己新增的功能主要在 app/src/main/java/com/termux/zerocore/。
- 原 Termux 主流程仍在 app/src/main/java/com/termux/app/。
- 项目有 4 个 Gradle 模块:
- :app
- :termux-shared
- :terminal-emulator
- :terminal-view
当前工具链:
- Java + Kotlin
- Gradle Wrapper 9.2.1
- Android Gradle Plugin 8.13.2
- Kotlin 2.2.0
- compileSdk 36
- minSdk 23
- targetSdk 28
- NDK 29.0.14206865
不要随手升级 Gradle、AGP、Kotlin、SDK、NDK 或依赖版本,除非我明确要求。
不要改包名、sharedUserId、签名、bootstrap,除非我明确要求。开始改代码前先读这些文件
text
在开始改 ZeroTermux 代码之前,请你先阅读这些文件并总结项目入口:
- settings.gradle
- build.gradle
- gradle.properties
- app/build.gradle
- app/src/main/AndroidManifest.xml
- app/src/main/java/com/termux/app/TermuxActivity.java
- app/src/main/java/com/termux/zerocore/url/FileUrl.kt
- app/src/main/java/com/termux/zerocore/config/mainmenu/MainMenuConfig.java
- app/src/main/java/com/termux/zerocore/config/mainmenu/config/BaseMenuClickConfig.java
读完后请先告诉我:
1. 这个功能大概率应该改哪一层。
2. 入口文件是什么。
3. 有没有涉及权限、assets 脚本、外部存储、Termux $PREFIX。
4. 你准备怎么最小改动。
先说清楚这些,再开始改代码。新增或修改左侧菜单功能
text
我想新增或修改 ZeroTermux 左侧菜单里的功能。
请按现有菜单系统来做,先不要新建入口体系。
请先阅读:
- app/src/main/java/com/termux/zerocore/config/mainmenu/MainMenuConfig.java
- app/src/main/java/com/termux/zerocore/config/mainmenu/config/MainMenuClickConfig.java
- app/src/main/java/com/termux/zerocore/config/mainmenu/config/BaseMenuClickConfig.java
- 同分类里已有的 ClickConfig
实现要求:
1. 先在 MainMenuConfig.java 找到功能所属分类。
2. 新增或修改 app/src/main/java/com/termux/zerocore/config/mainmenu/config/ 下的 ClickConfig。
3. 菜单文案放到 strings.xml,不要直接写死在代码里。
4. 图标优先使用现有 mipmap/drawable 资源。
5. 如果要打开新 Activity,必须同步修改 AndroidManifest.xml。
6. 如果要向终端发送命令,优先复用 SingletonCommunicationUtils 的现有模式。
7. 如果要复制脚本,先检查 app/src/main/assets/ 下有没有现成资源。
8. 如果涉及文件路径,优先使用 FileUrl.kt。
最后请你说明:
- 改了哪些文件。
- 为什么改这些文件。
- 用户在 APP 里从哪里点进去。
- 我应该怎么真机验证。新增或修改 zt 命令
text
我想新增或修改 ZeroTermux 终端里的 zt 命令。
请注意:zt 会连接 Android 侧服务,只改 shell 脚本不够。
请先阅读:
- app/src/main/java/com/termux/zerocore/config/ztcommand/ZTSocketService.java
- app/src/main/java/com/termux/zerocore/config/ztcommand/ZTCommandConfigStore.java
- app/src/main/java/com/termux/zerocore/config/ztcommand/config/ZTKeyConstants.java
- app/src/main/java/com/termux/zerocore/config/ztcommand/config/ToastConfig.java
- app/src/main/java/com/termux/zerocore/config/ztcommand/config/VersionConfig.java
- app/src/main/res/values-zh-rCN/strings.xml 里的 zt_command_help
实现要求:
1. 在 ZTKeyConstants.java 添加命令 ID 和命令字符串。
2. 如有短命令,也一起添加。
3. 新增或修改对应的 ZTConfig 实现。
4. 在 ZTCommandConfigStore.java 注册命令字符串到 ID。
5. 在 ZTCommandConfigStore.java register 对应实现。
6. 更新 zt_command_help,告诉用户怎么用。
7. 如果命令会打开 Activity、Dialog 或系统权限页面,检查上下文是否可用。
最后请你说明:
- 终端里应该执行什么命令测试。
- 如果提示“不支持或ZT版本低不识别”,应该检查哪里。
- 是否需要确认 $PREFIX/usr/bin/zt 已经更新。涉及路径、文件、存储权限的功能
text
我要改的功能涉及文件路径、外部存储、备份包、字体、QEMU、脚本或数据目录。
请先阅读:
- app/src/main/java/com/termux/zerocore/url/FileUrl.kt
- app/src/main/AndroidManifest.xml
- app/src/main/assets/
请你遵守:
1. 路径优先走 FileUrl.kt,不要到处硬编码 /sdcard/xinhao。
2. 区分 Termux 内部目录和外部存储目录。
3. 区分 $PREFIX、home、/sdcard/xinhao。
4. 如果要访问外部存储,检查 Manifest 权限和运行时权限。
5. 如果要写入 assets 里的脚本,确认资源路径存在。
ZeroTermux 常用外部目录是:
- /sdcard/xinhao/data/
- /sdcard/xinhao/apk/
- /sdcard/xinhao/command/
- /sdcard/xinhao/font/
- /sdcard/xinhao/iso/
- /sdcard/xinhao/qemu/
- /sdcard/xinhao/server/
- /sdcard/xinhao/share/
- /sdcard/xinhao/web_config/
最后请你告诉我:
- 这次改动读写了哪些目录。
- 首次启动没创建目录时会不会出错。
- 用户拒绝权限时会发生什么。涉及 assets 脚本的功能
text
我要改的功能涉及脚本、安装工具、QEMU、X11、Linux 发行版或命令文件。
请先检查 app/src/main/assets/,不要凭空新写一套脚本逻辑。
重点目录:
- app/src/main/assets/runcommand/
- app/src/main/assets/linux/
- app/src/main/assets/qemu/
- app/src/main/assets/x11/
- app/src/main/assets/zipcommand/
- app/src/main/assets/textmate/
- app/src/main/assets/font/
请你确认:
1. 哪个 Java/Kotlin 类会复制 assets 文件。
2. 复制到哪个目标路径。
3. 复制后是否会向终端发送命令。
4. 相关命令是否在 CodeString 里。
5. 脚本是否依赖 /sdcard/xinhao 或 $PREFIX。
改完请给出真机验证步骤,不要只说编译通过。修复一个已有功能
text
我要修复 ZeroTermux 的一个已有功能。请先定位,不要猜。
请按这个顺序查:
1. 先在 MainMenuConfig.java 找用户入口。
2. 打开对应 ClickConfig。
3. 看它是启动 Activity、打开 Dialog、发送终端命令,还是复制 assets 脚本。
4. 如果涉及路径,查 FileUrl.kt。
5. 如果涉及命令字符串,查 CodeString。
6. 如果涉及 zt 命令,查 ZTCommandConfigStore。
7. 如果涉及界面文案,查 strings.xml。
8. 如果涉及权限,查 Manifest 和运行时权限申请。
请给我最小修改方案。除非问题确实出在架构上,否则不要做大重构。补 Wiki 文档
text
我要根据 ZeroTermux 源码补 Wiki 文档。
请不要写泛泛的功能介绍。每个页面尽量写清楚:
1. 功能入口在哪里。
2. 源码里对应哪些类。
3. 相关 assets 或资源文件在哪里。
4. 用户怎么使用。
5. 哪些目录会被读写。
6. 常见问题怎么排查。
7. 改这个功能时开发者要注意什么。
语气按项目维护文档来写,少用模板式总结。
能写具体文件路径就写具体文件路径。
不确定的地方要说不确定,不要编。请 AI 最后必须交付这些内容
text
完成后请你按这个格式回复我:
1. 改动文件列表
- 每个文件改了什么。
2. 为什么这样改
- 说明你是顺着哪个现有入口改的。
3. 验证方式
- 编译命令。
- 真机操作路径。
- 终端命令测试方式。
4. 风险点
- 是否涉及权限。
- 是否涉及签名。
- 是否涉及包名或 sharedUserId。
- 是否涉及 bootstrap。
- 是否涉及外部存储。
- 是否涉及 assets 脚本。
5. 没做或没验证的内容
- 不要只写“应该没问题”。一整段可直接复制的总提示词
text
我正在维护 ZeroTermux。这个项目基于 Termux 二次开发,是 Android 多模块项目。
请你先理解现有结构,再做最小改动。先不要重构,不要自己新建一套架构,不要随手升级 Gradle、AGP、Kotlin、SDK、NDK 或依赖版本。不要改包名、sharedUserId、签名、bootstrap,除非我明确要求。
项目基本情况:
- 主包名仍然是 com.termux。
- ZeroTermux 新增功能主要在 app/src/main/java/com/termux/zerocore/。
- 原 Termux 主流程在 app/src/main/java/com/termux/app/。
- 模块包括 :app、:termux-shared、:terminal-emulator、:terminal-view。
- 常用外部数据目录是 /sdcard/xinhao/。
开始改之前,请先阅读:
- settings.gradle
- build.gradle
- gradle.properties
- app/build.gradle
- app/src/main/AndroidManifest.xml
- app/src/main/java/com/termux/app/TermuxActivity.java
- app/src/main/java/com/termux/zerocore/url/FileUrl.kt
- app/src/main/java/com/termux/zerocore/config/mainmenu/MainMenuConfig.java
- app/src/main/java/com/termux/zerocore/config/mainmenu/config/BaseMenuClickConfig.java
如果是菜单功能,请从 MainMenuConfig.java 和对应 ClickConfig 入手。
如果是 zt 命令,请从 ZTKeyConstants.java、ZTCommandConfigStore.java、ZTSocketService.java 入手。
如果涉及路径,请优先使用 FileUrl.kt。
如果涉及脚本,请先检查 app/src/main/assets/。
如果涉及 Activity,请同步检查 AndroidManifest.xml。
如果涉及文案,请改 strings.xml。
请你先告诉我:
1. 这个需求应该改哪些入口文件。
2. 是否涉及权限、assets、外部存储、$PREFIX、bootstrap、签名或包名。
3. 你的最小修改方案。
然后再开始改代码。
完成后请给我:
1. 改动文件列表。
2. 每个文件为什么改。
3. 编译和真机验证步骤。
4. 风险点。
5. 没做或没验证的内容。