adb‑shell 全套命令实操总结

adb‑shell 全套命令实操总结

区分两类:

  1. shell 内置命令cd,依赖同一个 shell 会话,不适合单独 adb shell cd xxx
  2. 独立可执行程序lspwdrmchmodsupmdumpsyscat,支持单次 adb shell 命令
命令 全称 作用
cd change directory 切换进入某个文件夹
pwd print working directory 打印当前所在目录
ls list 列出文件夹里面的文件
rm remove 删除文件 / 文件夹
pm package manager 安卓应用包管理
chmod change mode 修改文件权限
dumpsys dump system service 打印系统服务运行状态
cat concatenate 输出打印文本文件内容
su switch user 切换 root 超级管理员

记忆口诀

cd 走,pwd 查,ls 看列表; su 提权,rm 删,cat 读,chmod 改门禁; pm 管应用,dumpsys 查系统。

命令 作用 是否适合 adb shell 单次执行
cd 切换目录 ❌不适合
pwd 打印当前路径 ✅可以
ls 列出目录 ✅可以
rm 删除文件目录 ✅可以
chmod 修改权限 ✅可以(root 操作加 su‑c)
su 切换 root ✅交互用居多
pm 应用包管理 ✅可以
dumpsys 打印系统服务 ✅可以
cat 读取文本文件 ✅可以

小故事版本

  • cd 走进文件夹,
  • pwd 我在哪?
  • ls 看看都有啥;
  • su 拿到管理员权限,
  • rm 扔掉不要它,
  • cat 打开读内容,
  • chmod 设置门禁卡;
  • pm 管理安装包,
  • dumpsys 系统台账全扒下。

一、 cd (change directory) 切换目录

1、使用:

⚠️不要用 adb shell cd /xxx,进程结束状态丢失。✅正确:进入交互式 shell

cmd

bash 复制代码
adb shell
cd /data/local/tmp     #进入tmp目录
cd ..                  #退回上一级
cd /                   #回到根目录
2、介绍:

cd = change directory ,切换目录(改变当前所在文件夹),是 Linux / Android shell 的内置命令

只改 shell 内部的「当前工作目录」,不会读写文件,没有打印输出,成功就安静无提示

常用用法

sh

bash 复制代码
# 进入 /data/local/tmp 这个文件夹
cd /data/local/tmp

# 返回上一级文件夹
cd ..

# 回到根目录
cd /

# 回到自己的家目录(adb shell 默认目录)
cd
搭配 pwd 看当前在哪

pwd → print working directory,打印你现在所处路径

sh

bash 复制代码
cd /data/local/tmp
pwd
#输出:/data/local/tmp
关键点(adb 里最容易踩坑)
  1. cd 只是改当前 shell 进程内部状态,不是修改磁盘文件。
  2. 如果你用:

cmd

bash 复制代码
adb shell cd /data/local/tmp

adb 创建一个临时进程 → cd 切换目录 → 进程直接销毁。

目录状态跟着进程消失,下一次 adb shell ls 不会留在这个目录。

👉所以:cd 一定要在交互式 shell 里面用

cmd

bash 复制代码
adb shell       #进入长存活shell会话
cd /data/local/tmp
pwd
ls

整个会话里面目录会记住,直到 exit 退出。

通俗比喻

把 shell 想象成一个窗口,cd就是窗口 "打开哪个文件夹"。

  • 临时窗口(adb shell cd xxx):打开文件夹立刻把窗口关掉,下次又是全新窗口。
  • 交互 shell(adb shell):窗口一直开着,cd 之后就停留在这个文件夹,后续操作都在这里。

记住:✅ ls、rm、pm、dumpsys 是独立程序,可以 adb shell 直接跑;⚠️ cd、export(环境变量)属于 shell 内部状态,依赖会话存活。

二、ls (list) 列出目录文件

1、使用:

cmd

bash 复制代码
# 单次执行,直接给完整路径
adb shell ls /data/local/tmp
adb shell ls -l /system/priv-app          #详细权限列表
adb shell ls -la /data/local/tmp          #包含隐藏文件
2、介绍:

ls = list,列出文件夹里面的文件 / 子目录,Linux/Android 的查看目录命令。

基础用法

sh

bash 复制代码
# 列出【当前文件夹】下所有内容
ls

# 指定路径,直接列出某个目录
ls /data/local/tmp
ls /system/priv-app
常用参数(加空格跟在 ls 后面)

sh

bash 复制代码
ls -l       # 详细列表:权限、所有者、大小、时间、文件名
ls -a       # 显示隐藏文件(以 . 开头的文件)
ls -la      # -l + -a 组合,最常用

注意: - 后面是参数(选项),l = long 长格式,a = all 全部文件 注意: ls -l (小写 L,不是数字 1)

命令 效果
ls 只显示文件名,简洁,看不到隐藏文件
ls -l 详细权限 / 时间,看不到隐藏文件
ls -a 显示所有(含隐藏),信息简短
ls -la 详细信息 + 全部隐藏文件,工作最常用

三、 pwd (print working directory) 打印当前路径

1、使用:

cmd

bash 复制代码
adb shell
cd /data/local/tmp
pwd
# 单次串联
adb shell "cd /data/local/tmp && pwd"

2、介绍:

pwd = print working directory打印当前所在的文件夹路径。

简单大白话:告诉我,我现在身处哪个目录下面

示例(交互式 shell 里面)

sh

bash 复制代码
adb shell
cd /data/local/tmp
pwd
#输出:/data/local/tmp

cd /system/priv-app
pwd
#输出:/system/priv-app
也可以单次 adb shell 执行

cmd

arduino 复制代码
adb shell "cd /data/local/tmp && pwd"

输出:/data/local/tmp

四、 rm (remove) 删除文件 / 文件夹

1、使用:

⚠️无回收站,谨慎操作

cmd

bash 复制代码
# 删除文件
adb shell rm /data/local/tmp/test.apk
# 删除文件夹,‑r递归,‑f强制
adb shell su -c "rm -rf /system/priv-app/TestApp"
2、介绍:

rm = remove,删除文件或者文件夹,Linux/Android 的删除命令。

⚠️高危命令,删除没有回收站,删完直接消失。

常用写法

sh

bash 复制代码
# 删除单个文件
rm test.apk

# 删除文件夹(必须加 -r)
rm -r myfolder

adb 两种使用方式

✅方式 1:单次直接执行(带完整路径,推荐)

cmd

bash 复制代码
adb shell rm /data/local/tmp/signed-car.apk

✅方式 2:进入交互式 shell

cmd

bash 复制代码
adb shell
cd /data/local/tmp
rm signed-car.apk

常用参数

  • -r:递归,删除文件夹以及文件夹里面全部内容
  • -f:强制删除,不弹出确认提示,不存在也不报错

车载调试最常用组合:rm -rf

sh

bash 复制代码
rm -rf /system/priv-app/VolvoAdapterService

删掉整个 VolvoAdapterService 目录,需要 root 权限,先 su

五、 chmod (change mode) 修改文件权限

1、使用:

system 下推送 apk 后必须修复权限,标准 755

cmd

bash 复制代码
adb shell su -c "chmod 755 /system/priv-app/TestApp/TestApp.apk"
# -R 递归修改整个目录
adb shell su -c "chmod -R 755 /system/priv-app/TestApp"
2、介绍:

chmod = change mode 修改文件 / 文件夹的权限,Linux / Android 命令。

Android 每个文件都有三套权限:所有者、用户组、其他用户(别的进程)能不能读、写、执行。

车载系统里面,system 下 apk 缺少执行权限,会直接装不上、不启动,就要用 chmod

最常用数字权限(八进制)

  • 644:普通文件,读读写,不能执行(txt、配置文件)
  • 755apk、二进制、文件夹标准权限,可读可执行,这是 system 下 app 最常见权限。

sh

bash 复制代码
# 设置文件权限755
chmod 755 /data/local/tmp/test.apk

# 修改整个文件夹里面所有文件权限(‑R 递归)
chmod -R 755 /system/priv-app/VolvoAdapterService

修改 /system 目录需要 su root 权限。

参数

  • -R 递归:文件夹 + 内部全部文件一起改权限

adb 两种写法

✅单次执行

cmd

arduino 复制代码
adb shell su -c "chmod -R 755 /system/priv-app/VolvoAdapterService"

✅交互式 shell

sh

bash 复制代码
adb shell
su
chmod -R 755 /system/priv-app/VolvoAdapterService

六、su (switch user) 获取 root 权限

1、使用:

只有工程 debug 固件可用;量产车机报 Permission denied

cmd

bash 复制代码
# 交互模式获取root,提示符$ → #
adb shell
su

# 单条命令以root执行
adb shell su -c "mount -o rw,remount /system"

七、 pm (package manager) 应用包管理

1、使用:

cmd

bash 复制代码
adb shell pm list packages                #列出全部应用包名
adb shell pm list packages -3             #只看第三方应用
adb shell pm install /data/local/tmp/a.apk
adb shell pm uninstall com.xxx.test
adb shell pm disable-user com.xxx.system  #冻结系统应用
adb shell pm enable com.xxx.system
2、介绍:

pm = Package Manager ,安卓的包管理工具,是 Android 系统自带程序,用来操作应用 APK。

位置:/system/bin/pm

常用 adb shell pm 命令(你车载调试天天用)

cmd

bash 复制代码
# 列出手机/车机上所有安装的app包名
adb shell pm list packages

# 只看第三方应用,排除系统app
adb shell pm list packages -3

# 安装apk
adb shell pm install /data/local/tmp/xxx.apk

# 卸载app(普通应用)
adb shell pm uninstall shturl.cc/B

# 禁用应用(系统app不能卸载,就disable冻结)
adb shell pm disable-user com.volvocars.datacenter.china

# 启用被禁用的应用
adb shell pm enable com.volvocars.datacenter.china

关键点

  1. pm 是独立可执行程序,可以直接单次 adb shell 调用,不像 cd 依赖 shell 会话状态。

cmd

复制代码
adb shell pm list packages    ✅完全没问题

也可以进交互式 shell 里面敲:

sh

复制代码
adb shell
pm list packages

两种效果一样。

  1. 系统预装 app 很多不能uninstall,会提示 not installed for 0,要用 disable‑user 禁用。

高频参数记忆

  • --user 0:操作主用户(车机一般就 user 0)
  • -r:安装时保留数据,覆盖安装
  • -g:自动授予全部运行时权限
  • -t:允许安装测试包

示例完整安装:

cmd

arduino 复制代码
adb shell pm install --user 0 -r -g -t /data/local/tmp/signed‑car.apk

八、 dumpsys 打印系统服务状态

1、使用:

cmd

perl 复制代码
adb shell dumpsys activity                     #activity任务栈
adb shell dumpsys package com.volvocars.xxx    #应用运行时信息
adb shell dumpsys power                        #电源休眠状态
adb shell dumpsys window                       #窗口弹窗
#导出到电脑文件方便搜索
adb shell dumpsys package com.xxx > dump.txt
2、介绍:

dumpsys = dump system service 把 Android 系统服务的运行状态、信息打印输出出来,安卓调试神器。

Android 内部有一大堆系统服务:Activity、Package、NFC、Window、Power、Connectivity......dumpsys 就是去读取这些正在运行服务的内存状态,输出大量文本日志。

常用格式

cmd

复制代码
adb shell dumpsys 服务名

你工作高频用到的

cmd

perl 复制代码
# 查看Activity栈、页面任务栈
adb shell dumpsys activity

# 查看已安装包信息、应用权限
adb shell dumpsys package com.volvocars.datacenter.china

# 查看nfc服务状态(你之前查车机NFC)
adb shell dumpsys nfc

# 电源、休眠状态
adb shell dumpsys power

# 窗口、弹窗信息
adb shell dumpsys window

# 所有服务全部打印(输出超级巨大,不推荐)
adb shell dumpsys
两种使用方式

✅单次 adb shell 直接跑(最常用)

cmd

复制代码
adb shell dumpsys activity

✅进入交互式 shell 再执行

sh

复制代码
adb shell
dumpsys activity

dumpsys 是独立程序,不需要 cd 切换目录,不需要 root(大部分)

小技巧:Windows 把输出保存到文件,方便搜索日志

cmd

lua 复制代码
adb shell dumpsys package com.xxx > dump.txt

执行后,当前 cmd 文件夹生成 dump.txt,可以用记事本打开搜索关键字。

九、cat (concatenate) 查看文本文件内容

1、使用:

cmd

bash 复制代码
adb shell cat /data/local/tmp/config.txt
adb shell su -c "cat /sys/class/power_supply/battery/capacity"
2、介绍:

cat = concatenate读取文件内容,把文件全部内容输出打印到控制台。

大白话:直接查看文本文件内容

基础用法

sh

bash 复制代码
# 打印文件内容
cat /data/local/tmp/config.txt

adb 两种写法

✅单次直接执行

cmd

bash 复制代码
adb shell cat /data/local/tmp/config.txt

✅交互式 shell

sh

bash 复制代码
adb shell
cat /data/local/tmp/config.txt
相关推荐
奔跑的架构师3 小时前
[A-49]ARMv9/v8-PSCI接口规范与工作流程简介
android·linux·arm开发·arm
AFinalStone3 小时前
Android 7系统国际化(七)Resources 与 AssetManager 源码剖析
android·国际化·local
Android-Flutter4 小时前
Android 内存泄漏详解
android·kotlin
catchadmin4 小时前
Fiber 与 PHP 8.6 Polling API 异步初探
android·开发语言·php
Android-Flutter4 小时前
android Handler , Looper , Message , MessageQueue 详解
android·kotlin
雨声不在5 小时前
docker-android 重启后镜像起不来
android·docker·容器
阿pin5 小时前
Android随笔-Framework
android·framework
达达尼昂5 小时前
Flutter AI Harness 如何让 Agent 参与软件开发全流程
android·人工智能·后端
sRect5 小时前
用ESP32-S3开发板开发一个接收消息的BB机
android·serverless·嵌入式