adb教程

初识adb

adb shell下载链接:https://wws.lanzoui.com/iNYNiq9l3yd

打开文件所在文件夹,将地址栏清空并键入cmd,然后回车,在cmd窗口键入adb shell测试use调试是否连接成功,如果出现美元符号表示连接成功。

adb命令

adb shell am monitor #执行该命令后在手机上打开要卸载的应用,获取包名

adb shell pm disable-user 包名 #停用应用

adb shell pm enable 包名 #恢复应用

adb install -r apk文件路径 #安装应用,直接将文件拖入cmd窗口可直接实现插入路径

adb shell pm list packages #显示包名列表

adb uninstall 包名 #卸载应用

adb安装软件实操

emulator代表实际序列号,如果有多个序号号的话需要指定一下,序列号可以通过"adb devices"查看

1
  adb -s emulator-5554  install rustdesk-1.2.7-aarch64-signed.apk

adb命令安装apk脚本

1
  mapfile -t files < <(find ./ -name "*.apk" | awk -F "/" '{print $2}'); for i in "${files[@]}"; do adb install "${i}"; done

Android adb 查看已经安装的应用、安装应用、卸载应用

adb shell pm list packages -[option] 命令查看已经安装的应用,列出包名,后面加不同的后缀输出不同信息。

adb shell pm list packages ####查看当前连接设备或者虚拟机的所有包

adb shell pm list packages -d #####只输出禁用的包。

adb shell pm list packages -e #####只输出启用的包。

adb shell pm list packages -s #####只输出系统的包。

adb shell pm list packages -i #####只输出包和安装信息(安装来源)。

adb shell pm list packages -u #####只输出包和未安装包信息(安装来源)。

adb shell pm list packages -i #####只输出包和安装信息(安装来源)。

adb shell pm list packages -f #####输出包和包相关联的文件

adb shell pm list packages -3 #####输出所有第三方包。

adb shell pm list packages -[option] "sina" #####按照要求搜索包。

想要获取应用的详细信息需要使用以下命令

adb shell dumpsys package [pkgName]

将安装包pull到本地

1.查询应用安装包路径 adb shell pm list packages -f 2.将安装包pull到本地 adb pull [安装包路径] [本地路径]

使用示例
1
2
3
$ adb shell pm list packages -3 -f | grep "autojs"
package:/data/app/~~EM3uClqaGqOJmFtgZzu5mg==/org.autojs.autojs6-uw8ReTCkJ0WgHz6xbYclsw==/base.apk=org.autojs.autojs6
package:/data/app/~~2QN6HKjtOdxJUztZ3psK-Q==/org.autojs.autojs6.test-xnGjPdkp-SKSPTDsWvP1PQ==/base.apk=org.autojs.autojs6.test
1
adb pull /data/app/~~2QN6HKjtOdxJUztZ3psK-Q==/org.autojs.autojs6.test-xnGjPdkp-SKSPTDsWvP1PQ==/base.apk ./

有些手机需要解锁system分区(如小米)

输入:adb root

输入:adb disable-verity

查看手机连接状态:adb device

获得root权限:root

设置超级用户模式 : su

退出su : exit

重启命令:adb reboot

重启到Rec:adb reboot recovery

重启到Fastboot:adb reboot bootloader

推送ROM包:adb sideload <Rom包>

把文件从手机中复制到电脑上 : adb pull <手机路径> <电脑路径>

把文件从电脑复制到手机上 : adb push <电脑路径> <手机路径>

重新挂载文件系统 : adb remount

安装软件 : adb install apk文件名称.apk

卸载apk软件 : adb uninstall apk包名.apk

Fastboot命令:

查看连接状态 :fastboot devices

重启 :fastboot reboot

重启到Fastboot :fastboot reboot-bootloader

除非你很了解该命令,否则以下命令请谨慎使用:

解锁 :fastboot flashing unlock或fastboot oem unlock

上锁 :fastboot flashing lock或fastboot oem lock

清除分区数据 :fastboot erase <boot/system/data/cache/userdata/recovery>

清除分区(四清) :fastboot erase system -w

格式化分区数据 :fastboot format <boot/system/data/cache/userdata/recovery>

烧写分区 :fastboot flash < boot/system recovery/radio/bootloader splash1/> <*.img>

以下是常用命令,可供大家查阅:

启动 adb server 命令:adb start-server

停止 adb server 命令:adb kill-server

查看 adb 版本:adb version

安装 APK命令:adb install [-lrtsdg] <path_to_apk>

卸载应用命令:adb uninstall [-k] <packagename>

清除应用数据与缓存:adb shell pm clear <packagename>

查看正在运行的 Services命令:adb shell dumpsys activity services [<packagename>]

查看应用详细信息命令:adb shell dumpsys package <packagename>

发送广播,命令格式:adb shell am broadcast [options] <INTENT>

强制停止应用命令:adb shell am force-stop <packagename>

文件管理复制设备里的文件到电脑:adb pull <设备里的文件路径> [电脑上的目录]

复制电脑里的文件到设备:adb push <电脑上的文件路径> <设备里的目录>

电池状况命令:adb shell dumpsys battery

adb help, 列出所有的选项说明及子命令

已停用应用包名(个人某手机已停用应用):

com.ivvi.browser 自带浏览器

com.android.fmradio FM电台

com.upgadata.ivvi 游戏电台

com.iflytek.inputmethod 讯飞输入法

com.yulong.freezeroom 应用冻结

com.icoolme.android.weather 最美天气

com.yulong.android.videoplayer 视频

com.redstone.ota.ui 系统更新

com.coolpad.music 音乐

com.android.stk sim卡应用

com.yulong.android.backup 备份与恢复

安卓adb shell常用的命令

install/uninstall,在设备上安装 APK。

1
  adb install path_to_apk

dumpsys(dump system)比较强大的系统服务查询-安卓无需电脑使用adb连接本机,免root控制充电

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 查看当前系统所支持的dump服务
adb shell dumpsys -l

# 比如电池信息
adb shell dumpsys battery

adb shell dumpsys battery set status 1
#设置电池为非充电状态
adb shell dumpsys battery set status 2
#设置电池为充电状态
# 一些就手机安装linux做服务器之后,又不能一直充电,就可以使用这个方法来自动充放电,保护电池。

adb shell dumpsys battery set level 100
#设置电量百分比
adb shell dumpsys battery unplug
#设置断开充电
# 可以拿来做伪装电量。

adb shell dumpsys battery reset
# 恢复

wm(windows manager)窗口管理器,可以设置一些屏幕参数。

1
2
3
4
5
  # 查看分辨率
  adb shell wm size

  # 查看dpi
  adb shell wm density

logcat,查看日志,方便提交bug。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
  adb logcat "*:W"

  # 日志输出级别
  V —— Verbose(最低,输出得最多)
  D —— Debug
  I —— Info
  W —— Warning
  E —— Error
  F —— Fatal
  S —— Silent(最高,啥也不输出)

  # 清理日志
  adb logcat -c

reboot,重启。

1
2
3
4
5
6
7
8
  #重启
  adb reboot

  #重启到recovery模式
  adb reboot recovery

  #重启到bl模式
  adb reboot bootloader

消除ADB错误“more than one device and emulator”的方法

当我连着手机充电的时候,启动模拟器调试,执行ADB指令时,报错。

1
2
3
4
  $ adb shell
  error: more than one device and emulator
  $ adb install e:\good.apk
  error: more than one device and emulator

碰到这种情况,首先要查一下,是不是真的有多个设备或模拟器。

1
2
3
4
  $ adb devices
  List of devices attached
  emulator-5554   device
  adfadcb96b03cf02        device

发现还真是多个设备,那就需要为ADB命令指定设备的序列号了。

1
  $ adb -s emulator-5554 shell

也就是如上所示,给命令加上-s的参数就可以了!

如果实际上只有一个设备或模拟器,并且查到有offline的状态; 那就说明是ADB本身的BUG所导致的,就需要用如下的方法处理下了:

1
2
  $ adb kill-server
  $ taskkill /f /im adb.exe

第一条命令是杀ADB的服务,第二条命令是杀ADB的进程! 如果第一条没有用,才考虑用第二条命令再试试看的

通过ADB命令备份和恢复Android手机信息

在Android设备上,ADB(Android Debug Bridge)是一个强大的命令行工具,可以用于与设备进行通信和控制设备。通过ADB命令,你可以备份和恢复手机信息,包括应用数据、联系人、短信等。

备份手机信息

连接设备

首先,确保你的Android设备已开启开发者选项和USB调试模式。然后,通过USB将设备连接到电脑。

安装ADB工具

在电脑上安装ADB工具。你可以从Android官方网站下载适用于Windows、Mac和Linux的ADB工具。

打开命令行窗口

打开命令行窗口(Windows用户可以使用命令提示符或PowerShell,Mac和Linux用户可以使用终端)。

检测设备

在命令行窗口中输入以下命令,检测设备是否正确连接: adb devices 如果设备已正确连接,你应该能在列表中看到你的设备。

备份手机信息

使用以下命令备份手机信息: adb backup -all 该命令将备份应用数据和设备设置,并生成一个名为backup.ab的文件。默认情况下,该文件将保存在电脑的当前目录下。

加密备份文件(可选)

如果你想加密备份文件,可以在备份时输入密码。输入以下命令: adb backup -all -password yourpassword

恢复手机信息

如果需要恢复手机信息,请按照以下步骤操作:

连接设备

通过USB将设备连接到电脑。

打开命令行窗口

打开命令行窗口(Windows用户可以使用命令提示符或PowerShell,Mac和Linux用户可以使用终端)。

恢复备份文件

使用以下命令恢复备份文件: adb restore backup.ab点击恢复数据即可。

adb按键

adb-按键

唤醒屏幕+划动屏幕
1
  adb shell input keyevent 224; adb shell input keyevent 82;
adb shell input keyevent (具体操作) – 模拟按键事件 KeyCode
1
2
  adb shell input keyevent 4		# 这条命令相当于按了设备的Backkey键
  adb shell input keyevent  82 	# 可以解锁屏幕
每个数字与keycode对应表如下:
0KEYCODE_UNKNOWN
1KEYCODE_MENU
2KEYCODE_SOFT_RIGHT
3KEYCODE_HOME
4KEYCODE_BACK
5KEYCODE_CALL
6KEYCODE_ENDCALL
7KEYCODE_0
8KEYCODE_1
9KEYCODE_2
10KEYCODE_3
11KEYCODE_4
12KEYCODE_5
13KEYCODE_6
14KEYCODE_7
15KEYCODE_8
16KEYCODE_9
17KEYCODE_STAR
18KEYCODE_POUND
19KEYCODE_DPAD_UP
20KEYCODE_DPAD_DOWN
21KEYCODE_DPAD_LEFT
22KEYCODE_DPAD_RIGHT
23KEYCODE_DPAD_CENTER
24KEYCODE_VOLUME_UP
25KEYCODE_VOLUME_DOWN
26KEYCODE_POWER
27KEYCODE_CAMERA
28KEYCODE_CLEAR
29KEYCODE_A
30KEYCODE_B
31KEYCODE_C
32KEYCODE_D
33KEYCODE_E
34KEYCODE_F
35KEYCODE_G
36KEYCODE_H
37KEYCODE_I
38KEYCODE_J
39KEYCODE_K
40KEYCODE_L
41KEYCODE_M
42KEYCODE_N
43KEYCODE_O
44KEYCODE_P
45KEYCODE_Q
46KEYCODE_R
47KEYCODE_S
48KEYCODE_T
49KEYCODE_U
50KEYCODE_V
51KEYCODE_W
52KEYCODE_X
53KEYCODE_Y
54KEYCODE_Z
55KEYCODE_COMMA
56KEYCODE_PERIOD
57KEYCODE_ALT_LEFT
58KEYCODE_ALT_RIGHT
59KEYCODE_SHIFT_LEFT
60KEYCODE_SHIFT_RIGHT
61KEYCODE_TAB
62KEYCODE_SPACE
63KEYCODE_SYM
64KEYCODE_EXPLORER
65KEYCODE_ENVELOPE
66KEYCODE_ENTER
67KEYCODE_DEL
68KEYCODE_GRAVE
69KEYCODE_MINUS
70KEYCODE_EQUALS
71KEYCODE_LEFT_BRACKET
72KEYCODE_RIGHT_BRACKET
73KEYCODE_BACKSLASH
74KEYCODE_SEMICOLON
75KEYCODE_APOSTROPHE
76KEYCODE_SLASH
77KEYCODE_AT
78KEYCODE_NUM
79KEYCODE_HEADSETHOOK
80KEYCODE_FOCUS
81KEYCODE_PLUS
82KEYCODE_MENU
83KEYCODE_NOTIFICATION
84KEYCODE_SEARCH
85TAG_LAST_KEYCODE
电话键
KEYCODE_CALL拨号键5
KEYCODE_ENDCALL挂机键6
KEYCODE_HOME按键Home3
KEYCODE_MENU菜单键82
KEYCODE_BACK返回键4
KEYCODE_SEARCH搜索键84
KEYCODE_CAMERA拍照键27
KEYCODE_FOCUS拍照对焦键80
KEYCODE_POWER电源键26
KEYCODE_NOTIFICATION通知键83
KEYCODE_MUTE话筒静音键91
KEYCODE_VOLUME_MUTE扬声器静音键164
KEYCODE_VOLUME_UP音量增加键24
KEYCODE_VOLUME_DOWN音量减小键25
控制键
KEYCODE_ENTER回车键66
KEYCODE_ESCAPEESC键111
KEYCODE_DPAD_CENTER导航键 确定键23
KEYCODE_DPAD_UP导航键 向上19
KEYCODE_DPAD_DOWN导航键 向下20
KEYCODE_DPAD_LEFT导航键 向左21
KEYCODE_DPAD_RIGHT导航键 向右22
KEYCODE_MOVE_HOME光标移动到开始键122
KEYCODE_MOVE_END光标移动到末尾键123
KEYCODE_PAGE_UP向上翻页键92
KEYCODE_PAGE_DOWN向下翻页键93
KEYCODE_DEL退格键67
KEYCODE_FORWARD_DEL删除键112
KEYCODE_INSERT插入键124
KEYCODE_TABTab键61
KEYCODE_NUM_LOCK小键盘锁143
KEYCODE_CAPS_LOCK大写锁定键115
KEYCODE_BREAKBreak/Pause键121
KEYCODE_SCROLL_LOCK滚动锁定键116
KEYCODE_ZOOM_IN放大键168
KEYCODE_ZOOM_OUT缩小键169
按键
KEYCODE_0按键'0'7
KEYCODE_1按键'1'8
KEYCODE_2按键'2'9
KEYCODE_3按键'3'10
KEYCODE_4按键'4'11
KEYCODE_5按键'5'12
KEYCODE_6按键'6'13
KEYCODE_7按键'7'14
KEYCODE_8按键'8'15
KEYCODE_9按键'9'16
KEYCODE_A按键'A'29
KEYCODE_B按键'B'30
KEYCODE_C按键'C'31
KEYCODE_D按键'D'32
KEYCODE_E按键'E'33
KEYCODE_F按键'F'34
KEYCODE_G按键'G'35
KEYCODE_H按键'H'36
KEYCODE_I按键'I'37
KEYCODE_J按键'J'38
KEYCODE_K按键'K'39
KEYCODE_L按键'L'40
KEYCODE_M按键'M'41
KEYCODE_N按键'N'42
KEYCODE_O按键'O'43
KEYCODE_P按键'P'44
KEYCODE_Q按键'Q'45
KEYCODE_R按键'R'46
KEYCODE_S按键'S'47
KEYCODE_T按键'T'48
KEYCODE_U按键'U'49
KEYCODE_V按键'V'50
KEYCODE_W按键'W'51
KEYCODE_X按键'X'52
KEYCODE_Y按键'Y'53
KEYCODE_Z按键'Z'54
多媒体键
KEYCODE_MEDIA_PLAY多媒体键 播放
KEYCODE_MEDIA_STOP多媒体键 停止
KEYCODE_MEDIA_PAUSE多媒体键 暂停
KEYCODE_MEDIA_PLAY_PAUSE多媒体键 播放/暂停
KEYCODE_MEDIA_FAST_FORWARD多媒体键 快进
KEYCODE_MEDIA_REWIND多媒体键 快退
KEYCODE_MEDIA_NEXT多媒体键 下一首
KEYCODE_MEDIA_PREVIOUS多媒体键 上一首
KEYCODE_MEDIA_CLOSE多媒体键 关闭
KEYCODE_MEDIA_EJECT多媒体键 弹出
KEYCODE_MEDIA_RECORD多媒体键 录音
F1~F12功能键
KEYCODE_F1按键F1
KEYCODE_F2按键F2
KEYCODE_F3按键F3
KEYCODE_F4按键F4
KEYCODE_F5按键F5
KEYCODE_F6按键F6
KEYCODE_F7按键F7
KEYCODE_F8按键F8
KEYCODE_F9按键F9
KEYCODE_F10按键F10
KEYCODE_F11按键F11
KEYCODE_F12按键F12
符号按键
KEYCODE_PLUS按键'+'
KEYCODE_MINUS按键'-'
KEYCODE_STAR按键'*'
KEYCODE_SLASH按键'/'
KEYCODE_EQUALS按键'='
KEYCODE_AT按键'@'
KEYCODE_POUND按键'#'
KEYCODE_APOSTROPHE按键''' (单引号)
KEYCODE_BACKSLASH按键'\'
KEYCODE_COMMA按键','
KEYCODE_PERIOD按键'.'
KEYCODE_LEFT_BRACKET按键'['
KEYCODE_RIGHT_BRACKET按键']'
KEYCODE_SEMICOLON按键';'
KEYCODE_GRAVE按键'`'
KEYCODE_SPACE空格键
小键盘按键
KEYCODE_NUMPAD_0小键盘按键'0'
KEYCODE_NUMPAD_1小键盘按键'1'
KEYCODE_NUMPAD_2小键盘按键'2'
KEYCODE_NUMPAD_3小键盘按键'3'
KEYCODE_NUMPAD_4小键盘按键'4'
KEYCODE_NUMPAD_5小键盘按键'5'
KEYCODE_NUMPAD_6小键盘按键'6'
KEYCODE_NUMPAD_7小键盘按键'7'
KEYCODE_NUMPAD_8小键盘按键'8'
KEYCODE_NUMPAD_9小键盘按键'9'
KEYCODE_NUMPAD_ADD小键盘按键'+'
KEYCODE_NUMPAD_SUBTRACT小键盘按键'-'
KEYCODE_NUMPAD_MULTIPLY小键盘按键'*'
KEYCODE_NUMPAD_DIVIDE小键盘按键'/'
KEYCODE_NUMPAD_EQUALS小键盘按键'='
KEYCODE_NUMPAD_COMMA小键盘按键','
KEYCODE_NUMPAD_DOT小键盘按键'.'
KEYCODE_NUMPAD_LEFT_PAREN小键盘按键'('
KEYCODE_NUMPAD_RIGHT_PAREN小键盘按键')'
KEYCODE_NUMPAD_ENTER小键盘按键回车

adb推拉文件或文件夹

adb拉取文件

redeme.txt文件会从安卓设备被拷贝到PC端temp目录下

1
  adb pull /storage/emulated/0/Download/book/redeme.txt D:\cygwin\home\temp
adb拉取文件夹

拉取文件夹与拉取文件相比,多了一个-a选项

book文件夹会从安卓设备被拷贝到PC端temp-book目录下,temp-book目录如果不存在时会自动新建该目录,如果不指定新建目录,则book目录下的所以文件会被拷贝到temp目录下,而不是book目录被拷贝到temp-book目录下

1
  adb pull -a /storage/emulated/0/Download/book/嵌入式/ D:\cygwin\home\temp-book
adb推送文件

redeme.txt文件会从PC端被拷贝到安卓设备的test目录下

1
  adb push D:\cygwin\home\temp\redeme.txt /storage/emulated/0/Download/test
adb推送文件夹

推送文件与推送文件夹的命令模式一样

temp-book文件夹会从PC端被拷贝到安卓设备的test目录下,test目录下会看到temp-book目录

1
  adb push D:\cygwin\home\temp\temp-book /storage/emulated/0/Download/test

adb 读取短信,通话记录、日历等的方法

读取手机短信:

1
adb shell content query --uri content://sms/

这将列出所有短信消息的详细信息,例如短信内容、发送者和接收者的电话号码、时间戳等。

读取手机通话记录:

1
adb shell content query --uri content://call_log/calls

这将列出所有通话记录的详细信息,例如通话类型、通话时间、对方号码、通话持续时间等。

读取手机日历:

1
adb shell content query --uri content://com.android.calendar/events

这将列出所有日历事件的详细信息,例如事件名称、开始时间、结束时间、位置等。

读取手机通讯录:

1
adb shell content query --uri content://contacts/phones/

请注意,读取手机短信、通话记录、日历和通讯录需要在手机上启用开发人员选项,并在ADB连接时授权访问。您可以在手机设置中找到开发人员选项,并启用“USB调试”选项。在执行上述命令之前,还需要在计算机上安装ADB,并确保ADB已正确连接到手机。

Licensed under CC BY-NC-SA 4.0