返回介绍

3.2 非 shell 命令

发布于 2024-10-10 22:32:14 字数 4893 浏览 0 评论 0 收藏 0

我把常用命令分为非 shell 命令和 shell 命令,当然这样分类有点不合常规。为了好理解,我把需要提前用 adb shell 命令运行的命令叫做 shell 命令,直接用 adb shell 运行的命令叫做非 shell 命令。本节介绍非 shell 命令,下一节介绍 shell 命令。

1.adb shell dumpsys activity top

说明:可以查看当前应用的 activity 信息。

用法:运行需要查看的应用。

案例:

延伸:如果直接运行 adb shell dumpsys 也是可以的,只是会把当前系统中所有应用运行的四大组件都会打印出来,而这时候会发现打印的内容非常多,就需要借助之前说到的信息重定向了,具体做法如下。

这里还借助了 Windows 中的 start 命令,可以直接利用系统默认程序打开文本内容。而且我在以往逆向应用的时候,很多时候都用到这个命令来找到突破口。

2.adb shell dumpsys package

说明:可以查看指定包名应用的详细信息(相当于应用的 AndroidManifest.xml 中的内容)。

用法:adb shell dumpsys package[pkgname]

案例:

这里就是相当于把应用的清单文件打印出来而已。

3.adb shell dumpsys meminfo

说明:可以查看指定进程名或者进程 id 的内存信息。

用法:adb shell dumpsys meminfo[pname/pid]

案例:

利用这个命令可以查看进程当前的内存情况,和后面的 top 命令可以结合使用,分析应用的性能消耗情况。

4.adb shell dumpsys dbinfo

说明:可以查看指定包名应用的数据库存储信息(包括存储的 SQL 语句)。

用法:adb shell dumpsys dbinfo[packagename]

案例:

这里可以清晰地看到应用执行过的 SQL 语句信息,对应用逆向的时候具有一定用途。毕竟可以查看应用操作数据库信息了。

5.adb intall

说明:安装应用包 apk 文件。

用法:adb install[apk 文件]。

案例:

注意:如果应用已经安装了,需要使用 adb install-r[apk 文件],相当于升级安装。这个命令就不多说了,非常简单。

6.adb uninstall

说明:卸载应用。

用法:adb uninstall[packagename]

案例:

和上面的命令类似。

7.adb pull

说明:将设备中的文件放到本地。

用法:adb pull 设备目录文件本地目录。

案例:

注意,在操作的时候可能遇到文件权限问题,用 chmod 改一下权限即可。

8.adb push

说明:将本地文件放到设备中。

用法:adb push 本地目录文件设备目录。

案例:

注意,在操作的时候可能遇到文件权限问题,用 chmod 改一下权限即可。

9.adb shell screencap

说明:截屏操作。

用法:adb shell screencap-p 截图文件路径。

案例:

这个命令对于测试人员非常有用,有时候想快速截取手机屏幕,只要快速打开,就可以利用这个命令写一个简单的脚本文件,内容如下:

这样就一步到位,很快打开一个截图图片。这个是 Windows 中的 bat 命令格式。

延伸:一些恶意软件利用设备 root 之后,运行该命令就可以获取用户当前屏幕信息,对于盗取账号非常危险。

10.adb shell screenrecord

说明:录屏操作。

用法:adb shell screenrecord 视频保存路径。

案例:

这个命令其实和上面截屏命令差不多,只不过这个是录制屏幕,对于测试人员来说更加重要,有时候想复现问题步骤,那么就可以采用这个命令进行录屏功能。

延伸:现在很多录屏软件(在 5.0 之前版本)可以在 root 之后用这个命令进行录屏功能。

11.adb shell input text

说明:输入文本内容。

用法:adb shell input text[需要输入文本框内容]

案例:

让需要输入内容的文本框获取焦点:

注意:这个命令也可以模拟物理按键、虚拟键盘、滑动、滚动等事件。

延伸:这个命令对于需要输入一大堆信息到文本框中的情况非常有用,比如在 PC 端有一段内容,想输入到手机的某个搜索框中,那么可以通过把这段内容发送到手机,然后再复制操作。但是有了这个命令就非常简单,先让想要输入的文本框获取焦点,然后运行这个命令即可。

12.adb forward

说明:设备的端口转发。

用法:adb forwrad[(远程端)协议:端口号][(设备端)协议:端口号]

案例:

这个命令在 IDA 调试中非常有用。

13.adb jdwp

说明:查看设备中可以被调试的应用的进程号。

用法:adb jdwp

案例:

这个命令或许用途不是很多,但是在调试的时候还是有点用途。

14.adb logcat

说明:查看当前日志信息。

用法 1:adb logcat-s tag

案例:adb logcat-s fb

用法 2:adb logcat|findstr pname/pid/keyword

案例:adb logcat|findstr cn.wjdiankong.demo

这个命令大家都不陌生,也是重中之重,有的同学或许会好奇,为何不用 AS 查看日志了,但是有时候 AS 不能满足需求,比如想开多个日志窗口,这时候可以打开多个 cmd 窗口利用这个命令查看日志信息即可。用得最多的就是-s 参数,可以直接查看对应的 tag 日志信息,利用 findstr 进行信息过滤:

这里因为是在 Windows 下,所以用 findstr 进行信息过滤了,当然这个命令也可以直接在 adb shell 运行之后,比如:

这样就可以用 grep 进行信息过滤了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文