菜鸟科技网

android system命令

adb shell

你需要理解 adb shell 是什么。

android system命令-图1
(图片来源网络,侵删)
  • adb (Android Debug Bridge): 这是一个命令行工具,它充当你的电脑和 Android 设备之间的通信桥梁。
  • shell: 在计算机术语中,Shell 是一个用户与操作系统内核交互的接口。adb shell 的意思就是:通过 ADB 连接到你的设备,并在设备上启动一个命令行 Shell 环境,在这个环境中,你可以输入各种 Linux/Android 命令来操作设备。

前提条件:

  1. 已安装 Android SDK Platform Tools
  2. 设备上已开启 “开发者选项”“USB 调试”

如何使用 adb shell

打开你的电脑终端(Windows 是 CMD 或 PowerShell,macOS/Linux 是 Terminal),连接设备后,输入以下命令:

# 连接到设备并启动一个 shell
adb shell
# 或者,直接在一条命令中执行并退出(更常用)
adb shell [command]

进入 adb shell 后,你会看到一个 或 提示符。

  • 表示你当前是普通用户(如 shelladb 用户)。
  • 表示你是 root 用户,拥有最高权限,普通设备默认是 。

常用 adb shell 命令分类详解

以下命令在 adb shell 内部执行,或者使用 adb shell [command] 的形式执行。

android system命令-图2
(图片来源网络,侵删)

文件和目录操作 (类似 Linux 命令)

这些命令用于管理设备上的文件和文件夹。

命令 功能 示例
ls 列出当前目录下的文件和文件夹 ls /sdcard/
cd 切换目录 cd /data/data
pwd 显示当前工作目录的完整路径 pwd
mkdir 创建新目录 mkdir /sdcard/MyNewFolder
rm 删除文件 rm /sdcard/test.txt
rm -r 递归删除目录及其所有内容 rm -r /sdcard/MyNewFolder
cp 复制文件或目录 cp /sdcard/source.txt /sdcard/backup.txt
mv 移动文件或目录,或重命名 mv /sdcard/old_name.txt /sdcard/new_name.txt
cat 查看文件内容 cat /sdcard/logcat.txt
touch 创建一个空文件 touch /sdcard/empty_file.txt
chmod 修改文件或目录的权限 chmod 777 /sdcard/my_app (谨慎使用)

应用和包管理

这些命令用于查看、安装、卸载和管理应用。

命令 功能 示例
pm list packages 列出所有已安装的应用包名 pm list packages
pm list packages -f 列出应用及其对应的 APK 文件路径 pm list packages -f
pm path <package_name> 查找指定应用的 APK 文件路径 pm path com.android.settings
pm install <path_to_apk> 安装 APK (从电脑推送) adb install my_app.apk (在 shell 外执行)
pm uninstall <package_name> 卸载应用 pm uninstall com.example.unwanted_app
am force-stop <package_name> 强制停止一个应用 am force-stop com.facebook.katana
am start -n <package_name>/<activity_name> 启动一个应用的指定 Activity am start -n com.android.settings/.Settings

系统信息和状态

获取设备的硬件、软件和运行状态信息。

命令 功能 示例
getprop 获取系统属性列表 getprop ro.build.version.release (获取安卓版本)
dumpsys 极其强大,用于转储系统服务信息,可以查询几乎所有内容。 dumpsys (查看所有服务摘要)
dumpsys meminfo (查看内存使用情况)
dumpsys battery (查看电池信息)
dumpsys activity (查看 Activity 栈)
top 实时显示正在运行的进程及其 CPU/内存占用 top -m 10 -n 1 (显示 CPU 占用最高的 10 个进程)
ps 显示当前运行的进程列表 ps
df 查看磁盘空间使用情况 df
wm size 查看屏幕分辨率 wm size
wm density 查看屏幕密度 wm density

网络操作

监控和管理网络连接。

android system命令-图3
(图片来源网络,侵删)
命令 功能 示例
netstat 显示网络连接、路由表、接口等 netstat -an (显示所有活动的网络连接)
ping 测试网络连通性 ping 8.8.8.8
ip addr show 显示网络接口和 IP 地址信息 ip addr show
cat /proc/net/dev 查看各网卡的流量统计 cat /proc/net/dev

日志操作

查看和管理系统日志。

命令 功能 示例
logcat 核心命令,实时查看系统日志。 logcat (查看所有日志)
logcat | grep "MyAppTag" (过滤特定应用的日志)
logcat -c (清空日志缓冲区)
logcat -d 读取并输出设备上已有的日志,不实时刷新 logcat -d > log.txt (将日志保存到电脑的 log.txt 文件)

权限和安全

  • Root 权限: 执行需要超级用户权限的命令,在普通设备上,这些命令会失败。

    # 在 adb shell 内部尝试提升权限
    su
    # 如果成功,提示符会从 $ 变为 #
    # 然后就可以执行 root 命令了
    mount -o remount,rw /system
  • SELinux (Security-Enhanced Linux):

    • getenforce: 查看当前 SELinux 模式 (Enforcing, Permissive, Disabled)。
    • setenforce 0: 临时设置为 Permissive 模式(只记录警告,不阻止操作)。
    • setenforce 1: 恢复为 Enforcing 模式(严格阻止违规操作)。

高级和调试命令

命令 功能 示例
screenrecord 录制设备屏幕(需 Android 4.4+) screenrecord /sdcard/record.mp4 (录制,按 Ctrl+C 停止)
input 模拟用户输入(触摸、按键、滑动等) input tap 500 1000 (在坐标 (500, 1000) 处点击)
input text "Hello World" (输入文本)
settings 修改系统设置(需 Android 5.0+) settings put global airplane_mode_on 1 (开启飞行模式)
settings put system screen_brightness_mode 0 (关闭自动亮度)
dumpsys batterystats 详细的电池统计信息 dumpsys batterystats

实用技巧和组合命令

  1. 将文件从设备拉取到电脑

    adb pull /sdcard/screenshot.png .
  2. 将文件从电脑推送到设备

    adb push my_local_file.txt /sdcard/
  3. 在 shell 中执行带空格的命令 使用引号将命令或路径括起来。

    adb shell "ls '/sdcard/My Documents'"
  4. 使用 >>> 进行输出重定向

    • >: 覆盖写入。
    • >>: 追加写入。
      # 将进程列表保存到设备上的文件
      adb shell "ps > /sdcard/process_list.txt"

    将日志追加到电脑的文件

    adb logcat -d >> my_log.txt

重要注意事项

  • 权限: 大部分 adb shell 命令都在一个受限的 shell 用户下执行,无法修改系统核心文件,只有获取了 Root 权限的设备才能执行这些高危操作。
  • 命令路径: 一些命令(如 am, pm, dumpsys, settings)是 Android 系统自带的,位于 /system/bin/ 目录下,它们不是标准的 Linux 命令。
  • 设备差异: 不同 Android 版本和厂商(如小米、华为、三星)的定制系统,其 adb shell 命令和系统属性可能存在差异。
  • 风险: 误用 rm -r, chmod, mount 等命令可能导致系统不稳定或无法启动,请谨慎操作。

adb shell 是一个功能极其丰富的工具,掌握它是深入理解 Android 系统的关键,建议你从最基础的 ls, cd, cat 开始,逐步探索更复杂的命令。

分享:
扫描分享到社交APP
上一篇
下一篇