adb基本操作
簡介
adb的全稱為Android Debug Bridge,就是起到調(diào)試橋的作用。
adb是[android sdk](https://baike.baidu.com/item/android sdk?fromModule=lemma_inlink)里的一個(gè)工具, 用這個(gè)工具可以直接操作管理android模擬器或者真實(shí)的android設(shè)備(如G1手機(jī)).
它的主要功能有:
-
運(yùn)行設(shè)備的shell(命令行)
-
管理模擬器或設(shè)備的端口映射
-
計(jì)算機(jī)和設(shè)備之間上傳/下載文件
-
將本地apk軟件安裝至模擬器或android設(shè)備
架構(gòu)
adb是一個(gè) C/S架構(gòu)的應(yīng)用程序,由三部分組成:
- adb client:運(yùn)行在PC上(為DDMS即IDE工作)
- adb daemon:守護(hù)進(jìn)程,運(yùn)行于Emulaor
- adb server:服務(wù)進(jìn)程,運(yùn)行在PC,管理adb client和adb daemon之間的通信
server與client通信的端口是5037,adb server與emulator交互時(shí)使用的端口有兩個(gè):
- 5554專門用于與Emulator實(shí)例的連接
- 5555專門用于與daemon連接

環(huán)境依賴
ADB依賴
-
JDK
Java開發(fā)工具包
-
platform-tools
Android平臺(tái)工具包
下載
JDK的安裝以及環(huán)境變量的配置,在這里就不詳細(xì)贅述了,網(wǎng)上一搜一大把。
下面提供幾個(gè)不同操作系統(tǒng)下的adb工具下載地址:
-
ADB和Fastboot for Windows
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
-
ADB和Fastboot for Mac
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
-
ADB和Fastboot for Linux
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
下載完以后,解壓到你想解壓的地方
配置
為了方便日后命令行的使用,這里以Windows系統(tǒng)為例,配置一下adb的環(huán)境變量。
這里需要注意下步驟5:這里的文件夾路徑指向的是你上面下載的壓縮包解壓的目錄路徑

驗(yàn)證
輸入以下兩個(gè)指令以驗(yàn)證環(huán)境是否安裝正確:
java -version查看java版本adb version查看adb版本
C:\Users\liaoy>java -version
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)
C:\Users\liaoy>adb version
Android Debug Bridge version 1.0.41
Version 33.0.3-8952118
Installed as C:\Program Files\platform-tools\adb.exe
如果上面兩步驗(yàn)證沒有問題以后,那么下面我們就可以開始進(jìn)入使用環(huán)節(jié)了
連接設(shè)備
adb支持兩種連接android系統(tǒng)的方式:
- USB方式
- 網(wǎng)絡(luò)方式(ADB遠(yuǎn)程調(diào)試Android設(shè)備)
USB方式
-
Android設(shè)備處于開發(fā)者模式
系統(tǒng)–>關(guān)于手機(jī)–>版本號(hào)(連續(xù)點(diǎn)擊多次至提示打開開發(fā)者模式)。
-
USB連接Android設(shè)備
USB連接Android設(shè)備,在開發(fā)這模式中,將USB調(diào)試和USB安裝、USB調(diào)試(安全設(shè)置),這幾個(gè)選項(xiàng)都打開,下拉狀態(tài)欄中USB使用方式選擇:傳輸文件
-
驗(yàn)證是否連接設(shè)備
C:\Users\liaoy>adb devices List of devices attached 145621a0 device當(dāng)出現(xiàn)xxxxx device字樣,則代表設(shè)備已經(jīng)連接成功
-
當(dāng)PC接入的Android設(shè)備數(shù)量>1臺(tái)時(shí),執(zhí)行adb命令會(huì)報(bào)錯(cuò)提示“adb: more than one device/emulator”
C:\Users\liaoy>adb shell adb:more than one device/emulator出現(xiàn)以上情況可以使用“-s”參數(shù)來指定要操作的設(shè)備,例如:
C:\Users\liaoy>adb -s 145621a0 shell
網(wǎng)絡(luò)方式
-
確保電腦和Android設(shè)備需連同一wifi
-
使用usb數(shù)據(jù)線連接設(shè)備
-
設(shè)置wifi adb連接端口號(hào)
C:\Users\liaoy>adb tcpip 5555 restarting in TCP mode port: 5555 -
查看連接設(shè)備IP
C:\Users\liaoy>adb shell ifconfig wlan0 wlan0 Link encap:UNSPEC Driver icnss inet addr:192.168.8.124 Bcast:192.168.8.255 Mask:255.255.255.0 inet6 addr: fe80::e219:9b44:140c:efb7/64 Scope: Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:22787838 errors:0 dropped:0 overruns:0 frame:0 TX packets:15743149 errors:0 dropped:25 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:23279809590 TX bytes:8007838414 -
拔掉usb數(shù)據(jù)線
-
通過IP連接至安卓設(shè)備
- 通過
adb connect指定端口號(hào)則連接指定設(shè)備的端口號(hào),若不指定端口號(hào),則默認(rèn)連接5555端口
C:\Users\liaoy>adb connect 192.168.8.124:5555 already connected to 192.168.8.124:5555 - 通過
-
斷開連接
- 通過
adb disconnect指定ip端口號(hào)則斷開指定設(shè)備的連接,若不指定,則斷開所有設(shè)備連接
C:\Users\liaoy>adb disconnect 192.168.8.124:5555 disconnected 192.168.8.124:5555 - 通過
抓取指定應(yīng)用日志
1. 獲取應(yīng)用的包名
通過以下兩種方式獲取需要抓取日志的應(yīng)用包名
-
輸入命令:
adb shell am monitor,隨后運(yùn)行應(yīng)用程序C:\Users\liaoy>adb shell am monitor Monitoring activity manager... available commands: (q)uit: finish monitoring ** Activity starting: com.baidu.searchbox ** Activity resuming: com.baidu.searchbox ** Activity resuming: com.baidu.searchbox通過以上命令可以獲取到當(dāng)前設(shè)備在activity狀態(tài)的程序
-
輸入命令:adb shell pm list packages -3
C:\Users\liaoy>adb shell pm list packages -3 package:com.sohu.inputmethod.sogou package:com.baidu.searchbox package:com.ibimuyu.lockscreen package:com.UCMobile package:com.ss.android.ugc.aweme package:com.tencent.mobileqq package:com.shuame.sprite package:com.jingdong.app.mall package:com.alibaba.android.rimet package:com.taobao.taobao package:com.qitu.market通過以上命令可以獲取到所有已安裝應(yīng)用的包名
2. 抓取應(yīng)用日志
-
進(jìn)入adb shell;
-
使用命令logcat | grep com.taobao.taobao(軟件的包名)
C:\Users\liaoy>adb shell HWASK-H:/ $ logcat | grep com.taobao.taobao 11-14 15:29:45.373 4751 4751 I RMS.HwSysResManager: preloadAppForLauncher packageName com.taobao.taobao preloadType 101 11-14 15:29:45.409 2090 2390 I HwWindowManagerServiceEx: set launch origin and target for: com.taobao.taobao with delay 3000 11-14 15:29:45.414 2090 2390 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 hwFlg=0x10 cmp=com.taobao.taobao/com.taobao.tao.welcome.Welcome bnds=[192,127][360,322] (has extras)} from uid 10056 11-14 15:29:45.417 1057 1097 D AwareLog: iawared: WorkingsetProcessCommand subCmd = 354, userId=10109, pid=0, com.taobao.taobao 11-14 15:29:45.417 1057 1097 D AwareLog: iawared: WorkingsetSendPrereadMsg com.taobao.taobao 11-14 15:29:45.417 1057 1097 D AwareLog: iawared: WorkingsetStart com.taobao.taobao in monitor0 11-14 15:29:45.440 2090 2390 D ActivityTaskManager: TaskLaunchParamsModifier:task=null activity=ActivityRecord{c22ef83 u0 com.taobao.taobao/com.taobao.tao.welcome.Welcome t-1} display-from-source=0 display-id=0 display-windowing-mode=1 11-14 15:29:45.441 2090 2390 D ActivityTaskManager: TaskLaunchParamsModifier:task=null activity=ActivityRecord{c22ef83 u0 com.taobao.taobao/com.taobao.tao.welcome.Welcome t-1} display-from-source=0 display-id=0 display-windowing-mode=1 activity-options-fullscreen=Rect(0, 0 - 0, 0) non-freeform-display maximized-bounds... -
也可通過
[-s]選項(xiàng),參數(shù)值為:*:E來指定日志輸出級(jí)別- V:不過濾輸出所有調(diào)試信息,包括 VERBOSE、DEBUG、INFO、WARN、ERROR
- D:debug過濾器,輸出DEBUG、INFO、WARN、ERROR調(diào)試信息
- I:info過濾器,輸出INFO、WARN、ERROR調(diào)試信息
- W:waring過濾器,輸出WARN和ERROR調(diào)試信息
- E:error過濾器,只輸出ERROR調(diào)試信息
130|HWASK-H:/ $ logcat -s *:E | grep com.taobao.taobao 11-14 15:38:17.326 2090 2285 E WindowManager: win=Window{c370ab1 u0 com.taobao.taobao/com.taobao.tao.welcome.Welcome EXITING} destroySurfaces: appStopped=false win.mWindowRemovalAllowed=true win.mRemoveOnExit=true 11-14 15:38:19.372 2090 2390 E WifiService: Permission violation - getConfiguredNetworks not allowed for uid=10109, packageName=com.taobao.taobao, reason=java.lang.SecurityException: UID 10109 has no location permission 11-14 15:38:19.382 2090 14896 E WifiService: Permission violation - getConfiguredNetworks not allowed for uid=10109, packageName=com.taobao.taobao, reason=java.lang.SecurityException: UID 10109 has no location permission 11-14 15:38:45.785 29795 30536 E ProtoDB : begin compacting: /data/user/0/com.taobao.taobao/files/lsdb-downgrade 11-14 15:38:45.786 29795 30536 E ProtoDB : finish compacting: /data/user/0/com.taobao.taobao/files/lsdb-downgrade 11-14 15:38:45.786 29795 30536 E ProtoDB : begin compacting: /data/user/0/com.taobao.taobao/files/lsdb-uikit_navigation_extern 11-14 15:38:45.786 29795 30536 E ProtoDB : finish compacting: /data/user/0/com.taobao.taobao/files/lsdb-uikit_navigation_extern 11-14 15:38:45.786 29795 30536 E ProtoDB : begin compacting: /data/user/0/com.taobao.taobao/files/lsdb-uikit_navigation_extern 11-14 15:38:45.786 29795 30536 E ProtoDB : finish compacting: /data/user/0/com.taobao.taobao/files/lsdb-uikit_navigation_extern 11-14 15:38:45.786 29795 30536 E ProtoDB : begin compacting: /data/user/0/com.taobao.taobao/files/lsdb-uikit_navigation_extern 11-14 15:38:45.786 29795 30536 E ProtoDB : finish compacting: /data/user/0/com.taobao.taobao/files/lsdb-uikit_navigation_extern 11-14 15:38:47.028 30812 30930 E SharedPreferencesImpl: Couldn't rename file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml to backup file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml.bak 11-14 15:38:47.034 29795 30237 E SharedPreferencesImpl: Couldn't rename file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml to backup file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml.bak 11-14 15:38:47.039 30812 30930 E SharedPreferencesImpl: Couldn't rename file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml to backup file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml.bak 11-14 15:38:47.043 29795 30237 E SharedPreferencesImpl: Couldn't rename file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml to backup file /data/user/0/com.taobao.taobao/shared_prefs/adaemon.xml.bak 11-14 15:38:49.198 29795 30387 E ShopRouterInit: orange change : shop_router, pkgName = com.taobao.taobao 11-14 15:38:51.281 29795 30223 E SoPatchLogger: DegradeSoUtils:->dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.taobao.taobao-_ymujAQODhiOLC6_u2iTDQ==/base.apk"],nativeLibraryDirectories=[/data/user/0/com.taobao.taobao/app_plugins_lib, /data/user/0/com.taobao.taobao/files/swallows/arm64-v8a/0acf1bae557965135ecab91915d22646, /data/app/com.taobao.taobao-_ymujAQODhiOLC6_u2iTDQ==/lib/arm64, /data/app/com.taobao.taobao-_ymujAQODhiOLC6_u2iTDQ==/base.apk!/lib/arm64-v8a, /system/lib64, /hw_product/lib64, /system/product/lib64]]] couldn't find "libMNN_NPU.so" 11-14 15:38:51.282 29795 30223 E MNNPyBridge: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.taobao.taobao-_ymujAQODhiOLC6_u2iTDQ==/base.apk"],nativeLibraryDirectories=[/data/user/0/com.taobao.taobao/app_plugins_lib, /data/user/0/com.taobao.taobao/files/swallows/arm64-v8a/0acf1bae557965135ecab91915d22646, /data/app/com.taobao.taobao-_ymujAQODhiOLC6_u2iTDQ==/lib/arm64, /data/app/com.taobao.taobao-_ymujAQODhiOLC6_u2iTDQ==/base.apk!/lib/arm64-v8a, /system/lib64, /hw_product/lib64, /system/product/lib64]]] couldn't find "libMNN_NPU.so"
常用指令
-
adb start-server
啟動(dòng)ADB服務(wù)
-
adb kill-server
關(guān)閉ADB服務(wù)
-
adb devices
列出所有設(shè)備
-
adb connect 192.168.100.1:5555
connect 表示連接到設(shè)備
192.168.100.1:5555 表示設(shè)備地址(address)和端口號(hào)(dport) -
adb disconnect
斷開所有連接
-
adb reboot
重啟設(shè)備
-
adb reboot recovery
重啟設(shè)備到Recovery
-
adb reboot bootloader
也就是常說的BL鎖
-
adb shell wm size
size 表示獲取當(dāng)前設(shè)備屏幕的分辨率
-
adb shell wm size 1080x1920
size 1080x1920 表示設(shè)定屏幕分辨率為1080x1920
注意 : 1080x1920中的x,是字母x(艾克斯) -
adb shell wm size reset
size reset 表示重置當(dāng)前設(shè)備的屏幕分辨率恢復(fù)到默認(rèn)
-
adb shell wm density
wm density 表示獲取當(dāng)前屏幕密度
-
adb shell wm density 300
wm density 300 表示設(shè)置當(dāng)前設(shè)備屏幕密度為300
-
adb shell wm density reset
wm density reset 表示重置當(dāng)前設(shè)備的屏幕密度恢復(fù)到默認(rèn)
-
adb shell
進(jìn)入shell模式
-
exit
退出shell模式
-
su
切換到Root用戶
-
adb -s emulator-5554 shell
-s 表示指定某個(gè)設(shè)備
emulator-5554 表示設(shè)備名稱 -
adb install -g -r .\easyclick.apk
install 表示安裝
-g 表示賦予所有權(quán)限
-r 表示覆蓋安裝
.\wechat.apk 表示需要安裝的apk路徑支持相對(duì)和絕對(duì)路徑 -
adb shell pm list package -3
pm 表示Package Manager(包管理器)
list 表示列表,列出
package 表示包
-3 表示第三方應(yīng)用(即用戶自行安裝的應(yīng)用)
-s 表示系統(tǒng)應(yīng)用
-3可省,列出設(shè)備所有包名 -
adb shell pm path com.gibb.easyclick
pm 表示Package Manager(包管理器)
path 表示安裝路徑
com.gibb.easyclick 表示包名,此指令的執(zhí)行結(jié)果,即顯示出微信安裝包所在的位置路徑 -
adb shell pm clear com.gibb.easyclick
pm 表示Package Manager(包管理器)
clear 表示清空
com.gibb.easyclick 表示包名,此指令的執(zhí)行結(jié)果,即清空微信所有數(shù)據(jù),恢復(fù)到第一次安裝的狀態(tài)
此指令等同于清空應(yīng)用詳情界面中的存儲(chǔ)(Storage)-數(shù)據(jù)(Data) -
adb shell dumpsys window
dumpsys window 表示將當(dāng)前界面轉(zhuǎn)存成靜態(tài)文件
-
adb shell dumpsys window|findStr mCurrentFocus
dumpsys window 表示將當(dāng)前界面轉(zhuǎn)存成靜態(tài)文件
findStr mCurrentFocus 表示查找屬性
獲取當(dāng)前界面的PackageName(包名)和ActivityName(活動(dòng)名) -
adb shell pm uninstall com.gibb.easyclick
pm 表示Package Manager(包管理器)
uninstall 表示反向安裝,即卸載
com.gibb.easyclick 表示需要卸載的包名,此指令的執(zhí)行結(jié)果,即卸載微信 -
adb shell pm uninstall --user 0 com.gibb.easyclick
pm 表示Package Manager(包管理器)
uninstall 表示反向安裝,即卸載
–user 0 表示管理員權(quán)限
com.gibb.easyclick 表示需要卸載的包名
此指令可以卸載大部分系統(tǒng)自帶的應(yīng)用,適用于強(qiáng)迫癥,極端完美主義玩家.需要謹(jǐn)慎使用,卸載后盡量不要關(guān)機(jī)或者重啟設(shè)備,否則可能會(huì)出現(xiàn)無法開機(jī)的情況.或者開機(jī)時(shí)間很長很長(其實(shí)就是系統(tǒng)發(fā)現(xiàn)缺少了自帶應(yīng)用,努力恢復(fù)的一個(gè)過程),有變磚的可能性 -
adb shell am force-stop com.gibb.easyclick
am 表示Activity Manager(活動(dòng)管理器)
force-stop 表示強(qiáng)制停止
com.gibb.easyclick 表示需要強(qiáng)制停止的包名
此指令等同于應(yīng)用詳情界面中的強(qiáng)制停止 -
adb shell monkey -p com.gibb.easyclick 1
monkey 表示壓力測試
-p 表示指定包名
com.gibb.easyclick 表示需要測試的包名
1 表示時(shí)間,單位毫秒
大部分情況用來啟動(dòng)某個(gè)已知包名的應(yīng)用,參考來源于Stack Overflow -
adb shell mkdir test
mkdir 表示創(chuàng)建文件夾
test 表示創(chuàng)建新文件夾的名稱 -
adb shell touch test.txt
touch 表示創(chuàng)建新文件,替代方案cat >test.txt
test.txt 表示創(chuàng)建新文件的名稱 -
adb shell cat test.txt
cat 表示打開文件
test.txt 表示要打開的文件 -
adb shell cat >test.txt
創(chuàng)建一個(gè)test.txt的文件,并輸入內(nèi)容,ctrl+d退出編輯,enter結(jié)束操作如果test.txt存在,之前的內(nèi)容會(huì)被覆蓋
-
adb shell cat >>test.txt
編輯test.txt文件,追加內(nèi)容,ctrl+d退出編輯,enter結(jié)束操作如果test.txt不存在,會(huì)自動(dòng)創(chuàng)建
ctrl+d
退出編輯模式
-
adb shell cp /sdcard/1.txt /sdcard/Pictures/1.txt
cp 表示復(fù)制
/sdcard/1.txt 表示原路徑位置
/sdcard/Pictures/1.txt 表示移動(dòng)后的路徑位置,支持重命名 -
adb shell mv /sdcard/1.txt /sdcard/Pictures/1.txt
mv 表示移動(dòng)
/sdcard/1.txt 表示原路徑位置
/sdcard/Pictures/1.txt 表示移動(dòng)后的路徑位置,支持重命名 -
adb shell rename oldf.txt newf.txt
rename 表示重命名
oldf.txt 表示原名稱
newf.txt 表示修改后的名稱,重命名 -
adb shell rm test.txt
rm 表示刪除文件
test.txt 表示需要?jiǎng)h除的文件 -
adb shell rmdir test
rmdir 表示刪除文件夾
test 表示需要?jiǎng)h除的文件夾
需要注意的是,當(dāng)文件夾test中包含其他文件或文件夾的時(shí)候,會(huì)刪除失敗 -
adb shell rm -r test
rm 表示刪除
-r 表示遞歸到其子目錄
test 表示需要?jiǎng)h除的文件夾
該方法會(huì)刪除整個(gè)test文件夾,包括其子目錄中,請(qǐng)謹(jǐn)慎操作 -
adb shell find -name uiauto*
find 表示查找匹配
-name 表示名稱區(qū)分大小寫
uiauto* 表示匹配規(guī)則,其中*表示匹配任意數(shù)量的任意字符 -
adb shell find -iname pictures
find 表示查找匹配
-iname 表示不區(qū)分大小寫
pictures 表示需要查找的名稱 -
adb shell find -name [ASP]ictures
find 表示查找匹配
-name 表示名稱區(qū)分大小寫
[ASP]ictures 表示匹配規(guī)則,會(huì)匹配Aictures和Sictures還有Pictures -
adb shell input keyevent 3
input 表示輸入模式
keyevent 表示模擬按鍵
3 表示三大金剛中的主頁Home,對(duì)應(yīng)KeyCode碼表 -
adb shell input keyevent 4
input 表示輸入模式
keyevent 表示模擬按鍵
4 表示三大金剛中的返回Back,對(duì)應(yīng)KeyCode碼表 -
adb shell input keyevent 26
input 表示輸入模式
keyevent 表示模擬按鍵
26 表示電源Power,對(duì)應(yīng)KeyCode碼表 -
adb shell input keyevent 82
input 表示輸入模式
keyevent 表示模擬按鍵
82 表示三大金剛中的菜單Menu,對(duì)應(yīng)KeyCode碼表 -
adb shell input text 1234qwer
input 表示輸入模式
text 表示輸入字符/字符串
1234qwer 表示需要輸入的字符/字符串
注意 : 因?yàn)榫幋a的原因,故不支持輸入中文 -
adb shell ime
擴(kuò)展一下(對(duì)于編碼和極端輸入有用)
主要關(guān)注list和set,enable和disable僅作了解就行
ADB編碼問題解決方案
方案參考:查看ADBKeyboard
-
adb shell am broadcast -a ADB_INPUT_TEXT --es msg ‘你好世界’
ADBKeyboard解決輸入中文的編碼問題
-
adb shell am broadcast -a ADB_CLEAR_TEXT
清空輸入的文本
-
adb shell input tap x y
input 表示輸入模式
tap 表示點(diǎn)擊
x 表示需要點(diǎn)擊的位置橫坐標(biāo)
y 表示需要點(diǎn)擊的位置縱坐標(biāo) -
adb shell input swipe x1 y1 x2 y2
input 表示輸入模式
swipe 表示滑動(dòng)
x1 表示起始位置的橫坐標(biāo)
y1 表示起始位置的縱坐標(biāo)
x2 表示終點(diǎn)位置的橫坐標(biāo)
y2 表示重點(diǎn)位置的縱坐標(biāo) -
adb shell screencap /sdcard/Pictures/now.png
screencap 表示截圖
/sdcard/Pictures/now.png 表示截圖保存的位置 -
adb shell ps
ps 表示列出當(dāng)前所有任務(wù)(包括name和pid)
-
adb shell kill pid
kill 表示殺死進(jìn)程/服務(wù)
pid 表示任務(wù)的pid屬性 -
adb shell /system/bin/uiautomator dump /sdcard/now.xml
/system/bin/uiautomator 表示執(zhí)行uiautomator
dump 表示將當(dāng)前界面轉(zhuǎn)存為靜態(tài)文件
/sdcard/now.xml 轉(zhuǎn)存位置
/system/bin/目錄下為指令集合,亦可簡寫為adb shell uiautomator dump /sdcard/now.xml -
adb push .\1.txt /sdcard/1.txt
push 表示將PC端的指定文件推送到移動(dòng)端
.\1.txt 表示文件在PC端的位置,一般都是用相對(duì)路徑
/sdcard/1.txt 表示文件推送到移動(dòng)端保存的位置
多個(gè)設(shè)備同時(shí)在線需要指定設(shè)備名稱,如adb -s emulator-5554 push .\1.txt /sdcard/1.txt -
adb pull /sdcard/1.txt .\1.txt
pull 表示拉取移動(dòng)端文件到PC端
/sdcard/1.txt 表示文件在移動(dòng)端的位置
.\1.txt 表示拉取到PC端保存的位置
push和pull對(duì)應(yīng),記憶方法:pull中有兩個(gè)L,可以聯(lián)想到漢語中l(wèi)a,相反另外一個(gè)則為推送 -
adb remount
remount 表示掛載為可讀寫
常用于Permission Denied(權(quán)限不足)的問題,優(yōu)先考慮掛載,掛載失敗再考慮chmod提權(quán) -
adb shell chmod -R 777 path
chmod 表示提權(quán)
-R 表示提權(quán)遞歸到該目錄的子目錄,注意大寫
777 表示權(quán)限級(jí)別
path 表示需要提權(quán)的目錄 -
設(shè)備代理模式激活方式1
推送設(shè)備對(duì)應(yīng)的二進(jìn)制文件,adb push newagent-x86 /data/local/tmp/agent
cd到tmp,chmod -R 777 agent//提權(quán)
執(zhí)行adb shell /data/local/tmp/agent -mode=runagent -dport=19901,19902,19903 --password=123 -
設(shè)備代理模式激活方式2
路徑提權(quán),adb remount//remount succeeded
推送二進(jìn)制文件到system目錄 adb push newagent-x86 /system/bin/agent//直接推送會(huì)報(bào)錯(cuò),但并不影響激活效果
執(zhí)行二進(jìn)制文件 adb shell /system/bin/agent -mode=runagent -dport=19901,19902,19903 --password=123 -
設(shè)備代理模式激活方式3
exe程序批量激活
激活結(jié)果驗(yàn)證
查詢指定端口號(hào)19901,19902,19903是否存在通訊 adb shell netstat -ant