graph LR
Connection_Orchestrator["Connection Orchestrator"]
HTTP_Tunnel_Factory["HTTP Tunnel Factory"]
Tunneled_HTTP_Client["Tunneled HTTP Client"]
Multiplexer_Setup["Multiplexer Setup"]
Low_Level_Connection_Handler["Low-Level Connection Handler"]
Data_Transfer_Primitives["Data Transfer Primitives"]
Connection_Terminator["Connection Terminator"]
Connection_Orchestrator -- "interacts with" --> Multiplexer_Setup
Connection_Orchestrator -- "uses" --> Low_Level_Connection_Handler
Connection_Orchestrator -- "invokes" --> Connection_Terminator
HTTP_Tunnel_Factory -- "creates" --> Tunneled_HTTP_Client
Tunneled_HTTP_Client -- "relies on" --> Data_Transfer_Primitives
Multiplexer_Setup -- "uses" --> Data_Transfer_Primitives
Multiplexer_Setup -- "invokes" --> Connection_Terminator
Low_Level_Connection_Handler -- "relies on" --> Data_Transfer_Primitives
The USB Mux Connection Manager subsystem is primarily defined by the wda.usbmux.pyusbmux module, with its core functionality residing in the pyusbmux.py file. This module encapsulates all logic related to establishing, maintaining, and tearing down USB multiplexed connections to iOS devices for HTTP tunneling.
The primary entry point for establishing and managing the lifecycle of a USB multiplexer connection to an iOS device. It orchestrates the setup, connection, and teardown processes.
Related Classes/Methods:
Responsible for creating instances of the Tunneled HTTP Client, enabling the tunneling of HTTP traffic over the established USB multiplexer connection.
Related Classes/Methods:
Implements the HTTP protocol, specifically designed to route requests and responses through the underlying USB multiplexer channel, effectively creating an HTTP tunnel over USB.
Related Classes/Methods:
Handles the low-level details of instantiating and configuring the USB multiplexer object, including socket creation, protocol negotiation, and initial communication.
Related Classes/Methods:
Manages the handshake and communication flow necessary to establish a stable and active connection over the USB multiplexer, handling the specific protocol details.
Related Classes/Methods:
Provides the fundamental, low-level operations for sending and receiving raw data packets over the established USB multiplexer channel. These are the building blocks for all higher-level communication.
Related Classes/Methods:
wda.usbmux.pyusbmux._send:397-404wda.usbmux.pyusbmux._receive:406-410wda.usbmux.pyusbmux._send_receive:412-418
Ensures the proper and graceful closure of the USB multiplexer connection, releasing all associated system resources.
Related Classes/Methods: