在一堆本网站的问题,我看到的答案告诉我们执行adb shell
或adb logcat
等等。
现在,我不是一个完全笨拙的用户,因此我下载并安装了Termux,并在可以键入命令时出现一个shell提示,但是-这个adb
东西是从哪里来的?我可以将其下载为应用程序吗?它似乎没有默认安装(在Redmi 3S上,Android 6.0.1)。
另外,似乎这是某种许可电梯。像su
吗?如果没有,那有什么不同?
在一堆本网站的问题,我看到的答案告诉我们执行adb shell
或adb logcat
等等。
现在,我不是一个完全笨拙的用户,因此我下载并安装了Termux,并在可以键入命令时出现一个shell提示,但是-这个adb
东西是从哪里来的?我可以将其下载为应用程序吗?它似乎没有默认安装(在Redmi 3S上,Android 6.0.1)。
另外,似乎这是某种许可电梯。像su
吗?如果没有,那有什么不同?
Answers:
adb
简而言之,adb
(Android Debug Bridge)是一种实用程序,可以安装在计算机上,以使其在通过USB电缆连接或在同一Wi-Fi网络上的手机上获得外壳。
在某些运行Android Lollipop(5.1.1)以及可能更低版本的操作系统的设备上,由于adb
客户端也捆绑在手机中,因此有可能欺骗设备使其自身连接。这是不可能的,因为从Android Marshmallow(6.0)开始,Googleadb
从手机中删除了二进制文件,以减少可用的攻击面。
但是,可以adb
在电话上手动重新引入客户端,而无需自己编译二进制文件。有关此主题以及有关在计算机上安装和常规疑难解答的更多信息,请参考adb标签wiki。
前一段时间,为了获得adb
另一个名为的实用程序fastboot
,如果他们想要一个官方软件包,则必须从Google下载完整的Android SDK。正如XDA所说,如今已经有一个小型的官方捆绑包。它包括最常见的操作系统的二进制文件。
adb
安装在计算机上的客户端通过内部服务器连接到已插入或可检测到的电话。然后,用户将能够向电话本身发送各种命令adbd
,驻留在电话上的守护程序将监听该命令。
使用时adb
,您将模拟用户shell
(UID 2000
)。该用户的特殊之处在于,与简单用户相比,他们可以授予应用权限并访问更多信息。但是,此事实并不意味着adb
与相同su
,因为后者使您可以模拟任何用户。
有关adb
其工作的更多信息,请查看官方文档。
可以通过发出的大多数命令adb
往往是预先安装在手机中的实用程序。
为了访问它们,您需要在手机上安装终端仿真器应用程序(请注意Termux是特殊的,因为它指定了自己的PATH
,因此忽略了系统二进制文件)。例如,这将使您可以logcat
直接在移动设备上发出命令。不过,请记住省略adb
前缀。
值得一提的是,如果您没有root权限,则可以执行的命令范围和可以访问的信息将大大少于使用using adb
,因为调用它们的UID将是应用本身,并且应用的权限比UID少2000
。
Android调试桥(ADB)。
它通过USB或Wifi将命令发送到android设备。它通常安装在连接到该设备的计算机上。ADB客户端也可以在设备本身上运行,但是其想法是远程调试设备。
然后,您可以使用SDK管理器下载平台工具。
如果您只是对平台工具感兴趣,这里还有一个更直接的链接