@@ -118,75 +118,11 @@ func (conn *AdbConnection) readString() (string, error) {
118118 return conn .readN (length )
119119}
120120
121- type AdbClient struct {
122- Addr string
123- }
124-
125- func NewAdbClient () * AdbClient {
126- return & AdbClient {
127- Addr : defaultHost + ":" + strconv .Itoa (defaultPort ),
128- }
129- }
130-
131- var DefaultAdbClient = & AdbClient {
132- Addr : "127.0.0.1:5037" ,
133- }
134-
135- func (c * AdbClient ) newConnection () (conn * AdbConnection , err error ) {
136- netConn , err := net .Dial ("tcp" , c .Addr )
137- if err != nil {
138- return nil , err
139- }
140- return & AdbConnection {netConn }, nil
141- }
142-
143- // Version return 4 size string
144- func (c * AdbClient ) Version () (string , error ) {
145- ver , err := c .rawVersion ()
146- if err == nil {
147- return ver , nil
148- }
149- exec .Command (adbPath (), "start-server" ).Run ()
150- return c .rawVersion ()
151- }
152-
153- func (c * AdbClient ) Watch () (C chan string , err error ) {
154- C = make (chan string , 0 )
155- defer close (C )
156- // c.Version()
157- conn , err := c .newConnection ()
158- if err != nil {
159- return
160- }
161- conn .WritePacket ("host:watchers" )
162- return
163- }
164-
165- // Version returns adb server version
166- func (c * AdbClient ) rawVersion () (string , error ) {
167- conn , err := c .newConnection ()
168- if err != nil {
169- return "" , err
170- }
171- defer conn .Close ()
172- if err := conn .WritePacket ("host:version" ); err != nil {
173- return "" , err
174- }
175- return conn .readString ()
176- }
177-
178121type AdbDevice struct {
179122 * AdbClient
180123 Serial string
181124}
182125
183- func (c * AdbClient ) DeviceWithSerial (serial string ) * AdbDevice {
184- return & AdbDevice {
185- AdbClient : c ,
186- Serial : serial ,
187- }
188- }
189-
190126func (c * AdbDevice ) OpenShell (cmd string ) (rw io.ReadWriteCloser , err error ) {
191127 conn , err := c .newConnection ()
192128 if err != nil {
@@ -218,3 +154,16 @@ func (c *AdbDevice) RunCommand(args ...string) (exitCode int, err error) {
218154 _ , err = io .Copy (os .Stdout , reader )
219155 return
220156}
157+
158+ func (c * AdbDevice ) SerialNo () (string , error ) {
159+ conn , err := c .newConnection ()
160+ if err != nil {
161+ return "" , err
162+ }
163+
164+ err = conn .WritePacket ("host-serial:" + c .Serial + ":get-serialno" )
165+ if err != nil {
166+ return "" , err
167+ }
168+ return conn .readString ()
169+ }
0 commit comments