2017年7月15日 星期六

Android Debug Bridge Command (ADB command)





adb        
命令 命令參數 描述 範例
-d 只運行在實體機 adb -d
-e 只運行在模擬器 adb -e
-s 指定運行的設備 adb -s Serial number
help 幫助文件 adb help
version adb版本 adb version
devices 列出所有已經連接的設備 adb devices
push 從本機端複製檔案到手機端 adb push test.apk /mnt/sdcard/
pull 從手機端複製檔案到本機端 adb pull /mnt/sdcard/ test.apk
install -r 安裝apk
-r: 強制取代
adb install -r test.apk
uninstall -k 解除安裝apk
-k: 保留data和cache
adb uninstall
wait-for-device 等待設備連接 (設備未連接之前使用) adb wait-for-device
start-server 開啟adb服務 adb start-server
kill-server 關閉adb服務 adb kill-server
bugreport 抓取bug report adb bug repoort
remount 重新掛載系統磁碟分割 使其可改寫(需要root) adb remount
reboot bootloader
recovery
重新開機
bootloader: 重新開機到bootloader模式
recovery: 重新開機到recovery模式
adb reboot bootloader
root 取得root權限 adb root
tcpip 設定網路無線端口 (未指定則為5555) adb tcpip 1234
connect 連接指定網路IP+端口 adb connect 192.168.11.44:1234
disconnect 斷開連接 adb disconnect
adb shell        
命令 命令參數 描述 範例
cd 進入目錄 adb shell cd data
cat 查看檔案內容 adb shell cat 1.txt
df 列出分區列表 adb shell df
ls -a
-l
列出目錄內容
-a: 列出所有檔,包括隱藏檔
-l: 列出檔的詳細資訊
adb shell ls -al
grep 篩選搜索特定的內容 adb shell ps | grep google
mkdir -p 創建目錄
-p: 遞迴創建目錄
adb shell mkdir -p /test/stest
touch 創建檔案 adb shell touch 1.txt
rm -r 刪除檔
-r: 強制刪除資料夾包括裡面的檔
adb shell rm 1.txt
mv -f
-i
移動文件(剪下)
-f: 強制取代
-i: 若存在同名檔案 提示詢問
adb shell mv 1.txt testDir
rmdir -p 刪除目錄
-p: 遞迴刪除目錄 只能刪除空目錄
adb shell rm testDir
dd if=source of=target 複製檔案 來源/目的 (複製) adb shell dd if=x.txt of=tdir/y.txt
chmod 檔案權限修改 ( /data/local/tmp/ 可修改) adb shell chmod 777 text.txt
chmown 檔案群組修改 adb shell chown root text.txt
dumpstate 系統狀態資訊 (需要root)
adb bugreport包含這個資訊
adb shell dumpstate
dumpsys 取得系統各項服務資訊 adb shell dumpsys
ps 查看程序資訊 adb shell ps
getprop 取得系統各項屬性資訊 adb shell getprop
setprop 設定系統各向屬性 (需要root) adb shell setprop
top -m
-n
-d
取得CPU使用情況
-m: 最大顯示條數
-n: 更新次數
-d: 更新時間 (每秒)
adb shell top -m 10 -d 5
wm size
density
獲取螢幕解析度 adb shell wm size
bmgr backup
restore
run
備份/復原 檔案 adb shell bmgr backup packageName
adb shell bmgr run
kill 結束進程 adb shell kill 123  [PID]
svc power
data
wifi
usb
nfc
控制電源
控制資料
控制WiFi
控制USB
控制NFC
adb shell svc nfc enable
iftop 顯示網路傳輸資訊 adb shell iftop
netstat 顯示網路相關資訊 adb shell netstat
ping 顯示配對網址的情況 adb shell ping www.yahoo.com
screenrecord --size
--bugreport
--time-limit
--verbose
螢幕錄影 (Android4.4以上)
--size: 指定影片解析度
--bugreport: 增加錄影時的相關資訊
--time-limit: 指定錄影時間
--verbose: 顯示相關資訊在cmd
adb shell screenrecord /storage/emulated/0/Movies/test.mp4
screencap 螢幕截圖 adb shell screencap /storage/emulated/0/Pictures/test.png
getevent / sendevent 取得/發送硬體鍵的鍵值 adb shell 後再輸入 getevent
input text
keyevent
tap
swipe
輸入
text: 文字
keyevent: 觸發鍵的值
tap: 畫面座標 (x,y)
swipe: 滑動畫面 (x,y,a,b)
adb shell input text 1234567890
adb shell input keyevent KEYCODE_HOME
dmesg Kernal Log adb shell dmesg
adb shell pm        
命令 命令參數 描述 範例
list package -f
-d
-e
-s
-3
-f: 顯示位置
-d: 只顯示禁用的
-e: 只顯示可用的
-s: 只顯示系統的
-3: 只顯示第三方的
adb shell pm list packages google
list permission-groups 顯示權限群組 adb shell pm list permission-groups
list permissions -g
-f
-s
-d
-u
-g: 依照群組分類
-f: 顯示詳細資訊
-s: 顯示精簡資訊
-d: 顯示危險的群組
-u: 顯示危險和一般的群組
adb shell pm list permissions -g -u
reset-permissions 重置所有App的權限 adb shell pm reset-permissions
grant 允許權限 (Android 6.0以上) adb shell pm grant com.android.contacts android.permission.READ_EXTERNAL_STORAGE
revoke 拒絕權限 (Android 6.0以上) adb shell pm revoke com.android.contacts android.permission.READ_EXTERNAL_STORAGE
list instrumentation -f 顯示所有的instrumentation測試包
-f: 顯示位置
adb shell pm list instrumentation
path 顯示指定的包名的位置 adb shell pm path com.xxx.xxx
list features 顯示硬體/軟體的功能列表 adb shell pm list features
list libraries 顯示庫的列表 adb shell pm list libraries
dump 顯示指定包名的系統狀態資訊 adb shell pm dump com.android.phone
install -r 從手機內部安裝
-r: 強制取代
adb shell pm install /data/local/tmp/test.apk
uninstall -k 從手機內部解除安裝
-k: 保留data和cache
adb shell pm uninstall /data/local/tmp/test.apk
clear 清除指定包名的data和cache adb shell pm clear com.android.phone
enable 啟用系統App adb shell enable com.android.phone
disable 停用系統App (隱藏在App List) adb shell disable com.android.phone
disable-user 停用系統App (顯示在App List) adb shell disable-user com.android.phone
hide 隱藏 adb shell hide com.android.phone
unhide 取消隱藏 adb shell unhide com.android.phone
get-install-location 0: 安裝路徑 自動選擇
1: 安裝路徑 設定在內部 (手機)
2: 安裝路徑 設定在外部 (SD card)
adb shell pm get-install-location
set-install-location 0: 安裝路徑 自動選擇
1: 安裝路徑 設定在內部 (手機)
2: 安裝路徑 設定在外部 (SD card)
adb shell pm set-install-location 2
adb shell am        
命令 命令參數 描述 範例
start -n
-a
-d
-c
-e
-t
-f
-p
-W
-S
-n: component (Package name/Class name)
-a: action (Intent)
-d: data_url
-c: category
-e: extra (Bundle)
-t: mime_type
-f: flags
-p: package
-W: 等待啟動完成
-S: 停止指定的Activity 再一次開啟指定的Activity
adb shell am start -n com.android.settings/.Settings
adb shell am start -W -n com.android.settings/.Settings
startservice 啟動服務 adb shell am startservice serviceName
stopservice 關閉服務 adb shell am stopservice serviceName
broadcast 啟動廣播 adb shell am broadcast broadcastName
force-stop 強制停止 adb shell am force-stop com.android.settings/.Settings
hang 強制卡住系統 adb shell am hang
monitor 監視系統 adb shell am monitor
instrument -r
-e
-w
-r: 顯示詳細資訊
-e: 傳送自訂參數 (Name/Value)
-w: 等待結束
adb shell am instrument -w -r -e class com.ex.tescase#function com.ex.tescase.test/android.support.test.runner.AndroidJUnitRunner
adb logcat        
命令 命令參數 描述 範例
-b main
radio
system
event
查看日誌緩衝區 (預設main) adb logcat -b system
-c 清除緩衝區所有的日誌 adb logcat -c
-d 顯示日誌 (非持續進行) adb logcat -d
-g 顯示日誌緩衝區的大小 adb logcat -g
-f 將日誌輸出到指定的檔案 adb logcat -f log.txt
-n 設置日誌的最大數目 (預設4) (搭配-r) adb logcat -n 10
-r 設定輸出日誌大小 (KB) (預設16) (搭配-f) adb logcat -r 10
-v brief
process
tag
raw
time
threadtime
long
設置日誌的輸出格式 adb logcat -v threadtime
Log 級別
V: Verbose(由低到高)
D: Debug
I: Info
W: Warning
E: Error
F: Fatal
S: Silent
adb logcat ActivityManager:I *:S
(只顯示 I 級的日誌 且標籤為ActivityManager)
adb logcat *:W
(只顯示 W 級以上的日誌)
adb shell dumpsys        
命令 命令參數 描述 範例
-l 查看各類服務 adb shell dumpsys package -l
package prov
p
s
m
version
f
r
perm
pref
prov: Provider
p: Package
s: Shared User
m: Message
version: Database version
f: Features
r: Intent filter
perm: Permission
pref: Preferred
adb shell dumpsys package p
activity a
r
b
p
I
p
prov
s
package
all
top
a: Activity
r: Recent activity
b: Broadcasts
p: Pending intent
i: Intents
p: Process
prov: Providers
s: Service
package: Package
all: All activities
top: Top activity
adb shell dumpsys activity s
adb shell dumpsys activity | find "mF"
meminfo
cpuinfo
gfxinfo
display
power
batterystats
battery
alarm
location
meminfo: 內存
cpuinfo: CPU
gfxinfo: 幀率
display: 顯示
power: 電源
batterystats: 電池狀態
battery: 電池
alarm: 鬧鐘
location: 位置
adb shell dumpsys battery