将 CLIProxyAPI 作为 Magisk 模块在 Android 设备上运行。
- ✅ 在 Android 上运行 CLIProxyAPI 代理服务
- ✅ 开机自动启动服务
- ✅ 支持 ARM64 架构
- ✅ 完整的服务管理(启动/停止/重启/状态)
- ✅ 配置文件持久化(模块更新后自动恢复用户配置)
- ✅ PID 文件管理(防止误杀其他进程)
- ✅ 日志记录
- Android 8.0+
- 已安装 Magisk v24+
- ARM64 架构
- 前往 Releases 页面
- 下载模块:
cliproxyapi-arm64-{version}.zip - 在 Magisk Manager 中选择「从本地安装」
- 选择下载的 zip 文件并安装
- 重启设备
Linux/macOS:
# 克隆仓库
git clone https://github.com/router-for-me/CLIProxyAPI.git
cd CLIProxyAPI
# 构建并打包
cd magisk
chmod +x build-android.sh
./build-android.sh all
# 生成的模块位于 magisk/bin/ 目录Windows:
cd magisk
build-android.cmd或分别执行:
build-android.cmd build
build-android.cmd pack/data/adb/modules/cliproxyapi/
├── cli-proxy-api # 主程序二进制
├── service.sh # 服务管理脚本
├── post-fs-data.sh # 初始化脚本
├── uninstall.sh # 卸载脚本
├── module.prop # 模块元数据
├── config.yaml # 配置文件
├── auths/ # OAuth 认证文件
├── logs/ # 日志文件
│ └── service.log # 服务日志
└── config_backup/ # 配置备份
└── config.yaml.bak
/data/adb/modules/cliproxyapi/config.yaml
编辑 config.yaml 文件:
# 服务器端口
port: 8317
# API 密钥(请修改)
api-keys:
- "sk-your-secret-key-here"
# Gemini API 密钥
gemini-api-key:
- api-key: "AIzaSy..."
prefix: "gemini"
# Claude API 密钥
claude-api-key:
- api-key: "sk-ant-..."
prefix: "claude"模块更新时会自动备份和恢复配置:
- 首次安装:将
config.yaml备份到config_backup/config.yaml.bak - 模块更新:如果
config.yaml丢失,自动从备份恢复 - 用户修改:保留用户的配置修改,不会被覆盖
通过 ADB 或终端模拟器:
# 启动服务
/data/adb/modules/cliproxyapi/service.sh start
# 停止服务
/data/adb/modules/cliproxyapi/service.sh stop
# 重启服务
/data/adb/modules/cliproxyapi/service.sh restart
# 查看状态
/data/adb/modules/cliproxyapi/service.sh status- start:等待系统启动完成后启动服务,如果服务已在运行则跳过
- stop:安全停止服务,支持强制终止
- restart:先停止再启动
- status:查看服务运行状态和 PID
服务启动后,API 端点为:
http://127.0.0.1:8317
# Chat Completions
curl http://127.0.0.1:8317/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash",
"messages": [{"role": "user", "content": "Hello!"}]
}'# Messages
curl http://127.0.0.1:8317/v1/messages \
-H "x-api-key: sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello!"}]
}'# Generate Content
curl "http://127.0.0.1:8317/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-api-key: sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Hello!"}]}]
}'由于 Android 上没有浏览器环境,OAuth 登录需要在其他设备上完成:
- 在电脑上完成 OAuth 登录
- 复制认证文件到手机:
adb push ~/.cli-proxy-api/gemini_token.json /data/adb/modules/cliproxyapi/auths/
直接在 config.yaml 中配置 API 密钥,无需 OAuth。
日志文件位置:
/data/adb/modules/cliproxyapi/logs/
└── service.log # 服务日志
查看日志:
# 实时查看服务日志
tail -f /data/adb/modules/cliproxyapi/logs/service.log-
检查二进制文件权限:
chmod 755 /data/adb/modules/cliproxyapi/cli-proxy-api
-
检查配置文件语法:
cat /data/adb/modules/cliproxyapi/config.yaml
-
查看错误日志:
cat /data/adb/modules/cliproxyapi/logs/service.log
修改 config.yaml 中的端口号:
port: 8318Magisk 模块通常不受 SELinux 限制,如果遇到问题:
# 临时设置为宽容模式
setenforce 0- 在 Magisk Manager 中找到 CLIProxyAPI 模块
- 点击删除
- 重启设备
或通过命令行:
rm -rf /data/adb/modules/cliproxyapi- Go 1.21+
- Git
- Android NDK (可选,用于交叉编译)
VERSION 环境变量格式支持语义版本:
| VERSION 值 | versionCode |
|---|---|
1.0.0 |
10000000 |
1.2.3 |
12300000 |
dev |
10000000 |
# 指定版本号
VERSION=v1.2.3 ./build-android.sh all
# 仅构建二进制
./build-android.sh build
# 仅打包模块
./build-android.sh pack
# 清理构建产物
./build-android.sh cleanMIT License