diff --git a/ReadMe.md b/ReadMe.md
index 79d9672..653e6be 100644
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -12,7 +12,7 @@
-
+
@@ -94,6 +94,7 @@
| **Windows** | ✅ 完整功能 | ✅ MFC `YAMA.exe`(推荐)/ Go |
| **Linux** (X11) | ✅ 屏幕 + 终端 + 文件 + 剪贴板 | ✅ Go |
| **macOS** (Intel + Apple Silicon) | ✅ 屏幕 + 终端 + 文件 + 剪贴板 | ✅ Go |
+| **Android** (v1.3.7+) | ✅ 屏幕 + 触控/按键控制 | ❌ 不适用 |
---
@@ -206,6 +207,21 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md)
**编译**:`cd linux && cmake . && make`
+### Android 客户端(v1.3.7+)
+
+**系统要求**:Android 5.0 (API 21) 及以上
+
+| 功能 | 状态 | 实现 |
+|---|---|---|
+| 远程桌面 | ✅ | MediaProjection + MediaCodec H.264 硬件编码 |
+| 触控/按键控制 | ✅ | AccessibilityService 注入,支持 D-pad 导航 |
+| 心跳/RTT | ✅ | RFC 6298 RTT 估算 |
+| 设备分组 | ✅ | szGroupName 编译期 patch / 服务端动态修改 |
+
+**生成客户端**:在主控 BuildDlg「生成」→ 选 `ghost - Google Android`,填入服务端 IP / 端口,生成 APK;使用 `android/sign_apk.bat` 重签后安装。
+
+**编译**:在 WSL 或 Linux 中 `cd android && ./build_apk.sh`
+
### macOS 客户端(v1.3.2+)
**系统要求**:
@@ -258,13 +274,13 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md)
│ TCP (自定义二进制协议) │ TCP (设备) + WS (浏览器)
└────────┬─────────────────┘
│
- ┌──────────────┼──────────────┐
- ▼ ▼ ▼
- ┌─────────┐ ┌─────────┐ ┌─────────┐
- │ Windows │ │ Linux │ │ macOS │
- │ 客户端 │ │ 客户端 │ │ 客户端 │
- │ (DXGI) │ │ (X11) │ │ (CG) │
- └─────────┘ └─────────┘ └─────────┘
+ ┌──────────────┼──────────────┬──────────────┐
+ ▼ ▼ ▼ ▼
+ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
+ │ Windows │ │ Linux │ │ macOS │ │ Android │
+ │ 客户端 │ │ 客户端 │ │ 客户端 │ │ 客户端 │
+ │ (DXGI) │ │ (X11) │ │ (CG) │ │ (MP/MC) │
+ └─────────┘ └─────────┘ └─────────┘ └─────────┘
```
### 多层授权(简化视图)
@@ -340,6 +356,7 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
- **C++ 主控 & Windows 客户端**:VS 2019/2022/2026 打开 `SimpleRemoter.sln` → Release | x64
- **Linux 客户端**:`cd linux && cmake . && make`
- **macOS 客户端**:`cd macos && ./build.sh`
+- **Android 客户端**:`cd android && ./build_apk.sh`(WSL/Linux)
- **Go 主控**:`cd server/go && go build ./cmd`
---
@@ -361,6 +378,31 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
## 更新日志
+### v1.3.7 (2026.6.26)
+
+**Android 客户端 & 窗口捕获增强 & 安全加固**
+
+**新功能:**
+- **Android 客户端**:首个 Android 受控端,支持 Android 5.0+(arm64-v8a / armeabi-v7a),MediaProjection + MediaCodec H.264 推流;AccessibilityService 触控 / 按键注入;D-pad 焦点导航完整控制 TV / 机顶盒
+- **设备分组**:编译期 patch 预设 / 服务端动态修改(`CMD_SET_GROUP`);分组名持久化至 `filesDir/yama_group`,App 重启后保留
+- **APK 生成与重签**:BuildDlg 新增 `ghost - Google Android`,与 Linux / macOS ghost 流程一致;配套 `sign_apk.bat` 自动检测 SDK 完成重签
+- **服务端删除客户端**:BYE 指令后 Android Service 通过 JNI 正常停止
+- **前台窗口精准捕获**:PrintWindow + 服务端 HWND by clientID 路由,遮挡情况下仍可捕获完整窗口
+- **在线主机右键查看活动窗口**:实时查询目标机器前台窗口标题
+- **TOKEN_AUTH 响应 ECDSA 签名**:V2 私钥签名服务端响应,防伪服务端(`TOKEN_SERVER_VERIFY = 251`)
+- **反破解版本绑定**:版本与核心库绑定,阻断替换 DLL 的破解路径
+- **子授权连接数限制**:`LicenseLimit` 字段 + `CLicenseDlg` 右键菜单实时设置
+
+**改进:**
+- H264 模式跳过首帧 ~8MB 原始巨帧,服务端在首 IDR 帧后解锁画面
+- 自适应尺寸渲染改进,减少尺寸切换抖动
+
+**Bug 修复:**
+- `ARGBToNV12` 奇数尺寸窗口堆溢出(维度钳制到偶数对齐)
+- 连接初始化时多余屏幕重启(客户端 `ScreenManager.cpp` + 服务端 `ScreenSpyDlg.cpp` 双端修复)
+- 启动时内存 DLL 未正确还原
+- 授权客户端键盘日志目录冲突(各实例使用独立目录)
+
### v1.3.6 (2026.6.14)
**ROI 区域捕获 & Web 音频流 & 主界面可用性全面提升**
diff --git a/ReadMe_EN.md b/ReadMe_EN.md
index 61952f6..ddc9916 100644
--- a/ReadMe_EN.md
+++ b/ReadMe_EN.md
@@ -12,7 +12,7 @@
-
+
@@ -94,6 +94,7 @@ This release (v1.3.4) adds the last missing piece — the **Go master**: a **del
| **Windows** | ✅ All features | ✅ MFC `YAMA.exe` (recommended) / Go |
| **Linux** (X11) | ✅ Screen + terminal + files + clipboard | ✅ Go |
| **macOS** (Intel + Apple Silicon) | ✅ Screen + terminal + files + clipboard | ✅ Go |
+| **Android** (v1.3.7+) | ✅ Screen + touch/key injection | ❌ N/A |
---
@@ -206,6 +207,21 @@ Unless an offline license has been obtained, the master program exchanges necess
**Build**: `cd linux && cmake . && make`
+### Android Client (v1.3.7+)
+
+**Requirements**: Android 5.0 (API 21) or later
+
+| Feature | Status | Implementation |
+|---|---|---|
+| Remote desktop | ✅ | MediaProjection + MediaCodec H.264 hardware encoding |
+| Touch / key injection | ✅ | AccessibilityService, supports D-pad TV navigation |
+| Heartbeat / RTT | ✅ | RFC 6298 RTT estimation |
+| Device grouping | ✅ | Build-time patch or server-side `CMD_SET_GROUP`; persisted across restarts |
+
+**Generate client**: In the master BuildDlg *Build* dialog, select `ghost - Google Android`, enter the server IP / port, and the APK is generated. Re-sign with `android/sign_apk.bat` before installing.
+
+**Build**: in WSL or Linux — `cd android && ./build_apk.sh`
+
### macOS Client (v1.3.2+)
**Requirements**:
@@ -258,13 +274,13 @@ Unless an offline license has been obtained, the master program exchanges necess
│ TCP (custom binary proto)│ TCP (devices) + WS (browsers)
└────────┬─────────────────┘
│
- ┌──────────────┼──────────────┐
- ▼ ▼ ▼
- ┌─────────┐ ┌─────────┐ ┌─────────┐
- │ Windows │ │ Linux │ │ macOS │
- │ client │ │ client │ │ client │
- │ (DXGI) │ │ (X11) │ │ (CG) │
- └─────────┘ └─────────┘ └─────────┘
+ ┌──────────────┼──────────────┬──────────────┐
+ ▼ ▼ ▼ ▼
+ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
+ │ Windows │ │ Linux │ │ macOS │ │ Android │
+ │ client │ │ client │ │ client │ │ client │
+ │ (DXGI) │ │ (X11) │ │ (CG) │ │ (MP/MC) │
+ └─────────┘ └─────────┘ └─────────┘ └─────────┘
```
### Multi-Layer Authorization (simplified view)
@@ -340,6 +356,7 @@ Valid : 2026-02-01 to 2028-02-01
- **C++ master & Windows client**: open `SimpleRemoter.sln` in VS 2019 / 2022 / 2026 → Release | x64
- **Linux client**: `cd linux && cmake . && make`
- **macOS client**: `cd macos && ./build.sh`
+- **Android client**: `cd android && ./build_apk.sh` (WSL / Linux)
- **Go master**: `cd server/go && go build ./cmd`
---
@@ -361,6 +378,31 @@ Valid : 2026-02-01 to 2028-02-01
## Changelog
+### v1.3.7 (2026.6.26)
+
+**Android Client & Window Capture & Security Hardening**
+
+**New features:**
+- **Android client**: first Android controlled-side client, Android 5.0+ (arm64-v8a / armeabi-v7a); MediaProjection + MediaCodec H.264 streaming; AccessibilityService touch / key injection; D-pad focus navigation for full TV / set-top-box control
+- **Device grouping**: group name embedded at build time via APK binary patch or changed live by the server (`CMD_SET_GROUP`); persisted to `filesDir/yama_group`, survives app restarts
+- **APK build & re-sign**: BuildDlg adds `ghost - Google Android`, same workflow as Linux / macOS ghost; `sign_apk.bat` auto-detects SDK and re-signs
+- **Clean exit on server delete**: BYE command triggers JNI `onNativeExit()` → `stopSelf()`
+- **Foreground window capture**: PrintWindow + server-side HWND routing by clientID, captures the target window even when occluded
+- **View active window from host list**: right-click menu queries and shows the foreground window title of the target machine in real time
+- **TOKEN_AUTH ECDSA signature**: server signs auth responses with its V2 P-256 key to prevent fake-server attacks (`TOKEN_SERVER_VERIFY = 251`)
+- **Anti-cracking version binding**: binary binds to core lib version; mismatched DLL replacement is rejected at load time
+- **Sub-license connection cap**: `LicenseLimit` field in `licenses.ini` + real-time set / clear from `CLicenseDlg` right-click menu
+
+**Improvements:**
+- H264 mode skips the initial ~8 MB raw first-frame; server unlocks display on the first IDR instead
+- Adaptive-size rendering improvements, fewer dimension-change artifacts
+
+**Bug fixes:**
+- `ARGBToNV12` heap overflow on odd-sized windows (clamp dims to even-aligned width/height)
+- Extra screen restarts on connection init (dual fix: client `ScreenManager.cpp` + server `ScreenSpyDlg.cpp`)
+- Memory DLL not restored on client startup
+- Authorization client keyboard log directory conflict (each instance gets its own directory)
+
### v1.3.6 (2026.6.14)
**ROI region capture & Web audio streaming & master-UI usability overhaul**
diff --git a/ReadMe_TW.md b/ReadMe_TW.md
index 9ab5c2e..f5192ef 100644
--- a/ReadMe_TW.md
+++ b/ReadMe_TW.md
@@ -12,7 +12,7 @@
-
+
@@ -94,6 +94,7 @@
| **Windows** | ✅ 完整功能 | ✅ MFC `YAMA.exe`(推薦)/ Go |
| **Linux** (X11) | ✅ 螢幕 + 終端 + 檔案 + 剪貼簿 | ✅ Go |
| **macOS** (Intel + Apple Silicon) | ✅ 螢幕 + 終端 + 檔案 + 剪貼簿 | ✅ Go |
+| **Android** (v1.3.7+) | ✅ 螢幕 + 觸控/按鍵注入 | ❌ 不適用 |
---
@@ -206,6 +207,21 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md)
**編譯**:`cd linux && cmake . && make`
+### Android 用戶端(v1.3.7+)
+
+**系統需求**:Android 5.0 (API 21) 及以上
+
+| 功能 | 狀態 | 實作 |
+|---|---|---|
+| 遠端桌面 | ✅ | MediaProjection + MediaCodec H.264 硬體編碼 |
+| 觸控 / 按鍵注入 | ✅ | AccessibilityService,支援 D-pad TV 導航 |
+| 心跳 / RTT | ✅ | RFC 6298 RTT 估算 |
+| 裝置分組 | ✅ | 編譯期 patch 或服務端 `CMD_SET_GROUP` 動態修改;重啟後仍保留 |
+
+**產生用戶端**:在主控 BuildDlg「產生」選 `ghost - Google Android`,填入伺服端 IP / 埠,生成 APK;使用 `android/sign_apk.bat` 重簽後安裝。
+
+**編譯**:在 WSL 或 Linux 中 `cd android && ./build_apk.sh`
+
### macOS 用戶端(v1.3.2+)
**系統需求**:
@@ -258,13 +274,13 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md)
│ TCP (自訂二進位協定) │ TCP (裝置) + WS (瀏覽器)
└────────┬─────────────────┘
│
- ┌──────────────┼──────────────┐
- ▼ ▼ ▼
- ┌─────────┐ ┌─────────┐ ┌─────────┐
- │ Windows │ │ Linux │ │ macOS │
- │ 用戶端 │ │ 用戶端 │ │ 用戶端 │
- │ (DXGI) │ │ (X11) │ │ (CG) │
- └─────────┘ └─────────┘ └─────────┘
+ ┌──────────────┼──────────────┬──────────────┐
+ ▼ ▼ ▼ ▼
+ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
+ │ Windows │ │ Linux │ │ macOS │ │ Android │
+ │ 用戶端 │ │ 用戶端 │ │ 用戶端 │ │ 用戶端 │
+ │ (DXGI) │ │ (X11) │ │ (CG) │ │ (MP/MC) │
+ └─────────┘ └─────────┘ └─────────┘ └─────────┘
```
### 多層授權(簡化視圖)
@@ -340,6 +356,7 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
- **C++ 主控 & Windows 用戶端**:VS 2019/2022/2026 開啟 `SimpleRemoter.sln` → Release | x64
- **Linux 用戶端**:`cd linux && cmake . && make`
- **macOS 用戶端**:`cd macos && ./build.sh`
+- **Android 用戶端**:`cd android && ./build_apk.sh`(WSL/Linux)
- **Go 主控**:`cd server/go && go build ./cmd`
---
@@ -361,6 +378,31 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
## 更新日誌
+### v1.3.7 (2026.6.26)
+
+**Android 用戶端 & 視窗擷取增強 & 安全加固**
+
+**新功能:**
+- **Android 用戶端**:首個 Android 受控端,支援 Android 5.0+(arm64-v8a / armeabi-v7a);MediaProjection + MediaCodec H.264 推流;AccessibilityService 觸控 / 按鍵注入;D-pad 焦點導航完整控制 TV / 機上盒
+- **裝置分組**:編譯期 patch 預設 / 伺服端動態修改(`CMD_SET_GROUP`);分組名持久化至 `filesDir/yama_group`,App 重啟後保留
+- **APK 產生與重簽**:BuildDlg 新增 `ghost - Google Android`,與 Linux / macOS ghost 流程一致;配套 `sign_apk.bat` 自動偵測 SDK 完成重簽
+- **伺服端刪除用戶端**:BYE 指令後 Android Service 透過 JNI 正常停止
+- **前台視窗精準擷取**:PrintWindow + 伺服端 HWND by clientID 路由,遮蓋情況下仍可擷取完整視窗
+- **線上主機右鍵查看活動視窗**:即時查詢目標機器前台視窗標題
+- **TOKEN_AUTH 回應 ECDSA 簽章**:V2 私鑰簽名伺服端回應,防偽造伺服端(`TOKEN_SERVER_VERIFY = 251`)
+- **反破解版本綁定**:版本與核心函式庫綁定,阻斷替換 DLL 的破解路徑
+- **子授權連線數限制**:`LicenseLimit` 欄位 + `CLicenseDlg` 右鍵選單即時設定
+
+**改進:**
+- H264 模式跳過首幀 ~8MB 原始巨幀,伺服端在首 IDR 幀後解鎖畫面
+- 自適應尺寸渲染改進,減少尺寸切換閃爍
+
+**Bug 修復:**
+- `ARGBToNV12` 奇數尺寸視窗堆積溢位(維度鉗制到偶數對齊)
+- 連線初始化時多餘螢幕重啟(用戶端 `ScreenManager.cpp` + 伺服端 `ScreenSpyDlg.cpp` 雙端修復)
+- 啟動時記憶體 DLL 未正確還原
+- 授權用戶端鍵盤日誌目錄衝突(各實例使用獨立目錄)
+
### v1.3.6 (2026.6.14)
**ROI 區域擷取 & Web 音訊串流 & 主控介面可用性全面提升**
diff --git a/client/Script.rc b/client/Script.rc
index 6f11364..147055d 100644
--- a/client/Script.rc
+++ b/client/Script.rc
@@ -88,7 +88,7 @@ IDR_WAVE WAVE "Res\\msg.wav"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,3,6
+ FILEVERSION 1,0,3,7
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
@@ -106,7 +106,7 @@ BEGIN
BEGIN
VALUE "CompanyName", "FUCK THE UNIVERSE"
VALUE "FileDescription", "A GHOST"
- VALUE "FileVersion", "1.0.3.6"
+ VALUE "FileVersion", "1.0.3.7"
VALUE "InternalName", "ServerDll.dll"
VALUE "LegalCopyright", "Copyright (C) 2019-2026"
VALUE "OriginalFilename", "ServerDll.dll"
diff --git a/client/TestRun.rc b/client/TestRun.rc
index ff6d34a..2d8930c 100644
Binary files a/client/TestRun.rc and b/client/TestRun.rc differ
diff --git a/server/2015Remote/2015Remote.rc b/server/2015Remote/2015Remote.rc
index 8227531..187278b 100644
Binary files a/server/2015Remote/2015Remote.rc and b/server/2015Remote/2015Remote.rc differ
diff --git a/server/2015Remote/UIBranding.h b/server/2015Remote/UIBranding.h
index 41b6ddf..24350d5 100644
--- a/server/2015Remote/UIBranding.h
+++ b/server/2015Remote/UIBranding.h
@@ -46,7 +46,7 @@
// 程序版本号 [建议格式: X.Y.Z]
// 影响:关于对话框、标题栏
-#define BRAND_VERSION "1.3.6"
+#define BRAND_VERSION "1.3.7"
// 启动画面名称 [建议大写,更有 Logo 感]
// 影响:启动画面 Logo 文字(大号艺术字体渲染)