Repository navigation
1.3.0
1.2.1 之后的正式版:汇总了 1.2.2 的十三个测试版。装着 1.2.1 的手机会在应用内收到这次更新。Android、Windows、Linux 同时发布,桌面端仍是预览版。
项目改名 CFluxDo,仓库地址换成 1molchuan/CFluxDo(旧地址会自动跳转)。包名、安装包文件名、数据目录都没变,直接覆盖安装,登录状态和设置都在。
从 1.2.1 升级后的主要变化
新功能
- 🧩 微应用广场:「我的 → 社区 → 微应用广场」,原生列表,排序和网页版一样(最热 / 最新上线 / 评分最高 / 使用最多),能搜索、只看已收藏。点开的应用全屏运行,右上角 ⋯ 是 LINUX DO 自己的应用菜单(应用信息、声音、分享、收藏、评分、打赏、举报)。帖子里的
linux.do/apps链接直接打开广场或对应的应用 - 👥 多账号:「我的」页右上角「切换账号」,每个站点最多存 5 个账号,点一下就切换,不用重新登录。登录状态只存在本机的系统安全存储里,不上传、不进数据备份;切过去发现那个账号的登录已经失效时,自动切回原账号并标记「需要重新登录」
- 🌐 IDC Flare:首页左上角的站点按钮可以在 LINUX DO 和 IDC Flare 之间切换。两边的登录、Cookie、缓存、设置完全分开,切换时 App 会重启一次;IDC Flare 同样走本地优选 + ECH
- 🛒 元宇宙接入 LD士多(社区佬友开发的第三方积分商城):没授权时显示在售、今日成交、小店数;经 LINUX DO Connect 授权后显示待付款、待收货、未读消息、可用券,从 App 打开商城就是登录状态。付款仍在 LINUX DO Credit 页面上确认;只在 LINUX DO 下显示
- 📑 网页侧栏的自定义分区显示在分类抽屉和墨笺的分类面板里,也能在 App 里新建、编辑、删除,改动会同步到网页版;已置顶的分类多了「置顶 / 上移 / 下移」
- ✍️ 编辑器输入
#选分类和标签,和网页版一样,富文本和源码模式都能用 - 🕒 话题列表显示发帖时间(最后回复时间左边,按新旧分四档颜色,「外观 → 卡片样式」里可以关);首页工具栏显示自己的社区点数,点一下打开排行榜
- 🔤 字体:字体设置单独成页;10 款开源中文推荐字体点一下下载就能用(国内优先走 npmmirror 镜像,下载后会校验);也能导入 ttf / otf 文件,电脑上还能选系统里装的字体。自己选的字体对标题、列表、正文、引用全部生效;墨笺风格加了「标题用宋体」开关
- 🎨 界面风格新增 Claude 主题(羊皮纸暖白 / 暖炭黑,也能开纯黑)
- 🔄 列表往回滑时,右下角的加号会变成刷新,点一下回到顶部并刷新(偏好设置里可以关)
- 🔗 外链确认弹层可以直接选「使用内置浏览器打开」,这次的选择优先于设置(上游 PR #427)
- 🔔 系统通知显示发送者头像,Android 通知改为会话样式;回应面板支持动态表情,全站 emoji 统一为 Noto 画风,「外观」最下面可以切换表情风格(移植自上游 v0.2.30)
网络与连接
- 🌐 IP 协议默认「自动」:本机有 IPv6 时优先用 IPv6 连 linux.do。不少家宽的 IPv4 是运营商共享出口,更容易弹人机验证,IPv6 一般是独享地址。本机 IPv6 不通时自动留在 IPv4;「网络设置 → IP 协议」里可以改成「IPv4 优先」
- 🛡️ 浏览器指纹(Android):经本地网关发出的请求,照本机 WebView 的 TLS 握手(BoringSSL)、HTTP/2 设置、请求头顺序和 Client Hints 发出,和人机验证页对得上;内置浏览器的请求也改走 HTTP/2,和原生请求共用连接。「高级网络设置」里可以关
- 修了测试版(1.2.2-beta.11~13)里的一个严重问题:浏览器指纹握手失败(网络抖动、连接被重置等)时,会把一段无效的 ECH 钥匙当成服务端下发的新钥匙存下来,之后 6 小时内所有到 linux.do 的连接都报 502、重启也不恢复。现在只认真正的 ECH 拒绝,已经存下的坏钥匙启动时自动清掉
- 关掉浏览器指纹的安卓和桌面端,HTTP/2 层也不跟着模仿浏览器,按原来的方式发。发版前的测试里,桌面端经国内网络时因为这个过了人机验证仍提示「没有权限」,已修
- 🔌 只留一个网络引擎:网络设置里不再有「标准 / 高性能 / 兼容」三选一,App 的请求一律经本地网关发出。「高性能」(rhttp 直连)去掉了,它的握手不是浏览器指纹,隔夜连不上(ECH 钥匙过期)的问题也出在它身上,选过它的会自动改回网关;「兼容模式」改成兜底:过了验证请求仍被拒时照旧问你要不要临时切换,常开的开关在「高级网络设置 → 兼容模式」
- 💄 网络设置页简化:主页只留连接状态、IP 协议、人机验证、代理与 VPN,其余收进「高级网络设置」;「DNS over HTTPS」改名「连接加速」,关闭前会先确认
- 🖼️ 高墙地区图片、表情、通知、上传失败:linux.do 的静态资源域 ldstatic.com 现在和 linux.do 走同一个优选节点、同样用 ECH。福建等地以前头像表情大面积加载失败、上传报 502
- 🐛 IDC Flare 冷启动时偶尔明文握手(国内会被掐断):拿不到自己的 ECH 钥匙时借用 linux.do 的
- 🐛 启动时「直连失败 → 证书错误」:连不上服务器节点时直接换线路重试,不再绕去内置浏览器白等十几秒;最后还连不上时报错页如实说「连不上论坛服务器」,只有证书校验真的失败才叫证书异常
- ⚡ 慢网络下冷启动更快:测速超时不再清掉上次选好的线路(1.1 秒延迟的网络下实测冷启动 8.3 秒 → 3.9 秒)
- 🎬 视频、音频也走加速通道;放不出来时自动改直连再试一次,两次的结果都记进应用日志
- 🔍 应用日志的请求详情会显示失败原因(连接超时、被重置等),以前没拿到响应的失败只有一个时长
- 重定向按 RFC 跟随:跨站不再带 CSRF / User-Api-Key,303 与 POST 转 GET
人机验证
- 🧯 验证页先用站点自己的 Turnstile 在后台静默签发通行证,通行证过期或丢失时,多数情况下不用再点勾选框;真要勾选时,验证页一出现勾选框就转到前台
- 🐛 过了验证还是加载失败(国内部分网络常见):先改用浏览器网络栈重发请求,自动续期拿到的新通行证顶替旧的,不再一轮接一轮地弹验证;验证页过关后直接沿用已经打开的首页内容
- 🐛 后台启动请求被限流(429)不再弹验证;发帖等操作遇到「BAD CSRF」时刷新令牌后重放一次
- 🐛 验证要用的 challenges.cloudflare.com 和论坛走同一个节点、同一地址族;预热会话时不再碰 Cloudflare 的挑战 Cookie(以前每次卡 4~10 秒)
- 🐛 IDC Flare 的验证入口改为首页;LDC / CDK 卡片手动验证后仍被拦时,按钮改成「在浏览器中打开」
阅读与浏览
- ⚡ 3 分钟内回到刚看过的话题,列表上没有新回复就直接显示离开时那份,不重新加载
- ⚡ 「有 N 个新话题」提示条和通知列表在后台先取好,点开就有内容;后台请求给前台让路,列表滚动中不取摘要,论坛限流时一起退避
- 🐛 帖子往下滑时部分图片破图、链接和 @ 点了没反应(时有时无,冷启动后第一次打开帖子最容易遇到)
- 🐛 帖子里的红包等微应用:应用里的「打开链接」叠一层内置浏览器打开,不再把应用顶掉;加载前先带上登录状态,不会被当成没登录;嵌入的应用下面多了「全屏打开」
- 🐛 部分手机打开微应用显示「浏览器无法安全运行此应用,请升级或更换浏览器。」(系统 WebView 内核在 Chrome 103~115 之间);内核过旧又加载失败时,全屏运行页顶上会提示更新「Android System WebView」
- 🐛 链接里包着的图片点了没反应,现在打开外层的链接;按创建时间等排序时不再弹「有新话题」(上游 #419)
- 🐛 首页发帖的加号被底部导航栏盖住、往回滑变成刷新后回不来;社区点数和搜索图标重叠
- 🐛 经典风格设了背景图片后,首页顶部有一条黑带
- 🐛 编辑别人的话题退不出去(#3)
稳定性(多数移植自上游 FluxDO)
- 🐛 弱机型上一弹出安全验证就「重启」(上游 #428):WebView 内核崩溃或被系统回收内存时,不再连带杀掉整个 App;页面显示「页面意外退出了」,点「重新加载」继续
- 🐛 启动时偶发「Bad state: Future already completed」;用过预测返回手势后全 App 点不动
- 🐛 聊天里的附件下载不了;采纳解决方案误报失败;回复弹框预览里不能调图片尺寸
- ⚡ 图片下载调度:头像不再排在正文大图后面,取消的请求真正断开连接
桌面预览版(Windows / Linux)
- ⚡ Windows 冷启动:启动时要等 WebView2 探测浏览器标识,最长卡十几秒;现在按 WebView2 版本缓存,这一步 16.5 秒 → 0.2 秒以内
- 🐛 Linux(Flatpak)点外部链接没反应(#2):改由系统门户打开,不行再用 xdg-open,都打不开时会提示
- 上面连接、验证、阅读方面的改动桌面端同样包含;浏览器指纹只在 Android 上
行为变化
- 项目改名 CFluxDo:应用名、窗口标题、启动页和关于页都换了新名字,包名和数据不变
- 网络设置去掉了引擎三选一;以前选「高性能」的会自动改回网关
- IP 协议默认「自动」:本机有 IPv6 的话升级后会改用 IPv6,第一次可能要重新过一次人机验证(验证凭据绑定出口地址),之后就稳定了;以前手动选过的保持不变
- 切换站点(LINUX DO / IDC Flare)时 App 会重启一次
- Android 升级后第一次打开会再弹一次「本地优选」的说明(每到新的次版本弹一次),选「保持关闭」不会开启帮助优选
下载与安装
- Android:从 1.2.1 或任一测试版直接覆盖安装,登录状态和设置都会保留。
arm64-v8a适合绝大多数手机;armeabi-v7a只给装不上 arm64 包的老机器。App 内检查更新会按手机架构自动挑选 - Windows:下载
cfluxdo-1.3.0-windows-x86_64.zip,解压后运行cfluxdo.exe,不需要安装。可以解压到新文件夹,也可以覆盖旧文件夹,登录状态和设置都存在%APPDATA%\com.github.molchuan\cfluxdo。需要 Windows 10/11 64 位和 WebView2 运行时(Windows 11 自带)。安装包没有代码签名,第一次运行如果出现「Windows 已保护你的电脑」,点「更多信息 → 仍要运行」 - Linux:
flatpak install --user cfluxdo-1.3.0-linux-x86_64.flatpak,会直接覆盖旧版本,数据在~/.var/app/com.github.molchuan.cfluxdo。第一次安装会从 Flathub 下载 GNOME 48 运行时 - 每个文件都附了
.sha256,下载后可以先核对
已验证
- 加速核心的单元测试全部通过(安卓的特性组合 144 项,桌面的 123 项)
- Android(arm64 包,模拟器,经国内网络,已登录):从测试版覆盖安装,测试版存下的坏钥匙启动时自动清掉;首页、话题、微应用广场、微应用正常,连接全部走 ECH,没有 502。浏览器指纹开着时,网关发出的 TLS 握手与 HTTP/2 指纹和 Chrome 124 一致;临时关掉后首页、话题也正常(测完已打开)
- Windows(Windows 11 虚拟机,经国内网络):全新安装的游客和已登录的账号都能过验证进首页、看话题。上面说的「过了验证仍提示没有权限」就是在这里查出来的,修好后同一网络下反复对照过
- Linux(Flatpak,Debian 12,游客,海外网络):安装、过勾选框、首页、话题正常
armeabi-v7a包只核对了签名、版本号和架构,没有上机;所有平台都没在真机上测过
已知问题
- 国内部分网络下仍有视频放不出来,我这边复现不了。遇到的佬友请附上帖子链接和导出的应用日志(里面的
video_init_failed记录会写明卡在哪一步) - 系统 WebView 内核低于 Chrome 103 的手机打不开微应用(站方加载器不支持,提示「请升级浏览器并使用 HTTPS。」),需要更新「Android System WebView」
- 桌面预览版:视频、音频楼层还不能在 App 内播放;窗口大小和位置不会记住;「检查更新」只打开下载页面;扫码登录、passkey、切换应用图标等依赖手机的功能在桌面上隐藏;Linux 包用的 GNOME 48 运行时安装时可能提示 end-of-life,不影响使用
- 遇到问题请在 Issues 或帖子里反馈,附上「我的 → 应用设置 → 关于 CFluxDo → 应用日志 → 分享日志」导出的日志。反复弹人机验证多半是出口 IP 在变:开着多节点或自动切换的 VPN、ROM 的「双通道网络加速」都会这样,先关掉再试
致谢
双站切换、发帖时间、Windows 冷启动修复、系统字体与自选字体、Claude 主题,以及 IDC Flare 验证入口等几项修复,移植或参考自 liansishen/fluxdo(@liansishen);多账号、侧栏自定义分区、后台让路的思路参考了 xuemk/linuxdo-android;浏览器指纹与多项修复移植自上游 FluxDO(Lingyan000,GPL-3.0);外链弹层的改动来自上游 PR #427(wxk66)。移植的提交都保留了原作者署名。
源码
本版对应源码 1molchuan/CFluxDo@40996095(tag 1.3.0),加速核心 1molchuan/fluxdo_doh@b6acc0c,帖子渲染包 1molchuan/fluxdo_render@d34e0c0。