找回密码
 立即注册
搜索
查看: 11856|回复: 3

[API接口] MYTOS-设备信息接口调用说明

[复制链接]

38

主题

13

回帖

53

积分

管理员

积分
53
发表于 2023-10-12 21:12:54 | 显示全部楼层 |阅读模式
API接口概述
接口概述
相关的接口操作对象都是通过Android容器实例的IP进行访问.由于创建Android容器实例有2种IP模式,以下所有的的相关接口都会有2个地址,在接入API时请根据自己的网络模式自行选择.

1.获取设备截图

接口地址:http://$ip:$port/task=snap&level=3

请求方式:GET

参数说明:

当Android容器为独立ip模式时 ip为安卓容器实例IP port为9082

当Android共享ip时 ip为当前主机ip port为动态计算得出 计算方法为: 第一个Android容器实例 10005 第二个 10008 第三个 10011 .... 以此类推 公式为 (索引下标-1) *3 + 10005

level=1 为低分辨率 level=2 中等分辨率 level=3 原始分辨率

返回结果:

png格式图片

2.一键新机
(仅支持v16以后的版本)

2.1 随机设备信息
接口地址:http://$ip:$port/modifydev

请求方式:GET

参数说明:

cmd=2

random_abroad=true( 默认为false v20开始支持)

use_english=true(默认为false v20开始支持)

当Android容器为独立ip模式时 ip为安卓容器实例IP port为9082

当Android共享ip时 ip为当前主机ip port为动态计算得出 计算方法为: 第一个Android容器实例 10005 第二个 10008 第三个 10011 .... 以此类推 公式为 (索引下标-1) *3 + 10005

以下给出PHP的调用方法示例:

<?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.202:9082/modifydev";
$ret = request_by_curl($url, 'cmd=2');
var_dump($ret);
?>
返回结果:

//成功
{
      code: 200
}
2.2 自定义设备信息
接口地址:http://$ip:$port/modifydev

请求方式:POST

参数说明:

当Android容器为独立ip模式时 ip为安卓容器实例IP port为9082

当Android共享ip时 ip为当前主机ip port为动态计算得出 计算方法为: 第一个Android容器实例 10005 第二个 10008 第三个 10011 .... 以此类推 公式为 (索引下标-1) *3 + 10005

post 内容: 将json字符 base64加密一下为json结构体示例

设备信息完整文件下载地址 dev.json

{
//设备信息   oaid 等
        "devinfo": {
                "oaid": "12345678901234567890",
                "aaid": "",
                "vaid": "",
                "wifimac": "11:22:33:44:55:66",
                "wifiname": "TP-LINK_MYT",
                "btaddr": "22:33:44:55:66:77",
                "btname": "MYT",
                "androidId": "abcdefg123456"
        },
//传感器信息
        "sensors": [{
                "Name": "ACCELEROMETER",
                "Vendor": "MTK",
                "StringType": "android.sensor.accelerometer",
                "Version": -394882624,
                "Type": 1,
                "MinDelay": 5000,
                "FifoReservedEventCount": 3000,
                "MaxDelay": 20000,
                "Id": 0,
                "MaxRange": 78.453605651855,
                "Resolution": 0.0012000000569969,
                "Power": 0.0010000000474975,
                "Flags": 0,
                "RequiredPermission": "RequiredPermission",
                "FifoMaxEventCount": 300
        },
       ......
     ],
  //模拟已安装应用列表 实际不安装
        "fakeapps": [{
                "pkg": "com.tencent.mobileqq",
                "versionCode": "4030",
                "versionName": "8.9.55",
                "label": "QQ"
        }, {
                "pkg": "com.tencent.mm",
                "versionCode": "2380",
                "versionName": "8.0.37",
                "label": "微信"
        }, {
                "pkg": "com.taobao.taobao",
                "versionCode": "441",
                "versionName": "10.24.20",
                "label": "淘宝"
        }],
//sim卡信息 地理位置 时区等信息
        "siminfo": {
                "mnc": "0",
                "mcc": "460",
                "lac": "28970",
                "cid": "111407362",
                "lat": "30.638809204102",
                "lon": "114.2928314209",
                "opercode": "46000",
                "opername": "China Mobile",
                "country": "cn",
                "timezone": "UTC +8:00",
                "zoneid": "Asia\/Shanghai",
                "language": "zh",
                "phonenumber": "17047949030"
        },
//环境变量 可以依据不同品牌自行添加
        "props": [{
                "key": "gsm.version.baseband",
                "val": "MOLY.LR12A.R3.MP.V136.6.P198,MOLY.LR12A.R3.MP.V136.6.P198"
        }, {
                "key": "net.hostname",
                "val": "V2118"
        }, {
                "key": "ro.actionable_compatible_property.enabled",
                "val": "true"
        }, {
                "key": "ro.allow.mock.location",
                "val": "0"
        }
     ...
  ]
}
以下给出PHP的调用方法示例:

<?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.202:9082/modifydev";
$data = file_get_contents('dev.json');
$post_data = base64_encode($data);
$ret = request_by_curl($url, 'cmd=1&data='.$post_data);
var_dump($ret);
?>
返回结果:

//成功
{
      code: 200
}
3.隐藏应用
功能:和桌面上扩展服务->防封保护功能相同 在系统已安装列表中隐藏指定应用

接口地址:http://$ip:$port/modifydev

请求方式:POST

参数说明:cmd=3

data=base64({'com.aa.bb','com.cc.dd'})

当Android容器为独立ip模式时 ip为安卓容器实例IP port为9082

当Android共享ip时 ip为当前主机ip port为动态计算得出 计算方法为: 第一个Android容器实例 10005 第二个 10008 第三个 10011 .... 以此类推 公式为 (索引下标-1) *3 + 10005

以下给出PHP的调用方法示例:

<?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.202:9082/modifydev";
$arr = array('com.aa.bb','com.cc.dd');
$data = json_encode($arr);
$post_data = base64_encode($data);
$ret = request_by_curl($url, 'cmd=3&data='.$post_data);
var_dump($ret);
?>
返回结果:

//成功
{     
  code: 200
}
4.视频推流
功能:可以将指定的多媒体源投放到Android系统的摄像头 进行播放 设置好推流之后打开相机就可以查看效果了

接口地址:http://$ip:$port/modifydev

请求方式:POST

参数说明:cmd=4

type: video :视频流或者本地视频文件

webrtc :webrtc流媒体

image :本地图片或者网络图片

path = urlencode('rtmp://192.168.100.1/live/') //测试直播流地址 http://devimages.apple.com.edgek ... ar2/prog_index.m3u8

当Android容器为独立ip模式时 ip为安卓容器实例IP port为9082

当Android共享ip时 ip为当前主机ip port为动态计算得出 计算方法为: 第一个Android容器实例 10005 第二个 10008 第三个 10011 .... 以此类推 公式为 (索引下标-1) *3 + 10005

以下给出PHP的调用方法示例:

<?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.100:9082/modifydev";
$t = 'rtmp://192.168.100.1/live/test2';
$s = urlencode($t);
$ret = request_by_curl($url, 'cmd=4&type=video&path='.$s);
var_dump($ret);
?>
返回结果:

//成功
{     
  code: 200
}
5.获取当前推流地址
功能:获取当前推流地址和类型

接口地址:http://$ip:$port/modifydev

请求方式:GET

参数说明:cmd=5

以下给出PHP的调用方法示例:

<?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.100:9082/modifydev";
$ret = request_by_curl($url, 'cmd=5');
var_dump($ret);
?>
返回结果:

{"path":"webrtc:\/\/192.168.100.1\/test","type":"webrtc","code":200}
6 执行shell命令
功能:执行shell 命令

接口地址:http://$ip:$port/modifydev

请求方式:POST

参数说明:cmd=6

cmdline

以下给出PHP的调用方法示例:

<?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.100:9082/modifydev";
$cmd = urlencode('ps -a');
$ret = request_by_curl($url, 'cmd=6&cmdline='.$cmd);
var_dump($ret);
?>
7.更新设备信息
功能:导出设备当前使用的设备信息 设备信息为加密后的数据

接口地址:http://$ip:$port/modifydev

请求方式:POST

参数说明:cmd=7

data= json 字符串

json 格式为以下字段 任意一个或多个组合

字段名

类型

数据说明

lat

string

经度 (30.638809204102)

lon

string

纬度(114.2928314209)

country

string

国家码(cn)

timezone

string

时区(UTC +8:00)

language

string

语言(zh)

phonenumber

string

电话号码(17000888888)

以下给出PHP的调用方法示例:

      <?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.100:9082/modifydev";
$data['phonenumber'] = "12345678901";
$data['language'] = 'en';
$str = json_encode($data);
$ret = request_by_curl($url, 'cmd=7&data='.$str);
var_dump($ret);
?>
返回结果:

{"code":200}
8.导出当前设备信息
功能:导出设备当前使用的设备信息 设备信息为加密后的数据

接口地址:http://$ip:$port/modifydev

请求方式:GET

参数说明:cmd=8

以下给出PHP的调用方法示例:

      <?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.100:9082/modifydev";
$ret = request_by_curl($url, 'cmd=8');
var_dump($ret);
?>
返回结果:

{"ret":"x1KeFHgj1XKKKuzjqHajV6Ojki8NDHcs","code":200}
9.导入设备信息
功能: 导入之前导出的设备信息

接口地址:http://$ip:$port/modifydev

请求方式:POST

参数说明:cmd=9

data= 导出的数据

以下给出PHP的调用方法示例:

      <?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.100:9082/modifydev";
//之前导出的数据保存到文件中
$data = file_get_contents('dev.dat');
$ret = request_by_curl($url, 'cmd=9&data='.urlencode($data));
var_dump($ret);
?>
返回结果:

{"code":200}
10.设置应用的Root权限
功能: 给指定的应用root 权限

接口地址:http://$ip:$port/modifydev

请求方式:GET

参数说明:cmd= 10

pkg=com.tencent.game 应用包名

root=true root 权限 true or false

以下给出PHP的调用方法示例:

    <?php        
/////////////////////////////////////////////////////////////////////
/*
* Curl   post 方法
*/
function request_by_curl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
  }

$url = "http://192.168.30.100:9082/modifydev";
$ret = request_by_curl($url, 'cmd=10&pkg=com.tencent.game&root=true');
var_dump($ret);
?>
返回结果:

  {"code":200}
魔云腾按照不同的开发语言给出了封装示例,

1.PHP Demo (待发布) 版本:1.0 更新日期:

2.Go Demo GitHub地址 https://github.com/Henry0924/myt-androidApi-demo

3.JS Demo (待发布) 版本: 1.0 更新日期:

4 Python Demo (待发布) 版本: 1.0 更新日期:

2

主题

5

回帖

2896

积分

魔云会员

积分
2896
发表于 2023-11-22 15:51:07 | 显示全部楼层
更新设备信息
功能:导出设备当前使用的设备信息 设备信息为加密后的数据

接口地址:http://$ip:$port/modifydev

请求方式:POST

参数说明:cmd=7


这个接口到底是怎么使用的呢 换了N种方式 都是返回201



http://192.168.6.126:9082/modifydev
提交数据为cmd=7&data=%7B%22country%22%3A%22gb%22%2C%22language%22%3A%22en%22%7D

返回值201

http://192.168.6.126:9082/modify ... ge%22%3A%22en%22%7D

也是201

5

主题

11

回帖

1906

积分

魔云会员

积分
1906
发表于 2023-12-25 21:24:30 | 显示全部楼层
能不能加一个指定品牌的接口  跪求阿

0

主题

2

回帖

2891

积分

魔云会员

积分
2891
发表于 2024-2-28 13:56:35 | 显示全部楼层
8.导出当前设备信息 导出的是加密数据,怎么解密,需要修改部分信息后再使用 9.导入设备信息 更新设备

手机版|魔云腾-论坛

GMT+8, 2024-11-28 13:41 , Processed in 0.043123 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表