Skip to content

Releases: zocs/FileInfra

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 05:52

项目自本版起由 DufsHub 更名为 FileInfra,应用名、包名与全平台安装产物同步更新。

  • ⚠️ 升级必读:applicationId 由 cc.merr.dufshub 变更为 cc.merr.fileinfra,老版本无法覆盖升级——各平台请先卸载旧版(Windows 在控制面板卸载旧 DufsHub)再安装本版。
  • 权限预设「允许上传」现默认附带文件夹下载,相关开关与帮助文案同步更新。
  • dufs 核心升至 v0.46.0-fix2:归档下载引擎换用 async-deflate-zip v0.2.0,并纳入若干上游修复。

Starting with this release, DufsHub becomes FileInfra — app name, package ids, and installers renamed across all platforms.

  • ⚠️ Before upgrading: the applicationId changed (cc.merr.dufshubcc.merr.fileinfra); in-place upgrades do not work — uninstall the old app first on every platform.
  • The "Allow upload" preset now includes folder download; related toggles and help copy updated.
  • dufs core bumped to v0.46.0-fix2 (async-deflate-zip v0.2.0 archive engine plus upstream fixes).

完整技术明细见 CHANGELOG · Full details in the CHANGELOG.

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android arm64 .apk
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr FileInfra.app 去除隔离属性。

Full Changelog: v0.4.4...v0.5.0

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 04 Aug 10:43

中文:

  • 🐛 桌面端:修复关闭窗口(点右上角 X、Alt+F4 或托盘「退出」)后要等约 30 秒才真正关闭的问题,现在瞬间关闭。

English:

  • 🐛 Desktop: fixed the app hanging ~30s before actually closing after you click the window's X (or Alt+F4, or tray Quit) — it now closes instantly.

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android arm64 .apk
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr DufsHub.app 去除隔离属性。

Full Changelog: v0.4.3...v0.4.4

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 31 Jul 08:50

中文:

  • ⚡ 大幅减少传输过程中的界面卡顿:活动日志改为批量刷新,二维码不再随统计数字变化反复重绘。
  • ⚡ 桌面端:停止服务不再卡住界面(服务在后台收尾)。
  • 🐛 桌面端:修复高负载下下载可能被提前截断/重置的问题(Windows 上尤为明显)。
  • 🐛 修改权限前的「重启服务」确认框,现在只在最近 15 秒内有传输活动时弹出。
  • ⬆️ 内核 dufs 升级到 v0.46.0:带来上游多项修复与改进(认证逻辑修正、HTTP Range 修复、符号链接安全加固、HEAD 请求提速、可自定义 404 页面等)。

English:

  • ⚡ Much smoother UI during transfers: activity-log updates are now batched, and the QR code no longer re-renders on every stats tick.
  • ⚡ Desktop: stopping the server no longer freezes the UI (shutdown finishes in the background).
  • 🐛 Desktop: fixed downloads possibly being cut short / reset under heavy load (most visible on Windows).
  • 🐛 The "restart server" confirmation before permission changes now only appears if there was transfer activity in the last 15 seconds.
  • ⬆️ Upgraded the dufs core to v0.46.0: brings many upstream fixes and improvements (auth-logic fixes, HTTP Range fix, symlink hardening, faster HEAD requests, customizable 404 page, and more).

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android arm64 .apk
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr DufsHub.app 去除隔离属性。

Full Changelog: v0.4.2...v0.4.3

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 15 Jun 01:10

中文:

  • 🔒 增强账号密码安全:修复密码在特定情况下可能被记录到系统日志,并限制了会导致登录认证出错的特殊字符。
  • 🐛 提升运行稳定性,避免个别请求出错导致应用 / 服务整体崩溃。
  • 🐛 Android 通知栏文案现在跟随应用内的语言设置。
  • 🐛 桌面端:通过系统方式(如 Alt+F4)关闭窗口时,现在也会遵循「关闭行为」设置。
  • 🐛 桌面端:修复每次启动残留临时文件的问题。

English:

  • 🔒 Hardened account/password security: fixed the password possibly being written to system logs, and restricted special characters that could break login.
  • 🐛 Improved stability so a single failing request no longer crashes the whole app / server.
  • 🐛 The Android notification text now follows the in-app language setting.
  • 🐛 Desktop: closing the window via the system (e.g. Alt+F4) now also respects your "close action" setting.
  • 🐛 Desktop: fixed leftover temporary files accumulating on each launch.

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android arm64 .apk
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr DufsHub.app 去除隔离属性。

Full Changelog: v0.4.1...v0.4.2

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 27 May 04:44

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android arm64 .apk
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr DufsHub.app 去除隔离属性。

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 27 May 02:19

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android arm64 .apk
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr DufsHub.app 去除隔离属性。

Full Changelog: v0.3.4...v0.4.0

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 01 May 19:08

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

平台支持 / Platforms

Platform Files Status
Android arm64 .apk
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr inout.app 去除隔离属性。

更新内容 / Changes

中文:

  • 🔒 修复 Android 端 dufs 启动日志把 --auth user:pass@/:rw 直接打到 logcat(任何 adb client 或同 user 应用都能读取用户密码)
  • 🐛 修复应用内"关于"页版本号显示与 pubspec.yaml 不一致——改为 runtime 从 package_info_plus 读,发版不再需要手动同步 lib/app.dart::appVersion
  • 🐛 修复 secure_storage 凭据迁移逻辑:之前每次 load 都会用 SharedPreferences 里的 legacy auth 覆写 secure_storage 里更新过的凭据(用户改密码后下次启动密码被改回去)
  • 🐛 修复端口冲突自动 +1 后,用户配置的原始端口被持久化覆盖:现在用户偏好端口和实际运行端口分开记录,下次启动仍尝试原端口
  • 🐛 修复 Android 启动服务的 race:之前 Dart 端固定等 500ms 就查询服务状态,但 Kotlin 的 socket probe 最多需要 5s 才完成,导致服务实际跑起来但 UI 报"启动失败"。现改为最多轮询 6s
  • ✨ 切换语言立即生效,无需重启 app(之前必须重启才能看到 UI 文案变化)
  • 🏗️ NSIS Windows 安装包改为从 CI 命令行注入版本号(/DAPP_VERSION=...),下次发版不会再因为忘改 .nsi 内的硬编码版本号而上传失败

English:

  • 🔒 Fixed Android dufs startup log writing the --auth user:pass@/:rw argument verbatim to logcat (any adb client or same-uid app could read user credentials)
  • 🐛 Fixed in-app About page version drifting from pubspec.yaml — now read at runtime from package_info_plus, so releases no longer require manual sync of lib/app.dart::appVersion
  • 🐛 Fixed secure_storage credential migration: previous load() would re-write the legacy SharedPreferences auth into secure_storage every run, overwriting any newer credential the user had set (effectively reverting password changes on next launch)
  • 🐛 Fixed port-conflict auto-bump persisting the bumped port over the user's preferred port: user preference and actual-runtime port are now tracked separately
  • 🐛 Fixed an Android start race: Dart used to wait a fixed 500ms before checking service status, but the Kotlin socket probe takes up to 5s — UI would falsely report "start failed" while the service actually came up. Now polls up to 6s
  • ✨ Language switch in Settings now takes effect immediately (previously required app restart)
  • 🏗️ NSIS Windows installer now reads APP_VERSION from the CI command line (/DAPP_VERSION=...) instead of a hardcoded .nsi constant — no more silent missing setup.exe when the .nsi version isn't manually bumped

Full Changelog: v0.3.3...v0.3.4

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 30 Apr 23:28

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

平台支持 / Platforms

Platform Files Status
Android arm64 .apk ✅ 已签名,端到端测试通过(MI 6 / Android 8.0)
Windows x64 .zip (portable) + .exe (installer)
Linux x64 .AppImage + .deb + .tar.gz ✅ 已通过 AppImage 端到端测试
Linux ARM64 .AppImage + .deb + .tar.gz
macOS ARM64 .zip (app bundle) ⚠️ 仅编译测试,未签名、未实机测试
iOS arm64 .zip (app bundle, no codesign) ⚠️ 仅编译测试,未签名、未实机测试

🍎 macOS 未签名:解压后执行 xattr -cr inout.app 去除隔离属性。

更新内容 / Changes

中文:

  • 🐛 修复 Android < 15 设备点击启动后立即报"服务启动失败:dufs did not start listening on port 5000"——NDK r28 默认 16KB 页对齐让旧设备 dynamic linker bind() 异常 + 服务主线程上 Socket.connect()NetworkOnMainThreadException 静默吞掉,两个 bug 叠加把已经在 listen 的 dufs 误报为启动失败
  • 🐛 修复 AppImage 升级后偶发使用旧版本 libdufs 的提取冲突(提取路径加 mtime+pid 唯一化)
  • ✨ 端口冲突自动恢复:5000 被占时先尝试接管同 user 的残留 dufs/inout 进程;接管不了则自动切到 5001+,UI SnackBar 提示
  • ✨ Auth 凭据从 SharedPreferences 迁移到平台 keychain(flutter_secure_storage)
  • ✨ 传输日志条目支持点击复制完整路径
  • 🏗️ 新增 Docker 化本地构建支持(Linux x64 + Android arm64),与 CI 行为对齐
  • 🏗️ CI 加入 libdufs.so 4KB 页对齐 hard guard、Gradle cache、独立 flutter analyze job
  • 🏗️ Flutter 升级到 3.41.5;编译器升级到 NDK r28,但强制 4KB 页对齐保留对 Android 7.0+ 的全部兼容

English:

  • 🐛 Fixed Android < 15 devices reporting "service failed to start: dufs did not start listening on port 5000" right after tapping Start. Two stacked bugs: NDK r28 changed default LOAD-segment alignment to 16KB which the dynamic linker on older Android mishandles, and the new socket-connect probe silently swallowed NetworkOnMainThreadException because it ran on the foreground service's main thread — leaving an actually-listening dufs reported as failed
  • 🐛 Fixed AppImage upgrade occasionally reusing a stale extracted libdufs binary (extraction path now embeds mtime+pid)
  • ✨ Auto port-conflict recovery: when :5000 is busy, app first tries to reclaim a leftover dufs/inout process owned by the same user; otherwise bumps to :5001+ and surfaces a SnackBar notice
  • ✨ Auth credentials moved from SharedPreferences to the platform keychain (flutter_secure_storage)
  • ✨ Tap a transfer-log entry to copy its full path to the clipboard
  • 🏗️ Added Dockerized local builds for Linux x64 and Android arm64 mirroring CI behavior
  • 🏗️ CI gained a hard libdufs.so 4KB page-alignment guard, Gradle cache, and a standalone flutter analyze job
  • 🏗️ Flutter bumped to 3.41.5; toolchain bumped to NDK r28 but forced back to 4KB page alignment so support down to Android 7.0+ is preserved

Full Changelog: v0.3.2...v0.3.3

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 26 Apr 18:43

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android .apk
Windows x64 .zip (portable) + .exe (installer)
macOS ARM64 .zip (app bundle) ⚠️ 未签名,未实机测试
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz

🍎 macOS 未签名:xattr -cr inout.app

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 26 Apr 18:43

🤖 Automated build & release by GitHub Actions | 此版本由 GitHub Actions 自动化构建并发布

All native binaries (dufs) are compiled from source — F-Droid compatible.

Platform Files Status
Android .apk
Windows x64 .zip (portable) + .exe (installer)
macOS ARM64 .zip (app bundle) ⚠️ 未签名,未实机测试
Linux x64 .AppImage + .deb + .tar.gz
Linux ARM64 .AppImage + .deb + .tar.gz

🍎 macOS 未签名:xattr -cr inout.app

Full Changelog: v0.3.0...v0.3.1