Releases: Avi7ii/AirSend
AirSend v3.5.0
中文
v3.5.0 把最近两条主线能力正式合并进发布版本:一条是菜单栏设置入口与设置窗口整理,另一条是 DropZone 拖拽链路的重构与稳定性修复。
这次更新的重点不是再堆新功能,而是把过去“能用但不稳”的关键体验补到可持续发布的状态:
- 菜单栏新增更清晰的设置入口,状态栏交互路径更完整。
- DropZone 的触发、锚点定位、显示隐藏与拖拽接管逻辑重新梳理,明显减少文件拖拽时的“弹回”“静默消失”“位置错乱”和窗口被裁切。
- 本地文件拖拽识别与 drag session 维持逻辑更稳,对访达拖拽、菜单栏附近预热和进入目标区后的接管更可靠。
- macOS、Android、Magisk 模块和运行时协议版本统一对齐到
3.5.0,发布产物与运行时代码保持一致。
主要改动
- 合入状态栏设置窗口分支改动,补齐菜单栏设置入口。
- 合入 DropZone 重构分支改动,修复窗口错误出现在屏幕中央、半截裁切、难以触发、拖拽松手无响应和高概率回弹等问题。
- 调整 DropZone 触发带、keepalive 区域和拖拽接管顺序,让状态栏附近更容易拉起 DropZone,同时离开目标区后也能正确收起。
- 刷新 macOS
.app、Android APK、Magisk 模块版本号和模块元数据。
发布资产
AirSend-v3.5.0-macOS.zipAirSend_Magisk_v3.5.0.zip
更新建议
- 建议更新最新的 Mac 版本。
- Magisk 模块可以不更新,因为这次除了版本号之外没有任何改动。
English
v3.5.0 brings the two recent feature lines into one release: the new menu-bar settings entry and the DropZone drag-and-drop stability rewrite.
The point of this release is not to add flashy features, but to make the core workflow feel publishable and dependable:
- A cleaner settings entry is now available from the menu bar, with a more complete status-item workflow.
- DropZone trigger, anchoring, show/hide behavior, and drag-session ownership were reworked to reduce bounce-backs, silent dismissals, mispositioned windows, and clipped panels.
- Local-file drag detection and drag-session retention are more reliable, especially for Finder drags, status-bar prewarm, and handoff after entering the target zone.
- macOS, Android, the Magisk module, and runtime protocol strings are now aligned on version
3.5.0, so shipped assets match the running code.
Highlights
- Merged the status-bar settings window branch into the release line.
- Merged the DropZone refactor branch and fixed center-screen placement, half-clipped windows, hard-to-trigger activation, no-op drop release, and frequent drag bounce-back failures.
- Tuned the DropZone activation band, keepalive area, and drag handoff order so it appears more easily near the menu bar and dismisses correctly after leaving the target area.
- Refreshed the macOS
.app, Android APK, Magisk module metadata, and release version strings.
Release Assets
AirSend-v3.5.0-macOS.zipAirSend_Magisk_v3.5.0.zip
Update Recommendation
- Updating to the latest Mac build is recommended.
- You can skip updating the Magisk module, because this release does not change anything in it except the version number.
AirSend v3.0.1
AirSend 3.0.1 进一步稳定了校园网下的设备发现与列表保活,减少“设备突然消失”与反复全网扫描。
AirSend 3.0.1 further stabilizes campus-network discovery and device-list persistence, reducing sudden disappearances and unnecessary full-subnet rescans.
AirSend v3.0.0
中文
这次 GitHub 上正式发布的 v3.0.0,不仅包含最初 Release v3.0.0 提交里的大版本更新,也补齐了首发后继续验证和修复的那一批关键改动。
重点不只是继续打磨日常传输,而是把复杂校园网环境里最现实的几个痛点一起补上了:
- 不只是“能发现但几乎传不动”,还包括“切到校园网后设备列表经常空白”与“发现到了又很快消失”
- 不只是加了一条兼容链路,还把这条兼容链路的取消、超时回收、会话串包防护和体积边界一起收紧
- 不只是拖拽体验更顺手,DropZone 的预热、回弹防护和后台最小化也进一步稳定
复杂网络与校园网突破
- 新增手动
HTTP 兼容模式,默认关闭,默认仍优先保持 LocalSend 标准 HTTPS 传输。 - 当校园网里设备发现正常、但 HTTPS 数据面频繁超时或悬空时,可在 macOS 菜单栏
Advanced -> Compatibility Mode (HTTP)手动切换到兼容链路。 - macOS 端新增 plain HTTP 接收器,并把局域网接收端口独立到
53318;Android 守护进程侧使用独立传输端口53319,让发现面和数据面职责更清晰。 - 发送前会做真实数据面预检,并在 HTTPS / HTTP 之间选择当前真正可用的链路,减少“设备明明在线却一直发不出去”的假在线情况。
- Android -> Mac 的主动发送链路补上了 peer 记忆与连接重建逻辑,网络切换后更不容易掉进
No target found或旧连接悬挂。 - Android 守护进程增加网络绑定变化检测与自重绑能力,热点、校园网、接口切换后的恢复速度更快。
- macOS 端新增了大网段校园网发现增强:当 UDP multicast 在
/16、/17等校园网里失效时,会按/24切片向外扩散探测,不再只盯着当前一个小网段。 - 设备一旦被发现,Mac 会额外记住它最近可用的 IP,并通过轻量级
preferred host probe做后台保活与冷启动回找,修复“菜单里搜不到 / 出现后又很快消失”的问题。
首发 3.0.0 之后补上的兼容链路加固
- campus fallback 现在加入了
session nonce和来源 IP 绑定,降低旧包、错包、跨会话串包导致误判成功的概率。 - fallback 增加超时清理与取消能力,半传输中断、假 prepare 或用户手动取消时,不再轻易留下脏状态。
- fallback 默认不再每包同时做组播和广播双发,局域网噪音更小。
- fallback 体积边界收紧到
1 MB,避免大文件在弱网或拥塞 Wi-Fi 下放大内存与流量压力。 - HTTP 兼容模式保持手动开启,不会静默把原本的默认 HTTPS 传输自动降级成兼容链路。
DropZone 与拖拽体验升级
- 重做本地文件拖拽识别,只接受真实的本地文件拖拽,忽略文本选择、窗口移动或其他伪拖拽来源。
- 新增拖拽负载缓存与回读逻辑,修复 AppKit 在边界抖动时丢失 pasteboard 内容导致的“松手弹回”问题。
- DropZone 预热、显示、隐藏与最小化流程重新梳理,拖拽飞行中尽量不做破坏 session 的窗口层级变更。
- 边界命中、退出延迟和后台收起策略都做了收紧,拖拽目标更稳,失败时也更少打断操作。
传输与全链路稳定性
- macOS 出站发送器补充了更强的预检、重试与协议切换策略。
- Android 守护进程和 LocalSend patch 继续强化复杂网络下的链路恢复能力。
- Magisk 模块与 Android 侧 daemon 资产一并刷新,发版构建产物与运行时代码保持一致。
兼容性说明
- 默认安全模式仍然优先使用 HTTPS,继续保留与官方 LocalSend 的标准协议兼容能力。
HTTP 兼容模式是 AirSend 针对复杂校园网场景额外提供的能力,官方 LocalSend 当前不提供这条手动兼容路径。- 复杂校园网下的“设备列表恢复与保活”能力现在也一并落地,不再只解决“传不出去”,还解决“设备经常看不见”。
- 建议家庭路由器、手机热点等正常局域网继续使用默认安全模式;只有在“能发现、但几乎传不动”的校园网环境下再手动打开兼容模式。
English
This published GitHub v3.0.0 release includes not only the original Release v3.0.0 commit, but also the critical follow-up fixes we added after continued real-world validation.
The breakthrough is no longer just "campus Wi-Fi can discover devices but can barely transfer":
- it also covers "after switching to campus Wi-Fi the device list is empty"
- and "the device appears once, then disappears again"
It also means the compatibility path is no longer just present; it is now tightened with better cancellation, timeout cleanup, session isolation, and payload boundaries.
Breakthroughs for campus and complex LAN environments
- Added a manual
HTTP Compatibility Mode. It is off by default, and secure LocalSend-style HTTPS remains the default path. - When discovery works on a campus network but the HTTPS data plane keeps timing out or hanging, you can manually switch macOS to
Advanced -> Compatibility Mode (HTTP). - macOS now has a dedicated plain-HTTP receiver and a separate LAN transfer port on
53318; the Android daemon uses its own transfer port53319, keeping discovery and transport concerns cleaner. - Before sending, AirSend now performs real data-plane preflight checks and chooses the transport that is actually reachable, reducing the classic “device looks online but transfers never start” failure mode.
- The Android -> Mac active-send path now remembers peers and rebuilds the connection state more reliably after network churn, reducing
No target foundand stale-route failures. - The Android daemon now watches for binding changes and can rebind itself after hotspot, campus Wi-Fi, or interface transitions.
- macOS discovery now handles large campus subnets more aggressively: when UDP multicast is suppressed on
/16or/17style LANs, it expands probing by/24slices instead of staying trapped in a single local slice. - Once a device has been found, macOS also remembers its last reachable IP and keeps it alive with a lightweight preferred-host probe, fixing the “device list goes blank again” problem after campus-network transitions or app restarts.
Compatibility-path hardening added after the first 3.0.0 commit
- The campus fallback path now uses a session nonce plus source-IP binding to reduce stale packets, wrong packets, and cross-session state pollution.
- Fallback now has timeout cleanup and real cancellation support, so interrupted transfers and fake prepare packets are less likely to leave dirty state behind.
- Fallback no longer defaults to dual multicast+broadcast sending for every packet, which reduces LAN noise.
- The fallback payload cap is now
1 MB, avoiding large-file memory and airtime amplification on congested Wi-Fi. HTTP Compatibility Moderemains manual and explicit instead of silently downgrading the default HTTPS path.
DropZone and drag-and-drop improvements
- Reworked local-file drag detection so only real local file drags are accepted; text selections, window moves, and other false-positive drags are ignored.
- Added staged drag payload caching and recovery to fix the AppKit boundary case where the pasteboard payload disappears and the drop “bounces back”.
- Reworked DropZone prewarm, show, hide, and minimize behavior to avoid window-layer changes that can break the drag session mid-flight.
- Tightened boundary handling, exit timing, and background minimization behavior so the target feels more stable and less disruptive during drag-and-drop.
Transport and end-to-end stability
- The macOS sender now uses stronger preflight, retry, and protocol-switching behavior.
- The Android daemon and LocalSend patches continue to harden recovery on unstable or policy-heavy LANs.
- The Magisk module and Android daemon assets have been refreshed together so release artifacts stay aligned with the runtime code.
Compatibility notes
- The default secure mode still prioritizes HTTPS and preserves standard protocol compatibility with official LocalSend in normal LAN environments.
HTTP Compatibility Modeis an AirSend-specific answer for difficult campus-style networks; official LocalSend does not currently offer this manual compatibility path.- The release also improves device-list recovery and keepalive behavior on campus LANs, not just the transfer path itself.
- For home routers and mobile hotspots, the default secure mode is still recommended. Turn on compatibility mode only for networks where discovery works but actual transfers repeatedly stall.
v2.4.2
中文
- 修复 Android 守护进程在网络切换后误绑定
rmnet/tun/Meta的问题,恢复局域网发现与 HTTPS 传输稳定性。 - 修复 Mac 端在同一设备 fingerprint 对应 IP 变化时仍沿用旧地址的问题,设备重连和热点/IP 变化后可正确刷新目标。
- 修复 Android 文本 IPC 对多行与首尾空白的截断问题,剪贴板文本可完整传输。
- 保持 Android ↔ Mac 走 HTTPS,并补齐了热点/节点变化后的链路恢复逻辑。
- 改进模块内 APK/daemon 同步流程,升级后更容易保持二者版本一致。
English
- Fixed Android daemon binding to
rmnet/tun/Metaafter network changes, restoring stable LAN discovery and HTTPS transfers. - Fixed the macOS app keeping stale peer IPs when the same device fingerprint appears on a new address, so reconnects and hotspot/IP changes now refresh the target correctly.
- Fixed Android text IPC truncation for multiline content and preserved leading/trailing whitespace for clipboard text.
- Kept Android ↔ Mac transfers on HTTPS and improved recovery after hotspot or node changes.
- Improved APK/daemon synchronization inside the Magisk module so upgrades are less likely to drift across components.
v2.4.1
v2.4
中文更新
- 改进拖拽触发逻辑:状态栏附近的拖拽判定区域更稳定,空闲慢检/拖拽快检切换更及时。
- 修复
Target Offline相关卡住问题:离线时会明确失败反馈,避免弹窗长期停留。 - 优化设备展示:优先显示手机产品名称,模块设备副标题统一为
airsend module。 - 同步更新发送目标文案:DropZone 显示为
Send to <设备名>。 - 版本升级到
2.4,Magisk 模块已内嵌对应 APK 与最新 daemon。
English
- Improved drag trigger behavior near the menu bar with faster active drag detection and steadier idle polling.
- Fixed
Target Offlinestuck states with explicit failure feedback instead of lingering DropZone overlays. - Refined device display: prefer product model names, with module subtitle shown as
airsend module. - Updated DropZone target text to
Send to <device name>. - Version bumped to
2.4; the Magisk module now bundles the matching APK and latest daemon.
AirSend v2.3.1
AirSend v2.3.1
- Fixed discovery reliability on macOS:
Refreshnow restarts discovery stack and auto-recovers from UDP transport failures. - Bumped app/module version to
2.3.1. - Updated Magisk module package to
v2.3.1.
说明(简要)
- 修复 macOS 设备发现稳定性:
Refresh现在会重启发现服务,并在 UDP 失败时自动恢复。 - 应用与模块版本统一升级到
2.3.1。 - Magisk 模块版本升级到
v2.3.1。
AirSend v2.3
中文更新说明
AirSend 2.3 聚焦于三件事:设备列表去重、切网稳定性、以及 Android 模块体验完善。
亮点
- 设备列表改为按逻辑设备分组(别名 + 机型 + 类型),显著减少同名设备堆积。
- macOS 身份在切换 Wi-Fi / VPN / 代理网络时保持稳定,不再因切网频繁生成新设备身份。
- 同组发送支持候选自动回退:主候选失败时自动尝试组内其他候选,提升发送成功率。
- 冲突保护:同组多 fingerprint 同时在线时自动展开为多候选,避免误发。
- 清理策略优化:在选中单设备模式下仍保留离线清理定时器,陈旧设备不会长期残留。
交互与显示
- 新增原生风格
Auto Send Clipboard开关(默认关闭)。 - 开启自动剪贴板时弹出兼容性说明:该功能需 Android AirSend 模块(root / Magisk / LSPosed 方案)。
- Android 模块设备在 macOS 菜单与 DropZone 中显示可读机型名(例如
OnePlus 13T),副标题固定为airsend module。 - 优化设备项选中态布局、图标与间距。
构建与发布
- 新增一键脚本
build_magisk_payload.sh:自动编译 daemon + APK、替换模块目录并打包 Magisk ZIP。 - 版本统一更新至 2.3(macOS / Android app / 协议上报 / Magisk 模块)。
English Release Notes
AirSend 2.3 focuses on three areas: device-list deduplication, network-switch stability, and Android module UX.
Highlights
- Device list now uses logical grouping (alias + model + type), greatly reducing duplicate entries.
- macOS identity stays stable across Wi-Fi / VPN / proxy switches, avoiding unnecessary new device identities.
- Group-level send fallback is now supported: if the primary candidate fails, AirSend retries other candidates in the same group.
- Conflict-safe presentation: when multiple fingerprints in one group are online, entries are expanded to prevent mis-sends.
- Cleanup behavior improved: offline cleanup timer remains active even in single-device mode.
UX and Display
- Added a native-style
Auto Send Clipboardtoggle (default OFF). - Enabling auto clipboard shows a compatibility dialog: this mode requires the AirSend Android module (root / Magisk / LSPosed setup).
- Android module peers now show readable model names (for example
OnePlus 13T) in both menu and DropZone, with subtitle fixed asairsend module. - Refined selected-row layout, icon sizing, and spacing in the device menu.
Build and Packaging
- Added
build_magisk_payload.shfor one-shot daemon + APK build, module payload replacement, and Magisk ZIP packaging. - Version synchronized to 2.3 across macOS, Android app, protocol version reporting, and Magisk module metadata.
AirSend v2.2
中文更新说明
- 修复 Android 分享分流:当分享目标是文件(如
.yaml)但 MIME 被标记为text/plain时,现优先按EXTRA_STREAM走文件发送,不再误走文本分支。 - 保留纯文本同步:仅在没有
EXTRA_STREAM时,才按EXTRA_TEXT作为剪贴板文本发送。 - Magisk 模块小版本更新为
v2.2,已集成本次更新 APK。
安装方式
- 下载并刷入
AirSend_Magisk_v2.2.zip - 重启设备
- 打开 AirSend App 并验证分享
.yaml文件
English Release Notes
- Fixed Android share routing: when a shared file (such as
.yaml) is mislabeled astext/plain, AirSend now prioritizesEXTRA_STREAMand sends it as a file instead of falling into the text branch. - Kept plain-text sync behavior: clipboard text sync is used only when
EXTRA_STREAMis absent. - Magisk module is bumped to
v2.2and includes the updated APK.
Install
- Flash
AirSend_Magisk_v2.2.zip - Reboot device
- Open AirSend and verify
.yamlfile sharing
SHA-256
AirSend_Magisk_v2.2.zip:36ee9bc164ca0c5da3291b879a8905717bba4ac78802a3785d55fb8ec2536d4a
AirSend v2.1
AirSend v2.1
中文更新说明
- 拖拽分享体验优化:Drop Zone 不再在检测到拖拽后立即可见,而是靠近状态栏图标时再显示。
- 稳定性增强:拖拽开始时先预热窗口(定位并入层但保持不可见),减少拖拽过程中弹回/抖动问题。
- 显隐逻辑改进:拖拽进行中支持软隐藏(仅透明化不出层),远离图标可隐藏,回到图标附近可平滑恢复显示。
- 传输与 UI 细节优化:改进上传链路日志与临时文件处理,设备列表标题展示更清晰。
English Release Notes
- Improved drag-to-share UX: the Drop Zone no longer appears immediately on global drag detection; it appears when the cursor is near the menu bar icon.
- Better drag stability: the window is prewarmed at drag start (positioned and ordered in but invisible) to reduce bounce/flicker during active drags.
- Refined visibility control: while dragging, soft-hide is used (alpha only, no order-out), so the window can hide when far away and smoothly reappear near the icon.
- Transfer and UI refinements: improved upload logging/temp-file handling and clearer device title presentation in the menu.