[安卓逆向]android adb常用命令及使用案例

[安卓逆向]android adb常用命令

一、调试相关

1.开启adb服务

adb start-server

2.关闭adb服务

adb stop-server

3.列出所有连接的设备

adb devices

4.多个设备情况下使用adb

//多个设备情况下使用d e s命令对某个设备执行操作
adb [-d|-e|-s] 命令

// 多个设备情况下使用 -s 参数指定对某个设备执行操作
adb -s device-id shell

// 设备id(device-id)可以通过 adb devices 命令看到,也可以通过如下命令获取
adb get-serialno
1.多设备时进入指定设备
多设备时进入指定设备 案例:
1. 通过adb devices命令获取所有online设备的serial number。
C:\Users\YRJ>adb devices
	List of devices attached
	b7b86f9 device
	emulator-5554  device
2. 通过adb -s <serial number> cmd向设备发送adb命令。
比如:运行命令shell。
C:\Users\YRJ>adb -s b7b86f9 shell  或  adb -s emulator-5554 shell
2.多设备中有一个模拟器和一个真机
多设备,当有一个模拟器和一个真机连接时使用e d 命令:
//进入模拟器 
C:\Users\YRJ>adb -e shell
//进入真机 
C:\Users\YRJ>adb -d shell

二、重启机器

1.正常重启

adb reboot

2.重启到 bootloader (刷机模式)

adb reboot bootloader

// 重启到 recovery (恢复模式)

adb reboot recovery

三、查看进程

1.进程列表(包含进程的pid等)

adb shell ps

2.杀死指定pid的进程

adb shell kill pid

3.查看指定进程信息

adb shell ps -x pid 

四、文件管理

1.从电脑上复制文件到设备

// 把 a.png 从电脑上拷贝到设备sd卡上
adb push ~/a.png /mnt/sdcard/
 
// 把 a.png 从电脑上拷贝到设备sd卡上并重命名为 b.png
adb push ~/a.png /mnt/sdcard/b.png
 
// 把 pic目录下所有文件从电脑上拷贝到设备sd卡上
adb push ~/pic/ /mnt/sdcard/

2.从设备复制文件到电脑

// 把 a.png 从设备sd卡上拷贝到电脑上
adb pull /mnt/sdcard/a.png ~/
 
// 把 a.png 从设备sd卡上拷贝到电脑上并命名为b.png
adb pull /mnt/sdcard/a.png ~/b.png
 
// 把pics目录下所有文件从设备sd卡上拷贝到电脑上
adb pull /mnt/sdcard/pics/ ~/pics/

3.一些基本命令

// 列出sd卡根目录下所有文件
adb shell ls /sdcard/
 
// 定位到 /sdcard/目录
adb shell cd /sdcard/

// 删除某文件
// -f 强制删除文件不需要确认
// -r 递归删除文件夹内文件
// -i 删除文件前需要确认
adb shell rm /sdcard/1.txt
 
// 创建目录
adb shell mkdir /sdcard/temp/
// 指定 -p 递归创建目录
adb shell mkdir -p  /sdcard/temp/test/abc/hello/
 
// 创建文件
adb shell touch /sdcard/1.txt
 
// 显示当前所在目录
adb shell pwd
 
// 拷贝文件1.txt到test目录
adb shell cp /sdcard/1.txt /sdcard/test/
 
// 移动文件,移动同一目录下文件相当于重命名文件
adb shell mv /sdcard/1.txt /sdcard/2.text

五、启动Activity等

1.启动应用

// -n 指定包名/包名+启动类的类名 ,启动类的类名必须是完整路径
adb shell am start -n package/package-activity

2.停止应用

adb shell am force-stop package

3.启动 service

adb shell am startservice [options] <INTENT>
举例:adb shell am startservice -a com.lt.test.action.ONESERVICE
举例:adb shell am startservice -n com.lt.test/.MyService

4.发送广播

adb shell am broadcast [options] <INTENT>

5.发送一个广播去关闭一个activity

adb shell am broadcast -a "action_finish" 

6.恢复出厂设置的方法,会清除内存所有内容

adb shell am broadcast -a android.intent.action.MASTER_CLEAR
adb shell am broadcast -n com.lt.test/.MyBroadcast

7.列举出所有包含的package

adb shell pm list packages [options] <INTENT>
adb shell pm list packages com.lt

六、管理安装包

1.安装应用程序

//安装APP
adb install xxx.apk
 
// 覆盖安装(保留缓存和数据)
adb install -r xxx.apk

// 安装apk到sd卡
adb install -s xxx.apk

2.卸载应用程序

//卸载APP
adb uninstall package
 
// 卸载时保留数据和缓存目录
adb uninstall -k package

3.列出设备上的所有权限

adb shell pm list permissions

4.列出设备上安装的所有app的包名

adb shell pm list packages

// 列出指定包名对应的apk路径
adb shell pm path com.android.search
 
// 清空指定包名对应的应用的数据和缓存文件,开发时很有用
adb shell pm clear com.android.search

5.列出设备上的所有feature

adb shell pm list features

七、显示系统信息

1.获取系统属性

// 获取系统属性,可以获取到一大堆关于系统信息(键值对形式)
adb shell getprop 
 
// 获取系统属性并过滤出包含version的信息
adb shell getprop | grep version

2.查看 cpu 和 内存使用情况

//查找模拟器或手机CPU类型
adb shell getprop ro.product.cpu.abi

// 每隔一秒会刷新一次 cpu 和 内存情况
adb shell top
 
// 查看占用内存前3的应用
adb shell top -m 3
 
// 刷新3次内存信息(不指定-n参数的话默认每秒会刷新1次数据):
adb shell top -n 3
 
// 查看占用内存前3的应用,刷新1次
adb shell top -m 3 -n 1

3.查看系统当前 cpu 使用情况

adb shell cat /proc/cpuinfo
adb shell cat /proc/stat

4.查看指定包名应用内存使用情况,各项信息具体说明

adb shell dumpsys meminfo package

5.查看 service

adb shell service list
adb shell cat /system/build.prop

八、网络相关

1.查看网络状态

adb shell netstat

2.通过 tcp/ip 连接,默认端口 5555

adb connect host:port

3.转发套接字连接

adb forward local remote

九、日志输出

1.查看指定 tag 日志

adb logcat -s tag

2.清除log缓存

adb logcat -c

十、使用案例

1.查看adb版本

adb verion

2.查看已连接的安卓设备

adb devices

3.将文件推送进安卓设备

adb push  # adb push d:/test.txt /sdcard/

4.将安卓设备中的文件拉到本地

adb pull # adb push /sdcard/test.txt d:\

在这里插入代码片

5.安装APK

adb install ***.apk

6.卸载APK

adb uninstall 包名

7.获取安卓设备中所有包名

adb shell pm list packages

8.获取安卓设备所有包名并且包括APK路径

adb shell pm list packages -f

9.获取包名对应的APK路径

adb shell pm path 包名

10.清理应用数据

adb shell pm clear 包名

11.启动应用

adb shell am start -n 包名/Activity类名  # 启动应用宝 adb shell am start -n com.tencent.android.qqdownloader/com.tencent.assistant.activity.SplashActivity

12.关闭应用

adb shell am force-stop 包名

13.模拟输入

adb shell input text 字符串(不支持中文)

14.模拟按键

adb shell input keyevent 键值

15.模拟鼠标点击

adb shell input tap X Y  # adb shell input tap 100 200

16.模拟鼠标滑动

adb shell input swipe X1 Y1 X2 Y2

17.截屏

adb shell screencap -p /sdcard/screencap.png

18.设置手机IMEI/IMSI/手机号/SIM卡序列号(适用于夜神)

adb shell setprop persist.nox.modem.imei 352462010682470

adb shell setprop persist.nox.modem.imsi 460000000000000

adb shell setprop persist.nox.modem.phonumber 15605569000

adb shell setprop persist.nox.modem.serial 89860000000000000000

19.打印日志

adb logcat

20.截屏xml文件

adb shell /system/bin/uiautomator dump --compressed /data/local/tmp/uidump.xml
adb pull /data/local/tmp/uidump.xml C:/Users/Administrator/Desktop

21.开关 wifi

adb shell svc wifi enable/disable

22.重启设备

adb reboot
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值