MytOS API 接口文档
目录
- 设置应用Root权限
- 导出设备信息
- 导入设备信息
- 隐藏应用信息
- 获取视频流地址
- 设置摄像头视频流
- 获取文件列表
- 下载文件
- 随机设备信息
- 异步随机设备信息
- 设置语言
- 设置语言和国家
- 设置经纬度
- 设置音频资源
- 设置自定义设备信息
- 获取剪贴板内容
- 设置剪贴板内容
- 查询S5代理状态
- 设置S5代理
- 停止S5代理
- 设置S5域名过滤
- 设置运动传感器灵敏度
- 设置摇一摇状态
- 设置应用权限
- 设置分辨率感知过滤
- 更新设备信息
- 切换默认输入法
- 旋转摄像头
- 接收短信
- 设置全球域名加速
- 上传Google证书
- 更新指纹信息
- 执行ADB命令
- 导出app信息
- 导入app信息
- 虚拟摄像头热启动
- 添加联系人
- 伪装应用
接口详情
ip: 为安卓手机实例对应的安卓api ip port: 为安卓手机实例对应的安卓api端口
1. 设置应用Root权限
接口说明: 为指定的应用设置root权限
请求 URL: http://{ip}:{port}/modifydev?cmd=10&pkg={package}&root=true
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
cmd | 是 | int | 固定值:10 |
pkg | 是 | string | 应用包名 |
root | 是 | boolean | 是否启用root权限 |
请求示例:
GET http://192.168.30.2:10008/modifydev?cmd=10&pkg=com.example.app&root=true
返回示例:
成功:
{
"code": 200,
"msg": "ok"
}
{ "code":201,
"error":"错误原因"
}
失败:
{
"code":201,
"error":"错误原因"
}
2. 导出设备信息
接口说明: 导出当前设备的信息到指定文件
请求 URL: http://{ip}:{port}/modifydev?cmd=8
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
cmd | 是 | int | 固定值:8 |
请求示例:
GET http://192.168.30.2:10008/modifydev?cmd=8
返回示例:
成功
{
"code": 200,
"ret": "设备信息"
}
失败
{ "code":201,
"error":"错误原因"
}
3. 导入设备信息
接口说明: 从文件导入设备信息
请求 URL: http://{ip}:{port}/modifydev?cmd=9&data={encoded_text}
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
cmd | 是 | int | 固定值:9 |
data | 是 | string | 设备信息,需要URL编码 |
请求示例:
GET http://192.168.30.2:10008/modifydev?cmd=9&data=eyJkZXZpY2VfaWQiOiJhYmMxMjMifQ%3D%3D
python请求示例
file_path为导出的设备信息文件
url编码方式python举例如下
with open(file_path, "r", encoding='utf-8') as file:
content = file.read()
url = "http://192.168.30.2:10008/modifydev?cmd=9&data=" + quote(content)
response = urllib.request.urlopen(url, timeout= 20)
返回示例:
成功
{
"code": 200,
"msg": "ok"
}
{
"code":202,
"reason":"失败原因"
}
失败
{ "code":201,
"error":"异常原因"
}
4. 隐藏应用信息
接口说明: 隐藏指定的应用
请求 URL: http://{ip}:{port}/modifydev?cmd=3&data=WyJjb20uYW5kcm9pZC5ibHVldG9vdGgiXQ==
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
cmd | 是 | int | 固定值:3 |
data | 是 | string | Base64 URL安全编码的应用信息JSON字符串 |
data参数格式:
'["com.example.app1", "com.example.app1"]'
返回参数:
参数名 | 类型 | 说明 |
---|---|---|
code | int | 状态码(200:成功) |
msg | string | 返回消息 |
请求示例:
GET http://192.168.30.2:10008/modifydev?cmd=3&data=WyJjb20uYW5kcm9pZC5ibHVldG9vdGgiXQ==
python请求示例
arr = '["com.example.app1", "com.example.app1"]'
json_str = json.dumps(arr)
encoded_text = base64.urlsafe_b64encode(app_json_str.encode("utf-8")).decode("utf-8")
url = "http://192.168.30.2:10008/modifydev?cmd=3&data=" + encoded_text
response = urllib.request.urlopen(url)
返回示例:
成功
{
"code": 200,
"msg": "ok"
}
失败
{
"code":202,
"reason":"错误原因"
}
错误码:
错误码 | 说明 |
---|---|
200 | 成功 |
其他 | 隐藏失败 |
注意事项:
- 应用包名必须正确,比如传入的app列表是'["com.android.bluetooth"]'进行编码后传就是示例的WyJjb20uYW5kcm9pZC5ibHVldG9vdGgiXQ==
- JSON字符串需要先进行Base64编码,然后进行URL安全编码
5. 获取视频流地址
接口说明: 获取当前设备的视频流地址
请求 URL: http://{ip}:{port}/modifydev?cmd=5
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
cmd | 是 | int | 固定值:5 |
返回参数:
参数名 | 类型 | 说明 |
---|---|---|
code | int | 状态码(200:成功) |
addr | string | 视频流地址 |
type | int | 视频流类型 |
请求示例:
GET http://192.168.30.2:10008/modifydev?cmd=5
返回示例:
成功
{
"code":200,
"path":"视频地址路径",
"type":"webrtc|image|video"
}
错误码:
错误码 | 说明 |
---|---|
200 | 成功 |
其他 | 获取失败 |
6. 设置摄像头视频流
接口说明: 设置摄像头视频流
请求 URL: http://{ip}:{port}/modifydev?cmd=4&type={type}&path={addr}
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
cmd | 是 | int | 固定值:4 |
type | 是 | string | 视频流类型 video webrtc image |
path | 是 | string | 视频流地址 |
返回参数:
参数名 | 类型 | 说明 |
---|---|---|
code | int | 状态码(200:成功) |
msg | string | 返回消息 |
请求示例:
GET http://192.168.30.2:10008/modifydev?cmd=4&type=video&path=rtmp://server/live
返回示例:
成功
{
"code": 200,
"msg": "OK"
}
失败
{ "code":202,
"reason":"错误原因"
}
7. 获取文件列表
接口说明: 获取指定目录下的文件列表,支持获取Android实例中的文件列表
请求 URL: http://{ip}:{port}/files?list={path}
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
list | 是 | string | 要获取文件列表的目录路径 |
返回参数:
参数名 | 类型 | 说明 |
---|---|---|
code | int | 状态码 |
files | array | 文件列表数组 |
files[].file | string | 文件完整路径 |
files[].flag | boolean | 是否为文件夹(true:是/false:否) |
files[].length | int | 文件大小(字节) |
files[].name | string | 文件名称 |
请求示例:
GET http://192.168.30.2:10008/files?list=/sdcard
返回示例:
{
"code": 200,
"files": [
{
"file": "/sdcard/Notifications",
"flag": true,
"length": 4096,
"name": "Notifications"
},
{
"file": "/sdcard/Download",
"flag": true,
"length": 4096,
"name": "Download"
}
]
}
错误码:
错误码 | 说明 |
---|---|
200 | 成功 |
其他 | 获取失败 |
注意事项:
- 该接口可用于获取Android实例中的文件列表
- 返回的文件大小对于文件夹固定为4096字节
- 建议使用绝对路径访问文件,以避免路径解析错误
8. 下载文件
接口说明: 从设备下载指定文件到本地
请求 URL: http://{ip}:{port}/download?path={filepath}
请求方式: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
path | 是 | string | 要下载的文件路径 |
返回参数:
参数名 | 类型 | 说明 |
---|---|---|
code | int | 状态码 |
msg | string | 返回消息 |
请求示例:
GET http://192.168.30.2:10008/download?path=/data/prop.txt
返回示例: 返回文件二进制数据
错误码:
错误码 | 说明 |
---|---|
200 | 成功 |
注意事项:
- 文件下载采用流式传输,支持大文件下载
- 下载过程中会显示下载进度
- 下载成功后会自动保存到指定的本地路径
- 如果本地文件已存在,需要先删除或重命名后再下载
- 建议使用绝对路径访问文件,以避免路径解析错误