安卓逆向——android adb常用命令收集
1. 调试相关
// 开启adb服务
adb start-server
// 关闭adb服务
adb stop-server
// 列出所有连接的设备
adb devices
// 多个设备情况下使用 -s 参数指定对某个设备执行操作
adb -s device-id
// 设备id(device-id)可以通过 adb devices 命令看到,也可以通过如下命令获取
adb get-serialno
2. 重启机器
// 正常重启
adb reboot
// 重启到 bootloader (刷机模式)
adb reboot bootloader
// 重启到 recovery (恢复模式)
adb reboot recovery
3. 查看进程
// 列出进程列表 ,其中包含进程的 pid 等信息
adb shell ps
// 杀死指定pid的进程
adb shell kill pid
// 查看指定进程信息
adb shell ps -x pid
4. 文件管理
从电脑上复制文件到设备
// 把 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/
从设备复制文件到电脑
// 把 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/
一些基本命令
// 列出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
5. 启动Activity等
// 启动应用
// -n 指定包名/包名+启动类的类名 ,启动类的类名必须是完整路径
adb shell am start -n package/package-activity
// 停止应用
adb shell am force-stop package
// 启动 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
// 发送广播
adb shell am broadcast [options] <INTENT>
// 发送一个广播去关闭一个activity
adb shell am broadcast -a "action_finish"
// 恢复出厂设置的方法,会清除内存所有内容
adb shell am broadcast -a android.intent.action.MASTER_CLEAR
adb shell am broadcast -n com.lt.test/.MyBroadcast
// 列举出所有包含<INTENT>的package
adb shell pm list packages [options] <INTENT>
adb shell pm list packages com.lt
6. 管理安装包
安装应用程序
adb install xxx.apk
// 覆盖安装(保留缓存和数据)
adb install -r xxx.apk
// 安装apk到sd卡
adb install -s xxx.apk
//查看所有apk包名:
adb shell pm list package -f
//如果知道部分名称,想查全称:
adb shell pm list packages | grep XXX
卸载应用程序
adb uninstall package
// 卸载时保留数据和缓存目录
adb uninstall -k package
列出设备上的所有权限
adb shell pm list permissions
列出设备上安装的所有app的包名
adb shell pm list packages
// 列出指定包名对应的apk路径
adb shell pm path com.android.search
// 清空指定包名对应的应用的数据和缓存文件,开发时很有用
adb shell pm clear com.android.search
列出设备上的所有feature
adb shell pm list features
7. 显示系统信息
获取系统属性
// 获取系统属性,可以获取到一大堆关于系统信息(键值对形式)
adb shell getprop
// 获取系统属性并过滤出包含version的信息
adb shell getprop | grep version
查看 cpu 和 内存使用情况
// 每隔一秒会刷新一次 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
查看系统当前 cpu 使用情况
adb shell cat /proc/cpuinfo
adb shell cat /proc/stat
查看指定包名应用内存使用情况,各项信息具体说明
adb shell dumpsys meminfo package
查看 service
adb shell service list
adb shell cat /system/build.prop
8. 网络相关
// 查看网络状态
adb shell netstat
// 通过 tcp/ip 连接,默认端口 5555
adb connect host:port
// 转发套接字连接
adb forward local remote
9. 日志输出
// 查看指定 tag 日志
adb logcat -s tag
// 清除log缓存
adb logcat -c
10. linux常用指令:(权限)
rm 移除文件 或 文件夹 rm /data/local/tmp/1.apk
cd 进入目录 cd /data/local/tmp
cat 查看文件内容 cat /proc/cpuinfo ;复制文件 cat /data/local/tmp/1.apk > /sdcard/1.apk
cp 复制文件 cp /data/local/tmp/1.apk /sdcard/1.apk
mv 移动文件,重命名文件 mv /data/local/tmp/1.apk /data/local/tmp/2.apk
chmod 为文件或目录赋权限 chmod 777 /data/local/tmp/1.apk
chown 为文件赋所属者 chown 0.0 /data/local/tmp/1.apk
echo 写入文件 如果文件不存在创建并写入 echo '111' > /sdcard/1111.txt
md5sum 获取文件md5码 md5sum /system/app/1.apk
halt 关机
reboot 重启手机
id 获取当前用户信息
touch 创建一个空文件 touch /data/local/tmp/1.txt
sleep 睡眠多少秒 sleep 10
mkdir 创建文件夹 mkdir /sdcard/nihao
ps 查看当前系统所有进程
ls 列出当前文件夹下的文件
mount 挂载分区 mount -o remount rw /system
df 查看磁盘空间 df /system