42#define A_SYNC 0x434e5953
43#define A_CNXN 0x4e584e43
44#define A_OPEN 0x4e45504f
45#define A_OKAY 0x59414b4f
46#define A_CLSE 0x45534c43
47#define A_WRTE 0x45545257
48#define A_AUTH 0x48545541
49#define A_STLS 0x534C5453
56#define A_VERSION_MIN 0x01000000
57#define A_VERSION_SKIP_CHECKSUM 0x01000001
58#define A_VERSION 0x01000001
61#define A_STLS_VERSION_MIN 0x01000000
62#define A_STLS_VERSION 0x01000000
65#define ADB_VERSION_MAJOR 1
66#define ADB_VERSION_MINOR 0
71#define ADB_SERVER_VERSION 41
147int adb_server_main(
int is_daemon,
const std::string& socket_spec,
const char* one_device,
162asocket* host_service_to_socket(std::string_view name, std::string_view
serial,
184#define DEBUG_PACKETS 0
187#define print_packet(tag, p) \
192#define DEFAULT_ADB_LOCAL_TRANSPORT_PORT 5555
194#define ADB_CLASS 0xff
195#define ADB_SUBCLASS 0x42
196#define ADB_PROTOCOL 0x1
198#define ADB_DBC_CLASS 0xDC
199#define ADB_DBC_SUBCLASS 0x2
206#define CHUNK_SIZE (64 * 1024)
209#define ABB_ARG_DELIMETER ('\0')
212#define USB_FFS_ADB_PATH "/dev/usb-ffs/adb/"
213#define USB_FFS_ADB_EP(x) USB_FFS_ADB_PATH #x
215#define USB_FFS_ADB_EP0 USB_FFS_ADB_EP(ep0)
216#define USB_FFS_ADB_OUT USB_FFS_ADB_EP(ep1)
217#define USB_FFS_ADB_IN USB_FFS_ADB_EP(ep2)
246void adb_notify_device_scan_complete();
249void update_transport_status();
252void adb_wait_for_device_initialization();
256void adb_set_reject_kill_server(
bool reject);
void send_tls_request(atransport *t)
Definition: adb.cpp:318
void send_ready(unsigned local, unsigned remote, atransport *t, uint32_t ack_bytes)
Definition: adb.cpp:269
std::string adb_version()
Definition: adb.cpp:101
constexpr size_t INITIAL_DELAYED_ACK_BYTES
Definition: adb.h:38
int adb_server_main(int is_daemon, const std::string &socket_spec, const char *one_device, int ack_reply_fd)
Definition: main.cpp:87
void handle_packet(apacket *p, atransport *t)
Definition: adb.cpp:435
constexpr size_t MAX_PAYLOAD
Definition: adb.h:34
unique_fd daemon_service_to_fd(std::string_view name, atransport *transport)
unique_fd execute_abb_command(std::string_view command)
std::string getEmulatorSerialString(int console_port)
Definition: transport_emulator.cpp:281
bool connect_emulator(int port)
Definition: transport_emulator.cpp:76
#define print_packet(tag, p)
Definition: adb.h:187
void usb_init()
Definition: usb_linux.cpp:634
uint32_t calculate_apacket_checksum(const apacket *packet)
Definition: adb.cpp:113
void handle_offline(atransport *t)
Definition: adb.cpp:201
apacket * get_apacket()
Definition: adb.cpp:175
void send_connect(atransport *t)
Definition: adb.cpp:327
asocket * daemon_service_to_socket(std::string_view name, atransport *transport)
std::string command_to_string(uint32_t cmd)
Definition: adb.cpp:121
bool is_one_device_mandatory()
bool ConnectionStateIsOnline(ConnectionState state)
Definition: adb.h:127
HostRequestResult
Definition: adb.h:220
constexpr size_t MAX_PAYLOAD_V1
Definition: adb.h:33
std::string to_string(ConnectionState state)
Definition: adb.cpp:144
bool handle_forward_request(const char *service, atransport *transport, int reply_fd)
Definition: adb.cpp:1126
const char * adb_device_banner
Definition: adb_trace.cpp:34
unique_fd service_to_fd(std::string_view name, atransport *transport)
Definition: services.cpp:82
void put_apacket(apacket *p)
Definition: adb.cpp:185
TransportType
Definition: adb.h:96
@ kTransportUsb
Definition: adb.h:97
@ kTransportLocal
Definition: adb.h:98
@ kTransportHost
Definition: adb.h:100
@ kTransportAny
Definition: adb.h:99
int connect_emulator_arbitrary_ports(int console_port, int adb_port, std::string *error)
Definition: transport_emulator.cpp:138
ConnectionState
Definition: adb.h:105
@ kCsDetached
Definition: adb.h:112
@ kCsUnauthorized
Definition: adb.h:110
@ kCsBootloader
Definition: adb.h:117
@ kCsAny
Definition: adb.h:106
@ kCsOffline
Definition: adb.h:113
@ kCsAuthorizing
Definition: adb.h:109
@ kCsSideload
Definition: adb.h:121
@ kCsNoPerm
Definition: adb.h:111
@ kCsRescue
Definition: adb.h:122
@ kCsHost
Definition: adb.h:119
@ kCsRecovery
Definition: adb.h:120
@ kCsConnecting
Definition: adb.h:108
@ kCsDevice
Definition: adb.h:118
uint64_t TransportId
Definition: adb.h:73
void parse_banner(const std::string &, atransport *t)
Definition: adb.cpp:351
void handle_online(atransport *t)
Definition: adb.cpp:190
HostRequestResult handle_host_request(std::string_view service, TransportType type, const char *serial, TransportId transport_id, int reply_fd, asocket *s)
int launch_server(const std::string &socket_spec, const char *one_device)
constexpr size_t LINUX_MAX_SOCKET_SIZE
Definition: adb.h:40
Definition: unique_fd.h:61
Definition: transport.h:261
static const char * serial
Definition: fastboot.cpp:96
#define error(format, args...)
Definition: fec_private.h:201
uint8_t type
Definition: pairing_connection.h:0
void(* func)(void *opaque, atransport *t)
Definition: adb.h:84
void * opaque
Definition: adb.h:85
atransport * find_emulator_transport_by_console_port(int console_port)
Definition: transport_emulator.cpp:277
atransport * find_emulator_transport_by_adb_port(int adb_port)
Definition: transport_emulator.cpp:272