天天看点

02 Sonic - 调试、发布 agent

一、启动服务端程序

因为我们只要调试客户端程序,所以本地部署和服务器部署都可以。本地部署优点是随时可以调试,也不会造成垃圾数据。缺点是会浪费你机器的新能。

我用的本地部署,参考官方文档链接见下,运行后如下图:

​​https://sonic-cloud.gitee.io/#/Deploy​​

02 Sonic - 调试、发布 agent

 二、下载Agent源码

注意:由于Sonic目前还不是一个稳定版本,每次迭代基础技术架构变动较多,所以你要下载和服务端同版本的Agent代码。

我用的 v1.4.0-release,所以下载的这个版本。

1、访问代码官网 https://github.com/SonicCloudOrg/sonic-agent ,点击 v1.4.0-release

02 Sonic - 调试、发布 agent

2、从这里下载源码,上边是编译好的对应各平台包,也一同下来后续编译打包有用

02 Sonic - 调试、发布 agent

 三、idea加载脚本

1、将源码解压后正常idea打开项目即可

2、修改配置。修改配置跟安卓Agent类似,参见官网的Agent部署文档:​​https://sonic-cloud.gitee.io/#/Deploy?tag=agent​​ 。唯一的区别就是配置文件所在的目录不同。主要也是改这三个配置

02 Sonic - 调试、发布 agent

3、打开 AgentApplication.java 点击运行即可

02 Sonic - 调试、发布 agent

 4、运行过程中会检查依赖库、工具

02 Sonic - 调试、发布 agent

 注意:我在这步被坑了2次

  • 在检查 adbkit 时候失败,根据推荐命令安装又各种失败。最后改了 中科院Mirrors的brew镜像源才成功
  • 在运行的时候老提示我没有权限,让我执行 chmod 777,反复执行并检查已经是777权限还是不行。最后发现是mac不允许运行未知源程序,允许后即可(如果不会配置baidu吧)。

5、到此就已经可以正常调试了

 四、修改后重新打包

升级 v1.4.0-release 后发现,安卓远控时不知道为啥都会自动回到桌面,但我的需求是想保持已启动的app在前台。我测试过 scrapy 他是不需要切桌面的,没办法只能自己动手丰衣足食了。

最后找到 AndroidWSServer.java 的 144 开启 scrapy 前主动发了个 sendkey 3,将它注释后就不会回到桌面了。由于改动了源码所以就要重新打包了,打包步骤如下:

02 Sonic - 调试、发布 agent

 1、根据官网编译jar包,就是 mvn package -P 指定编译配置即可

02 Sonic - 调试、发布 agent

2、在命令行进入项目目录。我把源码解压到了这个目录 Desktop/sonic_dev/sonic-agent-1.4.0-release,cd进去即可

3、由于我要打包mac系统所以执行如下命令

mvn package -Pmacosx-x86_64      

4、看到如下内容表明编译成功了,jar包就在红框的目录里

02 Sonic - 调试、发布 agent

 5、这里就用到下载源码时候让你下载的zip文件了,找到 sonic-agent-v1.4.0-release-macosx_x86_64.zip 解压后,将编译好的 jar 替换原来的 jar 即可。

java -jar xxxx.jarz      

注意:运行前还需要修改zip文件夹中的配置

02 Sonic - 调试、发布 agent

6、如果你不知道 P 后边应该跟啥,可以打开pom.xml查一下,其中 profileActive 就是

02 Sonic - 调试、发布 agent

 7、最后多说一句,我猜可能是 plugins 下打了几个平台相关的执行文件造成的需要根据平台出包