Skip to content

Releases: Avi7ii/AirSend

AirSend v3.5.0

18 Apr 12:44

Choose a tag to compare

中文

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.zip
  • AirSend_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.zip
  • AirSend_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

15 Mar 15:39

Choose a tag to compare

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

15 Mar 14:38

Choose a tag to compare

中文

这次 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 port 53319, 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 found and 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 /16 or /17 style LANs, it expands probing by /24 slices 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 Mode remains 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 Mode is 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

06 Mar 12:22

Choose a tag to compare

中文

  • 修复 Android 守护进程在网络切换后误绑定 rmnet/tun/Meta 的问题,恢复局域网发现与 HTTPS 传输稳定性。
  • 修复 Mac 端在同一设备 fingerprint 对应 IP 变化时仍沿用旧地址的问题,设备重连和热点/IP 变化后可正确刷新目标。
  • 修复 Android 文本 IPC 对多行与首尾空白的截断问题,剪贴板文本可完整传输。
  • 保持 Android ↔ Mac 走 HTTPS,并补齐了热点/节点变化后的链路恢复逻辑。
  • 改进模块内 APK/daemon 同步流程,升级后更容易保持二者版本一致。

English

  • Fixed Android daemon binding to rmnet/tun/Meta after 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

05 Mar 14:39

Choose a tag to compare

  • 修复:优化 Dock 拖拽判定,解决弹窗偶发消失且未发送的问题。
  • Fix: improved Dock drag detection to prevent the popup from disappearing without sending.

v2.4

05 Mar 14:10

Choose a tag to compare

中文更新

  • 改进拖拽触发逻辑:状态栏附近的拖拽判定区域更稳定,空闲慢检/拖拽快检切换更及时。
  • 修复 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 Offline stuck 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

05 Mar 13:09

Choose a tag to compare

AirSend v2.3.1

  • Fixed discovery reliability on macOS: Refresh now 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

05 Mar 12:09

Choose a tag to compare

中文更新说明

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 Clipboard toggle (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 as airsend module.
  • Refined selected-row layout, icon sizing, and spacing in the device menu.

Build and Packaging

  • Added build_magisk_payload.sh for 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

26 Feb 17:13

Choose a tag to compare

中文更新说明

  • 修复 Android 分享分流:当分享目标是文件(如 .yaml)但 MIME 被标记为 text/plain 时,现优先按 EXTRA_STREAM 走文件发送,不再误走文本分支。
  • 保留纯文本同步:仅在没有 EXTRA_STREAM 时,才按 EXTRA_TEXT 作为剪贴板文本发送。
  • Magisk 模块小版本更新为 v2.2,已集成本次更新 APK。

安装方式

  1. 下载并刷入 AirSend_Magisk_v2.2.zip
  2. 重启设备
  3. 打开 AirSend App 并验证分享 .yaml 文件

English Release Notes

  • Fixed Android share routing: when a shared file (such as .yaml) is mislabeled as text/plain, AirSend now prioritizes EXTRA_STREAM and 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_STREAM is absent.
  • Magisk module is bumped to v2.2 and includes the updated APK.

Install

  1. Flash AirSend_Magisk_v2.2.zip
  2. Reboot device
  3. Open AirSend and verify .yaml file sharing

SHA-256

  • AirSend_Magisk_v2.2.zip: 36ee9bc164ca0c5da3291b879a8905717bba4ac78802a3785d55fb8ec2536d4a

AirSend v2.1

26 Feb 08:21

Choose a tag to compare

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.