国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

adb命令丨adb push命令大全_adb操控手機(jī)和指令

2023-07-27 16:43 作者:libilibivaga  | 我要投稿

【ADB命令】adb push命令總結(jié)

adb push命令大全操控手機(jī)和指令

運(yùn)行在 Android 設(shè)備上的adb后臺(tái)進(jìn)程


執(zhí)行 adb shell ps | grep adbd ,可以找到該后臺(tái)進(jìn)程,windows 請(qǐng)使用 findstr 替代 grep

[xuxu:~]$ adb shell ps | grep adbd
root 23227 1 6672 832 ffffffff 00019bb4 S /sbin/adbd

adb連接手機(jī)進(jìn)行調(diào)試有兩種方式,一種使用USB線,一種使用無線WiFi。
第一種??使用USB線連接
1. 在手機(jī)上啟用USB調(diào)試
2. CMD窗口輸入adb devices,此時(shí)可以看到自己的設(shè)備。
【注】:無法看到自己設(shè)備時(shí),查看手機(jī)USB調(diào)試是否打開;PC端是否安裝手機(jī)驅(qū)動(dòng)。
1. 硬件狀態(tài)正常。
包括 Android 設(shè)備處于正常開機(jī)狀態(tài),USB 連接線和各種接口完好。
2. Android 設(shè)備的開發(fā)者選項(xiàng)和 USB 調(diào)試模式已開啟。
可以到「設(shè)置」-「開發(fā)者選項(xiàng)」-「Android 調(diào)試」查看。
如果在設(shè)置里找不到開發(fā)者選項(xiàng),那需要通過一個(gè)彩蛋來讓它顯示出來:在「設(shè)置」-「關(guān)于手機(jī)」連續(xù)點(diǎn)擊「版本號(hào)」7 次。
3. 設(shè)備驅(qū)動(dòng)狀態(tài)正常。
這一點(diǎn)在 Linux 和 Mac OS X 下基本不用操心,在 Windows 下有可能遇到需要安裝驅(qū)動(dòng)的情況,確認(rèn)這一點(diǎn)可以右鍵「計(jì)算機(jī)」-「屬性」,到「設(shè)備管理器」里查看相關(guān)設(shè)備上是否有黃色感嘆號(hào)或問號(hào),如果沒有就說明驅(qū)動(dòng)狀態(tài)已經(jīng)好了。否則可以下載一個(gè)手機(jī)助手類程序來安裝驅(qū)動(dòng)先。
第二種??使用無線WiFi連接
首先先了解一點(diǎn)底層的知識(shí):
Android系統(tǒng)底層運(yùn)行著一個(gè)服務(wù)(adbd),用于響應(yīng)和管理大家在電腦端的adb命令連接,這個(gè)服務(wù)在啟動(dòng)時(shí)會(huì)根據(jù)手機(jī)的配置監(jiān)聽USB連接或網(wǎng)絡(luò)其中之一。配置的屬性為:service.adb.tcp.port,也就是監(jiān)聽的網(wǎng)絡(luò)端口
* 以上屬性的值 > 0:adbd將監(jiān)聽網(wǎng)絡(luò)對(duì)應(yīng)的端口(一般為5555)
* 以上屬性的值 <=-1:adbd將監(jiān)聽USB
【注】:
1、 將 Android 設(shè)備與要運(yùn)行 adb 的電腦連接到同一個(gè)局域網(wǎng),比如連到同一個(gè) WiFi。
2、將設(shè)備與電腦通過 USB 線連接,可通過命令 adb devices 查看是否連接成功
3、 讓設(shè)備在 5555 端口監(jiān)聽 TCP/IP 連接:
adb tcpip 5555
4、斷開 USB 連接。
5、找到設(shè)備的 IP 地址。
一般能在「設(shè)置」-「關(guān)于手機(jī)」-「狀態(tài)信息」-「IP地址」找到,也可以使用命令查看;
adb shell ifconfig | grep Mask
或者
adb shell ifconfig wlan0
【注】:如果一開始沒有USB連接線,Android設(shè)備中沒有開啟adbd服務(wù)怎么辦?
1、在 Android 設(shè)備上安裝一個(gè)終端模擬器。
已經(jīng)安裝過的設(shè)備可以跳過此步。終端模擬器下載地址是: Terminal Emulator for Android Downloads
2、 將 Android 設(shè)備與要運(yùn)行 adb 的電腦連接到同一個(gè)局域網(wǎng),比如連到同一個(gè) WiFi。
3、 打開 Android 設(shè)備上的終端模擬器,在里面依次運(yùn)行命令:
su
setprop service.adb.tcp.port 5555
4、在電腦上通過adb和Android設(shè)備的IP地址連接Android設(shè)備。
adb connect IP地址:端口號(hào)
【注】:有的設(shè)備,需要在第四步執(zhí)行之前,需要重啟adbd服務(wù),可以執(zhí)行下面命令:
restart adbd
#如果該命令無效,嘗試以下命令:
adbd stop
adbd start---------------------------------------------------------------------------------------------------
常用命令總結(jié):
(1)adb設(shè)置全局代{過}{濾}理
// 設(shè)置代{過}{濾}理
adb shell settings put global http_proxy IP地址:端口號(hào)
// 移除代{過}{濾}理
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)查看是否可以找到設(shè)備
adb devices
【注】:查看設(shè)備連接狀態(tài)? ?adb devices -l
(3)將apk安裝到手機(jī)中,或者將apk卸載(前提:手機(jī)連接上電腦)
adb install??xxx.apk;
adb uninstall xxx.apk;
【注】:adb uninstall +apk的包名,報(bào)錯(cuò):
Failure [DELETE_FAILED_INTERNAL_ERROR]
首先,安裝后進(jìn)入到shell中,pm path 包名,找到該包的位置,
然后,去掉“.apk”這個(gè)文件后綴,還需要去掉“-1”,因?yàn)椤?1”它不是包名的一部分,而多次重復(fù)安裝時(shí)Android系統(tǒng)自動(dòng)加上的,然后執(zhí)行命令:adb uninstall??包名,就可以成功了。
安裝/卸載設(shè)備中的應(yīng)用:(前提:adb shell先進(jìn)入到設(shè)備中)
pm??install /sdcard/xxx.apk
pm uninstall [packagename]
清空指定包名應(yīng)用的數(shù)據(jù):
pm clear [packagename]
(4)指定adb server的網(wǎng)絡(luò)端口
adb -P <port> start-server
【注】:ADB的默認(rèn)端口為 5037;
(5)將某內(nèi)容寫入到文件中
adb shell echo "1233" >> /data/local/tmp/xxx.config
(6)查看Android設(shè)備的CPU架構(gòu)信息
adb shell??cat /proc/cpuinfo

(3)對(duì)程序進(jìn)行調(diào)試
adb shell am start -D -n [包名]/[包名].[活動(dòng)activity名稱]
【注】:-D 的意思是用Debug方式啟動(dòng)應(yīng)用;
(3)啟動(dòng)一個(gè)應(yīng)用/服務(wù)/發(fā)送一個(gè)廣播
adb shell am start -n [包名]/[包名].[活動(dòng)activity名稱]
adb shell am startservice -n [包(package)名]/[包名].[服務(wù)(service)名]
adb shell am broadcast -a [廣播動(dòng)作]
例:adb shell am broadcast -a com.android.captureCamera.CaptureCameraService??//啟動(dòng)nubia手機(jī)的抓拍功能
(4)查看是否能連接手機(jī),進(jìn)入到shell窗口
adb shell(注: 為了進(jìn)入手機(jī)或模擬器的shell內(nèi)核)
獲取用root權(quán)限:su
如果root用戶切換到普通用戶:su shell
查看當(dāng)前目錄下的所有文件,包含隱藏文件:ls -al
創(chuàng)建目錄/刪除目錄:mkdir xxx / rmdir xxx
新建文件/刪除文件:
(4)adb logcat
<1>打印指定Tag的日志信息:
adb logcat -s tag
【注】:“-s”選項(xiàng) : 設(shè)置默認(rèn)的過濾器,
例如:想要輸出 “System.out” 標(biāo)簽的信息, 就可以使用如下命令
adb logcat -s System.out
<2>打印當(dāng)前某個(gè)應(yīng)用的日志信息
adb logcat |findstr pname/pid/keyword
【補(bǔ)充】:在運(yùn)行adb shell后,也可以:logcat |grep 某個(gè)應(yīng)用的名;
<3>打印日志重定向到某個(gè)文件中
adb shell logcat >D:/123/logcat.log
adb shell logcat??//持續(xù)輸出日志,直到Ctrl+C
adb shell logcat -d? ? //一次性輸出日志緩存,不會(huì)阻塞
adb shell logcat -c? ? //清空日志緩存
(5)adb push E:/burpnew.cer /sdcard/Download
(6)如果有多個(gè)設(shè)備,連接到某個(gè)設(shè)備/模擬器:
adb -s xxx(設(shè)備的名稱) shell
adb -s emulator-5554 shell
(7)adb pull/adb push
注:當(dāng)我們執(zhí)行默認(rèn)adb命令時(shí)(adb pull或adb push等),都是以shell身份在執(zhí)行,而非root身份,此時(shí)對(duì)于命令中的目錄權(quán)限就要特別注意,當(dāng)訪問的目錄需要root權(quán)限,或只有程序自身才有訪問權(quán)限的目錄時(shí)(典型的如/data/data下的目錄),雖然目錄和文件都在,但命令仍然是無法訪問的,提示remote object does not exist或permission denied。
1、將電腦上的文件上傳到手機(jī)中
adb push E:/123/xx.txt??/data/local/tmp;
如果在執(zhí)行命令時(shí)報(bào)錯(cuò),需要查看一下/data/local/tmp文件夾的讀寫權(quán)限定義;

可以看到該目錄的擁有者和所屬組有的屬于shell,有的屬于root,shell和root具有讀寫執(zhí)行的權(quán)限,但第三個(gè)權(quán)限位為--x,即意味著除root和shell用戶外,其它用戶一律沒有讀寫的權(quán)限。但我們?cè)谶\(yùn)行該app時(shí),默認(rèn)的用戶卻是該進(jìn)程本身,并非root或shell,所以此時(shí)是沒有辦法寫入任何文件到/data/local/tmp的。要想這樣做必須先通過代碼動(dòng)態(tài)改變當(dāng)前用戶模式到root模式,才能繼續(xù)往下操作。
解決辦法:改變/data/local/tmp/的權(quán)限,例如設(shè)置:chmod 777 /data/local/tmp/*
2、將手機(jī)中的文件下拉到電腦中
使用場景:測(cè)試app本地敏感數(shù)據(jù)時(shí),一般把/data/data/中的文件,從手機(jī)中下拉到電腦上進(jìn)行查看;
adb pull /data/data/包名/xxx??E:/123/
【注】:目錄/data/data/包名/是程序自身目錄,不能直接下拉到電腦中,可以進(jìn)入到shell后,修改/data/data/包名/xx/的權(quán)限,例如:chmod 777 xxx,然后將相應(yīng)的目錄復(fù)制到/data/local/tmp目錄中,cp -r /data/data/包名/xxx/.??/data/local/tmp;然后,退出shell,以root用戶進(jìn)行adb,adb root,然后再執(zhí)行下拉命令。

(8)檢查adb的版本
注:安卓在4.x上的版本都要求adb版本必須在1.0.31版本及以上
adb version
查看adb的端口是什么?(注:一般adb端口是5037)
adb nodaemon server
判斷端口
netstat -ano|findstr "5037"
關(guān)閉/重啟adb
adb kill-server
adb start-server
(8)獲取設(shè)備列表及設(shè)備的狀態(tài)
adb devices

(8)截屏操作
adb shell screencap -p 截圖文件路徑
例:adb shell screencap??-p /sdcard/tmp.png
(8)輸入文本內(nèi)容
adb shell input text 【需要輸入文本框內(nèi)容】
(8)設(shè)備的端口轉(zhuǎn)發(fā)

【用法】:adb forward[(遠(yuǎn)程端)協(xié)議:端口號(hào)][(設(shè)備端)協(xié)議:端口號(hào)]
例如:
adb forward tcp:23946??tcp:23946
adb forward tcp:8700 jdwp:1786
【注】: JDWP(Java Debug Wire Protocol)是一個(gè)為 Java 調(diào)試而設(shè)計(jì)的一個(gè)通訊交互協(xié)議,它定義了調(diào)試器和被調(diào)試程序之間傳遞的信息的格式。在JPDA(Java Platform Debugger Architecture)中,它定義了調(diào)試器(debugger)和被調(diào)試的 Java 虛擬機(jī)(target vm)之間的通信協(xié)議。
(8)查看設(shè)備中可以被調(diào)試的應(yīng)用的進(jìn)程號(hào)
adb jdwp
(8)非root設(shè)備中查看指定debug模式的包名應(yīng)用沙盒數(shù)據(jù)
run-as [package name]
(8)查看設(shè)備的ip地址(查看設(shè)備的網(wǎng)絡(luò)連接情況)
adb shell netcfg
(8)查看設(shè)備的端口號(hào)信息
adb shell netstat
(8)查看當(dāng)前應(yīng)用的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.xml>D:/123/456.txt
<2> 用dexdump查看dex文件的詳細(xì)信息
【用法】:dexdump [dex文件路徑]
(8)進(jìn)程命令
<1> 查看當(dāng)前進(jìn)程的內(nèi)存加載情況
ps -ef|grep 應(yīng)用名? ?? ?? ?//查看某個(gè)應(yīng)用的運(yùn)行情況
cat /proc/[pid]/maps | grep 應(yīng)用名? ?//查看當(dāng)前進(jìn)程的內(nèi)存映射信息,比如加載了哪些so文件、dex文件等
<2>查看進(jìn)程的狀態(tài)信息
cat /proc/[pid]/status
(9)adb shell dumpsys命令
adb shell dumpsys,默認(rèn)打印出當(dāng)前系統(tǒng)所有service信息,在后面可加上具體的服務(wù)名
查看當(dāng)前運(yùn)行應(yīng)用、進(jìn)程的包名與Activity名,可運(yùn)行:
adb shell dumpsys window | findstr mCurrentFocus


zhihu.com/people/wangsicong520

adb命令丨adb push命令大全_adb操控手機(jī)和指令的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
山丹县| 昌邑市| 凌海市| 景泰县| 平舆县| 临泉县| 胶州市| 岚皋县| 磐安县| 苏尼特右旗| 五原县| 枝江市| 河西区| 积石山| 榆林市| 营山县| 永丰县| 阳信县| 高阳县| 延庆县| 布尔津县| 南华县| 万盛区| 琼中| 岐山县| 清远市| 罗平县| 文登市| 大厂| 涪陵区| 阿拉尔市| 安远县| 汉沽区| 永顺县| 秦皇岛市| 府谷县| 特克斯县| 衢州市| 庄河市| 邹城市| 凉城县|