Android 调试桥(adb) 是一种功能多样的命令行工具,它可以让你与设备进行通信,adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令) 的访问权限,它是一种 C/S 架构 的程序,包括以下三个组件:
当我们启动某个 ADB客户端 时,客户端会先检查是否有 ADB服务器 进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与 本地TCP 端口 5037 绑定,并监听 ADB客户端 发出的命令,所有 ADB 客户端均通过端口 5037 与 ADB服务器 通信。然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555到5585之间 (该范围供前16个模拟器使用) 的奇数号端口查找模拟器。服务器一旦发现 ADB守护进程 (adbd),便会与相应的端口建立连接。
所有的 Client 通过 TCP 端口号5037 进行与 Server 通信,而 Server 创建 local socket 与 remote socket,前者用于和 Client 通信,后者用与远端进行通信,emulator(模拟器) 通过TCP,real device 则通过 usb。服务器与所有设备均建立连接后,你便可以使用 adb 命令访问这些设备,由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此你可以从任意客户端(或从某个脚本)控制任意设备。
举个例子:
安装 AndroidStudio,链接:2023最新版Android逆向教程——第1天:Android Studio的安装与配置
安装完成 AndroidStudio 之后,找到 SDK 的目录,如下图所示:
将 D:\develop_tools\Android\SDK\platform-tools
路径配置到环境变量中,我们即可使用 adb,如下图所示:
在控制台,输入 adb version,可以显示我们使用 adb 的版本及它的所处路径,如下图所示:
[-l] 列举所有设备,-l 表示长输出,包含设备名称等信息。如下图所示:
adb -s 设备名 shell 多设备时,指定设备
<file>(xxx.apk)
通过adb安装apppush this package file to the device and install it,参数说明如下:
安装成功之后,在手机端查看,如下图所示:
adb uninstall 包名 通过adb卸载app,借助jadx工具查看App7的包名,然后执行 adb uninstall 命令卸载App7,如下图所示:
卸载:
手机端再次查看App7发现不存在了,如下图所示:
adb uninstall -k <package_name>
可选参数 -k 的作用为卸载软件但是保留配置和缓存文件
设备的状态有3种:device、offline、unknown,说明如下:
https://blog.csdn.net/weixin_43847093/article/details/84673414
至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习安卓逆向的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
????好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
????如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
?编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!