首页
直播
壁纸
免责声明
更多
统计
关于
Search
1
一款自动化渗透工具包 TscanPlus
225 阅读
2
获取一张美国虚拟信用卡
223 阅读
3
JS Document.evaluate()的使用
199 阅读
4
Git冲突:Please commit your changes or stash them before you merge
174 阅读
5
Python 31条 pip 命令全解析
164 阅读
默认分类
操作系统
Linux
管理面板
实用工具
开发语言
PHP
Web
python
typecho
ThinkPHP
layui
爬虫
文章分享
登录
Search
标签搜索
python
php
web
linux
Git
js
requests
自动化
宝塔
thinkphp
Centos
adb
html
typecho
layui
jquery
ubuntu
multipass
虚拟机
thikphp
YiYun
累计撰写
54
篇文章
累计收到
21
条评论
首页
栏目
默认分类
操作系统
Linux
管理面板
实用工具
开发语言
PHP
Web
python
typecho
ThinkPHP
layui
爬虫
文章分享
页面
直播
壁纸
免责声明
统计
关于
搜索到
2
篇与
的结果
2024-03-29
Python脚本利用adb进行手机控制的方法
这篇文章主要介绍了Python脚本利用adb进行手机控制的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧一. adb 相关命令:关闭adb服务:adb kill-server启动adb服务 adb start-server查询当前运行的所有设备 adb devices可能在adb中存在多个虚拟设备运行 可以指定虚拟设备运行 -s 虚拟设备名称重启设备 adb reboot --指定虚拟设备 adb -s 设备名称 reboot查看日志 adb logcat 清除日志 adb logcat -c进入linux shell下 adb shell 其中常用的linux命令 cd cat 等等 输入su可以获取超级管理员名称了 要确定是否有哪些命令 进入 system/bin目录 就知道了传入文件到设备中 adb push 本地文件 远程目录从设备中拷贝文件到本地 adb -s emulator-5556 pull /data/config.ini d:/显示当前运行的全部模拟器: adb devices安装应用程序: adb install -r 123.apk获取模拟器中的文件: adb pull 向模拟器中写文件: adb push 进入模拟器的shell模式: adb shell卸载apk包: adb shell cd data/app rm 123.apk exit adb uninstall 123.apk adb install -r 123.apk查看adb命令帮助信息: adb help删除系统应用: adb remount (重新挂载系统分区,使系统分区重新可写)。 adb shell cd system/app rm 123.apk获取管理员权限: adb root19、复制文件:复制一个文件或目录到设备:adb push 如:adb push update.zip /sdcard/从设备上复制一个文件或目录:adb pull 如:adb pull /sdcard/update.zip.20、取得当前运行设备的实例的列表及每个实例的状态:adb devices21:这条命令模拟android手机在屏幕坐标(X,Y)处进行了点击操作。adb shell input tap22:这条命令模拟Android手机从屏幕坐标(X1,Y1)滑动到坐标(X2,Y2)的操作。adb shell input swipe 23:Luiautomator dump dump: creates an XML dump of current UI hierarchy 这个命令是用来成成当前界面的UI层次,并用XML格式进行展示 。这样就可以获取各个组件的位置了注:如果PC要想同时控制多台Android手机,必须在adb 后面添加-s例如:adb -s 13b6e4c4 shell input tap 400 400表示对13b6e4c4这台Android手机进行在屏幕上(400,400)坐标位置进行模拟的点击事件。24.能看到设备信息就代表设备已经连接成功了,接下来的命令就是adb install 路径+包名.apk例如我的安装包放在桌面,那么命令就是adb install C:\Users\hyh\Desktop\XXX.apk* adb shell uiautomator dump /mnt/sdcard/window_dump.xml 获得手机当前界面的UI信息,生成window_dump.xml* adb shell input text “123” 输入text举例:1、打开cmd,进入到当前文件夹中,输入命令 adb devices 查看当前与电脑连接的设备(前提是,手机打开usb调试模式),可以查看已连接成功的手机。2、 若手机成功连接,输入命令 adb shell input tap 100 100 , 表示点击屏幕上坐标为(100,100)的点,如果不知道需要点击的点的具体位置的话可以在手机开发者模式中设置。二. adb 模拟按键:比如使用 adb shell input keyevent 命令,不同的 keycode 能实现不同的功能,完整的 keycode 列表详见 KeyEvent,摘引部分我觉得有意思的如下:Keycode含义3HOME 键4返回键5打开拨号应用6挂断电话24增加音量25降低音量26电源键27拍照(需要在相机应用里)64打开浏览器82菜单键85播放/暂停86停止播放87播放下一首88播放上一首122移动光标到行首或列表顶部123移动光标到行末或列表底部126恢复播放127暂停播放164静音176打开系统设置187切换应用207打开联系人208打开日历209打开音乐210打开计算器220降低屏幕亮度221提高屏幕亮度223系统休眠224点亮屏幕231打开语音助手276如果没有 wakelock 则让系统休眠input 命令的一些用法举例电源键命令:adb shell input keyevent 26执行效果相当于按电源键。菜单键命令:adb shell input keyevent 82HOME 键命令:adb shell input keyevent 3返回键命令adb shell input keyevent 4音量控制增加音量:adb shell input keyevent 24降低音量:adb shell input keyevent 25静音:adb shell input keyevent 164媒体控制播放/暂停:adb shell input keyevent 85停止播放:adb shell input keyevent 86播放下一首:adb shell input keyevent 87播放上一首:adb shell input keyevent 88恢复播放:adb shell input keyevent 126暂停播放:adb shell input keyevent 127点亮/熄灭屏幕可以通过上文讲述过的模拟电源键来切换点亮和熄灭屏幕,但如果明确地想要点亮或者熄灭屏幕,那可以使用如下方法。点亮屏幕:adb shell input keyevent 224熄灭屏幕:adb shell input keyevent 223三、使用python脚本自动运行cmd 命令1.在adb文件夹下建立一个python文件import os os.system('adb shell input tap 100 100');运行脚本,发现与在命令行输入相同语句有同样的效果。2、也可以使用subprocess.Popen,最简单使用方式如下,设置shell=True,就不会弹出cmd框process = subprocess.Popen('adb shell input tap 14 1402',shell=True)程序实例:#coding:utf-8 #程序功能:可以实现抖音个人页面视频的自动点击,从而自动增加访问量 #思路:抖音主页中两个视频切换点击,可以实现访问量的增加 #使用ADB程序,视频的屏幕坐标可以使用adb shell uiautomator dump命令,获取该页面xml源码后查得 #下述是小米MIX2抖音主页第一个视频和第二个视频的坐标位置 #缺点:运行时不能移动屏幕,后续可以采用获取模块ID号的方式去点击相应的位置 import time import subprocess i = 0 #每次操作的间隔时间取决于手机配置,配置越高时间越短 sleep_time = 0.5 while 1: #用popen设置shell=True不会弹出cmd框 process = subprocess.Popen('adb shell input tap 14 1402',shell=True) time.sleep(sleep_time) process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True) time.sleep(sleep_time) process = subprocess.Popen('adb shell input tap 375 1402', shell=True) time.sleep(sleep_time) process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True) time.sleep(sleep_time) #os.system('adb shell input tap 14 1402') #os.system('adb shell input keyevent KEYCODE_BACK') #os.system('adb shell input tap 375 1402') i+=1 print str(i) + 'clicks have been completed'实现原理Hierarchy Viewer:获得当前手机实时的UI信息,方便用于手机的自动化测试;python中的subprocess.Popen() 或 Python os模块:调用系统命令;uiautomator工具:获取界面控件信息;adb命令:对手机进行操作;原文出处: Python脚本利用adb进行手机控制的方法
2024年03月29日
97 阅读
0 评论
0 点赞
2024-03-28
adb(Android Debug Bridge)安装使用教程
一、说明adb的db是debug bridge而不是和gdb一样指debug,这意思是说adb不能像gdb那样能一步步调试代码,但可以启到一些类似调试的功能。下面就针对这些功能进行介绍,本文根据官方文档“http://adbshell.com/commands”整理而成。这种烂大街的文章本不该再写了,但无耐每次自己用都得搜索筛选一藩,索性写下来权当就给自己看。二、安装如果安装了android sdk那么在sdk的platform-tools文件夹下就已经有adb了(使用时有点问题,我选择直接去下了一个)。如果没有安装android sdk,那么也可以直接下载adb,解压即可使用。为了方便建议将解压到的目录加入环境变量。三、使用3.1 启动调试设备模拟器----直接启动模拟手机真机----通过usb线把手机接到电脑3.2 查看当前有哪些设备adb devices第一列是设备序列号;其中“ip:port”组合的是模拟设备,“e6466a68”这种开头的是usb连接上来的真实手机。如果只有一台设备,那么所有下面介绍的命令会自动在该设备上执行,如果有多个设备那么需要通过-s指定设备序列号不然会报“error: more than one device/emulator”(adb -s device_serial_number command形式)。为了方便,在介绍后续命令前我将关掉上图中序列号为192.168.225.101:5555的模拟设备。3.3 安装软件包adb install /path/to/apk.apk安装时有些手机可能要在手机上点击确认进行安装,不然会拒绝安装导致安装失败(报错:INSTALL_FAILED_USER_RESTRICTED: Install canceled by user)。如果报错“error: unknown host service”,那有可能是360手机助手等占用了连接,通过任务管理器将其关闭即可。3.4 查看已安装的软件包adb shell pm list packages此时会列出手机中所有已安装的转件包,为了快速找到自己想要的软件的包名,可以使用grep/findstr等命令进行过滤。3.5 卸载已安装软件包卸载不能通过安装apk时的apk文件名进行卸卸,需要指定软件完整包名进行卸载,包名可通过3.4介绍的办法进行查找adb uninstall package_name3.6 查看apk数据存放位置adb shell pm path package_name3.7 清空apk数据adb shell pm clear package_name3.8 查看当前所在目录adb shell pwd3.9 查看根目录下有哪些文件(夹)adb shell ls /3.10 查看磁盘挂载情况adb shell df -h3.11 上传文件到手机adb push /local/path/to/file/filename /phone/file/path/to/save路径linux用斜框windows用反斜杠3.12 从手机下载文件到本地adb pull /phone/path/to/file/filename /local/file/path/to/save3.13 执行其他linux命令要执行诸如cd、rm、mkdir、touch、cp、mv等等命令,都使用以下格式即可;如要带参数和在shell中使用一样直接带后面即可adb shell command parameters当然也可以直接使用adb shell进入交互shell,不用每次都带abd shell头;退出使用exit。如下图所示:不过有些命令使用adb shell形式和进入交互shell形式,输出是不一样的,没有深究。3.14 查看系统参数adb shell dumpsys system_parameter参考 :https://blog.csdn.net/gaojinshan/article/details/9455193原文出处: adb(Android Debug Bridge)安装使用教程
2024年03月28日
61 阅读
0 评论
0 点赞