跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
KotlinNode.js大前端java

中兴 5G 随身 WiFi 工具 UFI-Tools 隐私与更新控制修改指南

针对中兴 5G 随身 WiFi 工具 UFI-Tools,通过修改源码实现隐私保护与更新自控。主要步骤包括禁用数据上报、移除远程脚本执行入口、关闭强制弹窗及自定义资源服务器。最终目标是让用户完全掌控应用行为,避免不必要的联网与外部代码注入。

SparkGeek发布于 2026/4/8更新于 2026/10/24116 浏览

目标说明

本教程针对中兴 F50、U30、V50 等设备的第三方 Web 项目 UFI-Tools,旨在通过源码修改实现本地化控制。核心目标是移除不必要的联网行为、禁用远程脚本执行及强制弹窗,让用户完全掌握应用的数据流向与更新逻辑。

预期效果包括:

  1. 停止向 api.kanokano.cn 上报设备信息(UUID/机型/版本/root 状态)。
  2. 禁用远端系统消息与公告拉取。
  3. 阻止 customHead 自动执行外部或内联脚本。
  4. 解除文件名含 force 的强制更新限制。
  5. 移除用户协议弹窗门槛(可选)。

环境准备

你需要以下基础工具:

  • 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 地址,确保不再请求远端接口。

移除自定义脚本执行入口

这是安全加固的关键步骤,防止后端下发恶意代码。

确认 customHead 机制

在 app/frontEnd/public/script/main.js 中,customHead 会将后端返回的 HTML 解析并注入 <head>,其中包含 <script> 标签的执行逻辑。

修改方案

方案 A:彻底禁用 将 customHead 整段 IIFE 注释掉。

方案 B:仅保留样式 如果需支持自定义 CSS,只保留 style, link, meta 的处理,忽略 script 节点:

doc.querySelectorAll('script').forEach(()=>{ /* do nothing */ })

建议同步删除后端相关路由(POST /api/set_custom_head),避免未来被插件重新启用。

更新链路自控

禁用强制更新判断

文件:app/frontEnd/public/script/main.js 找到涉及 force 的文件名判断逻辑,注释相关代码块,允许用户自行选择是否更新。

资源服务器配置

默认资源服务器地址在 AppMeta.kt 中定义。为切断依赖,可将其修改为内网地址或不可达地址,仅使用手动安装的 APK 包。

移除强制条款弹窗

前端处理

文件:app/frontEnd/public/script/main.js 搜索 initTerms() 并注释调用,避免启动时拦截。

后端兜底

文件:app/src/main/java/com/minikano/f50_sms/configs/AppMeta.kt 修改默认值,使 isReadUseTerms 初始化为 true:

isReadUseTerms = prefs.getString("isReadUseTerms","true").toBoolean()

重新打包前端资源

修改前端文件后,必须执行构建命令将资源打入 APK:

cd app/frontEnd
npm install
npm run build

成功后检查 app/src/main/assets/ 下文件是否已更新。

编译 APK

Android Studio 方式
  1. 打开项目根目录进行 Gradle Sync。
  2. 选择 Build -> Build APK(s)。
命令行方式

在项目根目录执行:

./gradlew assembleDebug

生成的 APK 通常位于 app/build/outputs/apk/debug/。

验证修改结果

抓包验证

连接网络后运行编译版,观察是否有 api.???cn 的请求或周期性 POST 数据包。

日志验证

查看 Logcat 中的 KanoReport.kt 和 ADBService.kt 相关 Tag,确认触发点已失效。

总结

通过上述修改,我们实现了对外连、脚本执行及更新链路的完全掌控。开源项目的价值在于透明与可控,用户有权审查代码逻辑并根据自身需求调整功能边界。

目录

  1. 目标说明
  2. 环境准备
  3. 获取源码
  4. 禁用数据上报
  5. 定位上报逻辑
  6. 修改方案
  7. 关闭远程消息推送
  8. 禁用系统消息拉取
  9. 移除自定义脚本执行入口
  10. 确认 customHead 机制
  11. 修改方案
  12. 更新链路自控
  13. 禁用强制更新判断
  14. 资源服务器配置
  15. 移除强制条款弹窗
  16. 前端处理
  17. 后端兜底
  18. 重新打包前端资源
  19. 编译 APK
  20. Android Studio 方式
  21. 命令行方式
  22. 验证修改结果
  23. 抓包验证
  24. 日志验证
  25. 总结

更多推荐文章

查看全部
  • Spring AI 工具回调开发实战:文件操作、联网搜索与 PDF 生成
  • Webnovel Writer:基于 Claude Code 的长篇网文 AI 创作系统
  • 2G 内存云服务器部署 Spring Boot + MySQL 实践
  • C++ 面向对象编程核心:继承机制深度解析
  • Windows 下安装 OpenClaw 并接入飞书机器人
  • 前端文件下载实战:从原理到最佳实践
  • 百度 AI 开放计划:通过 MCP Server 连接用户与应用
  • JavaWeb 数据交换与异步请求:JSON 与 Ajax 技术详解
  • 医疗连续体机器人模块化控制界面设计与 Python 库应用
  • 后端开发入门:HTML 基础语法与实战
  • 基于 SpringBoot 的艺术展览网站设计与实现
  • 无需公网 IP 安全访问本地 AI 服务的实践方案
  • 使用 cpolar 实现 Open-Lovable 远程访问与网页克隆
  • 全面解析 Python 常见代码文件后缀及其用途
  • Linux 系统安装 OpenClaw 并接入 QQ 机器人
  • Claude 接入 MiniMax AI 大模型配置指南
  • AI 研发提效指南:Copilot 与 Cursor 在敏捷开发中的实战技巧
  • OpenClaw 本地 AI 助手安装与配置实战指南
  • 【AIGC】Claude Code Rules配置
  • 新版 IntelliJ IDEA 恢复右上角 Git 更新和提交按钮设置

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online