ADB常用命令

一、前言

  • 本文介绍了一些常用的ADB(Android Debug Bridge)命令

二、通用

  • 连接多个ADB设备时指定设备
    adb -s {DEVICE_ID} {COMMAND}
  • 连接到远程ADB设备
    adb connect 192.168.137.97:5555
  • 直接执行命令
    adb shell {COMMAND}
  • 查看日志
    adb logcat

三、Android框架相关

  • 查看系统ActivityManagerService信息

    # AMS全部信息
    adb shell dumpsys activity
    # Activity任务栈
    adb shell dumpsys activity containers
    # Activity信息
    adb shell dumpsys activity activities
    # Service信息
    adb shell dumpsys activity services
    # Content Provider信息
    adb shell dumpsys activity providers
    # Broadcast信息
    adb shell dumpsys activity broadcasts
    # Intent信息
    adb shell dumpsys activity intents
    # 进程信息
    adb shell dumpsys activity processes
  • 列出系统中所有apk对应的包名

    adb shell pm list packages -f
  • 列出系统所有支持的特性

    adb shell pm list features
  • 列出系统所有已知的权限

    adb shell pm list permissions -f
  • 列出系统所有已知的权限组

    adb shell pm list permission-groups
  • 查询Intent匹配的组件

    adb shell pm resolve-activity INTENT
    adb shell pm query-activities INTENT
    adb shell pm query-services INTENT
    adb shell pm query-receivers INTENT
  • 使用ActivityManager启动Activity

    adb shell am start -n {PACKAGE_NAME}/{ACTIVITY_CLASS_NAME}
    # -D 为使用Debug模式启动
    adb shell am start -D -n {PACKAGE_NAME}/{ACTIVITY_CLASS_NAME}
  • 进行系统截图

    adb shell screencap -p {PNG_FILE_NAME}

四、网络相关

  • 去除AOSP中无法访问互联网的叉号
    adb shell settings put global captive_portal_https_url https://wrlus.com/generate_204
  • 配置HTTP代理
    # 添加代理
    adb shell settings put global http_proxy {PROXY_HOST}:{PROXY_PORT}
    # 删除代理
    adb shell settings delete global http_proxy

五、系统相关

  • 重启命令
    # 软重启(不会断开ADB连接)
    adb shell "stop;start"
    # 正常重启
    adb reboot
    # 重启到引导程序
    adb reboot bootloader
    # 重启到恢复模式
    adb reboot recovery
    # 重启到用户态fastboot (>= 10.0)
    adb reboot fastboot
  • 设置ro.debuggable(需要Magisk)
    adb shell magisk resetprop ro.debuggable 1
  • 临时禁用SELinux
    adb shell setenforce 0