目标说明
本教程针对中兴 F50、U30、V50 等设备的第三方 Web 项目 UFI-Tools,旨在通过源码修改实现本地化控制。核心目标是移除不必要的联网行为、禁用远程脚本执行及强制弹窗,让用户完全掌握应用的数据流向与更新逻辑。
预期效果包括:
- 停止向
api.kanokano.cn上报设备信息(UUID/机型/版本/root 状态)。 - 禁用远端系统消息与公告拉取。
- 阻止
customHead自动执行外部或内联脚本。 - 解除文件名含
force的强制更新限制。 - 移除用户协议弹窗门槛(可选)。
环境准备
你需要以下基础工具:
- Android Studio(或命令行 Gradle)
- Node.js(用于前端资源打包)
- Git(建议安装)
关键目录结构: UFI-Tools 的前端并非运行时在线加载,而是构建后嵌入 APK 的 assets 中。
- 源码前端:
app/frontEnd/public/ - 构建输出:
app/src/main/assets/ - 构建脚本:
app/frontEnd/build.js
注意:修改 public 目录下的 JS/HTML 后,必须运行 npm run build 才能生效到 APK 中。
获取源码
克隆官方仓库并初始化本地管理:
git clone https://github.com/kanoqwq/UFI-TOOLS.git
cd UFI-TOOLS
rm -rf .git
git init
后续如需维护,可推送到自己的远程仓库。
禁用数据上报
定位上报逻辑
上报功能位于 app/src/main/java/com/minikano/f50_sms/utils/KanoReport.kt,目标地址包含 api.***.cn,携带 Token 及设备指纹信息。
触发点在 app/src/main/java/com/minikano/f50_sms/ADBService.kt,通过定时任务每 5 小时执行一次。
修改方案
推荐直接注释掉触发调用,改动最小且风险低。
文件:app/src/main/java/com/minikano/f50_sms/ADBService.kt
找到 executor.execute(runnableRPT) 行,改为:
// executor.execute(runnableRPT)
若需保留框架但禁止外连,可注释 reportToServer() 调用。
关闭远程消息推送
部分版本存在开发者消息或异常弹窗,可通过前端配置屏蔽。
禁用系统消息拉取
文件:app/frontEnd/public/script/main.js
搜索 initMessage() 函数调用,将其注释:
// initMessage()
同时检查硬编码的 API 地址,确保不再请求远端接口。

