前言
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
沒法編故事了……