diff options
Diffstat (limited to 'adb/adb.h')
| -rw-r--r-- | adb/adb.h | 32 | 
1 files changed, 28 insertions, 4 deletions
| @@ -29,13 +29,14 @@  #define A_OKAY 0x59414b4f  #define A_CLSE 0x45534c43  #define A_WRTE 0x45545257 +#define A_AUTH 0x48545541  #define A_VERSION 0x01000000        // ADB protocol version  #define ADB_VERSION_MAJOR 1         // Used for help/version information  #define ADB_VERSION_MINOR 0         // Used for help/version information -#define ADB_SERVER_VERSION    29    // Increment this when we want to force users to start a new adb server +#define ADB_SERVER_VERSION    31    // Increment this when we want to force users to start a new adb server  typedef struct amessage amessage;  typedef struct apacket apacket; @@ -165,6 +166,8 @@ typedef enum transport_type {          kTransportHost,  } transport_type; +#define TOKEN_SIZE 20 +  struct atransport  {      atransport *next; @@ -181,6 +184,7 @@ struct atransport      int ref_count;      unsigned sync_token;      int connection_state; +    int online;      transport_type type;          /* usb handle or socket fd as needed */ @@ -190,11 +194,19 @@ struct atransport          /* used to identify transports for clients */      char *serial;      char *product; +    char *model; +    char *device; +    char *devpath;      int adb_port; // Use for emulators (local transport)          /* a list of adisconnect callbacks called when the transport is kicked */      int          kicked;      adisconnect  disconnects; + +    void *key; +    unsigned char token[TOKEN_SIZE]; +    fdevent auth_fde; +    unsigned failed_auth_attempts;  }; @@ -253,7 +265,7 @@ int adb_main(int is_daemon, int server_port);  ** get_device_transport does an acquire on your behalf before returning  */  void init_transport_registration(void); -int  list_transports(char *buf, size_t  bufsize); +int  list_transports(char *buf, size_t  bufsize, int long_listing);  void update_transports(void);  asocket*  create_device_tracker(void); @@ -286,7 +298,7 @@ void register_socket_transport(int s, const char *serial, int port, int local);  void unregister_transport(atransport *t);  void unregister_all_tcp_transports(); -void register_usb_transport(usb_handle *h, const char *serial, unsigned writeable); +void register_usb_transport(usb_handle *h, const char *serial, const char *devpath, unsigned writeable);  /* this should only be used for transports with connection_state == CS_NOPERM */  void unregister_usb_transport(usb_handle *usb); @@ -346,6 +358,7 @@ typedef enum {      TRACE_SYSDEPS,      TRACE_JDWP,      /* 0x100 */      TRACE_SERVICES, +    TRACE_AUTH,  } AdbTrace;  #if ADB_TRACE @@ -405,7 +418,7 @@ void adb_qemu_trace(const char* fmt, ...);  #endif -#if !TRACE_PACKETS +#if !DEBUG_PACKETS  #define print_packet(tag,p) do {} while (0)  #endif @@ -461,6 +474,17 @@ extern int SHELL_EXIT_NOTIFY_FD;  #define CHUNK_SIZE (64*1024) +#if !ADB_HOST +#define USB_ADB_PATH     "/dev/android_adb" + +#define USB_FFS_ADB_PATH  "/dev/usb-ffs/adb/" +#define USB_FFS_ADB_EP(x) USB_FFS_ADB_PATH#x + +#define USB_FFS_ADB_EP0   USB_FFS_ADB_EP(ep0) +#define USB_FFS_ADB_OUT   USB_FFS_ADB_EP(ep1) +#define USB_FFS_ADB_IN    USB_FFS_ADB_EP(ep2) +#endif +  int sendfailmsg(int fd, const char *reason);  int handle_host_request(char *service, transport_type ttype, char* serial, int reply_fd, asocket *s); | 
