adb命令丨adb push命令大全

您所在的位置:网站首页 twrp终端命令大全 adb命令丨adb push命令大全

adb命令丨adb push命令大全

2024-04-25 10:47| 来源: 网络整理| 查看: 265

【ADB命令】adb push命令总结

adb push命令大全操控手机和指令

运行在 Android 设备上的adb后台进程

执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请使用 findstr 替代 grep

[xuxu:~]$ adb shell ps | grep adbdroot 23227 1 6672 832 ffffffff 00019bb4 S /sbin/adbd

adb连接手机进行调试有两种方式,一种使用USB线,一种使用无线WiFi。第一种  使用USB线连接1. 在手机上启用USB调试2. CMD窗口输入adb devices,此时可以看到自己的设备。【注】:无法看到自己设备时,查看手机USB调试是否打开;PC端是否安装手机驱动。1. 硬件状态正常。包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好。2. Android 设备的开发者选项和 USB 调试模式已开启。可以到「设置」-「开发者选项」-「Android 调试」查看。如果在设置里找不到开发者选项,那需要通过一个彩蛋来让它显示出来:在「设置」-「关于手机」连续点击「版本号」7 次。3. 设备驱动状态正常。这一点在 Linux 和 Mac OS X 下基本不用操心,在 Windows 下有可能遇到需要安装驱动的情况,确认这一点可以右键「计算机」-「属性」,到「设备管理器」里查看相关设备上是否有黄色感叹号或问号,如果没有就说明驱动状态已经好了。否则可以下载一个手机助手类程序来安装驱动先。第二种  使用无线WiFi连接首先先了解一点底层的知识:Android系统底层运行着一个服务(adbd),用于响应和管理大家在电脑端的adb命令连接,这个服务在启动时会根据手机的配置监听USB连接或网络其中之一。配置的属性为:service.adb.tcp.port,也就是监听的网络端口* 以上属性的值 > 0:adbd将监听网络对应的端口(一般为5555)* 以上属性的值 > /data/local/tmp/xxx.config(6)查看Android设备的CPU架构信息adb shell  cat /proc/cpuinfo

(3)对程序进行调试adb shell am start -D -n [包名]/[包名].[活动activity名称]【注】:-D 的意思是用Debug方式启动应用;(3)启动一个应用/服务/发送一个广播adb shell am start -n [包名]/[包名].[活动activity名称]adb shell am startservice -n [包(package)名]/[包名].[服务(service)名]adb shell am broadcast -a [广播动作]例:adb shell am broadcast -a com.android.captureCamera.CaptureCameraService  //启动nubia手机的抓拍功能(4)查看是否能连接手机,进入到shell窗口adb shell(注: 为了进入手机或模拟器的shell内核)获取用root权限:su如果root用户切换到普通用户:su shell查看当前目录下的所有文件,包含隐藏文件:ls -al创建目录/删除目录:mkdir xxx / rmdir xxx新建文件/删除文件:(4)adb logcat打印指定Tag的日志信息:adb logcat -s tag【注】:“-s”选项 : 设置默认的过滤器,例如:想要输出 “System.out” 标签的信息, 就可以使用如下命令adb logcat -s System.out打印当前某个应用的日志信息adb logcat |findstr pname/pid/keyword【补充】:在运行adb shell后,也可以:logcat |grep 某个应用的名;打印日志重定向到某个文件中adb shell logcat >D:/123/logcat.logadb shell logcat  //持续输出日志,直到Ctrl+Cadb shell logcat -d    //一次性输出日志缓存,不会阻塞adb shell logcat -c    //清空日志缓存(5)adb push E:/burpnew.cer /sdcard/Download(6)如果有多个设备,连接到某个设备/模拟器:adb -s xxx(设备的名称) shelladb -s emulator-5554 shell(7)adb pull/adb push注:当我们执行默认adb命令时(adb pull或adb push等),都是以shell身份在执行,而非root身份,此时对于命令中的目录权限就要特别注意,当访问的目录需要root权限,或只有程序自身才有访问权限的目录时(典型的如/data/data下的目录),虽然目录和文件都在,但命令仍然是无法访问的,提示remote object does not exist或permission denied。1、将电脑上的文件上传到手机中adb push E:/123/xx.txt  /data/local/tmp;如果在执行命令时报错,需要查看一下/data/local/tmp文件夹的读写权限定义;

可以看到该目录的拥有者和所属组有的属于shell,有的属于root,shell和root具有读写执行的权限,但第三个权限位为--x,即意味着除root和shell用户外,其它用户一律没有读写的权限。但我们在运行该app时,默认的用户却是该进程本身,并非root或shell,所以此时是没有办法写入任何文件到/data/local/tmp的。要想这样做必须先通过代码动态改变当前用户模式到root模式,才能继续往下操作。解决办法:改变/data/local/tmp/的权限,例如设置:chmod 777 /data/local/tmp/*2、将手机中的文件下拉到电脑中使用场景:测试app本地敏感数据时,一般把/data/data/中的文件,从手机中下拉到电脑上进行查看;adb pull /data/data/包名/xxx  E:/123/【注】:目录/data/data/包名/是程序自身目录,不能直接下拉到电脑中,可以进入到shell后,修改/data/data/包名/xx/的权限,例如:chmod 777 xxx,然后将相应的目录复制到/data/local/tmp目录中,cp -r /data/data/包名/xxx/.  /data/local/tmp;然后,退出shell,以root用户进行adb,adb root,然后再执行下拉命令。

(8)检查adb的版本注:安卓在4.x上的版本都要求adb版本必须在1.0.31版本及以上adb version查看adb的端口是什么?(注:一般adb端口是5037)adb nodaemon server判断端口netstat -ano|findstr "5037"关闭/重启adbadb kill-serveradb start-server(8)获取设备列表及设备的状态adb devices

(8)截屏操作adb shell screencap -p 截图文件路径例:adb shell screencap  -p /sdcard/tmp.png(8)输入文本内容adb shell input text 【需要输入文本框内容】(8)设备的端口转发

【用法】:adb forward[(远程端)协议:端口号][(设备端)协议:端口号]例如:adb forward tcp:23946  tcp:23946adb forward tcp:8700 jdwp:1786【注】: JDWP(Java Debug Wire Protocol)是一个为 Java 调试而设计的一个通讯交互协议,它定义了调试器和被调试程序之间传递的信息的格式。在JPDA(Java Platform Debugger Architecture)中,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。(8)查看设备中可以被调试的应用的进程号adb jdwp(8)非root设备中查看指定debug模式的包名应用沙盒数据run-as [package name](8)查看设备的ip地址(查看设备的网络连接情况)adb shell netcfg(8)查看设备的端口号信息adb shell netstat(8)查看当前应用的CPU消耗信息top

(8)操作apk命令 查看aapt中的信息以及编辑apk程序包【用法】:aapt dump xmltree [apk包][需要查看的资源文件xml]例如: aapt dump xmltree demo.apk AndroidManifest.xml【注】:也可以重定向把输出信息保存到文件中aapt dump xmltree demo.apk AndroidManifest.xml>D:/123/456.txt 用dexdump查看dex文件的详细信息【用法】:dexdump [dex文件路径](8)进程命令 查看当前进程的内存加载情况ps -ef|grep 应用名         //查看某个应用的运行情况cat /proc/[pid]/maps | grep 应用名   //查看当前进程的内存映射信息,比如加载了哪些so文件、dex文件等查看进程的状态信息cat /proc/[pid]/status(9)adb shell dumpsys命令adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名查看当前运行应用、进程的包名与Activity名,可运行:adb shell dumpsys window | findstr mCurrentFocus

zhihu.com/people/wangsicong520



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3