# 手机自主控制 & 远程控制方案

> 让手机自己完成任务，无需电脑；支持语音控制和互联网远程控制

---

## 一、三种控制模式

```
┌─────────────────────────────────────────────────────────────────┐
│                       控制模式对比                               │
├───────────────┬───────────────┬───────────────┬─────────────────┤
│     模式      │     本地控制   │   局域网控制   │   互联网控制    │
├───────────────┼───────────────┼───────────────┼─────────────────┤
│  电脑要求     │    需要电脑    │   需要电脑     │   不需要电脑    │
│  网络要求     │    USB连接     │   同一WiFi     │   任意网络      │
│  控制方式     │    命令行/API  │   HTTP API     │   云端控制      │
│  语音控制     │      ❌        │      ❌        │      ✅        │
│  适用场景     │    开发调试    │   办公室使用   │   随时随地      │
└───────────────┴───────────────┴───────────────┴─────────────────┘
```

---

## 二、方案1: 手机本地自主运行

### 2.1 原理

```
┌─────────────────────────────────────┐
│            手机内部                  │
│                                     │
│  ┌─────────────┐    ┌────────────┐ │
│  │ VoiceAgent  │───►│ 执行操作    │ │
│  │ (Python)    │    │ (点击/滑动) │ │
│  └─────────────┘    └────────────┘ │
│        ▲                           │
│        │ 语音命令                   │
│        │                           │
│  ┌─────────────┐                   │
│  │   麦克风     │                   │
│  └─────────────┘                   │
└─────────────────────────────────────┘
```

### 2.2 在手机上安装运行环境

**步骤1: 安装Termux**

```bash
# 从F-Droid下载Termux (不要用Google Play版本)
# https://f-droid.org/packages/com.termux/
```

**步骤2: 配置Termux**

```bash
# 更新包管理器
pkg update && pkg upgrade -y

# 安装Python
pkg install python -y

# 安装依赖
pip install websockets uiautomator2 SpeechRecognition

# 授权存储权限
termux-setup-storage
```

**步骤3: 复制Agent到手机**

```bash
# 在电脑上执行
adb push sdk/agent/ /sdcard/workphone-agent/
```

**步骤4: 运行Agent**

```bash
# 在Termux中执行
cd /sdcard/workphone-agent
python voice_agent.py --device-id my-phone-001
```

### 2.3 语音命令示例

| 语音命令 | 执行动作 |
|---------|---------|
| "打开微信" | 启动微信APP |
| "打开豆包" | 启动豆包APP |
| "给张三发消息说你好" | 打开微信→搜索张三→发送"你好" |
| "截图" | 截取当前屏幕 |
| "返回" | 按返回键 |
| "回到桌面" | 按Home键 |
| "向上滑" | 向上滑动屏幕 |

---

## 三、方案2: 互联网远程控制

### 3.1 架构图

```
┌──────────────────┐         ┌──────────────────┐         ┌──────────────────┐
│   你的手机/电脑   │         │    云服务器      │         │    工作手机       │
│   (任意位置)     │         │  (公网IP)       │         │   (任意位置)     │
│                  │  HTTPS  │                  │  WSS    │                  │
│   浏览器/APP    ─┼────────►│  SDK服务        ─┼────────►│  Agent          │
│                  │         │  端口: 443      │         │  (Termux运行)   │
└──────────────────┘         └──────────────────┘         └──────────────────┘
        │                           │                           │
        │                           │                           │
   北京/出差/家里              阿里云/腾讯云                  办公室/仓库
```

### 3.2 部署云服务器

**步骤1: 购买云服务器**

推荐配置：
- 阿里云/腾讯云 轻量应用服务器
- 2核4G，50G SSD
- 带宽3-5Mbps
- 约60-100元/月

**步骤2: 部署SDK服务**

```bash
# SSH登录服务器
ssh root@your-server-ip

# 安装Docker
curl -fsSL https://get.docker.com | sh

# 上传SDK代码
scp -r sdk/ root@your-server-ip:/root/

# 启动服务
cd /root/sdk
docker compose up -d
```

**步骤3: 配置域名和HTTPS**

```bash
# 安装Nginx
apt install nginx certbot python3-certbot-nginx -y

# 申请SSL证书
certbot --nginx -d sdk.yourdomain.com

# 配置反向代理
# /etc/nginx/sites-available/sdk
server {
    listen 443 ssl;
    server_name sdk.yourdomain.com;
    
    ssl_certificate /etc/letsencrypt/live/sdk.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/sdk.yourdomain.com/privkey.pem;
    
    location / {
        proxy_pass http://127.0.0.1:8899;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
```

### 3.3 手机连接云服务器

```bash
# 在手机Termux中运行
python voice_agent.py \
  --device-id my-phone-001 \
  --server wss://sdk.yourdomain.com/ws/device/my-phone-001
```

### 3.4 从任意位置控制

```bash
# 从任何有网络的地方
curl https://sdk.yourdomain.com/api/v3/adb/devices/my-phone-001/screenshot

# 发送消息
curl -X POST https://sdk.yourdomain.com/api/v3/message/send \
  -H "Content-Type: application/json" \
  -d '{
    "device_id": "my-phone-001",
    "platform": "wechat",
    "to_id": "张三",
    "content": "你好"
  }'
```

---

## 四、方案3: 内网穿透（免服务器）

### 4.1 使用FRP内网穿透

如果不想购买服务器，可以使用免费的内网穿透服务：

```
┌──────────────────┐         ┌──────────────────┐         ┌──────────────────┐
│   你的手机       │         │  FRP服务器       │         │    电脑          │
│   (任意位置)     │  公网   │  (免费/自建)     │  穿透   │  (家里/办公室)  │
│                  ├────────►│  frp.xxx.com    ├────────►│  SDK服务        │
└──────────────────┘         └──────────────────┘         └──────────────────┘
```

**配置frpc.ini:**

```ini
[common]
server_addr = frp.xxx.com
server_port = 7000
token = your-token

[sdk]
type = tcp
local_ip = 127.0.0.1
local_port = 8899
remote_port = 18899
```

**免费FRP服务推荐:**
- Sakura Frp: https://www.natfrp.com/
- OpenFrp: https://www.openfrp.net/

---

## 五、快速开始指南

### 5.1 最简单的方式（5分钟上手）

**第一步：手机安装Termux**
- 从F-Droid下载安装

**第二步：在Termux运行**
```bash
pkg update && pkg install python -y
pip install websockets uiautomator2
curl -O https://your-server/agent.py
python agent.py
```

**第三步：语音控制**
- 说"小助手"唤醒
- 说"打开微信"执行命令

### 5.2 推荐配置

| 场景 | 推荐方案 |
|------|---------|
| 个人使用，偶尔控制 | 方案1 本地语音控制 |
| 公司使用，多台手机 | 方案2 云服务器 |
| 测试/开发 | 方案3 内网穿透 |

---

## 六、安全建议

1. **API密钥**: 务必设置强密码
2. **HTTPS**: 生产环境必须使用HTTPS
3. **防火墙**: 只开放必要端口
4. **日志**: 记录所有操作日志
5. **权限**: 限制可执行的操作类型

---

## 附录: 常用命令

```bash
# === 手机端 ===
# 启动语音Agent
python voice_agent.py --device-id phone-001

# 连接远程服务器
python voice_agent.py --server wss://sdk.xxx.com/ws/device/phone-001

# === 远程控制 ===
# 截图
curl https://sdk.xxx.com/api/v3/adb/devices/phone-001/screenshot

# 点击
curl -X POST https://sdk.xxx.com/api/v3/adb/devices/phone-001/click \
  -H "Content-Type: application/json" -d '{"x":540,"y":1200}'

# 执行快捷操作
curl -X POST https://sdk.xxx.com/api/v3/experience/shortcuts/wechat_send_message/execute/phone-001 \
  -d '{"variables":{"contact":"张三","message":"你好"}}'
```
