Repository navigation
Releases: chekusu/sofatap
Release list
Sofatap Android / Google TV receiver 0.2.0 beta.1
Sofatap Android / Google TV receiver 0.2.0 beta.1 (version code 6) adds native update controls for the experimental APK distribution.
- Check for Updates in the receiver, plus daily checks and verified downloads enabled by default while its service is running. The preference persists and can be turned off.
- Install Update opens Android’s installation authorization and confirmation flow. Background checks never open an installer over your current TV app.
- The receiver verifies the official release digest, package name, newer version code and the same installed signing certificate before handing the APK to Android. Pairing and app data are preserved by the normal APK upgrade.
- Play-distributed builds use the store update route instead of the APK installer.
Existing receivers require one manual upgrade to acquire these controls. Install this APK over the previous Sofatap package; do not uninstall it first. This continues the same debug-signed experimental distribution as 0.1.4 beta.1, including its signing certificate; it is not a Play Store release.
Validation: clean build and lint, 132 JVM checks and 27 Android TV emulator instrumentation checks passed. Household Sony/Xiaomi system-confirmed upgrade acceptance and third-party TV application compatibility remain separate; do not interpret emulator coverage as full physical TV qualification.
Source: a9076be, merged by PR #9. Use the current iPhone/iPad TestFlight; desktop receivers have a separate release stream. SHA-256 is supplied in SHA256SUMS.txt.
Sofatap desktop receivers 0.7.3 beta.1
Sofatap receivers can now start automatically after desktop login. The native startup option is enabled on the first normal launch and can be turned off at any time. Existing disabled choices and OS restrictions are respected.
- Windows: uses a per-user Startup shortcut, starts in the tray, and keeps receiving when the window is closed. Reopening shows the existing receiver; explicit Quit stops it.
- Mac: uses the native Login Items service, shows pending system approval clearly, and keeps receiving when the pairing window is closed. Reopen from the Dock; Quit stops it.
- Linux: uses per-user XDG autostart; closing minimizes the receiver, while Quit stops it. Duplicate launches restore the existing window.
Upgrade by explicitly quitting the old receiver first, replacing its files, and opening the new receiver once. Pairing data is retained. Keep portable Windows/Linux folders in a stable location. Computer startup requires a logged-in desktop; this is not Windows lock-screen/PIN support or TV/HDMI wake.
The Mac Apple Silicon and Intel packages are Developer ID signed, notarized and stapled. Windows remains unsigned. Linux requires the dependencies listed in its README. Every download has a SHA-256 file.
Validated with cross-platform regression checks, isolated Windows shortcut tests, macOS offscreen fixtures, and private Linux Xvfb lifecycle tests. Physical sign-in, HDMI switching and final device acceptance remain separate. iPhone TestFlight 1.0 (18) remains the latest internal and public build; no phone update is required for this receiver change.
Sofatap Android TV 0.1.4 beta.1
Sofatap Android TV receiver 0.1.4-beta.1
Experimental development APK for free manual Android/Google TV control. Use with Sofatap iPhone 1.0 build 20 or later for the new TV controls and text input. This is a GitHub prerelease, not a Google Play release.
What changed
- Added native directional navigation, OK, Back and Home through the TV's Android TV Remote Service, separate from the existing accessibility pointer.
- Added optional Sofatap keyboard support for phone-entered Unicode text and speech-to-text, selection deletion, code-point backspace and the current editor action.
- Hardened receiver restart and disconnect handling. Old sessions, expired editor epochs and uncertain input are never replayed after reconnection.
- Preserved compatibility with earlier Sofatap QR pairing and pointer controls.
Setup
- Update the receiver in place, keeping its existing app data, then pair the iPhone using the TV's native Sofatap QR screen.
- On the iPhone, choose Set up TV remote and enter the six-character hexadecimal code shown by the TV. Native navigation requires Android TV Remote Service to be installed and enabled. No ADB connection or model account is needed for control.
- For text input, use Enable Sofatap keyboard and Select Sofatap keyboard on the TV. Open an ordinary text field in the TV app, then type or dictate on the phone. Password and protected fields are excluded. You can switch back to the normal TV keyboard at any time.
The remote identity is encrypted on the TV and its certificate is pinned. A changed Remote Service certificate requires explicit pairing again. Backspace deletes one Unicode code point or the current selection; it does not guarantee deleting a whole multi-code-point emoji. Text support depends on the target app exposing a normal Android input connection.
Validation and current limits
115 JVM tests, 20 isolated Android emulator instrumentation tests, the real Swift/Java pinned-TLS interoperability suite, and all four platform CI jobs passed. The same-signed candidate was installed on a Xiaomi MiTV-MOEU0, preserving its existing pairing identity and accessibility permission. Sofatap keyboard is enabled and selected there through normal system settings.
Native code pairing, YouTube/Netflix navigation and browser text input still need physical acceptance on both Xiaomi and Sony. These software tests and setup checks do not establish support for every TV or app. Pointer clicking/scrolling remains experimental and app-dependent; raw mouse injection, dragging and right-click are not provided. Phone dictation remains free basic input, separate from future paid autonomous voice features.
Package: com.chekusu.sofatap.tv · version code 5 · minimum Android 8.0/API 26. This APK uses the same development signing certificate as the previous public Android receiver; update it without uninstalling or clearing its data.
APK SHA-256: b687e54cc068f21fc7969846a24b9f609d5ba3575d0ab9c729df6f8724a84550.
Source: 754d22b6f671b034e876d12f7c4ee980749a13d8 (identical tree to independently reviewed 6249524f78daee8a31497548167232efa323acc8). All four platform CI jobs passed in run 38949375076.
Sofatap Android/Google TV receiver 0.1.2 beta.1
The experimental Android/Google TV receiver now includes Start with TV, enabled after opening this version once. Boot restores the foreground receiver without opening an Activity over the current TV app. You can turn it off in the native receiver.
Stop receiver ends the current run. When startup stays enabled, the next boot starts it again; an APK update only resumes a receiver that was running, so it does not undo Stop. Android force-stop, vendor background policies and accessibility permissions remain authoritative. This does not add standby wake, TV text input, dragging or right-click support.
Version 0.1.2-beta.1 / code 3 uses the same signing certificate as 0.1.1-beta.1, so it can be installed as an update. Pairing data is retained. Use iPhone Build 17 or newer; current internal and public TestFlight is Build 18.
Validation: 73 JVM tests, 10 headless Android TV device tests, lint with zero errors, and actual emulator reboots confirming enabled/disabled startup and no foreground Activity interruption.
The household Sony and Xiaomi TVs have not been field-tested. An emulator, APK installation or a moving overlay does not establish model/app-level mouse compatibility. This remains a development-signed experimental APK.
Sofatap receiver 0.7.2 beta — saved pairing recovery
Closing and reopening the receiver should not require a new pairing. Receiver 0.7.2 preserves valid pairing credentials when unrelated network adapters are added, removed, or temporarily unavailable. iPhone 1.0 build 16 adds automatic retries for the selected saved computer while Sofatap is in the foreground. Update both sides for the complete recovery fix.
- iPhone: Join the TestFlight beta. Build 16 has passed external beta review and is available for public testing. Installation through TestFlight on the dedicated iPhone is verified. Update to build 16 for automatic retry; receiver QR codes remain compatible with build 15.
- Windows x64: extract the complete ZIP and run
SofaTap.exe. Existing receiver profiles are preserved. Executables are not Authenticode-signed. - Mac: choose Apple Silicon or Intel. Both version 0.7.2 (69) apps are Developer ID signed, notarized and stapled; macOS 15+ is required.
- Linux: choose x64 or ARM64 and install the documented GTK/input dependencies.
Manual disconnect, switching devices and backgrounding stop automatic retries. Pending text and gestures are not replayed after reconnection. Real address/certificate replacement may require explicit pairing; existing duplicate saved entries are not automatically merged. This release does not provide Windows sign-in control or qualify any TV model.
Packages were built from clean source 43fd98c409fbd6971ac50a971cbdb3e9d6c3ab78. Reconnect verification covers 398 host checks, 69 TLS/WebSocket smoke checks, 89 iOS pairing checks and 35 saved-device checks. Automated restart tests cover graceful and abrupt receiver restarts; real phone-to-Windows restart acceptance remains pending. Package versions, architectures, bundled licenses and SHA256 files were checked. This packaging run sent no desktop input.
Sofatap Android TV 0.1.1 beta.1 — reconnect recovery
Android/Google TV receiver 0.1.1 beta.1 preserves valid pairing across receiver restarts and temporary network loss. Pair it with Sofatap for iPhone 1.0 Build 17 or later for automatic reconnect without rescanning or creating another saved device. Build 17 has passed external TestFlight review and is available from the public invitation linked below.
- Retains the encrypted receiver identity and paired credentials during ordinary restarts, unrelated network-adapter changes and temporary offline starts.
- Restarts the listener when a usable network returns; an explicit Stop stays stopped.
- The iPhone retries its selected saved TV while foregrounded, backing off to 30 seconds. Manual disconnect, backgrounding, device changes and authentication errors stop retries. Unconfirmed input is never replayed.
- Genuine address replacement or certificate expiry can still require pairing again.
Household Sony and Xiaomi televisions have NOT been field-tested. This is experimental Android/Google TV support, not a claim of compatibility with every TV or app. Pointer overlay, accessible-control clicks/scrolling and directional focus navigation are separate capabilities. TV text/dictation, drag, right-click, standby wake and paid AI automation are not included.
Validation: 73 Android unit tests, 8 tests on a dedicated headless Android TV emulator, 135 iPhone controller checks, 35 saved-device checks and native Swift/Java pinned-TLS restart tests passed. The restart test verifies that uncertain actions are not replayed and the saved device remains the same. No physical TV or household iPhone/TV acceptance test was performed.
Download the APK below. Android 8.0/API 26 or newer is required. This is a development-signed APK, not a Google Play release. It preserves the existing local development signing certificate; historical CI debug APKs may have a different certificate. Do not uninstall or clear data merely to resolve a signature mismatch.
- Installation and capability guide
- Verification record and pending physical checks
- iPhone TestFlight invitation
Desktop receivers remain at 0.7.2 beta.1. The LG webOS adapter is unchanged.
Source commit: 7f3bc991b075de95ef66d9b77813a40bc1c9eb67
Sofatap receiver 0.7.1 beta — automatic device recognition
Sofatap receiver 0.7.1 beta.1 accompanies iPhone 1.0 build 15 or later.
Open My Devices → Scan QR Code on the phone. New desktop QR codes include the computer's platform and name, so the phone identifies Windows, Mac or Linux automatically. After the authenticated connection succeeds, choose a name; change it later from My Devices. The nickname is local to that iPhone.
Update the iPhone app first. Builds 14 and earlier cannot read these new codes; use receiver 0.7.0 beta.1 with those phone builds. Build 15 also reads older receiver codes.
| Platform | Package |
|---|---|
| Windows 10/11 x64 | SofaTap-Windows-x64.zip — extract the entire archive, run SofaTap.exe |
| macOS 15+, Apple Silicon | SofaTap-macOS-arm64-notarized.zip |
| macOS 15+, Intel | SofaTap-macOS-x64-notarized.zip |
| Linux x64 | SofaTap-Linux-x64.tar.gz |
| Linux ARM64 | SofaTap-Linux-arm64.tar.gz |
Each archive includes the .NET runtime and license inventory; matching SHA256 files are attached. Both Mac packages are Developer ID signed, Apple notarized and stapled. Windows packages remain unsigned. Linux requires the documented GTK/input system dependencies; Wayland remains experimental.
Mac also adds an explicit --dry-run --test-display-id <ID> mode for isolated pairing QA on an existing non-primary display. It does not activate the app or inject desktop input and exits safely if the target disappears. Ordinary launches retain the standard receiver UI.
All packages were built from clean source 6e127ac8f17124a26872d1787e7ae7adbb5647ed. Package, architecture, embedded version, source provenance, license and protocol checks passed. Physical camera scanning, naming and remote-input acceptance are separate from package validation; see the verification record for final results and limits.
The computer must be awake and unlocked on a reachable trusted home network. TestFlight external review and public installation remain separate from this receiver release. No TV APK, Windows lock-screen control or paid autonomous operation is included.
Sofatap receiver 0.7.0 beta — companion for iPhone 1.0
Sofatap receiver 0.7.0 pairs with the Sofatap iPhone 1.0 (11) TestFlight build. It adds live editing for compatible Windows and Mac text fields, keeps review-and-send input for unsupported fields, and includes the native mint pairing UI and current Sofatap icon.
Downloads and setup
- Windows x64: extract the entire ZIP, run
SofaTap.exe, and permit its backend only on your trusted private home network. These Windows binaries are not Authenticode-signed. - Mac: choose arm64 for Apple Silicon or x64 for Intel. Both apps use CHEKUSU INC. Developer ID signing, passed Apple notarization, have stapled tickets, and passed Gatekeeper validation. Move the app to Applications and grant Accessibility access.
- Linux: choose the archive for your architecture and follow its included README for GTK/PyGObject and X11 or supported Wayland portal dependencies. Linux uses review-and-send text input.
Open the receiver native window and scan its QR code from the phone on the same reachable home network. Keep pairing links and QR codes private. The computer must be awake and unlocked; this release does not control login screens or privileged prompts.
Validation and limits
Built from clean source c18f12fc5cb74db0a73903e11d43f91a68a3a22b. The Windows/host recording-input suite passed 362 checks, native Windows protocol/lifecycle checks passed 56, and iOS release checks passed 121. Linux protocol/input/Wayland fakes passed 80 checks. Mac archives passed strict signature, notarization, staple, archive-integrity and architecture validation. These packaging checks do not replace end-to-end device tests.
Earlier physical iPhone testing verified Windows RichEdit text import, multilingual and emoji input, newlines, Backspace and Select All/delete. Final 1.0 build physical live speech and Mac/Linux live desktop acceptance remain separate tests. Live editing is limited to supported native fields; browser/custom fields and older receivers use a draft with Send. The iOS beta is distributed through TestFlight to invited testers; no public beta link is provided here.
See setup help and privacy policy. The AI and direct smart-TV research are not features in this release.
Sofatap v0.4.0-alpha — Native Linux receiver
Sofatap now has a native Linux receiver for controlling a living-room computer from an iPhone. This alpha adds real desktop input to the existing native QR pairing window.
- X11: pointer movement, left/right click and drag, scrolling, shortcuts, and Unicode text. Temporary character mappings are restored and the clipboard is left unchanged.
- Wayland (experimental): explicit native RemoteDesktop portal consent for keyboard and pointer control. Unsupported desktops stay unavailable; there is no XWayland fallback.
- Native GTK pairing: QR code, connection status, refresh, permission action and Quit, with no browser dashboard.
- Packages: x64 and arm64 tarballs, self-contained .NET receiver, launcher, desktop-menu template, licenses and source/hash manifest. Python 3.10+, GTK3/PyGObject and the relevant desktop libraries are system dependencies.
Install
Choose SofaTap-Linux-x64.tar.gz or SofaTap-Linux-arm64.tar.gz, verify its matching SHA256, extract it and run ./sofatap. On Ubuntu/Debian install the normal desktop dependencies first:
sudo apt install python3 python3-gi gir1.2-gtk-3.0 libx11-6 libxtst6 libxdo3Wayland additionally needs the desktop's matching RemoteDesktop portal backend. Approve control through the receiver's native permission button, then pair with the iPhone on the same trusted home network. Linux setup and limitations.
Verification and limits
Built from clean source 3fd996dbc3bb99d5de2e08642fe5271bc20d6832. CI on this source covers host/transport checks, iOS compilation, existing desktop builds, and Linux x64 native GTK rendering and process cleanup. Twelve real XTest checks on a private Xvfb verify exact Chinese/Japanese/emoji/newline readback, preserved clipboard/keymap, keys, movement, click, scroll, held-button cleanup and EOF shutdown. Eight private mock D-Bus checks validate actual Gio portal messages; they do not establish compatibility with a real Wayland compositor.
ARM64 is built but not runtime-tested. Physical iPhone-to-Linux pairing/input, Typeless/dictation, air-mouse hardware behavior and real GNOME/KDE Wayland acceptance remain pending. Linux text has a 2,048-scalar ceiling; X11 can reject a shorter selection before typing if key-slot capacity or its time budget is insufficient. Partial/unknown input is never automatically replayed.
The iPhone protocol remains v1 and a ready Linux receiver is compatible with the existing client. Updated iOS source adds Linux status messages; this release does not include a new TestFlight build. Windows and the notarized Mac packages remain available in v0.3.0-alpha.
Sofatap v0.3.0-alpha — Native pairing and notarized Mac receiver
Sofatap 0.3.0-alpha 把电脑端配对移到了原生窗口:Mac 使用 AppKit / SwiftUI,Windows 使用 WinForms。直接在窗口里选网络地址、显示二维码和查看连接状态,不打开浏览器。关闭窗口会停止所属接收进程。
这是 GitHub alpha 预发布,不是 App Store 或 TestFlight 发行。本次附件是电脑接收端,不包含 iPhone IPA;iPhone 控制器仍需按仓库的 iOS 构建说明 安装。手机和电脑通过同一家庭局域网连接,蓝牙尚未实现。
Downloads
| 设备 | 下载文件 | 状态 |
|---|---|---|
| Apple Silicon Mac,macOS 15+ | SofaTap-macOS-arm64-notarized.zip |
CHEKUSU Developer ID 签名;Apple 公证通过并附带凭证 |
| Intel Mac,macOS 15+ | SofaTap-macOS-x64-notarized.zip |
独立 x86_64 构建;签名、公证和包校验通过,实际 Intel 设备输入仍待验收 |
| Windows x64 | SofaTap-Windows-x64.zip |
自包含原生接收端;尚未进行 Windows 商业代码签名 |
每份 ZIP 均附同名 .sha256 校验文件,并包含 MIT 和实际使用的第三方依赖许可证。Mac 两份包分别对应一种处理器;下载与你电脑匹配的版本。Windows 请完整解压,保留 SofaTap.exe 和 SofaTapHost.exe 等随包文件在一起。
Mac:解压后把 Sofa Tap Receiver.app 移到“应用程序”,打开原生窗口,按界面提示给该应用授予辅助功能权限。Windows:完整解压后运行 SofaTap.exe;防火墙只允许 SofaTapHost.exe 在受信任的家庭专用网络使用 TCP 53319。用 iPhone 上的 Sofatap 扫描窗口中的二维码;二维码包含控制凭据,请勿分享。
Linux 源码新增 GTK3 原生界面骨架,仅用于 --dry-run 配对与协议验证,不能控制 Linux 桌面。本次没有 Linux 安装包;运行开发预览需要 Python、PyGObject 与 GTK3。
Verification and alpha limits
- CI run 38122300344 在该提交上全部通过,包含协议、传输、原生窗口逻辑检查和平台构建。
- 两份 Mac 分发 ZIP 来自同一个干净提交;Apple 返回
Accepted,公证凭证已附带。对最终 ZIP 重新解包后,严格签名检查、附带凭证检查和 Gatekeeper 评估均通过。 - Apple Silicon Mac 实机验收已通过以下范围: iPhone 17 Pro Max 上的 Sofatap 0.3.0 (4) 通过相机扫描 Mac 原生二维码并建立 TLS 连接;更新接收端后保留配对凭据重新连接。在 TextEdit 中验证了 ASCII、中文、英文、日文、emoji、重音字符和多行文字精确输入,以及全选、退格、Enter、Esc。手机触控板实际移动了系统光标,右键打开真实菜单,左键取消文本选区。验收使用此提交对应的最终已公证 arm64 安装包。
- 实际语音听写、Typeless、实体陀螺仪空中鼠标、拖拽和滚动仍未验收;此版本的 Windows 原生窗口与 iPhone 联合操作、真实 Intel Mac 输入也仍待验收。Linux 检查不代表 GTK 窗口已经在用户设备上显示,也不代表支持真实输入。
SHA256
f053b90f24a0975911a01b03dd7cc0e6a4ef4091ab329c01948ef61d3fd26b2c SofaTap-macOS-arm64-notarized.zip
084bacfd7e603c3ca7cec6a00f7c60ef6f94fdd12d5faa42061449004815b374 SofaTap-macOS-x64-notarized.zip
1adb5c6040ff65beff0e3be37df1886283e1db774196669a818a6bac1a8e54b8 SofaTap-Windows-x64.zip
The spaced application filename above is the literal name inside this historical signed archive. Current product branding is Sofatap.