前言
ADB是android debug bridge的缩写,负责计算机与Android设备的几乎所有通信和协作,可以认为是连接两者的桥梁。
ADB源码
用了那么久的adb,你知道adb源码在哪里吗?那你又有看过看过adb源码吗?
ADB Debugging
● adb forward
● adb kill-server
Package Manger
● adb install● adb uninstall
● adb shell pm list packages
● adb shell pm path
● adb shell pm clear
Wireless
● adb connect● adb usb
File Manager
● adb pull● adb push
● adb shell ls
● adb shell cd
● adb shell rm
● adb shell mkdir
● adb shell touch
● adb shell pwd
● adb shell cp
● adb shell mv
Network
● adb shell netstat● adb shell ping
● adb shell netcfg
● adb shell ip
Logcat
● adb logcat● adb shell dumpsys
● adb shell dumpstate
Screenshot
● adb shell screencap● adb shell screenrecord [4.4+]
System
● adb root● adb sideload
● adb shell ps
● adb shell top
● adb shell getprop
● adb shell setprop
ADB命令的常见使用场景
01
某日产品经理小李找到你说:“小王,给我来几张我们的APP截图。” ,只听见小王麻溜敲打着键盘,使用adb shell screencap /sdcard/xiaoli/001.png
和adb pull /sdcard/xiaoli/001.png
。
在这个场景里小王使用到adb shell screencap
截屏和adb pull
文件传输两个命令。
02
我们的APP要上线了,但是因为项目十分庞大,说不准我们的小王写的代码没有把Log关闭,怎么办呢?来吧,在命令行里看一下
adb logcat | grep com.xxx.xxx
接下来你就在APP里乱点把,看看有没有一些尚未关闭的Log。
在Android逆向工程中,我们也可以通过这种方式,利用那些大意而留下来的Log信息进行相关的逻辑分析。
03
某日,那个叫做小李的产品经理又找到你说:“小王,你帮我在电脑上下载了一个APP装到手机上”
二话不说,小王下载好app使用adb install xxx.apk
进行安装。
But,出问题了,需要指定手机。原来,小王的电脑上连接了两个手机。
adb devices
大显身手,原来小李的手机编号是"Sx1xxx2xxxx"。
接下来,小王使用adb -s Sx1xxx2xxxx install xxx.apk
04
短平快的教你通过局域网WIFI连接手机。
● 前提需要USB连接手机。● adb tcpip 5555
● adb connect #.#.#.#(你手机的IP地址)
● 拔掉USB,你已经成功通过WIFI连接了。(其实背后是通过TCP协议来实现的)
05
没法编故事了……