吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20509|回复: 46
收起左侧

[Python 转载] python调用adb脚本来实现群控安卓手机初探

[复制链接]
打字的小强 发表于 2018-11-28 09:52
本帖最后由 打字的小强 于 2018-11-28 10:05 编辑

一直想弄个真机群控,vnc监控,要用脚本语言控制手机好像只能用shell类似的adb脚本了。然后弄个vnc监控什么的。已经开始弄adb群控脚本了,自己只懂点python,并不会底层的什么东西,后期肯定要改底层的东西,用到c之类的语言了。搜集各种资料试了一下,已经实现了两个功能,挺有意思的。初步分享下adb群控原理
[Python] 纯文本查看 复制代码
# !/usr/bin/python
# -*- coding:utf-8 -*-
import os
runapp_name = "com.tencent.mobileqq/.activity.SplashActivity"


def getDevicesAll():
    #获取所有的设备列表
    devices = []
    try:
        for dName_ in os.popen("adb devices"):
            if "\t" in dName_:
                if dName_.find("emulator") < 0:
                    devices.append(dName_.split("\t")[0])
        devices.sort(cmp=None, key=None, reverse=False)
    except:
        pass
    print("设备名称: %s 总数量:%s台" % (devices, len(devices)))
    return devices




def find_top_app(devices):
    # 循环输入顶层应用
    for dName in devices:
        try:
            out = os.popen('adb shell "dumpsys activity | grep "mFocusedActivity""').read()
            print(dName+"的当前顶层应用是:"+out)
        except:
            print(dName + "关闭失败")

def runtest(devices):
    # 打开应用
    for dName in devices:
        try:
          os.popen("adb -s " + dName +" shell  am start -n "+runapp_name)
          print("启动成功")
        except:
            print(dName+"打开失败")




if __name__=="__main__":
    while True:
        try:
            devices = getDevicesAll()
        except:
            print("获取设备出错")

        res = input("输入1查看当前的顶层app;2启动qq:")
        if int(res)==1:
            try:
                find_top_app(devices)
            except:
                print("启动错误")
        elif int(res)==2:
            try:
                runtest(devices)
            except:
                print("启动错误")

QQ截图20181128092044.png

免费评分

参与人数 5吾爱币 +6 热心值 +5 收起 理由
py看考场 + 1 + 1 谢谢@Thanks!
编草鞋的蚂蚱 + 1 + 1 我很赞同!
辣鸡菜 + 1 + 1 热心回复!
dybjxx + 1 + 1 我很赞同!
wushaominkk + 2 + 1 鼓励下,加油!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 打字的小强 发表于 2018-11-28 14:57
浯茗仔仔 发表于 2018-11-28 13:57
想问下楼主怎么用设备号区分手机的,adb devices获取的不都是一样的么,我以前公司做个这个,但是是同事搞 ...

参考帖子:https://www.aliyun.com/jiaocheng/26320.html 。每个设备都有一个设备id。
 楼主| 打字的小强 发表于 2018-11-28 10:11
yc19951005 发表于 2018-11-28 10:06
这个东西主要是干嘛的? 楼主能否说的简单一点,是利用Python通过adb命令实现人为的打开app什么的操作吗?

对啊,使用一个命令就可以打开N多手机的 app或者其他操作
yc19951005 发表于 2018-11-28 10:06
这个东西主要是干嘛的? 楼主能否说的简单一点,是利用Python通过adb命令实现人为的打开app什么的操作吗?
吾爱好地方 发表于 2018-11-28 10:13
目前只是简单控制,不过很有意思,希望楼主继续更新!
yunbaobei 发表于 2018-11-28 10:18
这是远程挖矿机器人专用的么
 楼主| 打字的小强 发表于 2018-11-28 10:21
吾爱好地方 发表于 2018-11-28 10:13
目前只是简单控制,不过很有意思,希望楼主继续更新!

关键是没钱没项目,弄着玩玩
 楼主| 打字的小强 发表于 2018-11-28 10:22
yunbaobei 发表于 2018-11-28 10:18
这是远程挖矿机器人专用的么

什么远程挖矿,,并不是的,就是封装命令通过数据线或者wifi控制一群手机
wushaominkk 发表于 2018-11-28 10:47
创意很好
队友呢? 发表于 2018-11-28 10:54
adb 不行的,不稳定,我之前也是尝试用E语言写了个调用adb的,adb不稳定,会崩溃
 楼主| 打字的小强 发表于 2018-11-28 10:58
队友呢? 发表于 2018-11-28 10:54
adb 不行的,不稳定,我之前也是尝试用E语言写了个调用adb的,adb不稳定,会崩溃

可能控制的手机太多了吧,那层主有何高见使用其他的办法?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 07:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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