0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

adb常用命令的工作原理及使用介紹

哆啦安全 ? 來源:卓碼星球 ? 2023-07-24 16:44 ? 次閱讀

1.adb工作原理說明

adb命令是調試控制手機過程中用的比較多工具。adb是一個C/S架構的應用程序,主要由三部分組成:

(1)、運行在電腦端的adb client程序

在電腦終端中執(zhí)行adb --help可以查看當前支持的adb命令。當在命令行執(zhí)行程序adb相關命令的時候,adb程序嘗試連接到主機上的ADB服務器,如果找不到ADB服務器,adb程序自動啟動一個ADB服務器。ADB服務器啟動之后會和手機設備的adbd后臺服務進程建立連接后。adb client就可以向ADB servcer發(fā)送服務請求;

(2)、運行在PC端的adb server

ADB Server是運行在主機上的一個后臺進程。它的作用在于檢測USB端口監(jiān)聽設備的連接和拔除。ADB Server還需要將adb client的請求通過tcp連接方式轉發(fā)送到對應手機設備的adbd進程上去處理。

(3)、運行在設備端的常駐進程adb daemon

手機系統(tǒng)中的程序adbd作為一個后臺進程在Android設備系統(tǒng)中運行。它的作用是連接PC端的ADB服務器,接收PC端ADB 服務轉發(fā)過來的命令請求并進行處理。比如處理apk 安裝和卸載等請求。

adb整體架構如下圖所示:

0b21613c-29fe-11ee-a368-dac502259ad0.png

2.adb常用命令功能說明

(1).adb devices命令

adb devices命令列舉當前已經(jīng)連接到當前電腦的手機設備。比如執(zhí)行如下命令可以看到當前電腦連接的手機設備:

C:UsersQiang>adbdevices

Listofdevicesattached

89CX00000device

89CX11111device

以上命令表示當前電腦有兩臺手機設備通過數(shù)據(jù)線連接。當只有一臺手機設備的時候,可以直接通過adb 命令連接到手機設備。如果是多臺設備的話,需要使用adb -s 設備序列號來指定訪問那個設備。比如我需要訪問以上列舉的設備"89CX00000",可以參考如下:

C:UsersQiang>adb-s89CX00000shell

blueline:/$

blueline:/$

(2).adb connect命令

adb connect命令用來通過ip和端口的方式連接到手機設備。在安卓手機中,可以通過開發(fā)者選項中的網(wǎng)絡ADB調試功能項開啟adb 通過wifi來連接手機設備。如下圖示我個人手機打開網(wǎng)絡adb調試功能情況:

0b5382e8-29fe-11ee-a368-dac502259ad0.png

圖中顯示網(wǎng)絡調試地址為:192.168.31.217:5555??梢酝ㄟ^adb connect連接到該地址實現(xiàn)adb無線調試該設備的功能。如下所示:

C:\Users\Qiang>adb connect 192.168.31.217:5555
connected to 192.168.31.217:5555

C:\Users\Qiang>adb devices
List of devices attached
192.168.31.217:5555 device

C:\Users\Qiang>adb shell
OnePlus3:/ # id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid) context=u:r:su:s0
OnePlus3:/ #

(3).adb disconnect命令

adb disconnect命令將會斷開adb connect連接的設備。比如斷開"192.168.31.217:5555"設備。執(zhí)行如下:


(4).adb forward命令

adb forward命令用于端口轉發(fā),用法為:adb forward 本地端口 手機端口。端口轉發(fā)主要作用就是將手機端作為server服務器,電腦端作為客戶端。通過端口轉發(fā),電腦端可以使用轉發(fā)的端口開發(fā)socket程序連接到手機端,然后和手機中的server程序交互。

如果需要取消轉發(fā)的端口可以執(zhí)行命令:adb forward --remove 本地端口。 如果需要取消全部轉發(fā)的端口可以執(zhí)行:adb forward --remove-all。

(5).adb push命令

adb push命令是將PC端的文件放到手機端中。命令用法:adb push 電腦端文件路徑 手機端文件路徑。比如將PC端的文件放到手機外置卡,可以如下操作:

C:UsersQiang>adbpushE:TempDir est.txt/sdcard/test.txt

C:UsersQiang>

(6).adb pull命令

adb pull命令是將手機端的文件放到PC端中。命令用法:adb pull 手機端文件路徑 電腦端文件路徑。比如將手機端的文件放到電腦端,可以如下操作:

C:UsersQiang>adbpull/sdcard/test.txtE:TempDir est007.txt

C:UsersQiang>

(7).adb shell命令

adb shell命令功能主要是建立和手機端的終端命令行執(zhí)行通道。類似Ubuntu系統(tǒng)中的命令行終端。adb shell命令成功之后,當前終端執(zhí)行上下文變成了手機設備,就可以執(zhí)行手機端系統(tǒng)提供的各種命令。比如ls、pm、am等命令。如下執(zhí)行參考:

(8).adb install命令

adb install命令用來在電腦端安裝apk到手機端。如下參考執(zhí)行:

(9).adb install-multiple命令

adb install-multiple可以像adb install命令那樣安裝單個apk。同時支持安裝xapk文件,安裝的時候需要將xapk解壓,然后傳入所有的apk文件。比如需要adb安裝test.xapk,首先將test.xapk當成zip包解壓。然后使用如下命令安裝所有的apk文件:

C:UsersQiang>adbinstall-multiple"E: estconfig.arm64_v8a.apk""E: estconfig.armeabi_v7a.apk""E: est est.apk" Success

C:UsersQiang>

(10).adb uninstall命令

adb uninstall命令用來卸載安裝到手機的App應用。比如要卸載手機里面的Firefox應用,先找到該應用的包名為:org.mozilla.firefox。執(zhí)行如下命令進行卸載:

C:UsersQiang>adbuninstallorg.mozilla.firefox Success

C:UsersQiang>

(11).adb logcat命令

adb logcat命令用來輸出手機的運行日志信息,方便調試分析手機系統(tǒng)和App??梢酝ㄟ^adb logcat --help查看更高級的用法。比如清空日志信息執(zhí)行:adb logcat -c。比如只輸出TAG標簽WifiClientModeImpl的日志信息,可以執(zhí)行:adb logcat WifiClientModeImpl:D *:S。

(12).adb remount命令

adb remount命令將系統(tǒng)分區(qū)掛載為可讀寫權限。比如一般情況下想把一個文件放到/system目錄下面是沒有權限的。當adb有root條件下執(zhí)行adb remount之后,手機系統(tǒng)system分區(qū)就被掛載為可讀寫權限,就可以通過adb push將文件放到system目錄里面。如下演示:

C:UsersQiang>adbremount

remountsucceeded

C:UsersQiang>adbpush

E:Downloadsmyls/system/bin/myls E:Downloadsmyls:1filepushed,0skipped.24.7MB/s(68181bytesin0.003s)

C:UsersQiang>

(13).adb reboot命令

adb reboot命令主要是將手機重啟到某一個狀態(tài)。特別是在刷機過程中頻繁使用。主要是以下三個狀態(tài):

bootloader狀態(tài) 如果需要線刷手機系統(tǒng)即fastboot方式刷機的時候就需要手機進入bootloader模式,執(zhí)行:adb reboot bootloader。

recovery狀態(tài) 如果需要卡刷即recovery模式下刷入ota升級包,需要執(zhí)行:adb reboot recovery。這種情況下刷機需要把刷機包文件放到手機的外置卡/sdcard目錄下面。

sideload模式 sideload模式實質也是recovery模式刷機的一種,需要執(zhí)行:adb reboot sideload。該模式下刷機不需要將刷機包拷貝到手機外置卡。直接在電腦終端執(zhí)行:adb sideload 刷機包路徑。

(14).adb sideload命令

adb sideload在recovery模式下刷機使用。當recovery模式情況下開啟sideload功能之后,直接在電腦終端執(zhí)行:adb sideload 刷機包路徑完成刷機工作。

(15).adb root命令

adb root命令主要是通知手機中的adbd 以root權限重啟運行。執(zhí)行成功之后adb具備root權限。

(16).adb start-server命令

adb start-server命令表示啟動PC端的adb server進程。

(17).adb kill-server命令

adb kill-server命令表示停止PC端運行的adb server進程。

3.安卓手機中常用的命令

安卓手機系統(tǒng)某種意義上來說可以看成一個Linux系統(tǒng)。所以手機系統(tǒng)中存在Linux系統(tǒng)提供的ls、cat、top、ps等命令。除了提供Linux系統(tǒng)絕大部分的命令外,安卓系統(tǒng)還額外提供了許多命令。以下列舉一些常用的命令。

(1).屬性操作命令getprop/setprop

getprop命令獲取當前手機的屬性信息。比如獲取手機型號可以執(zhí)行:adb shell getprop ro.product.model。

setprop命令用來修改手機系統(tǒng)的屬性信息。比如修改屬性:adb shell setprop ro.debuggable 0。
?


(6).svc命令

svc命令提供了控制power、wifi、usb、bluetooth打開關閉等功能??梢酝ㄟ^adb shell svc help查看支持的功能列表。

以下列舉一些常用的命令: 藍牙打開:adb shell svc bluetooth enable。

藍牙關閉:adb shell svc bluetooth disable Wifi打開:adb shell svc wifi enable。

Wifi關閉:adb shell svc wifi disable。



(8).selinux狀態(tài)查看和設置

查看當前手機系統(tǒng)selinux狀態(tài)命令:

adb shell getenforce

關閉當前selinux:adb shell setenforce 0。

打開selinux:adb shell setenforce 1。

修改selinux狀態(tài)需要有root權限才行。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16136

    瀏覽量

    177162
  • ADB驅動
    +關注

    關注

    0

    文章

    13

    瀏覽量

    6259
  • Ubuntu系統(tǒng)

    關注

    0

    文章

    85

    瀏覽量

    3898

原文標題:adb常用命令使用介紹

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    windowsxp常用命令

    windowsxp常用命令   winver---------檢查windows版本 wmimgmt.msc----打開windows管理體系結構(wmi) wupdmgr-------
    發(fā)表于 01-10 09:05 ?1271次閱讀

    Ubuntu常用命令大全

    Ubuntu常用命令大全,包括常用管理目錄,系統(tǒng)命令,硬盤相關,內存相關,查看進程等命令
    發(fā)表于 01-06 11:16 ?0次下載

    DOS常用命令寶典

    DOS常用命令寶典,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-10 18:24 ?0次下載

    04-shell的常用命令匯總與vim

    shell的常用命令匯總
    發(fā)表于 12-17 16:04 ?0次下載

    vim常用命令

    vim常用命令
    發(fā)表于 01-08 15:59 ?3次下載

    redis常用命令總結

    本文是對redis常用命令總結。
    發(fā)表于 02-09 11:25 ?1586次閱讀

    Linux常用命令的全拼整理

    本文整理了常用命令的全拼,好像混進了什么奇怪的東西。
    的頭像 發(fā)表于 10-10 17:19 ?4636次閱讀

    linux常用命令手冊

    linux常用命令手冊免費下載。
    發(fā)表于 06-01 14:59 ?68次下載

    Memcache系統(tǒng)常用命令講解

    Memcache系統(tǒng)常用命令講解(無線電源技術商業(yè)計劃書)-該文檔為Memcache系統(tǒng)常用命令講解文檔,是一份還算不錯的參考文檔,感興趣的可以下載看看,,,,,,,,,,,,,,,,
    發(fā)表于 09-28 11:27 ?5次下載
    Memcache系統(tǒng)<b class='flag-5'>常用命令</b>講解

    linux常用命令大全

    linux常用命令大全,一些常用命令都可以找到
    發(fā)表于 03-03 09:20 ?0次下載

    DOS系統(tǒng)常用命令

    介紹了DOS系統(tǒng)的常用命令。
    發(fā)表于 03-21 14:59 ?0次下載

    Linux常用命令

    Linux常用命令
    的頭像 發(fā)表于 01-12 11:19 ?1106次閱讀

    Linux常用命令手冊分享

    linux常用命令合集
    發(fā)表于 04-26 11:46 ?1次下載

    linux常用命令及用法

    Linux是一種開源的操作系統(tǒng),它以穩(wěn)定、高效和安全的特點受到廣大用戶的喜愛。掌握Linux的常用命令及其用法對于操作系統(tǒng)的管理和開發(fā)都至關重要。本文將詳盡、詳實、細致地介紹Linux常用命令及其
    的頭像 發(fā)表于 11-17 09:47 ?616次閱讀

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發(fā)表于 11-05 15:39 ?102次閱讀
    詳解kubectl<b class='flag-5'>常用命令</b>