美文网首页
adb默认端口分析

adb默认端口分析

作者: Lazy1 | 来源:发表于2022-04-02 14:22 被阅读0次

ADB 分层

  • ADB为 Android Debug Bridge(调试桥)的缩写,本质上是一个 C/S
    架构的命令行工具。整个ADB模块由如下几部分组成(详细参见system/core/adb/OVERVIEW.txt和transports.txt):

  • The ADB server(adb):运行在PC端的一个后台应用程序,用来检测Android Devices的连接或去除,进而维护设备状态列表。另外,ADB Server也会负责协调Client、Services和Android
    devices之间传输数据。

  • The ADB daemon (adbd) : 运行在Android Devices或Emulator上的后台守护进程。该进程主要是用来连接ADB Server,并通过USB(或者TCP)为adb
    clients提供一些services服务。

  • The ADB command-line client: 执行adb 命令的终端。具体来说,会连接adb server并向adb server发送请求命令。若是发现adb server没有启动,则会自动唤起adb server.

  • Services: adb具备的一些能力可以抽象成服务(services),供The ADB command-line client访问。可以分为 Host Services和Local Services两种

adb默认5555端口分析

  • 路径在 system/core/adb/daemon/main.cpp

    
    int adbd_main(int server_port) {
      bool is_usb = false;
      if (access(USB_FFS_ADB_EP0, F_OK) == 0) {
          usb_init();
          is_usb = true;
      }
      std::string prop_port = android::base::GetProperty("service.adb.tcp.port", "");
      if (prop_port.empty()) {
          prop_port = android::base::GetProperty("persist.adb.tcp.port", "");
      }
      int port;
      int port;
      if (sscanf(prop_port.c_str(), "%d", &port) == 1 && port > 0) {
          D("using port=%d", port);
          setup_port(port);
      } else if (!is_usb) {
          setup_port(DEFAULT_ADB_LOCAL_TRANSPORT_PORT);
      }
      return 0;
    }   
    
    
  • 首先会去判断 service.adb.tcp.port 和 persist.adb.tcp.port中是否配置了端口号,如果没有配置端口号

在去判断是否挂在了 USB_FFS_ADB_EP0,如果挂载了,则会监听 USB_FFS_ADB_EP0,如果没有挂在,则会监听 DEFAULT_ADB_LOCAL_TRANSPORT_PORT=5555端口

基本真机都有EP0,EP1,EP2,节点,模拟器是没有的默认会启动初始化5555并且监听此端口

要彻底关闭和打开ADB


     SystemProperties.set("ctl.start", "adbd");    SystemProperties.set("ctl.stop", "adbd");


相关文章

  • adb默认端口分析

    ADB 分层 ADB为 Android Debug Bridge(调试桥)的缩写,本质上是一个 C/S架构的命令行...

  • Android ADB 端口占用问题解决方案

    解决ADB端口占用问题 方式一5037为adb默认端口,若5037端口被占用,查看占用端口的进程PIDC:\Use...

  • adb 5037端口被占用

    方式一 5037为adb默认端口,若5037端口被占用,查看占用端口的进程PIDC:\Users\wwx22949...

  • React Native夜神模拟器联调

    查看当前连接的设备adb devices 连接夜神模拟器,默认端口是62001 adb connect 127....

  • Android adb端口占用解决方法

    在开发过程中,有时候会遇到adb端口(adb默认端口是:5037)被其他的进程占用,导致手机无法正常连接调试。这就...

  • 解决端口占用问题

    备注:以占用adb端口为例,5037为adb默认端口。这里通过命令行窗口来解决,当然也可通过任务管理器(可视化)来...

  • Android解决ADB端口占用问题

    首先明白一点,5037为adb默认端口。 查看5037端口的进程PID 通过PID查看该进程 杀死占用端口的进程

  • adb server is out of date. killi

    1.错误信息 2.错误原因 adb端口号被占用 3.解决方法 1.查看adb端口号(如果没有修改,默认为5037)...

  • 开启局域网ADB调试

    因为PC端adb默认开启USB调试的,故这里必须先杀掉adb服务,如下命令: 然后,通过命令连接设备ip和端口,如...

  • adb devices连接不上手机设备

    在cmd中连接不上手机设备,显示: 方案一: adb默认端口为5307,检测此端口是否被占用。如果被占用,这检测占...

网友评论

      本文标题:adb默认端口分析

      本文链接:https://www.haomeiwen.com/subject/qrptsrtx.html