# v7.6.1
> **基于 CONNMARK 的连接标记机制**，并围绕代理链路、事件触发模型与系统兼容性进行重构与增强，显著提升稳定性与性能表现.

---

## ✨ 新特性
### 🔹 TProxy / 透明代理增强
- **新增 CONNMARK 连接标记机制**
  - 引入基于 `CONNMARK` 的连接级标记，用于标识与继承连接状态
  - 减少重复规则判断，提高转发效率
  - 为后续复杂流量分流与状态保持
  - 提升高并发与长连接场景下的稳定性

---

## ⚙️ 性能与架构优化
### 🚄 网络事件与连接管理

- 将 linkclear 从「周期轮询清理」→ **基于网络变化事件驱动**
  - 仅在网络变化时执行连接池清空
  - 减少无意义唤醒与资源消耗

### >_ IPtables 规则执行优化

- 重构 TProxy 规则/黑白名单 执行逻辑，使结构更清晰、执行更高效
- 优化 Redirect / NAT 模式下 黑白名单 及处理性能
- 提高脚本整体健壮性，减少异常分支影响
- 基于 CONNMARK 机制，优化规则匹配路径
- 提升整体吞吐性能与执行稳定性

---

## 🐞 修复与兼容性改进

### 📱 ColorOS 设备

- 针对 ColorOS 16 系统：
  - 移除系统对 Google 服务的防火墙阻断规则

### 🔧 脚本与逻辑修复

- 修复 inotify 下遗漏 hosts 函数调用
- 修复 `grep \s` 不兼容导致 linkclear 失效的问题
- 修复 TProxy 下热点无法代理及 Apps IP

---

## 📦 模块与结构调整

- 新增 SurfingTile 子模块独立卸载脚本
- 卸载 Surfing 主模块时自动清理关联 **应用|子模块**
- **默认关闭 TUN** 的配置项（YAML）

---

## 🔳 Quick Settings Tile 3.0
### 🔹 全新 SurfingTile App 
-  `"com.yadli.surfingtile"` → `"com.surfing.tile"`
### ✨ 特性
- 支持双击切换节点
- 支持长按跳转 Web App
- 部分功能需要与 Web App 结合使用

<details>
<summary>FAQ 「点击展开👈🏻」</summary>

### 📱设备要求
> 支持 Android8+ 建议运行在 Android10+ 上

- 需要工作在**系统空间**，并且持有 **Root** 权限
- 对于 **KSU** 用户，则需要安装 **"元模块"** 才能拥有挂载权限
- 磁贴全程围绕 **Clash API** 工作，请检查 API 设置是否正确
  - **路径:** → Web App → 菜单 → 磁贴设置

### 功能说明
- 支持应用过滤、网络过滤、部分配置覆写 UI 操作
- 支持管理关闭 Clash 连接池的僵尸连接
### 权限声明
- **GPS 定位**   →    WIFI SSID 获取
- **应用列表**    →    软件包列表 获取

</details>

---

### Tips: 基于近半年来的网络安全事件

- 下载安装或执行 Root 等高危权限时
- 应检查下载来源是否可信

> **Surfing** 的唯一下载渠道只有 **GitHub**.

> 最后 **祝大家新年好！** 🎉
—— May you always be in control of your connections, and in control of your life.

# v7.6.0
### 📦 Debug
  - 移除：`Smart` 内核 缺乏未知稳定性
  - 移除：检查内核更新 `scripts` 功能冗余
  - 优化：`linkclear` task 进程 `sleep` 睡死
  - 优化：进程管理 `scripts` 更好的启停交互
  - 修复：调用 `which` 可能查找失败导致的错误
  - 修复：HyperOS 3 下的 SSID 解析错误 [#253](https://github.com/GitMetaio/Surfing/pull/253) by @zx900930
  - 其它：已解决待机发热及 CPU 异常问题
  - ~~更新：关于  `scripts` config 配置动态调整~~
  - ~~即下个版本起 不会覆盖你们的配置~~
  - 现在仍需通过手动进行合并，此次更新建议重启
> 如有疑问，欢迎加入我们的群组。

# v7.5.9
### 👨‍🔧 Debug
  - 修复: 黑白名单失效
  - TUN 需排除相应包名
  - `fake-ip、ipv6` 不受影响
  - 流量即可不通过核心
  - 同步: Web App 支持启动更新 `lgbm`模型

# v7.5.8
### 👨‍🔧 Version update
  - 恢复白名单策略 > 特殊地址
  - 修正 `direct`(直连) 的命名 更好的辨识度
  - 分支同步 Web.apk 支持启动自动更新核心版本
  - 同步当前最新分支，可能会长期停更一段时间

# v7.5.7
### 👨‍🔧 Debug   
  - **支持**: 自动更新内核 需在 `box.config` 配置开启
  - **修复**: `Another app is currently holding the xtables lock. Perhaps you want to use the -w option?  
` `iptables` 锁可能导致的冲突？命令执行失败 使用 `-w` 变量  
  - **修复**: `CUP` 及内存占用异常，设备发热问题
  - **进程管理优化**：独立 `PID` 文件管理，优雅退出 `trap` 防止残留多个僵尸实例 `sleep`  
  -  `sleep` 可被 `kill` 打断，安全退出

### 🛠️ Config  
  - **支持** **传统 / 智能(smart)** 策略
  - **移除** 电流/功耗 监测
  - 整体优化了一下 

# v7.5.6
### ✅️ Smart 智能调度 (LightGBM 模型) 支持
  - 自动学习节点连接历史（成功率 / 延迟 / ASN / 地理分布等特征)，动态计算权重  `[Smart] Status: [closed], Updated weights: (Model: [LightGBM], TCP: [0.5649], ...)`
  - 支持 **policy-priority** 策略，自定义地区偏好（如 `HK:1.4; JP:1.3; SG:1.2; US:1.1; TW:1.0; Premium:0.9`）
- 智能调度所需数据会保存到 `smart_weight_data.csv`用于分析及[模型训练](https://github.com/vernesong/mihomo/blob/Alpha/component/smart/lightgbm/transform.go#L13)
- 自动跳过不可用节点（失败率高 / 无法握手）
- 与 **sticky-sessions** 策略配合使用时，能在优选节点后保持稳定连接，提升整体稳定性。

### 祝大家节日快乐！🎉
### 📌 Tips
首次使用需积累一定样本量  
随着运行时间增长，调度效果会逐步提升。

# v7.5.5
### Debug：电流统计异常偏低
在长时间运行等高负载任务时，生成的电流统计报告中显示的累计电量（mAh）远低于预期，平均电流计算错误，甚至出现负值

> 原始累加逻辑溢出导致数值偏小，本次版本已全面改用 awk 高精度累积，统计结果更加精准可靠

<details>
  <summary>点击展开更多日志详情</summary>

- 改用 awk 进行 μAh 高精度累计，避免因 μAh 数值过大导致的 mAh 偏小
- 优化状态节点判断，在已充满 (Full) 或 100% 时跳过采集

  <p>运行报告图示：</p>
  <img src="https://raw.githubusercontent.com/GitMetaio/Surfing/rm/Home/file/image/1.jpg" alt="运行图示" width="50%">

### 其它:
- 优化电流采集判定
- 改进充放电状态判断
- 优化推算可信度判断
- 提升监控稳定性

> 显著提升电流采集的准确度，减少了夜间充电或小电流波动导致的误判，更适合长期稳定运行和电池容量估算

</details>

**原因分析**:
Shell 默认使用 32 位整数，在累计 μAh 级电量时极易溢出 `3A × 1小时 = 10 800 000 000 μAh` 远超 32 位上限 `2 147 483 647` 结果溢出后高位被截断，导致最终结果偏小或错误

✅ 修复逻辑至 awk，实现 64 位精度安全累计
✅ *已验证可信度接近99%*

# v7.5.4
### 👨‍🔧 功耗监测_Debug
- 适配部分设备支持反转电流判断
- 支持控制 **wakelock** 休眠锁
- 提升稳定性，以及更精准的计量...
- 设置都位于 `scripts/box.config`

>  由于 **android** 没有强制规定 **current_now** 接口的正负值，部分 **rom** 或魔改内核可能需要反转方向，**wakelock** 锁会让系统不再进入休眠状态。

# v7.5.3
- 配置文件更新
- 新增监测系统运行功耗功能
- 移除磁贴 **SurfingTile** 预编译
- 遇事不决先重启，其它调整...

# v7.5.2
### 👨‍🔧 继上版重新发布:
- ~~卸载子模块的挂载，不代表磁贴 **App** 被移除~~
- 卸载子模块有可能会导致磁贴失效,请勿卸载
- 通过音量键选择是否挂载 **System hosts** 文件
   - 上键: 挂载
   - 下键: 卸载
   - 超时**10s**未操作,默认卸载！
- 优化卸载脚本，出于其它 **Android** 版本限制的原因无法彻底清理干净 **App** 组件所残留的数据，因此您需手动卸载 **Web/磁贴**，此次更新需重启设备一次，后续将会减少版本更新频率...

# v7.5.0
- 跟进新版核心 **PATH** 要求 `v1.19.8` 
- 关闭 **Tun** ~~注意关闭后无法拦截 **RTC**~~

# v7.4.9
### 👨‍🔧 重大更新
- 时隔两年半⛹🏻‍♂️，彻底解决 **Wan0 IPv6** 所带来的 **DNS** 泄露/污染抢答
- 不在乎 **WebRTC** 泄露，可关闭网卡模块以带来更好的体验，看个人 `可选`
- 支持向状态栏添加服务开关磁贴，请勿修改9090端口。由于暂未 **GitHub** 进行开源构建，如您担心隐私安全，可在更新后进行卸载子模块并 `su -c "pm uninstall com.yadli.surfingtile"`即可 **源码** | [下载](https://raw.githubusercontent.com/MoGuangYu/Surfing/main/folder/SurfingTile.tar.gz) `可选`
- 取消默认挂载 **hosts** 如有需要可重新创建该文件即可挂载 实时生效 `可选`
- 取消默认 **FCM** 的 **IPv6** 绑定，以更好兼容稳定部分网络环境
- 增强卸载逻辑，将更全面彻底的清理所有相应的服务及组件，拒绝到处拉屎
- 感谢组织的各位测试，如有疑问可加入组织
- 此次更新请务必要重启设备一次！

# v7.4.8
- 仅更新配置文件
- 更改策略组 **ICON** 链为全球 **CDN** 加速
   - 由于数量过多并发，可能引起 **GitHub** 的服务限制，导致请求加载异常
   - 仅解决内部影响，此次更新意义不大

# v7.4.7
- 支持定时清理连接数
- 位于 **scripts/box.config**
- 更新需重启生效

# v7.4.6
- 规则优化全系拆分 **Mrs** 二进制
   - 极大减少内存损耗
   - 更完得重新拉取路由规则
- 继上一个版本重新发版

# v7.4.5
- 配置更新

# v7.4.4
- 解决部分网络环境 **DNS/RTC** 泄露，可前往 **WebApp** 验证
   - 无需搭配使用 **私人DNS**
   - 恢复默认 **TUN** 开启，更好的流量管理
- 解决部分订阅，无法正常识别及更新
- 优化 **DNS** 更好的支持 **IPv6** 及 **CDN** 调度
- 强制 **GoogleFCM** 去往台湾 **CDN**
- 优化策略组
- 极力推进 **IPv6**

# v7.4.3
- 弃用 **TUN** 转纯 **Tproxy**
- 修正一个变量拼写错误
- 修复更新面板时被错误恢复至其它
- 彻底解决部分 Wan0 下的 IPv6 DNS 请求泄露
- 需要搭配开启私人 DNS 服务 位于: 
- **设置** → **搜索框**，**搜索DNS**关键字 如有以下类似选项，选择它
   - 私人DNS
   - 专用DNS
- 并配置自定义域: 
```text
1dot1dot1dot1.cloudflare-dns.com
```
- Tips: 
   - 开启后请保持模块服务的正常运行
   - 否则会影响 CN 环境正常解析，可能会出现无法上网问题
   - 设置后并不会成为主要解析，为兜底保障
   - 此为可选项，不过强烈建议开启

# v7.4.2
- 纠正配置文件的部分错误

# v7.4.1
- 因 **GeoIP** 数据库类别不全，恢复 **RULE-SET**
   - 部分应用服务可能会进行纯 **IP** 连接
   - 更新后请前往面板拉取最新规则
- 兼容纯系统环境运行 **Toolbox** 
   - 使用外部扩展可能会导致 **bash** 进程未及时结束导致内存溢出

# v7.4.0
- 优化 hosts 挂载
   - ``/data/adb/box_bll/clash/etc/``
   - 更新及修改实时生效

# v7.3.9
- 全系规则采用呼声最高的 Geo数据库(满血版)
- 彻底解决访问 **raw.githubusercontent** 异常
   - gfw重点劫持对象
   - **注意！本次版本更新需重启一次即可生效**
- **Web.apk** 已更新为本地框架运行
   - 仓库代码已删，已无法正常本地运行，可通过此更新获取最新版本 `v6.3.6`
- 优化部分脚本运行逻辑，及配置更新...

# v7.3.8
### 👨‍🔧 兼容性优化
- 支持不同 Android Shell 环境（sh、ash、bash）
- 适配 Android Toybox / BusyBox 版本
- 优化了系统命令路径检测，支持更多设备环境

### ✅ Debug(修复)
1. 优化已知问题...
2. 提示稳定性

## 📝 日志改动
- 统一中文输出显示风格，提升可读性

建议通过客户端在线更新，附带 Web.apk  

如遇问题，可查看日志 (run.log / run_error.log)

# v7.3.7
- 👨‍🔧 仓库重构发版

# v7.3.6
- 🙋‍♂️ 数据迁移至 CLASH v7开头版本可直接通过客户端更新，请不要使用 Toolbox 发起更新！除非您当前版本是此次版本起，后续可用
- 👨‍🔧 如有问题建议卸载重装！
- 增强dns劫持的能力
- 解决更新所残留的旧 inotify进程

### 🧰 Toolbox

- 优化bug、逻辑及没什么卵用的功能🤷‍♂️
- 早期某些版本可能获取不到更新，可通过此包获取最新 `v13.3.5`
