本API文档适用于
UFI-TOOLS v3.1.5
版本 本文档中所有POST
请求体(除官方API外)均为JSON
格式 本文档中所有GET
请求参数均为query
参数
签名机制起到如下作用:
防止请求被伪造(如跨站、重放等)
服务器可验证 kano-sign
是否有效、是否与 kano-t
匹配
简单的“认证 + 防篡改”方式
每个请求都会自动附加两个自定义请求头:
Header 键 | 说明 |
---|---|
kano-t | 当前时间戳(毫秒,Date.now() ) |
kano-sign | 用于验证请求合法性的签名字符串 |
签名的核心公式如下:
kano-sign = SHA256( SHA256(part1) + SHA256(part2) )
具体步骤如下:
xxxxxxxxxx
rawData = "minikano" + HTTP_METHOD + URL_PATH + 时间戳
HTTP_METHOD
:请求方法,如 GET
/ POST
(全大写)
URL_PATH
:请求路径(不包含 query 参数),如 /api/data
时间戳
:Date.now()
,即当前毫秒时间戳
xxxxxxxxxx
hmac = HMAC_MD5(rawData, secretKey)
密钥固定为:
xxxxxxxxxx
"minikano_kOyXz0Ciz4V7wR0IeKmJFYFQ20jd"
part1
:前半部分的字节
part2
:后半部分的字节
xxxxxxxxxx
sha1 = SHA256(part1)
sha2 = SHA256(part2)
xxxxxxxxxx
finalHash = SHA256(sha1 + sha2)
假设请求为:
xxxxxxxxxx
fetch("/api/user?id=123", { method: "POST" });
内部处理流程如下:
提取方法:POST
提取路径:/api/user
获取当前时间戳:例如 1718438543772
构造签名原始数据:
xxxxxxxxxx
minikanoPOST/api/user1718438543772
使用上述算法生成签名,并添加请求头:
xxxxxxxxxx
kano-t: 1718438543772
kano-sign: <计算后的SHA256哈希>
JS代码参考:https://github.com/kanoqwq/UFI-TOOLS/blob/http-server-version/app/frontEnd/public/script/requests.js
注:本文提到的POST接口请求体格式均为JSON、GET请求均为Query或无参数
GET请求示例
xxxxxxxxxx
GET /api/AT?command=AT+CSQ&slot=0
返回:
x
{
"result": "XXXXXX OK"
}
POST请求实例
xPOST http://192.168.1.1/goform/login
Authorization: Bearer abc123
Content-Type: application/json
{ "username": "admin", "password": "123456" }
返回:
x
{
"result": "success"
}
方法 | 路径 | 描述 | 参数 | 是否认证 |
---|---|---|---|---|
GET | /api/adb_wifi_setting | 获取网络 ADB 自启状态 | 无 | 是 |
POST | /api/adb_wifi_setting | 设置网络 ADB 自启状态 | enabled ,password | 是 |
GET | /api/adb_alive | 获取网络 ADB 是否已启动 | 无 | 是 |
方法 | 路径 | 描述 | 参数简要 | 是否认证 |
---|---|---|---|---|
GET | /api/smbPath | 更改 Samba 分享地址为根目录 | enable=1/0 开启或关闭 | 是 |
GET | /api/hasTTYD | 判断是否存在 ttyd 服务 | port=端口号 | 是 |
GET | /api/one_click_shell | 启动一键进入工程模式 + 执行脚本 | 无参数 | 是 |
POST | /api/root_shell | 发送指令到 Root Shell Socket 执行 | JSON: { "command": "..." } | 是 |
反向代理接口,用于将客户端请求转发到指定的目标地址,并返回其响应结果。路径格式为:
GET /api/proxy/--http://example.com/api/xxx
GET
POST
PUT
PATCH
请求体(如 POST 的 JSON)将会原样转发给目标地址。
默认会自动转发 常规安全请求头(如 Accept
、User-Agent
)。
想要手动注入敏感头(如 Authorization
)时,使用 kano-
前缀:
自定义头部名 | 实际转发为 |
---|---|
kano-Authorization | Authorization |
kano-Cookie | Cookie |
普通响应:按原格式返回(含状态码、Content-Type)。
HTML 响应:会自动将 /
开头的资源路径(如 /static/js/app.js
)改写为代理路径,确保前端页面可正常加载资源。
POST /api/proxy/--http://192.168.1.1/goform/login
Content-Type: application/json
kano-Authorization: Bearer abc123
{ "username": "admin", "password": "123456" }
会被代理为:
x
POST http://192.168.1.1/goform/login
Authorization: Bearer abc123
Content-Type: application/json
{ "username": "admin", "password": "123456" }
方法 | 路径 | 描述 | 参数简要 | 是否认证 |
---|---|---|---|---|
GET | /api/AT | 执行 AT 指令并返回结果 | command=AT指令 (必填),slot=卡槽号(默认0) | 是 |
方法 | 路径 | 描述 | 参数简要 | 是否认证 |
---|---|---|---|---|
GET | /api/baseDeviceInfo | 获取基础设备信息(电量、IP、CPU、内存、存储等) | 无 | 是 |
GET | /api/version_info | 获取应用版本号与设备型号 | 无 | 否 |
GET | /api/need_token | 获取是否启用登录验证(token) | 无 | 否 |
你的 otaModule
是一个完整的 OTA(Over-The-Air)更新模块,使用 Ktor 搭建后端 Web 服务,运行在 Android 环境中(比如嵌入式设备或手机),功能齐全、逻辑严密,涵盖以下主要接口功能:
方法 | 路径 | 描述 | 参数 | 认证 | 备注 |
---|---|---|---|---|---|
GET | /api/check_update | 拉取 changelog 和文件列表 | 无 | 是 | 调用 Alist 接口获取 OTA 包信息 |
POST | /api/download_apk | 开始下载 APK 文件 | {apk_url} | 是 | 后台线程下载,支持状态查询 |
GET | /api/download_apk_status | 查询下载进度与状态 | 无 | 是 | 下载状态、百分比、错误信息 |
POST | /api/install_apk | 安装已下载的 APK 文件 | 无 | 是 | 使用 socat(root)或 ADB(非 root) |
方法 | 路径 | 描述 | 参数 | 是否认证 |
---|---|---|---|---|
POST | /api/set_custom_head | 设置自定义头部文本 | JSON:{ "text": "..." } (限制1145KB) | 是 |
GET | /api/get_custom_head | 获取自定义头部文本 | 无 | 否 |
方法 | 路径 | 描述 | 参数 | 是否认证 |
---|---|---|---|---|
GET | /api/sms_forward_method | 获取当前短信转发方式 | 无 | 是 |
POST | /api/sms_forward_mail | 配置邮件方式的短信转发 | {smtp_host , smtp_port , smtp_to , smtp_username , smtp_password } | 是 |
GET | /api/sms_forward_mail | 获取邮件转发配置 | 无 | 是 |
POST | /api/sms_forward_curl | 配置 curl 方式的转发 | {curl_text }(需包含 {{sms-body}} 、{{sms-time}} 、{{sms-from}} ) | 是 |
GET | /api/sms_forward_curl | 获取 curl 转发配置 | 无 | 是 |
POST | /api/sms_forward_enabled | 设置短信转发总开关 | Query 参数:enable (字符串) | 是 |
GET | /api/sms_forward_enabled | 获取短信转发开关状态 | 无 | 是 |
方法 | 路径 | 描述 | 参数 | 是否认证 |
---|---|---|---|---|
GET | /api/speedtest | 下载测速数据(限流) | Query:ckSize (块数量),cors 可选 | 是 |
方法 | 路径 | 描述 | 参数(简述) | 是否认证 |
---|---|---|---|---|
POST | /api/upload_img | 上传图片,返回图片访问 URL | Multipart 表单,图片文件 | 是 |
POST | /api/delete_img | 删除图片 | JSON,file_name :要删除的文件名 | 是 |
POST | /api/set_theme | 保存主题配置 | JSON,主题配置字段(如backgroundEnabled 、textColor 等) | 是 |
GET | /api/get_theme | 获取当前主题配置 | 无 | 否 |
上传的图片保存到 filesDir/uploads/
目录,URL 为 /api/uploads/文件名
可静态访问。
方法 | 路径 | 描述 | 参数 | 是否认证 |
---|---|---|---|---|
全部 | /api/goform/{...} | 反代 官方WEB API | 请求路径 + 查询参数 + 请求体 (POST/PUT) | 不需要单独认证 |
路径规则:所有以 /api/goform/
开头的请求都会被代理转发。
目标服务器地址:通过参数 targetServerIP
指定(形如 192.168.0.1
),请求转发到 http://targetServerIP
。
请求头转发:除 Host
和 Referer
以外,所有请求头都会转发给目标服务器,且会强制设置 Referer
为目标服务器地址。
请求方法支持:支持 GET、POST、PUT、OPTIONS 方法转发。
请求体转发:POST 和 PUT 请求体会被读取并写入代理请求。
响应头处理:
会将目标服务器返回的 Set-Cookie
头改名为 kano-cookie
并转发回客户端。
自动添加 CORS 相关响应头,允许跨域。
异常处理:捕获所有异常,返回 500 错误及异常信息。