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

  • Post author:
  • Post category:其他




[安卓逆向]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



版权声明:本文为yi_rui_jie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。