淘宝客做销量的网站有哪些,网站开发业务规划,中国镇江网,郑州网站推广【ADB命令】adb push命令总结
adb push命令大全操控手机和指令
运行在 Android 设备上的adb后台进程 执行 adb shell ps | grep adbd #xff0c;可以找到该后台进程#xff0c;windows 请使用 findstr 替代 grep
[xuxu:~]$ adb shell ps | grep adbd root 23227 1 6672 8…【ADB命令】adb push命令总结
adb push命令大全操控手机和指令
运行在 Android 设备上的adb后台进程 执行 adb shell ps | grep adbd 可以找到该后台进程windows 请使用 findstr 替代 grep
[xuxu:~]$ adb shell ps | grep adbd root 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也就是监听的网络端口 * 以上属性的值 0adbd将监听网络对应的端口一般为5555 * 以上属性的值 -1adbd将监听USB 【注】 1、 将 Android 设备与要运行 adb 的电脑连接到同一个局域网比如连到同一个 WiFi。 2、将设备与电脑通过 USB 线连接可通过命令 adb devices 查看是否连接成功 3、 让设备在 5555 端口监听 TCP/IP 连接 adb tcpip 5555 4、断开 USB 连接。 5、找到设备的 IP 地址。 一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到也可以使用命令查看 adb shell ifconfig | grep Mask 或者 adb shell ifconfig wlan0 【注】如果一开始没有USB连接线Android设备中没有开启adbd服务怎么办 1、在 Android 设备上安装一个终端模拟器。 已经安装过的设备可以跳过此步。终端模拟器下载地址是 Terminal Emulator for Android Downloads 2、 将 Android 设备与要运行 adb 的电脑连接到同一个局域网比如连到同一个 WiFi。 3、 打开 Android 设备上的终端模拟器在里面依次运行命令 su setprop service.adb.tcp.port 5555 4、在电脑上通过adb和Android设备的IP地址连接Android设备。 adb connect IP地址端口号 【注】有的设备需要在第四步执行之前需要重启adbd服务可以执行下面命令 restart adbd #如果该命令无效尝试以下命令 adbd stop adbd start--------------------------------------------------------------------------------------------------- 常用命令总结 (1)adb设置全局代{过}{滤}理 // 设置代{过}{滤}理 adb shell settings put global http_proxy IP地址:端口号 // 移除代{过}{滤}理 adb shell settings delete global http_proxy adb shell settings delete global global_http_proxy_host adb shell settings delete global global_http_proxy_port 2查看是否可以找到设备 adb devices 【注】查看设备连接状态 adb devices -l 3将apk安装到手机中或者将apk卸载前提手机连接上电脑 adb install xxx.apk adb uninstall xxx.apk 【注】adb uninstall apk的包名报错 Failure [DELETE_FAILED_INTERNAL_ERROR] 首先安装后进入到shell中pm path 包名找到该包的位置 然后去掉“.apk”这个文件后缀还需要去掉“-1”因为“-1”它不是包名的一部分而多次重复安装时Android系统自动加上的然后执行命令adb uninstall 包名就可以成功了。 安装/卸载设备中的应用前提adb shell先进入到设备中 pm install /sdcard/xxx.apk pm uninstall [packagename] 清空指定包名应用的数据 pm clear [packagename] 4指定adb server的网络端口 adb -P port start-server 【注】ADB的默认端口为 5037 5将某内容写入到文件中 adb shell echo 1233 /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 新建文件/删除文件 4adb logcat 1打印指定Tag的日志信息 adb logcat -s tag 【注】“-s”选项 : 设置默认的过滤器, 例如想要输出 “System.out” 标签的信息, 就可以使用如下命令 adb logcat -s System.out 2打印当前某个应用的日志信息 adb logcat |findstr pname/pid/keyword 【补充】在运行adb shell后也可以logcat |grep 某个应用的名 3打印日志重定向到某个文件中 adb shell logcat D:/123/logcat.log adb shell logcat //持续输出日志直到CtrlC adb shell logcat -d //一次性输出日志缓存不会阻塞 adb shell logcat -c //清空日志缓存 5adb push E:/burpnew.cer /sdcard/Download 6如果有多个设备连接到某个设备/模拟器 adb -s xxx(设备的名称) shell adb -s emulator-5554 shell 7adb 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有的属于rootshell和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用户进行adbadb root然后再执行下拉命令。
8检查adb的版本 注安卓在4.x上的版本都要求adb版本必须在1.0.31版本及以上 adb version 查看adb的端口是什么注一般adb端口是5037 adb nodaemon server 判断端口 netstat -ano|findstr 5037 关闭/重启adb adb kill-server adb 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:23946 adb forward tcp:8700 jdwp:1786 【注】 JDWPJava Debug Wire Protocol是一个为 Java 调试而设计的一个通讯交互协议它定义了调试器和被调试程序之间传递的信息的格式。在JPDAJava 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命令 1 查看aapt中的信息以及编辑apk程序包 【用法】aapt dump xmltree [apk包][需要查看的资源文件xml] 例如 aapt dump xmltree demo.apk AndroidManifest.xml 【注】也可以重定向把输出信息保存到文件中 aapt dump xmltree demo.apk AndroidManifest.xmlD:/123/456.txt 2 用dexdump查看dex文件的详细信息 【用法】dexdump [dex文件路径] 8进程命令 1 查看当前进程的内存加载情况 ps -ef|grep 应用名 //查看某个应用的运行情况 cat /proc/[pid]/maps | grep 应用名 //查看当前进程的内存映射信息比如加载了哪些so文件、dex文件等 2查看进程的状态信息 cat /proc/[pid]/status 9adb shell dumpsys命令 adb shell dumpsys默认打印出当前系统所有service信息在后面可加上具体的服务名 查看当前运行应用、进程的包名与Activity名可运行 adb shell dumpsys window | findstr mCurrentFocus zhihu.com/people/wangsicong520