使用docker搭建STF手机管理平台

STF介绍

STF是开源的Android手机管理平台,基于Nodejs开发,支持在web端浏览器远程控制和调试手机

Github地址:https://github.com/openstf/stf

主要功能:

  • 远程手机控制和屏幕实时显示
  • 设备日志查看、过滤
  • 远程调试
  • 执行shell命令
  • 提供详细的设备信息,通过电话号码,IMEI,ICCID,Android版本,运营商,产品名称和/或许多其他属性搜索设备
  • 截图、复制粘贴、拖动到浏览器安装apk、设备文件管理等
  • 简单的REST API

还有一个开源手机管理平台ATXServer,由网易团队使用Go开发的,目前正在用Python重构atxserver2

STF构成:

  • STF服务器Server,负责手机的管理
  • STFService.apk,安装在手机上,接收STF服务器下发的消息,解析成控制手机的命令

STF安装

STF安装比较复杂,依赖较多,有的依赖需要从源码编译安装。使用docker安装比较简单,这里以Ubuntu 18.04.2LTS为例,通过docker安装STF

安装docker

参考Get Docker CE for Ubuntu

  1. 卸载老版本docker

    $ sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. 更新apt包索引

    $ sudo apt-get update
    
  3. 开启HTTPS

    $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    
  4. 添加docker的官方GPG key

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  5. 验证指纹

    $ sudo apt-key fingerprint 0EBFCD88
    pub   rsa4096 2017-02-22 [SCEA]
       9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
    uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
    sub   rsa4096 2017-02-22 [S]
    
  6. 添加stable repository

    $ sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    
  7. 更新apt包索引

    $ sudo apt-get update
    
  8. 安装最新版docker cecontainerd

    $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    

安装STF

拉取STF相关镜像

sudo docker pull openstf/stf:latest # STF镜像
sudo docker pull sorccu/adb:latest # android adb 镜像
sudo docker pull rethinkdb:latest # rethinkdb 镜像
sudo docker pull openstf/ambassador:latest
sudo docker pull nginx:latest # nginx 代理镜像
sudo docker images #查看已经拉取好的镜像 

注意:如果拉取速度较慢,可以配置docker镜像加速。docker官方为国内提供了服务器

添加以下配置到/etc/docker/daemon.json文件,没有该文件可以创建一个,注意文件必须是json格式。配置完成后需要重启docker

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

配置完成后需要重启docker

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

执行docker info看到以下内容说明加速器已生效

Registry Mirrors:
 https://registry.docker-cn.com/

启动rethinkdb数据库容器

sudo docker run -d --name rethinkdb -v /srv/rethinkdb:/data \
--net host rethinkdb rethinkdb --bind all \
--cache-size 8192 --http-port 8090

启动adbd服务容器

sudo docker run -d --name adbd --privileged \
-v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest

启动STF容器,其中192.168.1.100替换成你的服务器IP地址

sudo docker run -d --name stf --net host openstf/stf stf local \
--public-ip 192.168.1.100

查看docker容器

sudo docker ps -a

容器正常启动后,在局域网内浏览器访问192.168.1.100:7100即可访问STF。账号不需要注册,可以随便填写,邮箱随便填(格式正确即可)

参考

STF 折腾之路 最后换成 Docker 来安装