@yume-chan/adb 2.6.0 → 3.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm/adb.d.ts +18 -15
  4. package/esm/adb.d.ts.map +1 -1
  5. package/esm/adb.js +18 -11
  6. package/esm/adb.js.map +1 -1
  7. package/esm/banner.d.ts +1 -1
  8. package/esm/banner.d.ts.map +1 -1
  9. package/esm/daemon/auth/authenticator.d.ts +28 -0
  10. package/esm/daemon/auth/authenticator.d.ts.map +1 -0
  11. package/esm/daemon/auth/authenticator.js +108 -0
  12. package/esm/daemon/auth/authenticator.js.map +1 -0
  13. package/esm/daemon/auth/index.d.ts +5 -0
  14. package/esm/daemon/auth/index.d.ts.map +1 -0
  15. package/esm/daemon/auth/index.js +5 -0
  16. package/esm/daemon/auth/index.js.map +1 -0
  17. package/esm/daemon/auth/packet-processor.d.ts +42 -0
  18. package/esm/daemon/auth/packet-processor.d.ts.map +1 -0
  19. package/esm/daemon/auth/packet-processor.js +129 -0
  20. package/esm/daemon/auth/packet-processor.js.map +1 -0
  21. package/esm/daemon/auth/public-key.d.ts +8 -0
  22. package/esm/daemon/auth/public-key.d.ts.map +1 -0
  23. package/esm/daemon/auth/public-key.js +74 -0
  24. package/esm/daemon/auth/public-key.js.map +1 -0
  25. package/esm/daemon/auth/type.d.ts +5 -0
  26. package/esm/daemon/auth/type.d.ts.map +1 -0
  27. package/esm/daemon/auth/type.js +2 -0
  28. package/esm/daemon/auth/type.js.map +1 -0
  29. package/esm/daemon/crypto.d.ts +6 -5
  30. package/esm/daemon/crypto.d.ts.map +1 -1
  31. package/esm/daemon/crypto.js +23 -73
  32. package/esm/daemon/crypto.js.map +1 -1
  33. package/esm/daemon/dispatcher.d.ts +3 -3
  34. package/esm/daemon/dispatcher.d.ts.map +1 -1
  35. package/esm/daemon/dispatcher.js +11 -4
  36. package/esm/daemon/dispatcher.js.map +1 -1
  37. package/esm/daemon/index.d.ts +1 -1
  38. package/esm/daemon/index.d.ts.map +1 -1
  39. package/esm/daemon/index.js +1 -1
  40. package/esm/daemon/index.js.map +1 -1
  41. package/esm/daemon/socket.d.ts +3 -3
  42. package/esm/daemon/socket.d.ts.map +1 -1
  43. package/esm/daemon/transport.d.ts +13 -65
  44. package/esm/daemon/transport.d.ts.map +1 -1
  45. package/esm/daemon/transport.js +18 -140
  46. package/esm/daemon/transport.js.map +1 -1
  47. package/esm/device-observer.d.ts +2 -3
  48. package/esm/device-observer.d.ts.map +1 -1
  49. package/esm/features-value.d.ts +40 -0
  50. package/esm/features-value.d.ts.map +1 -0
  51. package/esm/features-value.js +46 -0
  52. package/esm/features-value.js.map +1 -0
  53. package/esm/features.d.ts +4 -12
  54. package/esm/features.d.ts.map +1 -1
  55. package/esm/features.js +27 -13
  56. package/esm/features.js.map +1 -1
  57. package/esm/index.d.ts +1 -1
  58. package/esm/index.d.ts.map +1 -1
  59. package/esm/index.js +1 -1
  60. package/esm/index.js.map +1 -1
  61. package/esm/server/client.d.ts +7 -7
  62. package/esm/server/client.d.ts.map +1 -1
  63. package/esm/server/client.js +69 -86
  64. package/esm/server/client.js.map +1 -1
  65. package/esm/server/commands/wireless.js +1 -1
  66. package/esm/server/commands/wireless.js.map +1 -1
  67. package/esm/server/{stream.d.ts → data-connection.d.ts} +5 -5
  68. package/esm/server/data-connection.d.ts.map +1 -0
  69. package/esm/server/{stream.js → data-connection.js} +4 -4
  70. package/esm/server/data-connection.js.map +1 -0
  71. package/esm/server/index.d.ts +1 -1
  72. package/esm/server/index.d.ts.map +1 -1
  73. package/esm/server/index.js +1 -1
  74. package/esm/server/index.js.map +1 -1
  75. package/esm/server/observer.d.ts.map +1 -1
  76. package/esm/server/observer.js +14 -13
  77. package/esm/server/observer.js.map +1 -1
  78. package/esm/server/transport.d.ts +4 -6
  79. package/esm/server/transport.d.ts.map +1 -1
  80. package/esm/server/transport.js +9 -24
  81. package/esm/server/transport.js.map +1 -1
  82. package/esm/service/framebuffer.d.ts.map +1 -0
  83. package/esm/service/framebuffer.js.map +1 -0
  84. package/esm/{commands → service}/index.d.ts +1 -2
  85. package/esm/service/index.d.ts.map +1 -0
  86. package/esm/{commands → service}/index.js +1 -2
  87. package/esm/service/index.js.map +1 -0
  88. package/esm/{commands → service}/power.d.ts +4 -2
  89. package/esm/service/power.d.ts.map +1 -0
  90. package/esm/{commands → service}/power.js +11 -5
  91. package/esm/service/power.js.map +1 -0
  92. package/esm/service/reverse/error.d.ts +14 -0
  93. package/esm/service/reverse/error.d.ts.map +1 -0
  94. package/esm/service/reverse/error.js +21 -0
  95. package/esm/service/reverse/error.js.map +1 -0
  96. package/esm/service/reverse/index.d.ts +3 -0
  97. package/esm/service/reverse/index.d.ts.map +1 -0
  98. package/esm/service/reverse/index.js +4 -0
  99. package/esm/service/reverse/index.js.map +1 -0
  100. package/esm/service/reverse/response.d.ts +2 -0
  101. package/esm/service/reverse/response.d.ts.map +1 -0
  102. package/esm/service/reverse/response.js +30 -0
  103. package/esm/service/reverse/response.js.map +1 -0
  104. package/esm/service/reverse/service.d.ts +59 -0
  105. package/esm/service/reverse/service.d.ts.map +1 -0
  106. package/esm/{commands/reverse.js → service/reverse/service.js} +16 -45
  107. package/esm/service/reverse/service.js.map +1 -0
  108. package/esm/{commands → service}/subprocess/index.d.ts +1 -0
  109. package/esm/service/subprocess/index.d.ts.map +1 -0
  110. package/esm/{commands → service}/subprocess/index.js +1 -0
  111. package/esm/service/subprocess/index.js.map +1 -0
  112. package/esm/service/subprocess/none/index.d.ts.map +1 -0
  113. package/esm/service/subprocess/none/index.js.map +1 -0
  114. package/esm/{commands → service}/subprocess/none/process.d.ts +2 -2
  115. package/esm/service/subprocess/none/process.d.ts.map +1 -0
  116. package/esm/service/subprocess/none/process.js.map +1 -0
  117. package/esm/{commands → service}/subprocess/none/pty.d.ts +4 -4
  118. package/esm/service/subprocess/none/pty.d.ts.map +1 -0
  119. package/esm/{commands → service}/subprocess/none/pty.js +1 -1
  120. package/esm/service/subprocess/none/pty.js.map +1 -0
  121. package/esm/service/subprocess/none/service.d.ts +10 -0
  122. package/esm/service/subprocess/none/service.d.ts.map +1 -0
  123. package/esm/service/subprocess/none/service.js +44 -0
  124. package/esm/service/subprocess/none/service.js.map +1 -0
  125. package/esm/service/subprocess/none/spawner.d.ts +15 -0
  126. package/esm/service/subprocess/none/spawner.d.ts.map +1 -0
  127. package/esm/service/subprocess/none/spawner.js +31 -0
  128. package/esm/service/subprocess/none/spawner.js.map +1 -0
  129. package/esm/{commands → service}/subprocess/pty.d.ts +1 -1
  130. package/esm/service/subprocess/pty.d.ts.map +1 -0
  131. package/esm/{commands → service}/subprocess/pty.js.map +1 -1
  132. package/esm/service/subprocess/service.d.ts.map +1 -0
  133. package/esm/{commands → service}/subprocess/service.js +1 -1
  134. package/esm/service/subprocess/service.js.map +1 -0
  135. package/esm/service/subprocess/shell/index.d.ts +5 -0
  136. package/esm/{commands/subprocess/none → service/subprocess/shell}/index.d.ts.map +1 -1
  137. package/esm/service/subprocess/shell/index.js +6 -0
  138. package/esm/{commands/subprocess/none → service/subprocess/shell}/index.js.map +1 -1
  139. package/esm/{commands → service}/subprocess/shell/process.d.ts +2 -2
  140. package/esm/service/subprocess/shell/process.d.ts.map +1 -0
  141. package/esm/{commands → service}/subprocess/shell/process.js +4 -6
  142. package/esm/service/subprocess/shell/process.js.map +1 -0
  143. package/esm/{commands → service}/subprocess/shell/pty.d.ts +4 -4
  144. package/esm/service/subprocess/shell/pty.d.ts.map +1 -0
  145. package/esm/{commands → service}/subprocess/shell/pty.js +11 -9
  146. package/esm/service/subprocess/shell/pty.js.map +1 -0
  147. package/esm/service/subprocess/shell/service.d.ts +34 -0
  148. package/esm/service/subprocess/shell/service.d.ts.map +1 -0
  149. package/esm/service/subprocess/shell/service.js +52 -0
  150. package/esm/service/subprocess/shell/service.js.map +1 -0
  151. package/esm/service/subprocess/shell/shared.d.ts +2 -0
  152. package/esm/service/subprocess/shell/shared.d.ts.map +1 -0
  153. package/esm/{commands → service}/subprocess/shell/shared.js +2 -0
  154. package/esm/service/subprocess/shell/shared.js.map +1 -0
  155. package/esm/{commands → service}/subprocess/shell/spawner.d.ts +3 -7
  156. package/esm/service/subprocess/shell/spawner.d.ts.map +1 -0
  157. package/esm/service/subprocess/shell/spawner.js +45 -0
  158. package/esm/service/subprocess/shell/spawner.js.map +1 -0
  159. package/esm/service/subprocess/types.d.ts +14 -0
  160. package/esm/service/subprocess/types.d.ts.map +1 -0
  161. package/esm/service/subprocess/types.js +2 -0
  162. package/esm/service/subprocess/types.js.map +1 -0
  163. package/esm/service/subprocess/utils.d.ts +39 -0
  164. package/esm/service/subprocess/utils.d.ts.map +1 -0
  165. package/esm/service/subprocess/utils.js +142 -0
  166. package/esm/service/subprocess/utils.js.map +1 -0
  167. package/esm/service/sync/android.d.ts +34 -0
  168. package/esm/service/sync/android.d.ts.map +1 -0
  169. package/esm/service/sync/android.js +34 -0
  170. package/esm/service/sync/android.js.map +1 -0
  171. package/esm/service/sync/compression/compression.d.ts +17 -0
  172. package/esm/service/sync/compression/compression.d.ts.map +1 -0
  173. package/esm/service/sync/compression/compression.js +92 -0
  174. package/esm/service/sync/compression/compression.js.map +1 -0
  175. package/esm/service/sync/compression/format-ns.d.ts +5 -0
  176. package/esm/service/sync/compression/format-ns.d.ts.map +1 -0
  177. package/esm/service/sync/compression/format-ns.js +5 -0
  178. package/esm/service/sync/compression/format-ns.js.map +1 -0
  179. package/esm/service/sync/compression/format.d.ts +4 -0
  180. package/esm/service/sync/compression/format.d.ts.map +1 -0
  181. package/esm/service/sync/compression/format.js +3 -0
  182. package/esm/service/sync/compression/format.js.map +1 -0
  183. package/esm/service/sync/compression/index.d.ts +2 -0
  184. package/esm/service/sync/compression/index.d.ts.map +1 -0
  185. package/esm/service/sync/compression/index.js +2 -0
  186. package/esm/service/sync/compression/index.js.map +1 -0
  187. package/esm/service/sync/id/common.d.ts +17 -0
  188. package/esm/service/sync/id/common.d.ts.map +1 -0
  189. package/esm/service/sync/id/common.js +29 -0
  190. package/esm/service/sync/id/common.js.map +1 -0
  191. package/esm/service/sync/id/index.d.ts +4 -0
  192. package/esm/service/sync/id/index.d.ts.map +1 -0
  193. package/esm/service/sync/id/index.js +6 -0
  194. package/esm/service/sync/id/index.js.map +1 -0
  195. package/esm/service/sync/id/request.d.ts +7 -0
  196. package/esm/service/sync/id/request.d.ts.map +1 -0
  197. package/esm/service/sync/id/request.js +9 -0
  198. package/esm/service/sync/id/request.js.map +1 -0
  199. package/esm/service/sync/id/response.d.ts +6 -0
  200. package/esm/service/sync/id/response.d.ts.map +1 -0
  201. package/esm/service/sync/id/response.js +8 -0
  202. package/esm/service/sync/id/response.js.map +1 -0
  203. package/esm/service/sync/index-ns.d.ts +7 -0
  204. package/esm/service/sync/index-ns.d.ts.map +1 -0
  205. package/esm/service/sync/index-ns.js +7 -0
  206. package/esm/service/sync/index-ns.js.map +1 -0
  207. package/esm/service/sync/index.d.ts +3 -0
  208. package/esm/service/sync/index.d.ts.map +1 -0
  209. package/esm/service/sync/index.js +3 -0
  210. package/esm/service/sync/index.js.map +1 -0
  211. package/esm/service/sync/request/index.d.ts +5 -0
  212. package/esm/service/sync/request/index.d.ts.map +1 -0
  213. package/esm/service/sync/request/index.js +5 -0
  214. package/esm/service/sync/request/index.js.map +1 -0
  215. package/esm/{commands/sync → service/sync/request}/list.d.ts +21 -19
  216. package/esm/service/sync/request/list.d.ts.map +1 -0
  217. package/esm/service/sync/request/list.js +77 -0
  218. package/esm/service/sync/request/list.js.map +1 -0
  219. package/esm/service/sync/request/pull.d.ts +12 -0
  220. package/esm/service/sync/request/pull.d.ts.map +1 -0
  221. package/esm/service/sync/request/pull.js +28 -0
  222. package/esm/service/sync/request/pull.js.map +1 -0
  223. package/esm/service/sync/request/push.d.ts +54 -0
  224. package/esm/service/sync/request/push.d.ts.map +1 -0
  225. package/esm/service/sync/request/push.js +95 -0
  226. package/esm/service/sync/request/push.js.map +1 -0
  227. package/esm/{commands/sync → service/sync/request}/stat.d.ts +40 -50
  228. package/esm/service/sync/request/stat.d.ts.map +1 -0
  229. package/esm/service/sync/request/stat.js +89 -0
  230. package/esm/service/sync/request/stat.js.map +1 -0
  231. package/esm/service/sync/service.d.ts +123 -0
  232. package/esm/service/sync/service.d.ts.map +1 -0
  233. package/esm/service/sync/service.js +170 -0
  234. package/esm/service/sync/service.js.map +1 -0
  235. package/esm/service/sync/socket-pool.d.ts +11 -0
  236. package/esm/service/sync/socket-pool.d.ts.map +1 -0
  237. package/esm/service/sync/socket-pool.js +80 -0
  238. package/esm/service/sync/socket-pool.js.map +1 -0
  239. package/esm/service/sync/socket.d.ts +40 -0
  240. package/esm/service/sync/socket.d.ts.map +1 -0
  241. package/esm/service/sync/socket.js +153 -0
  242. package/esm/service/sync/socket.js.map +1 -0
  243. package/esm/{commands → service}/tcpip.d.ts +4 -2
  244. package/esm/service/tcpip.d.ts.map +1 -0
  245. package/esm/{commands → service}/tcpip.js +10 -7
  246. package/esm/service/tcpip.js.map +1 -0
  247. package/esm/utils/array-buffer.d.ts.map +1 -1
  248. package/esm/utils/array-buffer.js +2 -3
  249. package/esm/utils/array-buffer.js.map +1 -1
  250. package/esm/utils/base64.d.ts.map +1 -1
  251. package/esm/utils/base64.js +22 -12
  252. package/esm/utils/base64.js.map +1 -1
  253. package/esm/utils/index.d.ts +1 -0
  254. package/esm/utils/index.d.ts.map +1 -1
  255. package/esm/utils/index.js +1 -0
  256. package/esm/utils/index.js.map +1 -1
  257. package/esm/utils/md5.d.ts +8 -0
  258. package/esm/utils/md5.d.ts.map +1 -0
  259. package/esm/utils/md5.js +149 -0
  260. package/esm/utils/md5.js.map +1 -0
  261. package/package.json +10 -10
  262. package/src/adb.ts +44 -34
  263. package/src/daemon/auth/authenticator.ts +186 -0
  264. package/src/daemon/auth/index.ts +4 -0
  265. package/src/daemon/auth/packet-processor.ts +212 -0
  266. package/src/daemon/auth/public-key.ts +112 -0
  267. package/src/daemon/auth/type.ts +5 -0
  268. package/src/daemon/crypto.ts +36 -102
  269. package/src/daemon/dispatcher.ts +15 -8
  270. package/src/daemon/index.ts +1 -1
  271. package/src/daemon/socket.ts +3 -3
  272. package/src/daemon/transport.ts +35 -253
  273. package/src/device-observer.ts +3 -3
  274. package/src/features-value.ts +47 -0
  275. package/src/features.ts +31 -14
  276. package/src/index.ts +1 -1
  277. package/src/server/client.ts +96 -94
  278. package/src/server/commands/wireless.ts +1 -1
  279. package/src/server/{stream.ts → data-connection.ts} +4 -4
  280. package/src/server/index.ts +1 -1
  281. package/src/server/observer.ts +21 -19
  282. package/src/server/transport.ts +13 -34
  283. package/src/{commands → service}/index.ts +1 -2
  284. package/src/{commands → service}/power.ts +14 -5
  285. package/src/service/reverse/error.ts +35 -0
  286. package/src/service/reverse/index.ts +3 -0
  287. package/src/service/reverse/response.ts +38 -0
  288. package/src/{commands/reverse.ts → service/reverse/service.ts} +32 -72
  289. package/src/{commands → service}/subprocess/index.ts +1 -0
  290. package/src/{commands → service}/subprocess/none/process.ts +3 -3
  291. package/src/{commands → service}/subprocess/none/pty.ts +5 -5
  292. package/src/service/subprocess/none/service.ts +57 -0
  293. package/src/service/subprocess/none/spawner.ts +81 -0
  294. package/src/{commands → service}/subprocess/pty.ts +1 -1
  295. package/src/{commands → service}/subprocess/service.ts +1 -1
  296. package/src/{commands → service}/subprocess/shell/index.ts +1 -1
  297. package/src/{commands → service}/subprocess/shell/process.ts +6 -7
  298. package/src/{commands → service}/subprocess/shell/pty.ts +15 -13
  299. package/src/service/subprocess/shell/service.ts +75 -0
  300. package/src/{commands → service}/subprocess/shell/shared.ts +5 -0
  301. package/src/service/subprocess/shell/spawner.ts +109 -0
  302. package/src/service/subprocess/types.ts +19 -0
  303. package/src/service/subprocess/utils.ts +166 -0
  304. package/src/service/sync/android.ts +43 -0
  305. package/src/service/sync/compression/compression.ts +126 -0
  306. package/src/service/sync/compression/format-ns.ts +4 -0
  307. package/src/service/sync/compression/format.ts +5 -0
  308. package/src/service/sync/compression/index.ts +1 -0
  309. package/src/service/sync/id/common.ts +33 -0
  310. package/src/service/sync/id/index.ts +7 -0
  311. package/src/service/sync/id/request.ts +12 -0
  312. package/src/service/sync/id/response.ts +11 -0
  313. package/src/service/sync/index-ns.ts +6 -0
  314. package/src/service/sync/index.ts +2 -0
  315. package/src/service/sync/request/index.ts +4 -0
  316. package/src/service/sync/request/list.ts +110 -0
  317. package/src/service/sync/request/pull.ts +49 -0
  318. package/src/service/sync/request/push.ts +184 -0
  319. package/src/service/sync/request/stat.ts +127 -0
  320. package/src/service/sync/service.ts +255 -0
  321. package/src/service/sync/socket-pool.ts +97 -0
  322. package/src/service/sync/socket.ts +201 -0
  323. package/src/{commands → service}/tcpip.ts +13 -7
  324. package/src/utils/array-buffer.ts +2 -3
  325. package/src/utils/base64.ts +24 -12
  326. package/src/utils/index.ts +1 -0
  327. package/src/utils/md5.ts +185 -0
  328. package/yume-chan-adb-3.0.0-beta.0.tgz +0 -0
  329. package/CHANGELOG.md +0 -251
  330. package/esm/commands/base.d.ts +0 -8
  331. package/esm/commands/base.d.ts.map +0 -1
  332. package/esm/commands/base.js +0 -12
  333. package/esm/commands/base.js.map +0 -1
  334. package/esm/commands/framebuffer.d.ts.map +0 -1
  335. package/esm/commands/framebuffer.js.map +0 -1
  336. package/esm/commands/index.d.ts.map +0 -1
  337. package/esm/commands/index.js.map +0 -1
  338. package/esm/commands/power.d.ts.map +0 -1
  339. package/esm/commands/power.js.map +0 -1
  340. package/esm/commands/reverse.d.ts +0 -48
  341. package/esm/commands/reverse.d.ts.map +0 -1
  342. package/esm/commands/reverse.js.map +0 -1
  343. package/esm/commands/subprocess/index.d.ts.map +0 -1
  344. package/esm/commands/subprocess/index.js.map +0 -1
  345. package/esm/commands/subprocess/none/process.d.ts.map +0 -1
  346. package/esm/commands/subprocess/none/process.js.map +0 -1
  347. package/esm/commands/subprocess/none/pty.d.ts.map +0 -1
  348. package/esm/commands/subprocess/none/pty.js.map +0 -1
  349. package/esm/commands/subprocess/none/service.d.ts +0 -10
  350. package/esm/commands/subprocess/none/service.d.ts.map +0 -1
  351. package/esm/commands/subprocess/none/service.js +0 -34
  352. package/esm/commands/subprocess/none/service.js.map +0 -1
  353. package/esm/commands/subprocess/none/spawner.d.ts +0 -19
  354. package/esm/commands/subprocess/none/spawner.d.ts.map +0 -1
  355. package/esm/commands/subprocess/none/spawner.js +0 -26
  356. package/esm/commands/subprocess/none/spawner.js.map +0 -1
  357. package/esm/commands/subprocess/pty.d.ts.map +0 -1
  358. package/esm/commands/subprocess/service.d.ts.map +0 -1
  359. package/esm/commands/subprocess/service.js.map +0 -1
  360. package/esm/commands/subprocess/shell/index.d.ts +0 -6
  361. package/esm/commands/subprocess/shell/index.d.ts.map +0 -1
  362. package/esm/commands/subprocess/shell/index.js +0 -6
  363. package/esm/commands/subprocess/shell/index.js.map +0 -1
  364. package/esm/commands/subprocess/shell/process.d.ts.map +0 -1
  365. package/esm/commands/subprocess/shell/process.js.map +0 -1
  366. package/esm/commands/subprocess/shell/pty.d.ts.map +0 -1
  367. package/esm/commands/subprocess/shell/pty.js.map +0 -1
  368. package/esm/commands/subprocess/shell/service.d.ts +0 -14
  369. package/esm/commands/subprocess/shell/service.d.ts.map +0 -1
  370. package/esm/commands/subprocess/shell/service.js +0 -41
  371. package/esm/commands/subprocess/shell/service.js.map +0 -1
  372. package/esm/commands/subprocess/shell/shared.d.ts +0 -19
  373. package/esm/commands/subprocess/shell/shared.d.ts.map +0 -1
  374. package/esm/commands/subprocess/shell/shared.js.map +0 -1
  375. package/esm/commands/subprocess/shell/spawner.d.ts.map +0 -1
  376. package/esm/commands/subprocess/shell/spawner.js +0 -38
  377. package/esm/commands/subprocess/shell/spawner.js.map +0 -1
  378. package/esm/commands/subprocess/utils.d.ts +0 -3
  379. package/esm/commands/subprocess/utils.d.ts.map +0 -1
  380. package/esm/commands/subprocess/utils.js +0 -56
  381. package/esm/commands/subprocess/utils.js.map +0 -1
  382. package/esm/commands/sync/index.d.ts +0 -9
  383. package/esm/commands/sync/index.d.ts.map +0 -1
  384. package/esm/commands/sync/index.js +0 -9
  385. package/esm/commands/sync/index.js.map +0 -1
  386. package/esm/commands/sync/list.d.ts.map +0 -1
  387. package/esm/commands/sync/list.js +0 -64
  388. package/esm/commands/sync/list.js.map +0 -1
  389. package/esm/commands/sync/pull.d.ts +0 -12
  390. package/esm/commands/sync/pull.d.ts.map +0 -1
  391. package/esm/commands/sync/pull.js +0 -33
  392. package/esm/commands/sync/pull.js.map +0 -1
  393. package/esm/commands/sync/push.d.ts +0 -61
  394. package/esm/commands/sync/push.d.ts.map +0 -1
  395. package/esm/commands/sync/push.js +0 -83
  396. package/esm/commands/sync/push.js.map +0 -1
  397. package/esm/commands/sync/request.d.ts +0 -24
  398. package/esm/commands/sync/request.d.ts.map +0 -1
  399. package/esm/commands/sync/request.js +0 -32
  400. package/esm/commands/sync/request.js.map +0 -1
  401. package/esm/commands/sync/response.d.ts +0 -28
  402. package/esm/commands/sync/response.d.ts.map +0 -1
  403. package/esm/commands/sync/response.js +0 -81
  404. package/esm/commands/sync/response.js.map +0 -1
  405. package/esm/commands/sync/socket.d.ts +0 -22
  406. package/esm/commands/sync/socket.d.ts.map +0 -1
  407. package/esm/commands/sync/socket.js +0 -78
  408. package/esm/commands/sync/socket.js.map +0 -1
  409. package/esm/commands/sync/stat.d.ts.map +0 -1
  410. package/esm/commands/sync/stat.js +0 -121
  411. package/esm/commands/sync/stat.js.map +0 -1
  412. package/esm/commands/sync/sync.d.ts +0 -82
  413. package/esm/commands/sync/sync.d.ts.map +0 -1
  414. package/esm/commands/sync/sync.js +0 -138
  415. package/esm/commands/sync/sync.js.map +0 -1
  416. package/esm/commands/tcpip.d.ts.map +0 -1
  417. package/esm/commands/tcpip.js.map +0 -1
  418. package/esm/daemon/auth.d.ts +0 -54
  419. package/esm/daemon/auth.d.ts.map +0 -1
  420. package/esm/daemon/auth.js +0 -104
  421. package/esm/daemon/auth.js.map +0 -1
  422. package/esm/server/stream.d.ts.map +0 -1
  423. package/esm/server/stream.js.map +0 -1
  424. package/src/commands/base.ts +0 -15
  425. package/src/commands/subprocess/none/service.ts +0 -45
  426. package/src/commands/subprocess/none/spawner.ts +0 -68
  427. package/src/commands/subprocess/shell/service.ts +0 -58
  428. package/src/commands/subprocess/shell/spawner.ts +0 -90
  429. package/src/commands/subprocess/utils.ts +0 -61
  430. package/src/commands/sync/index.ts +0 -8
  431. package/src/commands/sync/list.ts +0 -99
  432. package/src/commands/sync/pull.ts +0 -55
  433. package/src/commands/sync/push.ts +0 -172
  434. package/src/commands/sync/request.ts +0 -53
  435. package/src/commands/sync/response.ts +0 -105
  436. package/src/commands/sync/socket.ts +0 -109
  437. package/src/commands/sync/stat.ts +0 -177
  438. package/src/commands/sync/sync.ts +0 -175
  439. package/src/daemon/auth.ts +0 -204
  440. package/tsconfig.build.tsbuildinfo +0 -1
  441. /package/esm/{commands → service}/framebuffer.d.ts +0 -0
  442. /package/esm/{commands → service}/framebuffer.js +0 -0
  443. /package/esm/{commands → service}/subprocess/none/index.d.ts +0 -0
  444. /package/esm/{commands → service}/subprocess/none/index.js +0 -0
  445. /package/esm/{commands → service}/subprocess/none/process.js +0 -0
  446. /package/esm/{commands → service}/subprocess/pty.js +0 -0
  447. /package/esm/{commands → service}/subprocess/service.d.ts +0 -0
  448. /package/src/{commands → service}/framebuffer.ts +0 -0
  449. /package/src/{commands → service}/subprocess/none/index.ts +0 -0
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2025 Simon Chan
3
+ Copyright (c) 2020-2026 Simon Chan
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -37,7 +37,7 @@ Check the latest documentation at https://tangoadb.dev/
37
37
 
38
38
  ## Sponsors
39
39
 
40
- [Become a backer](https://opencollective.com/ya-webadb) and get your image on our README on Github with a link to your site.
40
+ [Become a backer](https://opencollective.com/ya-webadb) and get your image on our README on GitHub with a link to your site.
41
41
 
42
42
  <a href="https://opencollective.com/ya-webadb/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/0/avatar.svg?requireActive=false"></a>
43
43
  <a href="https://opencollective.com/ya-webadb/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/1/avatar.svg?requireActive=false"></a>
package/esm/adb.d.ts CHANGED
@@ -1,28 +1,20 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { MaybeConsumable, ReadableWritablePair } from "@yume-chan/stream-extra";
3
3
  import type { AdbBanner } from "./banner.js";
4
- import type { AdbFrameBuffer } from "./commands/index.js";
5
- import { AdbPower, AdbReverseService, AdbSubprocessService, AdbSync, AdbTcpIpService } from "./commands/index.js";
6
4
  import type { AdbFeature } from "./features.js";
5
+ import type { AdbFrameBuffer } from "./service/index.js";
6
+ import { AdbPowerService, AdbReverseService, AdbSubprocessService, AdbSync, AdbTcpIpService } from "./service/index.js";
7
7
  export interface Closeable {
8
8
  close(): MaybePromiseLike<void>;
9
9
  }
10
- /**
11
- * Represents an ADB socket.
12
- */
13
- export interface AdbSocket extends ReadableWritablePair<Uint8Array, MaybeConsumable<Uint8Array>>, Closeable {
14
- get service(): string;
15
- get closed(): Promise<undefined>;
16
- }
17
- export type AdbIncomingSocketHandler = (socket: AdbSocket) => MaybePromiseLike<void>;
18
10
  export interface AdbTransport extends Closeable {
19
11
  readonly serial: string;
20
12
  readonly maxPayloadSize: number;
21
13
  readonly banner: AdbBanner;
22
14
  readonly disconnected: Promise<void>;
23
15
  readonly clientFeatures: readonly AdbFeature[];
24
- connect(service: string): MaybePromiseLike<AdbSocket>;
25
- addReverseTunnel(handler: AdbIncomingSocketHandler, address?: string): MaybePromiseLike<string>;
16
+ connect(service: string): MaybePromiseLike<Adb.Socket>;
17
+ addReverseTunnel(handler: Adb.IncomingSocketHandler, address?: string): MaybePromiseLike<string>;
26
18
  removeReverseTunnel(address: string): MaybePromiseLike<void>;
27
19
  clearReverseTunnels(): MaybePromiseLike<void>;
28
20
  }
@@ -36,23 +28,34 @@ export declare class Adb implements Closeable {
36
28
  get clientFeatures(): readonly AdbFeature[];
37
29
  get deviceFeatures(): readonly AdbFeature[];
38
30
  readonly subprocess: AdbSubprocessService;
39
- readonly power: AdbPower;
31
+ readonly power: AdbPowerService;
40
32
  readonly reverse: AdbReverseService;
41
33
  readonly tcpip: AdbTcpIpService;
34
+ readonly sync: AdbSync.Service;
42
35
  constructor(transport: AdbTransport);
43
36
  canUseFeature(feature: AdbFeature): boolean;
44
37
  /**
45
38
  * Creates a new ADB Socket to the specified service or socket address.
46
39
  */
47
- createSocket(service: string): Promise<AdbSocket>;
40
+ createSocket(service: string): Promise<Adb.Socket>;
48
41
  createSocketAndWait(service: string): Promise<string>;
49
42
  getProp(key: string): Promise<string>;
50
43
  rm(filenames: string | readonly string[], options?: {
51
44
  recursive?: boolean;
52
45
  force?: boolean;
53
46
  }): Promise<string>;
54
- sync(): Promise<AdbSync>;
55
47
  framebuffer(): Promise<AdbFrameBuffer>;
48
+ [Symbol.asyncDispose](): Promise<void>;
56
49
  close(): Promise<void>;
57
50
  }
51
+ export declare namespace Adb {
52
+ /**
53
+ * Represents an ADB socket.
54
+ */
55
+ interface Socket extends ReadableWritablePair<Uint8Array, MaybeConsumable<Uint8Array>>, Closeable {
56
+ get service(): string;
57
+ get closed(): Promise<undefined>;
58
+ }
59
+ type IncomingSocketHandler = (socket: Socket) => MaybePromiseLike<void>;
60
+ }
58
61
  //# sourceMappingURL=adb.d.ts.map
package/esm/adb.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"adb.d.ts","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACR,eAAe,EACf,oBAAoB,EACvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACH,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACP,eAAe,EAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,SACb,SAAQ,oBAAoB,CAAC,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,EACjE,SAAS;IACb,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB,IAAI,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,wBAAwB,GAAG,CACnC,MAAM,EAAE,SAAS,KAChB,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAE3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,QAAQ,CAAC,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;IAE/C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAEtD,gBAAgB,CACZ,OAAO,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE,MAAM,GACjB,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE5B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7D,mBAAmB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,GAAI,YAAW,SAAS;;IAEjC,IAAI,SAAS,IAAI,YAAY,CAE5B;IAED,IAAI,MAAM,WAET;IAED,IAAI,cAAc,WAEjB;IAED,IAAI,MAAM,cAET;IAED,IAAI,YAAY,kBAEf;IAED,IAAW,cAAc,0BAExB;IAED,IAAW,cAAc,0BAExB;IAED,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;gBAEpB,SAAS,EAAE,YAAY;IASnC,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAO3C;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIjD,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,EAAE,CACE,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACrC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACnD,OAAO,CAAC,MAAM,CAAC;IAuBZ,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAKxB,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"adb.d.ts","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"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"}
package/esm/adb.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra";
2
- import { AdbPower, AdbReverseService, AdbSubprocessService, AdbSync, AdbTcpIpService, escapeArg, framebuffer, } from "./commands/index.js";
2
+ import { AdbPowerService, AdbReverseService, AdbSubprocessService, AdbSync, AdbTcpIpService, escapeArg, framebuffer, } from "./service/index.js";
3
3
  export class Adb {
4
4
  #transport;
5
5
  get transport() {
@@ -27,12 +27,14 @@ export class Adb {
27
27
  power;
28
28
  reverse;
29
29
  tcpip;
30
+ sync;
30
31
  constructor(transport) {
31
32
  this.#transport = transport;
32
33
  this.subprocess = new AdbSubprocessService(this);
33
- this.power = new AdbPower(this);
34
+ this.power = new AdbPowerService(this);
34
35
  this.reverse = new AdbReverseService(this);
35
36
  this.tcpip = new AdbTcpIpService(this);
37
+ this.sync = new AdbSync.Service(this);
36
38
  }
37
39
  canUseFeature(feature) {
38
40
  return (this.clientFeatures.includes(feature) &&
@@ -50,10 +52,12 @@ export class Adb {
50
52
  .pipeThrough(new TextDecoderStream())
51
53
  .pipeThrough(new ConcatStringStream());
52
54
  }
53
- getProp(key) {
54
- return this.subprocess.noneProtocol
55
- .spawnWaitText(["getprop", key])
56
- .then((output) => output.trim());
55
+ async getProp(key) {
56
+ const output = await this.subprocess.noneProtocol
57
+ .spawn(["getprop", key])
58
+ .wait()
59
+ .toString();
60
+ return output.trim();
57
61
  }
58
62
  rm(filenames, options) {
59
63
  const args = ["rm"];
@@ -75,15 +79,18 @@ export class Adb {
75
79
  }
76
80
  // https://android.googlesource.com/platform/packages/modules/adb/+/1a0fb8846d4e6b671c8aa7f137a8c21d7b248716/client/adb_install.cpp#984
77
81
  args.push("</dev/null");
78
- return this.subprocess.noneProtocol.spawnWaitText(args);
79
- }
80
- async sync() {
81
- const socket = await this.createSocket("sync:");
82
- return new AdbSync(this, socket);
82
+ return this.subprocess.noneProtocol
83
+ .spawn(args)
84
+ .wait()
85
+ .toString()
86
+ .then((output) => output.trim());
83
87
  }
84
88
  async framebuffer() {
85
89
  return framebuffer(this);
86
90
  }
91
+ [Symbol.asyncDispose]() {
92
+ return this.close();
93
+ }
87
94
  async close() {
88
95
  await this.#transport.close();
89
96
  }
package/esm/adb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"adb.js","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adb.js","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"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"}
package/esm/banner.d.ts CHANGED
@@ -10,7 +10,7 @@ export type AdbBannerKey = (typeof AdbBannerKey)[keyof typeof AdbBannerKey];
10
10
  export declare class AdbBanner {
11
11
  #private;
12
12
  static parse(banner: string): AdbBanner;
13
- get state(): AdbServerClient.ConnectionState | undefined;
13
+ get state(): "offline" | "bootloader" | "device" | "host" | "recovery" | "rescue" | "sideload" | "unauthorized" | "authorizing" | "detached" | undefined;
14
14
  get product(): string | undefined;
15
15
  get model(): string | undefined;
16
16
  get device(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E,qBAAa,SAAS;;IAClB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;IA8C3B,IAAI,KAAK,gDAER;IAGD,IAAI,OAAO,uBAEV;IAGD,IAAI,KAAK,uBAER;IAGD,IAAI,MAAM,uBAET;IAGD,IAAI,QAAQ,0BAEX;gBAIG,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,SAAS,EAClD,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,SAAS,UAAU,EAAE;CAQtC"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E,qBAAa,SAAS;;IAClB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;IA8C3B,IAAI,KAAK,gJAER;IAGD,IAAI,OAAO,uBAEV;IAGD,IAAI,KAAK,uBAER;IAGD,IAAI,MAAM,uBAET;IAGD,IAAI,QAAQ,0BAEX;gBAIG,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,SAAS,EAClD,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,SAAS,UAAU,EAAE;CAQtC"}
@@ -0,0 +1,28 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
2
+ import type { AdbPacketData } from "../packet.js";
3
+ import type { AdbDaemonTransportInit } from "../transport.js";
4
+ import { AdbDaemonTransport } from "../transport.js";
5
+ import type { AdbDaemonDefaultAuthProcessorInit } from "./packet-processor.js";
6
+ export interface AdbDaemonAuthProcessor {
7
+ process(packet: AdbPacketData): Promise<AdbPacketData>;
8
+ close?(): MaybePromiseLike<undefined>;
9
+ }
10
+ export type AdbDaemonAuthenticateOptions = Pick<AdbDaemonTransportInit, "serial" | "connection" | "features" | "preserveConnection" | "readTimeLimit"> & {
11
+ /**
12
+ * The number of bytes the device can send before receiving an ack packet.
13
+ *
14
+ * Android 14 added the Delayed Acknowledgement feature to improve performance,
15
+ * especially for high-latency connections like ADB over Wi-Fi.
16
+ *
17
+ * Unlike {@linkcode AdbDaemonTransportInit.initialDelayedAckBytes},
18
+ * setting this parameter to 0 or a negative number will disable Delayed Ack.
19
+ */
20
+ initialDelayedAckBytes?: number | undefined;
21
+ } & (AdbDaemonDefaultAuthProcessorInit | {
22
+ processor: AdbDaemonAuthProcessor;
23
+ });
24
+ /**
25
+ * Authenticates an `AdbDaemonConnection` using an `AdbDaemonAuthProcessor`.
26
+ */
27
+ export declare function adbDaemonAuthenticate({ serial, connection, features, initialDelayedAckBytes, preserveConnection, readTimeLimit, ...processorInit }: AdbDaemonAuthenticateOptions): Promise<AdbDaemonTransport>;
28
+ //# sourceMappingURL=authenticator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.d.ts","sourceRoot":"","sources":["../../../src/daemon/auth/authenticator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAWzD,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,cAAc,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAEH,kBAAkB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAG/E,MAAM,WAAW,sBAAsB;IACnC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD,KAAK,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC3C,sBAAsB,EACpB,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,oBAAoB,GACpB,eAAe,CACpB,GAAG;IACA;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C,GAAG,CAAC,iCAAiC,GAAG;IAAE,SAAS,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAAC;AAkBhF;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,EACxC,MAAM,EACN,UAAU,EACV,QAA4B,EAC5B,sBAAgE,EAChE,kBAAkB,EAClB,aAAa,EACb,GAAG,aAAa,EACnB,EAAE,4BAA4B,+BA8G9B"}
@@ -0,0 +1,108 @@
1
+ import { PromiseResolver } from "@yume-chan/async";
2
+ import { AbortController, Consumable, WritableStream, } from "@yume-chan/stream-extra";
3
+ import { decodeUtf8, encodeUtf8 } from "@yume-chan/struct";
4
+ import { AdbDeviceFeatures, AdbFeature } from "../../features.js";
5
+ import { AdbCommand, calculateChecksum } from "../packet.js";
6
+ import { ADB_DAEMON_DEFAULT_INITIAL_PAYLOAD_SIZE, AdbDaemonTransport, } from "../transport.js";
7
+ import { AdbDaemonDefaultAuthProcessor } from "./packet-processor.js";
8
+ /**
9
+ * Send a packet during authentication stage
10
+ * @param writer Writer to send packet to
11
+ * @param packet The packet to send. Note: this object will be modified.
12
+ */
13
+ function sendPacket(writer, packet) {
14
+ // Always send checksum in auth steps
15
+ // Because we don't know if the device needs it or not.
16
+ packet.checksum = calculateChecksum(packet.payload);
17
+ packet.magic = packet.command ^ 0xffffffff;
18
+ return Consumable.WritableStream.write(writer, packet);
19
+ }
20
+ /**
21
+ * Authenticates an `AdbDaemonConnection` using an `AdbDaemonAuthProcessor`.
22
+ */
23
+ export async function adbDaemonAuthenticate({ serial, connection, features = AdbDeviceFeatures, initialDelayedAckBytes = ADB_DAEMON_DEFAULT_INITIAL_PAYLOAD_SIZE, preserveConnection, readTimeLimit, ...processorInit }) {
24
+ const processor = "processor" in processorInit
25
+ ? processorInit.processor
26
+ : new AdbDaemonDefaultAuthProcessor(processorInit);
27
+ // Initially, set to highest-supported version and payload size.
28
+ let version = 0x01000001;
29
+ // Android 4: 4K, Android 7: 256K, Android 9: 1M
30
+ let maxPayloadSize = 1024 * 1024;
31
+ const resolver = new PromiseResolver();
32
+ const abortController = new AbortController();
33
+ const writer = connection.writable.getWriter();
34
+ const pipe = connection.readable
35
+ .pipeTo(new WritableStream({
36
+ write: async (packet) => {
37
+ // Here is similar to `AdbPacketDispatcher`,
38
+ // But the received packet types and send packet processing are different.
39
+ switch (packet.command) {
40
+ case AdbCommand.Connect:
41
+ version = Math.min(version, packet.arg0);
42
+ maxPayloadSize = Math.min(maxPayloadSize, packet.arg1);
43
+ resolver.resolve(decodeUtf8(packet.payload));
44
+ break;
45
+ case AdbCommand.Auth: {
46
+ await sendPacket(writer, await processor.process(packet));
47
+ break;
48
+ }
49
+ default:
50
+ // Maybe the previous ADB client exited without reading all packets,
51
+ // so they are still waiting in OS internal buffer.
52
+ // Just ignore them.
53
+ // Because a `Connect` packet will reset the device,
54
+ // Eventually there will be `Connect` and `Auth` response packets.
55
+ break;
56
+ }
57
+ },
58
+ }), {
59
+ // Don't cancel the source ReadableStream on AbortSignal abort.
60
+ preventCancel: true,
61
+ signal: abortController.signal,
62
+ })
63
+ .then(async () => {
64
+ await processor.close?.();
65
+ // If `resolver` is already settled, call `reject` won't do anything.
66
+ resolver.reject(new Error("Connection closed unexpectedly"));
67
+ }, async (e) => {
68
+ await processor.close?.();
69
+ resolver.reject(e);
70
+ });
71
+ if (initialDelayedAckBytes <= 0) {
72
+ // Disable delayed ack by not sending this feature to the device
73
+ features = features.filter((feature) => feature !== AdbFeature.DelayedAck);
74
+ initialDelayedAckBytes = 0;
75
+ }
76
+ let banner;
77
+ try {
78
+ await sendPacket(writer, {
79
+ command: AdbCommand.Connect,
80
+ arg0: version,
81
+ arg1: maxPayloadSize,
82
+ // The terminating `;` is required in formal definition
83
+ // But ADB daemon (all versions) can still work without it
84
+ payload: encodeUtf8(`host::features=${features.join(",")}`),
85
+ });
86
+ banner = await resolver.promise;
87
+ }
88
+ finally {
89
+ // When failed, release locks on `connection` so the caller can try again.
90
+ // When success, also release locks so `AdbPacketDispatcher` can use them.
91
+ abortController.abort();
92
+ writer.releaseLock();
93
+ // Wait until pipe stops (`ReadableStream` lock released)
94
+ await pipe;
95
+ }
96
+ return new AdbDaemonTransport({
97
+ serial,
98
+ connection,
99
+ version,
100
+ maxPayloadSize,
101
+ banner,
102
+ features,
103
+ initialDelayedAckBytes,
104
+ preserveConnection,
105
+ readTimeLimit,
106
+ });
107
+ }
108
+ //# sourceMappingURL=authenticator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.js","sourceRoot":"","sources":["../../../src/daemon/auth/authenticator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./authenticator.js";
2
+ export * from "./packet-processor.js";
3
+ export * from "./public-key.js";
4
+ export * from "./type.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/daemon/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./authenticator.js";
2
+ export * from "./packet-processor.js";
3
+ export * from "./public-key.js";
4
+ export * from "./type.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/daemon/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
2
+ import type { AdbPacketData } from "../packet.js";
3
+ import type { AdbDaemonAuthProcessor } from "./authenticator.js";
4
+ import type { AdbPrivateKey } from "./type.js";
5
+ export type MaybeError<T> = T | Error;
6
+ export type AdbKeyIterable = Iterable<MaybeError<AdbPrivateKey>> | AsyncIterable<MaybeError<AdbPrivateKey>>;
7
+ export interface AdbCredentialManager {
8
+ /**
9
+ * Generates and stores a RSA private key with modulus length `2048` and public exponent `65537`.
10
+ */
11
+ generateKey(): MaybePromiseLike<AdbPrivateKey>;
12
+ /**
13
+ * Synchronously or asynchronously iterates through all stored RSA private keys.
14
+ *
15
+ * Each call to `iterateKeys` must return a different iterator that iterate through all stored keys.
16
+ */
17
+ iterateKeys(): AdbKeyIterable;
18
+ }
19
+ export interface AdbKeyInfo {
20
+ fingerprint: string;
21
+ name: string | undefined;
22
+ }
23
+ export declare const AdbDaemonAuthType: {
24
+ readonly Token: 1;
25
+ readonly Signature: 2;
26
+ readonly PublicKey: 3;
27
+ };
28
+ export type AdbDaemonAuthType = (typeof AdbDaemonAuthType)[keyof typeof AdbDaemonAuthType];
29
+ export interface AdbDaemonDefaultAuthProcessorInit {
30
+ credentialManager: AdbCredentialManager;
31
+ onKeyLoadError?: ((error: Error) => void) | undefined;
32
+ onSignatureAuthentication?: ((key: AdbKeyInfo) => void) | undefined;
33
+ onSignatureRejected?: ((key: AdbKeyInfo) => void) | undefined;
34
+ onPublicKeyAuthentication?: ((key: AdbKeyInfo) => void) | undefined;
35
+ }
36
+ export declare class AdbDaemonDefaultAuthProcessor implements AdbDaemonAuthProcessor {
37
+ #private;
38
+ constructor(init: AdbDaemonDefaultAuthProcessorInit);
39
+ process(packet: AdbPacketData): Promise<AdbPacketData>;
40
+ close(): Promise<undefined>;
41
+ }
42
+ //# sourceMappingURL=packet-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packet-processor.d.ts","sourceRoot":"","sources":["../../../src/daemon/auth/packet-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAQzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAMjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAEtC,MAAM,MAAM,cAAc,GACpB,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GACnC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,WAAW,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE/C;;;;OAIG;IACH,WAAW,IAAI,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GACzB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE/D,MAAM,WAAW,iCAAiC;IAC9C,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,yBAAyB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpE,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9D,yBAAyB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACvE;AAED,qBAAa,6BAA8B,YAAW,sBAAsB;;gBAe5D,IAAI,EAAE,iCAAiC;IAyE7C,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAwDtD,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;CAMpC"}
@@ -0,0 +1,129 @@
1
+ import { EmptyUint8Array, encodeUtf8 } from "@yume-chan/struct";
2
+ import { calculateBase64EncodedLength, encodeBase64, } from "../../utils/base64.js";
3
+ import { rsaSign } from "../crypto.js";
4
+ import { AdbCommand } from "../packet.js";
5
+ import { adbGeneratePublicKey, adbGetPublicKeyFingerprint, adbGetPublicKeySize, } from "./public-key.js";
6
+ export const AdbDaemonAuthType = {
7
+ Token: 1,
8
+ Signature: 2,
9
+ PublicKey: 3,
10
+ };
11
+ export class AdbDaemonDefaultAuthProcessor {
12
+ #credentialManager;
13
+ #onKeyLoadError;
14
+ #onSignatureAuthentication;
15
+ #onSignatureRejected;
16
+ #onPublicKeyAuthentication;
17
+ #iterator;
18
+ #prevKeyInfo;
19
+ #firstKey;
20
+ constructor(init) {
21
+ this.#credentialManager = init.credentialManager;
22
+ this.#onKeyLoadError = init.onKeyLoadError;
23
+ this.#onSignatureAuthentication = init.onSignatureAuthentication;
24
+ this.#onSignatureRejected = init.onSignatureRejected;
25
+ this.#onPublicKeyAuthentication = init.onPublicKeyAuthentication;
26
+ }
27
+ /**
28
+ * Gets the next available private key.
29
+ * @returns The next available private key, or `undefined` if no more key is available
30
+ */
31
+ async #getNextKey() {
32
+ if (!this.#iterator) {
33
+ const iterable = this.#credentialManager.iterateKeys();
34
+ if (Symbol.iterator in iterable) {
35
+ this.#iterator = iterable[Symbol.iterator]();
36
+ }
37
+ else if (Symbol.asyncIterator in iterable) {
38
+ this.#iterator = iterable[Symbol.asyncIterator]();
39
+ }
40
+ else {
41
+ throw new Error("`iterateKeys` doesn't return an iterator");
42
+ }
43
+ }
44
+ while (true) {
45
+ const { done, value } = await this.#iterator.next();
46
+ if (done) {
47
+ return undefined;
48
+ }
49
+ if (value instanceof Error) {
50
+ // Report the error, then continue calling `next`
51
+ this.#onKeyLoadError?.(value);
52
+ continue;
53
+ }
54
+ return value;
55
+ }
56
+ }
57
+ /**
58
+ * Tries to sign the challenge using the next private key.
59
+ *
60
+ * @param challenge The data to sign
61
+ * @returns An `AdbPacket` containing the response, or `undefined` if no key is available
62
+ */
63
+ async #sign(challenge) {
64
+ const key = await this.#getNextKey();
65
+ if (!key) {
66
+ return undefined;
67
+ }
68
+ if (!this.#firstKey) {
69
+ this.#firstKey = key;
70
+ }
71
+ // A new challenge implies the previous signature was rejected.
72
+ if (this.#prevKeyInfo) {
73
+ this.#onSignatureRejected?.(this.#prevKeyInfo);
74
+ }
75
+ const fingerprint = adbGetPublicKeyFingerprint(key);
76
+ this.#prevKeyInfo = { fingerprint, name: key.name };
77
+ this.#onSignatureAuthentication?.(this.#prevKeyInfo);
78
+ return {
79
+ command: AdbCommand.Auth,
80
+ arg0: AdbDaemonAuthType.Signature,
81
+ arg1: 0,
82
+ payload: rsaSign(key, challenge),
83
+ };
84
+ }
85
+ async process(packet) {
86
+ if (packet.arg0 !== AdbDaemonAuthType.Token) {
87
+ throw new Error("Unsupported authentication packet");
88
+ }
89
+ const signature = await this.#sign(packet.payload);
90
+ if (signature) {
91
+ return signature;
92
+ }
93
+ let key = this.#firstKey;
94
+ if (!key) {
95
+ key = await this.#credentialManager.generateKey();
96
+ }
97
+ const publicKeyLength = adbGetPublicKeySize();
98
+ const [publicKeyBase64Length] = calculateBase64EncodedLength(publicKeyLength);
99
+ const nameBuffer = key.name?.length
100
+ ? encodeUtf8(key.name)
101
+ : EmptyUint8Array;
102
+ const publicKeyBuffer = new Uint8Array(publicKeyBase64Length +
103
+ (nameBuffer.length ? nameBuffer.length + 1 : 0) + // Space character + name
104
+ 1);
105
+ adbGeneratePublicKey(key, publicKeyBuffer);
106
+ const fingerprint = adbGetPublicKeyFingerprint(publicKeyBuffer.subarray(0, publicKeyLength));
107
+ encodeBase64(publicKeyBuffer.subarray(0, publicKeyLength), publicKeyBuffer);
108
+ if (nameBuffer.length) {
109
+ publicKeyBuffer[publicKeyBase64Length] = 0x20;
110
+ publicKeyBuffer.set(nameBuffer, publicKeyBase64Length + 1);
111
+ }
112
+ this.#onPublicKeyAuthentication?.({
113
+ fingerprint,
114
+ name: key.name,
115
+ });
116
+ return {
117
+ command: AdbCommand.Auth,
118
+ arg0: AdbDaemonAuthType.PublicKey,
119
+ arg1: 0,
120
+ payload: publicKeyBuffer,
121
+ };
122
+ }
123
+ async close() {
124
+ await this.#iterator?.return?.();
125
+ this.#iterator = undefined;
126
+ this.#firstKey = undefined;
127
+ }
128
+ }
129
+ //# sourceMappingURL=packet-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packet-processor.js","sourceRoot":"","sources":["../../../src/daemon/auth/packet-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SimpleRsaPrivateKey } from "../crypto.js";
2
+ import type { AdbPrivateKey } from "./type.js";
3
+ export declare function adbGetPublicKeySize(): number;
4
+ export declare function adbGeneratePublicKey(privateKey: SimpleRsaPrivateKey): Uint8Array<ArrayBuffer>;
5
+ export declare function adbGeneratePublicKey(privateKey: SimpleRsaPrivateKey, output: Uint8Array): number;
6
+ export declare function adbGetPublicKeyFingerprint(privateKey: AdbPrivateKey): string;
7
+ export declare function adbGetPublicKeyFingerprint(publicKey: Uint8Array): string;
8
+ //# sourceMappingURL=public-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-key.d.ts","sourceRoot":"","sources":["../../../src/daemon/auth/public-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK/C,wBAAgB,mBAAmB,WAElC;AAED,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,mBAAmB,GAChC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC3B,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,mBAAmB,EAC/B,MAAM,EAAE,UAAU,GACnB,MAAM,CAAC;AA+EV,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAAC;AAC9E,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC"}