欢迎光临
我们一直在努力

Android ADB Shell 常用命令

1. 设备连接与排错 (Device Connection)

Linux下无权限或无法识别设备

当Linux系统无法识别Android设备,或出现 no permissions 报错时,通常是 udev 规则缺失导致。

解决方法:

  • 获取设备ID:
  • 运行 lsusb 查看USB设备列表。找到你的设备(如含 “Google Inc.” 或厂商名)。
    记录下 ID 后的两组数字,例如 18d1:4ee7。

    • idVendor: 18d1
    • idProduct: 4ee7
  • 配置udev规则:
  • 创建或编辑规则文件:

    sudo vim /etc/udev/rules.d/90-android.rules

    添加以下内容(替换为你的ID):

    SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee7", MODE="0666", GROUP="plugdev", SYMLINK+="android", SYMLINK+="android_adb"

  • 重启服务与ADB:
  • sudo udevadm control –reload-rules
    sudo service udev restart
    sudo udevadm trigger
    adb kill-server
    adb start-server


    2. 应用与包管理 (Package Management)

    主要使用 pm (Package Manager) 命令。

    查看已安装应用

    • 列出所有包:

    adb shell pm list packages

    • 按条件筛选:
    • -f: 显示包名及其对应的APK路径
    • -d: 仅显示被禁用的包
    • -e: 仅显示启用的包
    • -s: 仅显示系统包
    • -3: 仅显示第三方安装的包
    • -i: 显示安装来源(如 installer_package_name)
    • grep 过滤: adb shell pm list packages | grep "keyword"

    获取应用信息

    • 查看应用APK路径:

    adb shell pm path <package_name>

    示例:adb shell pm path com.android.settings

    • 查看应用详细信息 (dumpsys):

    adb shell dumpsys package <package_name>

    此命令会输出极为详细的应用组件、权限、状态等信息。

    停止与清除

    • 强行停止应用:

    adb shell am force-stop <package_name>

    • 清除应用数据 (类似重装效果):

    adb shell pm clear <package_name>


    3. Activity 与 Service 管理 (Activity Manager)

    主要使用 am (Activity Manager) 命令。

    启动 Activity

    adb shell am start -n <package_name>/<activity_class_name> [options]

    • 携带参数启动:

    • –es <key> <string_value>: 传递 String 参数

    • –ei <key> <int_value>: 传递 Int 参数

    • –ez <key> <boolean_value>: 传递 Boolean 参数

    示例:

    adb shell am start -n com.example.app/.MainActivity –es username "test"

    发送广播 (Broadcast)

    adb shell am broadcast -a "<ACTION_NAME>" [extras]

    • 示例:模拟SIM卡状态变化

    adb shell am broadcast -a "android.intent.action.SIM_STATE_CHANGED" –es "ss" "LOADED"

    查看当前 Activity

    快速确认当前显示的界面所属的 Activity。

    adb shell dumpsys activity top | grep ACTIVITY

    或者(Windows下若无grep):

    adb shell dumpsys activity top

    然后手动查找 ACTIVITY 关键字。

    Service 操作

    • 查看运行中的 Service(添加到ServiceManager的):

    adb shell service list

    • Dump Service 信息:

    adb shell dumpsys activity service <service_name>


    4. 文件系统与搜索 (File System & Search)

    Android Shell 支持大部分标准 Linux 命令。

    文本搜索 (grep)

    • 基本用法:

    grep -rn "search_term" <path>

    • -r: 递归查找子目录

    • -n: 显示行号

    • -i: 忽略大小写

    • -l: 仅列出包含匹配内容的文件名

    • -w: 全词匹配(Word matching)

    • 实用场景:

    查找所有包含 “ERROR” 的日志文件:

    find /sdcard/logs | xargs grep "ERROR"

    文件查找 (find)

    • 按文件名查找:

    find <path> -name "<filename_pattern>"

    示例:find /system -name "*.so"

    容量与结构

    • 查看磁盘空间:

    df -h

    • 查看当前目录大小:

    du -sh .

    • 查看目录树结构:

    tree -L 2 # 仅显示2层深度


    5. 日志与调试 (Logging & Debugging)

    Logcat 高级用法

    • 保存日志到文件:

    adb logcat -v time > log.txt

    • 清除旧日志:

    adb logcat -c

    • 过滤特定字符串:

    • Linux/Mac: adb logcat | grep "Error"

    • Windows: adb logcat | findstr "Error"

    • 包含全部缓冲区(包含 crash, radio, events 等):

    adb logcat -b all

    属性系统 (Properties)

    • 获取属性:

    adb shell getprop <key>

    示例:获取运营商信息 adb shell getprop ro.carrier

    • 设置属性(通常需要root或特殊权限):

    adb shell setprop <key> <value>

    示例:允许覆盖安装系统App adb shell setprop debug.allow.persist.update true

    进程信息

    • 查看进程:

    adb shell ps -ef | grep <app_name>

    • 查看进程打开的文件 (lsof):

    adb shell lsof -p <pid>

    Window Manager (wm)

    • 开启 ProtoLog (调试WMS/AMS):

    adb shell wm logging enable-text WM_DEBUG_STATES


    6. 屏幕操作 (Screen Operations)

    屏幕截图

    • 截图并保存到电脑(一步到位):

    adb exec-out screencap -p > screenshot.png

    • 传统方式(先存手机再拉取):

    adb shell screencap -p /sdcard/sc.png
    adb pull /sdcard/sc.png

    屏幕录制

    • 录制视频:

    adb shell screenrecord /sdcard/demo.mp4

    • 限制时长(例如30秒):

    adb shell screenrecord –time-limit 30 /sdcard/demo.mp4

    注意:默认最长录制180秒。


    7. 系统与工程模式 (Advanced & System)

    解锁 Bootloader

    • 进入 Bootloader 模式:

    adb reboot bootloader

    • 解锁命令(需在开发者选项开启 OEM Unlock):

    fastboot flashing unlock

    赞(0)
    未经允许不得转载:171主机测评 » Android ADB Shell 常用命令
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址