Skip to content

Smart Phone Management. Reimplement of atx-server with Python

License

Notifications You must be signed in to change notification settings

Hepper0/atxserver2

 
 

Repository files navigation

atxserver2

移动设备管理平台

Beta,尝鲜者可提前体验,虽然还有很多没开发的

img

环境依赖

部署方案1 (docker-compose方式)

代码Clone到本地

接下来切换到代码目录,只需要再执行一条命令即可。

docker-compose up

部署方案2 (手动部署)

Step 1

先准备好一个rethinkdb服务器(推荐部署到Linux上) 具体方法查看RethinkDB安装文档

Step 2

安装并启动Server,这里需要Python3.6以上版本

先将代码clone到本地,使用下面的方法安装依赖

pip3 install -r requirements.txt
pip3 install -r requirements-dev.txt  # include the new rethinkdb

最简单的启动方法 (默认连接的rethinkdb地址 localhost:28015)

# 启动方式,这也是最简单的启动方法
python3 main.py

# 指定认证方式
python3 main.py --auth simple # 默认是一个非常simple的认证,输入邮箱就可以
python3 main.py --auth openid # 网易内部使用
# 其他的认证方式还有待添加,非常欢迎PR

# 设置监听端口
python3 main.py --port 4000 # 默认监听的就是这个地址

# 默认支持运行在Nginx下,支持 X-Real-Ip/X-Forwarded-For
# 如果不需要可以通过 --no-xheaders 关闭该功能

通过环境变量的修改,可以更改RethinkDB的连接地址

# Linux环境
# the bellow is default value
export RDB_HOST=localhost
export RDB_PORT=28015
export RDB_USER=admin
export RDB_PASSWD=
export RDB_DBNAME=atxserver2

python3 main.py

启动之后,浏览器打开 http://localhost:4000,完成认证之后就可以顺利的看到设备列表页了。不过目前还是空的,什么都没有。

image

Step 3: Android设备接入

接下来,进行安卓设备接入。这时需要用到另外一个项目 atxserver2-android-provider 这个项目运行需要Python3.6+和NodeJS

这里我们强烈推荐使用Docker部署,源码部署请参考文档 atxserver2-android-provider

SERVER_URL="http://10.0.0.1:4000" # 这个修改成自己的atxserver2地址
docker pull $IMAGE
docker run -it --rm --privileged -v /dev/bus/usb:/dev/bus/usb --net host \
    codeskyblue/atxserver2-android-provider \
    python main.py --server ${SERVER_URL}

该镜像会把所有必要的资源 (atx-uiautomator.apk, minicap, minitouch, atx-agent) 全部推送到手机上。 一切就绪后,你可以进行远程真机的操作了。

atxserver2-remotecontrol

Step 3: iOS设备接入

参考项目介绍 atxserver2-ios-provider

管理员功能

默认第一个登录的用户会成为管理员

管理员有哪些特权呢?

  1. 可以释放他人正在使用的设备。(按住ALT,然后双击正在使用按钮)
  2. 使用他人的身份占用设备(参考API文档)
  3. 获取设备的source信息(参考API文档)
  4. 将他人设置为管理员,导航栏可以看到后台管理链接
  5. 有权修改资产编号字段

操作指南

鼠标操作

  • Right-Click: BACK
  • Middle-Click: HOME

Developers

目前采用tornado+rethinkdb

目录结构参考了django, 代码绝大多数都用到的async的功能

|-- static  静态目录
|-- templates 前端界面
|-- web  网页代码
      |-- urls.py 路由整合文件
      |-- settings.py 配置文件
      |-- database.py 数据库操作相关
      |-- utils.py 常用配置
      |-- views 每个界面的逻辑
        |-- slave.py 与atxslave通信用
        |-- device.py 设备相关路由
        |-- base.py 基于RequestHandler的基类

接口

详情点击 接口REST API

Examples:

Thanks

LICENSE

MIT

About

Smart Phone Management. Reimplement of atx-server with Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 57.3%
  • Python 42.4%
  • Other 0.3%