@yume-chan/adb 0.0.23 → 1.0.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 (178) hide show
  1. package/CHANGELOG.md +51 -2
  2. package/LICENSE +1 -1
  3. package/README.md +4 -1
  4. package/esm/adb.d.ts +15 -9
  5. package/esm/adb.d.ts.map +1 -1
  6. package/esm/adb.js +5 -2
  7. package/esm/adb.js.map +1 -1
  8. package/esm/banner.d.ts +7 -6
  9. package/esm/banner.d.ts.map +1 -1
  10. package/esm/banner.js +6 -7
  11. package/esm/banner.js.map +1 -1
  12. package/esm/commands/framebuffer.d.ts +63 -34
  13. package/esm/commands/framebuffer.d.ts.map +1 -1
  14. package/esm/commands/framebuffer.js +35 -33
  15. package/esm/commands/framebuffer.js.map +1 -1
  16. package/esm/commands/power.d.ts.map +1 -1
  17. package/esm/commands/power.js +6 -5
  18. package/esm/commands/power.js.map +1 -1
  19. package/esm/commands/reverse.d.ts +12 -12
  20. package/esm/commands/reverse.d.ts.map +1 -1
  21. package/esm/commands/reverse.js +60 -39
  22. package/esm/commands/reverse.js.map +1 -1
  23. package/esm/commands/subprocess/command.js +3 -3
  24. package/esm/commands/subprocess/command.js.map +1 -1
  25. package/esm/commands/subprocess/protocols/none.d.ts +2 -2
  26. package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
  27. package/esm/commands/subprocess/protocols/none.js +3 -5
  28. package/esm/commands/subprocess/protocols/none.js.map +1 -1
  29. package/esm/commands/subprocess/protocols/shell.d.ts +22 -14
  30. package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
  31. package/esm/commands/subprocess/protocols/shell.js +21 -27
  32. package/esm/commands/subprocess/protocols/shell.js.map +1 -1
  33. package/esm/commands/subprocess/protocols/types.d.ts +8 -8
  34. package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
  35. package/esm/commands/sync/list.d.ts +49 -30
  36. package/esm/commands/sync/list.d.ts.map +1 -1
  37. package/esm/commands/sync/list.js +9 -11
  38. package/esm/commands/sync/list.js.map +1 -1
  39. package/esm/commands/sync/pull.d.ts +7 -9
  40. package/esm/commands/sync/pull.d.ts.map +1 -1
  41. package/esm/commands/sync/pull.js +4 -6
  42. package/esm/commands/sync/pull.js.map +1 -1
  43. package/esm/commands/sync/push.d.ts +25 -22
  44. package/esm/commands/sync/push.d.ts.map +1 -1
  45. package/esm/commands/sync/push.js +14 -21
  46. package/esm/commands/sync/push.js.map +1 -1
  47. package/esm/commands/sync/request.d.ts +20 -23
  48. package/esm/commands/sync/request.d.ts.map +1 -1
  49. package/esm/commands/sync/request.js +26 -35
  50. package/esm/commands/sync/request.js.map +1 -1
  51. package/esm/commands/sync/response.d.ts +25 -19
  52. package/esm/commands/sync/response.d.ts.map +1 -1
  53. package/esm/commands/sync/response.js +49 -26
  54. package/esm/commands/sync/response.js.map +1 -1
  55. package/esm/commands/sync/socket.d.ts +3 -3
  56. package/esm/commands/sync/socket.d.ts.map +1 -1
  57. package/esm/commands/sync/socket.js +10 -5
  58. package/esm/commands/sync/socket.js.map +1 -1
  59. package/esm/commands/sync/stat.d.ts +75 -54
  60. package/esm/commands/sync/stat.d.ts.map +1 -1
  61. package/esm/commands/sync/stat.js +73 -69
  62. package/esm/commands/sync/stat.js.map +1 -1
  63. package/esm/commands/sync/sync.d.ts +18 -17
  64. package/esm/commands/sync/sync.d.ts.map +1 -1
  65. package/esm/commands/sync/sync.js +8 -8
  66. package/esm/commands/sync/sync.js.map +1 -1
  67. package/esm/commands/tcpip.d.ts +0 -1
  68. package/esm/commands/tcpip.d.ts.map +1 -1
  69. package/esm/commands/tcpip.js +9 -9
  70. package/esm/commands/tcpip.js.map +1 -1
  71. package/esm/daemon/auth.d.ts +8 -7
  72. package/esm/daemon/auth.d.ts.map +1 -1
  73. package/esm/daemon/auth.js +8 -9
  74. package/esm/daemon/auth.js.map +1 -1
  75. package/esm/daemon/crypto.d.ts +4 -3
  76. package/esm/daemon/crypto.d.ts.map +1 -1
  77. package/esm/daemon/crypto.js +57 -49
  78. package/esm/daemon/crypto.js.map +1 -1
  79. package/esm/daemon/device.d.ts +2 -2
  80. package/esm/daemon/device.d.ts.map +1 -1
  81. package/esm/daemon/dispatcher.d.ts +35 -10
  82. package/esm/daemon/dispatcher.d.ts.map +1 -1
  83. package/esm/daemon/dispatcher.js +46 -33
  84. package/esm/daemon/dispatcher.js.map +1 -1
  85. package/esm/daemon/packet.d.ts +48 -32
  86. package/esm/daemon/packet.d.ts.map +1 -1
  87. package/esm/daemon/packet.js +36 -32
  88. package/esm/daemon/packet.js.map +1 -1
  89. package/esm/daemon/socket.d.ts +11 -11
  90. package/esm/daemon/socket.d.ts.map +1 -1
  91. package/esm/daemon/socket.js +19 -40
  92. package/esm/daemon/socket.js.map +1 -1
  93. package/esm/daemon/transport.d.ts +60 -20
  94. package/esm/daemon/transport.d.ts.map +1 -1
  95. package/esm/daemon/transport.js +12 -15
  96. package/esm/daemon/transport.js.map +1 -1
  97. package/esm/device-observer.d.ts +10 -0
  98. package/esm/device-observer.d.ts.map +1 -0
  99. package/esm/device-observer.js +2 -0
  100. package/esm/device-observer.js.map +1 -0
  101. package/esm/features.d.ts +12 -11
  102. package/esm/features.d.ts.map +1 -1
  103. package/esm/features.js +11 -12
  104. package/esm/features.js.map +1 -1
  105. package/esm/index.d.ts +1 -0
  106. package/esm/index.d.ts.map +1 -1
  107. package/esm/index.js +1 -0
  108. package/esm/index.js.map +1 -1
  109. package/esm/server/client.d.ts +140 -50
  110. package/esm/server/client.d.ts.map +1 -1
  111. package/esm/server/client.js +396 -180
  112. package/esm/server/client.js.map +1 -1
  113. package/esm/server/transport.d.ts +2 -2
  114. package/esm/server/transport.d.ts.map +1 -1
  115. package/esm/server/transport.js +4 -6
  116. package/esm/server/transport.js.map +1 -1
  117. package/esm/utils/base64.d.ts.map +1 -1
  118. package/esm/utils/base64.js +52 -38
  119. package/esm/utils/base64.js.map +1 -1
  120. package/esm/utils/hex.d.ts +1 -1
  121. package/esm/utils/hex.d.ts.map +1 -1
  122. package/esm/utils/hex.js +12 -14
  123. package/esm/utils/hex.js.map +1 -1
  124. package/esm/utils/index.d.ts +1 -1
  125. package/esm/utils/index.d.ts.map +1 -1
  126. package/esm/utils/index.js +1 -1
  127. package/esm/utils/index.js.map +1 -1
  128. package/esm/utils/no-op.d.ts.map +1 -1
  129. package/esm/utils/no-op.js +1 -0
  130. package/esm/utils/no-op.js.map +1 -1
  131. package/esm/utils/sequence-equal.d.ts +2 -0
  132. package/esm/utils/sequence-equal.d.ts.map +1 -0
  133. package/esm/utils/sequence-equal.js +12 -0
  134. package/esm/utils/sequence-equal.js.map +1 -0
  135. package/package.json +14 -19
  136. package/src/adb.ts +20 -11
  137. package/src/banner.ts +8 -6
  138. package/src/commands/framebuffer.ts +44 -35
  139. package/src/commands/power.ts +7 -5
  140. package/src/commands/reverse.ts +78 -47
  141. package/src/commands/subprocess/command.ts +3 -3
  142. package/src/commands/subprocess/protocols/none.ts +5 -7
  143. package/src/commands/subprocess/protocols/shell.ts +33 -35
  144. package/src/commands/subprocess/protocols/types.ts +8 -8
  145. package/src/commands/sync/list.ts +20 -15
  146. package/src/commands/sync/pull.ts +9 -8
  147. package/src/commands/sync/push.ts +25 -24
  148. package/src/commands/sync/request.ts +37 -38
  149. package/src/commands/sync/response.ts +63 -37
  150. package/src/commands/sync/socket.ts +13 -8
  151. package/src/commands/sync/stat.ts +93 -73
  152. package/src/commands/sync/sync.ts +12 -11
  153. package/src/commands/tcpip.ts +9 -9
  154. package/src/daemon/auth.ts +12 -10
  155. package/src/daemon/crypto.ts +66 -55
  156. package/src/daemon/device.ts +2 -2
  157. package/src/daemon/dispatcher.ts +106 -44
  158. package/src/daemon/packet.ts +57 -38
  159. package/src/daemon/socket.ts +30 -50
  160. package/src/daemon/transport.ts +98 -50
  161. package/src/device-observer.ts +10 -0
  162. package/src/features.ts +13 -11
  163. package/src/index.ts +1 -0
  164. package/src/server/client.ts +505 -268
  165. package/src/server/transport.ts +7 -9
  166. package/src/utils/base64.ts +59 -40
  167. package/src/utils/hex.ts +16 -14
  168. package/src/utils/index.ts +1 -1
  169. package/src/utils/no-op.ts +1 -0
  170. package/src/utils/sequence-equal.ts +13 -0
  171. package/tsconfig.build.json +1 -12
  172. package/tsconfig.build.tsbuildinfo +1 -1
  173. package/CHANGELOG.json +0 -265
  174. package/esm/utils/conditional-variable.d.ts +0 -8
  175. package/esm/utils/conditional-variable.d.ts.map +0 -1
  176. package/esm/utils/conditional-variable.js +0 -34
  177. package/esm/utils/conditional-variable.js.map +0 -1
  178. package/src/utils/conditional-variable.ts +0 -45
@@ -1 +1 @@
1
- {"version":3,"file":"tcpip.js","sourceRoot":"","sources":["../../src/commands/tcpip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAsB3C,MAAM,OAAO,eAAgB,SAAQ,cAAc;IAC/C,UAAU,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACjD,0BAA0B,CAC7B,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEnE,OAAO;YACH,sBAAsB,EAClB,sBAAsB,IAAI,EAAE;gBACxB,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC;gBACnC,CAAC,CAAC,EAAE;YACZ,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YACzC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;SAC5C,CAAC;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACtB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,KAAK,gCAAgC,IAAI,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,0BAA0B,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
1
+ {"version":3,"file":"tcpip.js","sourceRoot":"","sources":["../../src/commands/tcpip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAsB3C,SAAS,SAAS,CAAC,KAAa;IAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IAC/C,KAAK,CAAC,kBAAkB;QACpB,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACjD,0BAA0B,CAC7B,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEnE,OAAO;YACH,sBAAsB,EAClB,sBAAsB,IAAI,EAAE;gBACxB,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC;gBACnC,CAAC,CAAC,EAAE;YACZ,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC;YACnC,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC;SACtC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACtB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,SAAS,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,KAAK,gCAAgC,IAAI,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,0BAA0B,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -1,5 +1,5 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
1
2
  import type { Disposable } from "@yume-chan/event";
2
- import type { ValueOrPromise } from "@yume-chan/struct";
3
3
  import type { AdbPacketData } from "./packet.js";
4
4
  export interface AdbPrivateKey {
5
5
  /**
@@ -13,7 +13,7 @@ export interface AdbCredentialStore {
13
13
  /**
14
14
  * Generates and stores a RSA private key with modulus length `2048` and public exponent `65537`.
15
15
  */
16
- generateKey(): ValueOrPromise<AdbPrivateKey>;
16
+ generateKey(): MaybePromiseLike<AdbPrivateKey>;
17
17
  /**
18
18
  * Synchronously or asynchronously iterates through all stored RSA private keys.
19
19
  *
@@ -21,11 +21,12 @@ export interface AdbCredentialStore {
21
21
  */
22
22
  iterateKeys(): AdbKeyIterable;
23
23
  }
24
- export declare enum AdbAuthType {
25
- Token = 1,
26
- Signature = 2,
27
- PublicKey = 3
28
- }
24
+ export declare const AdbAuthType: {
25
+ readonly Token: 1;
26
+ readonly Signature: 2;
27
+ readonly PublicKey: 3;
28
+ };
29
+ export type AdbAuthType = (typeof AdbAuthType)[keyof typeof AdbAuthType];
29
30
  export interface AdbAuthenticator {
30
31
  /**
31
32
  * @param getNextRequest
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/daemon/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAcxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,GACpB,QAAQ,CAAC,aAAa,CAAC,GACvB,aAAa,CAAC,aAAa,CAAC,CAAC;AAEnC,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,WAAW,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;IAE7C;;;;OAIG;IACH,WAAW,IAAI,cAAc,CAAC;CACjC;AAED,oBAAY,WAAW;IACnB,KAAK,IAAI;IACT,SAAS,IAAI;IACb,SAAS,IAAI;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;;;;;;;;OAUG;IACH,CACI,eAAe,EAAE,kBAAkB,EACnC,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAC7C,aAAa,CAAC,aAAa,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,yBAAyB,EAAE,gBAmBvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBA+CvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAGxD,CAAC;AAEF,qBAAa,0BAA2B,YAAW,UAAU;;IACzD,QAAQ,CAAC,cAAc,EAAE,SAAS,gBAAgB,EAAE,CAAC;gBAQjD,cAAc,EAAE,SAAS,gBAAgB,EAAE,EAC3C,eAAe,EAAE,kBAAkB;IA6BjC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAe5D,OAAO;CAGV"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/daemon/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAcnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,GACpB,QAAQ,CAAC,aAAa,CAAC,GACvB,aAAa,CAAC,aAAa,CAAC,CAAC;AAEnC,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,WAAW,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE/C;;;;OAIG;IACH,WAAW,IAAI,cAAc,CAAC;CACjC;AAED,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC7B;;;;;;;;;;OAUG;IACH,CACI,eAAe,EAAE,kBAAkB,EACnC,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAC7C,aAAa,CAAC,aAAa,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,yBAAyB,EAAE,gBAmBvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,gBA+CvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EAGxD,CAAC;AAEF,qBAAa,0BAA2B,YAAW,UAAU;;IACzD,QAAQ,CAAC,cAAc,EAAE,SAAS,gBAAgB,EAAE,CAAC;gBAQjD,cAAc,EAAE,SAAS,gBAAgB,EAAE,EAC3C,eAAe,EAAE,kBAAkB;IA6BjC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAe5D,OAAO;CAGV"}
@@ -1,14 +1,13 @@
1
1
  import { PromiseResolver } from "@yume-chan/async";
2
- import { EMPTY_UINT8_ARRAY } from "@yume-chan/struct";
2
+ import { EmptyUint8Array } from "@yume-chan/struct";
3
3
  import { calculateBase64EncodedLength, encodeBase64, encodeUtf8, } from "../utils/index.js";
4
4
  import { adbGeneratePublicKey, adbGetPublicKeySize, rsaSign, } from "./crypto.js";
5
5
  import { AdbCommand } from "./packet.js";
6
- export var AdbAuthType;
7
- (function (AdbAuthType) {
8
- AdbAuthType[AdbAuthType["Token"] = 1] = "Token";
9
- AdbAuthType[AdbAuthType["Signature"] = 2] = "Signature";
10
- AdbAuthType[AdbAuthType["PublicKey"] = 3] = "PublicKey";
11
- })(AdbAuthType || (AdbAuthType = {}));
6
+ export const AdbAuthType = {
7
+ Token: 1,
8
+ Signature: 2,
9
+ PublicKey: 3,
10
+ };
12
11
  export const AdbSignatureAuthenticator = async function* (credentialStore, getNextRequest) {
13
12
  for await (const key of credentialStore.iterateKeys()) {
14
13
  const packet = await getNextRequest();
@@ -20,7 +19,7 @@ export const AdbSignatureAuthenticator = async function* (credentialStore, getNe
20
19
  command: AdbCommand.Auth,
21
20
  arg0: AdbAuthType.Signature,
22
21
  arg1: 0,
23
- payload: new Uint8Array(signature),
22
+ payload: signature,
24
23
  };
25
24
  }
26
25
  };
@@ -41,7 +40,7 @@ export const AdbPublicKeyAuthenticator = async function* (credentialStore, getNe
41
40
  const [publicKeyBase64Length] = calculateBase64EncodedLength(publicKeyLength);
42
41
  const nameBuffer = privateKey.name?.length
43
42
  ? encodeUtf8(privateKey.name)
44
- : EMPTY_UINT8_ARRAY;
43
+ : EmptyUint8Array;
45
44
  const publicKeyBuffer = new Uint8Array(publicKeyBase64Length +
46
45
  (nameBuffer.length ? nameBuffer.length + 1 : 0) + // Space character + name
47
46
  1);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/daemon/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/daemon/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACH,4BAA4B,EAC5B,YAAY,EACZ,UAAU,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,oBAAoB,EACpB,mBAAmB,EACnB,OAAO,GACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA4BzC,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;CACN,CAAC;AAsBX,MAAM,CAAC,MAAM,yBAAyB,GAAqB,KAAK,SAAS,CAAC,EACtE,eAAmC,EACnC,cAA4C;IAE5C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM;YACF,OAAO,EAAE,UAAU,CAAC,IAAI;YACxB,IAAI,EAAE,WAAW,CAAC,SAAS;YAC3B,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,SAAS;SACrB,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAqB,KAAK,SAAS,CAAC,EACtE,eAAmC,EACnC,cAA4C;IAE5C,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IAEtC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO;IACX,CAAC;IAED,IAAI,UAAqC,CAAC;IAC1C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;QACpD,UAAU,GAAG,GAAG,CAAC;QACjB,MAAM;IACV,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,UAAU,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,CAAC,qBAAqB,CAAC,GACzB,4BAA4B,CAAC,eAAe,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM;QACtC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,eAAe,CAAC;IACtB,MAAM,eAAe,GAAG,IAAI,UAAU,CAClC,qBAAqB;QACjB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,yBAAyB;QAC3E,CAAC,CACR,CAAC;IAEF,oBAAoB,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzD,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;IAE5E,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,eAAe,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM;QACF,OAAO,EAAE,UAAU,CAAC,IAAI;QACxB,IAAI,EAAE,WAAW,CAAC,SAAS;QAC3B,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,eAAe;KAC3B,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAuB;IAC1D,yBAAyB;IACzB,yBAAyB;CAC5B,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC1B,cAAc,CAA8B;IAE5C,gBAAgB,CAAqB;IAE9C,eAAe,GAAG,IAAI,eAAe,EAAiB,CAAC;IACvD,SAAS,CAAuD;IAEhE,YACI,cAA2C,EAC3C,eAAmC;QAEnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC5C,CAAC;IAED,eAAe,GAAG,GAA2B,EAAE;QAC3C,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACxC,CAAC,CAAC;IAEF,KAAK,CAAC,CAAC,oBAAoB;QACvB,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9C,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,aAAa,CACpC,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,eAAe,CACvB,EAAE,CAAC;gBACA,0CAA0C;gBAC1C,wDAAwD;gBACxD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;gBAE7C,oCAAoC;gBACpC,MAAM,MAAM,CAAC;YACjB,CAAC;YAED,iCAAiC;YACjC,6DAA6D;QACjE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAqB;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,OAAO;QACH,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACpC,CAAC;CACJ"}
@@ -5,15 +5,16 @@
5
5
  * Only supports Big-Endian, because that's what ADB uses.
6
6
  * @param byteOffset The place in the buffer at which the value should be retrieved.
7
7
  */
8
- export declare function getBigUint(dataView: DataView, byteOffset: number, length: number): bigint;
8
+ export declare function getBigUint(array: Uint8Array, byteOffset: number, length: number): bigint;
9
9
  /**
10
10
  * Stores an arbitrary-precision positive `BigInt` value at the specified byte offset from the start of the view.
11
11
  * @param byteOffset The place in the buffer at which the value should be set.
12
+ * @param length The number of bytes to set.
12
13
  * @param value The value to set.
13
14
  * @param littleEndian If `false` or `undefined`, a big-endian value should be written,
14
15
  * otherwise a little-endian value should be written.
15
16
  */
16
- export declare function setBigUint(dataView: DataView, byteOffset: number, value: bigint, littleEndian?: boolean): number;
17
+ export declare function setBigUint(array: Uint8Array, byteOffset: number, length: number, value: bigint, littleEndian?: boolean): void;
17
18
  export declare function rsaParsePrivateKey(key: Uint8Array): [n: bigint, d: bigint];
18
19
  export declare function modInverse(a: number, m: number): number;
19
20
  export declare function adbGetPublicKeySize(): number;
@@ -32,6 +33,6 @@ export declare const ASN1_SEQUENCE = 48;
32
33
  export declare const ASN1_OCTET_STRING = 4;
33
34
  export declare const ASN1_NULL = 5;
34
35
  export declare const ASN1_OID = 6;
35
- export declare const SHA1_DIGEST_INFO: Uint8Array;
36
+ export declare const SHA1_DIGEST_INFO: Uint8Array<ArrayBuffer>;
36
37
  export declare function rsaSign(privateKey: Uint8Array, data: Uint8Array): Uint8Array;
37
38
  //# sourceMappingURL=crypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/daemon/crypto.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,UAAU,CACtB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACf,MAAM,CAaR;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACtB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,OAAO,UA0BzB;AA4BD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAK1E;AAKD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAsB9C;AAED,wBAAgB,mBAAmB,WAElC;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;AACzE,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACnB,MAAM,CAAC;AA2EV;;;;;;GAMG;AACH,wBAAgB,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAChB,MAAM,CAkBR;AAED,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,aAAa,KAAO,CAAC;AAClC,eAAO,MAAM,iBAAiB,IAAO,CAAC;AACtC,eAAO,MAAM,SAAS,IAAO,CAAC;AAC9B,eAAO,MAAM,QAAQ,IAAO,CAAC;AAG7B,eAAO,MAAM,gBAAgB,YAiB3B,CAAC;AAQH,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAsC5E"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/daemon/crypto.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACf,MAAM,CAaR;AAED;;;;;;;GAOG;AAGH,wBAAgB,UAAU,CACtB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,OAAO,QAgBzB;AA4BD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAI1E;AAeD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAuB9C;AAKD,wBAAgB,mBAAmB,WAElC;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;AACzE,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACnB,MAAM,CAAC;AA+EV;;;;;;GAMG;AACH,wBAAgB,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAChB,MAAM,CAkBR;AAED,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,aAAa,KAAO,CAAC;AAClC,eAAO,MAAM,iBAAiB,IAAO,CAAC;AACtC,eAAO,MAAM,SAAS,IAAO,CAAC;AAC9B,eAAO,MAAM,QAAQ,IAAO,CAAC;AAG7B,eAAO,MAAM,gBAAgB,yBAiB3B,CAAC;AAQH,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAqC5E"}
@@ -1,4 +1,4 @@
1
- import { getBigUint64, setBigUint64, } from "@yume-chan/dataview-bigint-polyfill/esm/fallback.js";
1
+ import { getUint64BigEndian, setInt64BigEndian, setInt64LittleEndian, } from "@yume-chan/no-data-view";
2
2
  /**
3
3
  * Gets the `BigInt` value at the specified byte offset and length from the start of the view. There is
4
4
  * no alignment constraint; multi-byte values may be fetched from any offset.
@@ -6,47 +6,42 @@ import { getBigUint64, setBigUint64, } from "@yume-chan/dataview-bigint-polyfill
6
6
  * Only supports Big-Endian, because that's what ADB uses.
7
7
  * @param byteOffset The place in the buffer at which the value should be retrieved.
8
8
  */
9
- export function getBigUint(dataView, byteOffset, length) {
9
+ export function getBigUint(array, byteOffset, length) {
10
10
  let result = 0n;
11
11
  // Currently `length` must be a multiplication of 8
12
12
  // Support for arbitrary length can be easily added
13
13
  for (let i = byteOffset; i < byteOffset + length; i += 8) {
14
14
  result <<= 64n;
15
- const value = getBigUint64(dataView, i, false);
16
- result += value;
15
+ const value = getUint64BigEndian(array, i);
16
+ result |= value;
17
17
  }
18
18
  return result;
19
19
  }
20
20
  /**
21
21
  * Stores an arbitrary-precision positive `BigInt` value at the specified byte offset from the start of the view.
22
22
  * @param byteOffset The place in the buffer at which the value should be set.
23
+ * @param length The number of bytes to set.
23
24
  * @param value The value to set.
24
25
  * @param littleEndian If `false` or `undefined`, a big-endian value should be written,
25
26
  * otherwise a little-endian value should be written.
26
27
  */
27
- export function setBigUint(dataView, byteOffset, value, littleEndian) {
28
- const start = byteOffset;
28
+ // eslint-disable-next-line @typescript-eslint/max-params
29
+ export function setBigUint(array, byteOffset, length, value, littleEndian) {
29
30
  if (littleEndian) {
30
31
  while (value > 0n) {
31
- setBigUint64(dataView, byteOffset, value, true);
32
+ setInt64LittleEndian(array, byteOffset, value);
32
33
  byteOffset += 8;
33
34
  value >>= 64n;
34
35
  }
35
36
  }
36
37
  else {
37
- // Because we don't know how long (in bits) the `value` is,
38
- // Convert it to an array of `uint64` first.
39
- const uint64Array = [];
38
+ let position = byteOffset + length - 8;
40
39
  while (value > 0n) {
41
- uint64Array.push(BigInt.asUintN(64, value));
40
+ setInt64BigEndian(array, position, value);
41
+ position -= 8;
42
42
  value >>= 64n;
43
43
  }
44
- for (let i = uint64Array.length - 1; i >= 0; i -= 1) {
45
- setBigUint64(dataView, byteOffset, uint64Array[i], false);
46
- byteOffset += 8;
47
- }
48
44
  }
49
- return byteOffset - start;
50
45
  }
51
46
  // These values are correct only if
52
47
  // modulus length is 2048 and
@@ -71,16 +66,24 @@ const RsaPrivateKeyNLength = 2048 / 8;
71
66
  const RsaPrivateKeyDOffset = 303;
72
67
  const RsaPrivateKeyDLength = 2048 / 8;
73
68
  export function rsaParsePrivateKey(key) {
74
- const view = new DataView(key.buffer, key.byteOffset, key.byteLength);
75
- const n = getBigUint(view, RsaPrivateKeyNOffset, RsaPrivateKeyNLength);
76
- const d = getBigUint(view, RsaPrivateKeyDOffset, RsaPrivateKeyDLength);
69
+ const n = getBigUint(key, RsaPrivateKeyNOffset, RsaPrivateKeyNLength);
70
+ const d = getBigUint(key, RsaPrivateKeyDOffset, RsaPrivateKeyDLength);
77
71
  return [n, d];
78
72
  }
73
+ function nonNegativeMod(m, d) {
74
+ const r = m % d;
75
+ if (r > 0) {
76
+ return r;
77
+ }
78
+ return r + (d > 0 ? d : -d);
79
+ }
80
+ // https://en.wikipedia.org/wiki/Modular_multiplicative_inverse
81
+ // Solve for the smallest positive `x` in the equation `a * x ≡ 1 (mod m)`,
82
+ // or in other words, `a * x % m = 1`
79
83
  // Taken from https://stackoverflow.com/a/51562038
80
- // I can't understand, but it does work
81
84
  // Only used with numbers smaller than 2^32 so doesn't need BigInt
82
85
  export function modInverse(a, m) {
83
- a = ((a % m) + m) % m;
86
+ a = nonNegativeMod(a, m);
84
87
  if (!a || m < 2) {
85
88
  return NaN; // invalid input
86
89
  }
@@ -91,6 +94,7 @@ export function modInverse(a, m) {
91
94
  [a, b] = [b, a % b];
92
95
  s.push({ a, b });
93
96
  }
97
+ /* istanbul ignore next */
94
98
  if (a !== 1) {
95
99
  return NaN; // inverse does not exists
96
100
  }
@@ -100,27 +104,33 @@ export function modInverse(a, m) {
100
104
  for (let i = s.length - 2; i >= 0; i -= 1) {
101
105
  [x, y] = [y, x - y * Math.floor(s[i].a / s[i].b)];
102
106
  }
103
- return ((y % m) + m) % m;
107
+ return nonNegativeMod(y, m);
104
108
  }
109
+ const ModulusLengthInBytes = 2048 / 8;
110
+ const ModulusLengthInWords = ModulusLengthInBytes / 4;
105
111
  export function adbGetPublicKeySize() {
106
- return 4 + 4 + 2048 / 8 + 2048 / 8 + 4;
112
+ return 4 + 4 + ModulusLengthInBytes + ModulusLengthInBytes + 4;
107
113
  }
108
114
  export function adbGeneratePublicKey(privateKey, output) {
109
- // Android has its own public key generation algorithm
110
- // See https://android.googlesource.com/platform/system/core.git/+/91784040db2b9273687f88d8b95f729d4a61ecc2/libcrypto_utils/android_pubkey.cpp#111
111
- // The public key is an array of
115
+ // cspell: ignore: mincrypt
116
+ // Android 6 and earlier has its own encryption library called mincrypt
117
+ // This is the RSA public key format used by mincrypt:
118
+ // https://android.googlesource.com/platform/system/core/+/bb0c180e62703c2068a1b2c9f8ba6d634bf1553c/include/mincrypt/rsa.h#46
119
+ // `n0inv` and `rr` are pre-calculated to speed up RSA operations
120
+ // Android 7 switched its encryption library to BoringSSL, but still keeps the key format:
121
+ // https://android.googlesource.com/platform/system/core.git/+/91784040db2b9273687f88d8b95f729d4a61ecc2/libcrypto_utils/android_pubkey.cpp#38
122
+ // Except when reading a key, `n0inv` and `rr` are ignored (they are still populated when generating a key):
123
+ // https://android.googlesource.com/platform/system/core.git/+/91784040db2b9273687f88d8b95f729d4a61ecc2/libcrypto_utils/android_pubkey.cpp#55
124
+ // The public key is a struct (in little endian) of:
112
125
  //
113
126
  // [
114
127
  // modulusLengthInWords, // 32-bit integer, a "word" is 32-bit so it must be 2048 / 8 / 4
115
- // // Actually the comment in Android source code was wrong
116
- // n0inv, // 32-bit integer, the modular inverse of (low 32 bits of n)
117
- // modulus, // n
128
+ // // (the comment in Android source code is incorrect saying "This must be ANDROID_PUBKEY_MODULUS_SIZE")
129
+ // n0inv, // 32-bit integer, the modular inverse of (lower 32 bits of `n`)
130
+ // modulus, // `n`
118
131
  // rr, // Montgomery parameter R^2
119
- // exponent, // 32-bit integer, must be 65537
132
+ // exponent, // 32-bit integer, must be 3 or 65537
120
133
  // ]
121
- //
122
- // (All in little endian)
123
- // See https://android.googlesource.com/platform/system/core.git/+/91784040db2b9273687f88d8b95f729d4a61ecc2/libcrypto_utils/android_pubkey.cpp#38
124
134
  let outputType;
125
135
  const outputLength = adbGetPublicKeySize();
126
136
  if (!output) {
@@ -128,30 +138,29 @@ export function adbGeneratePublicKey(privateKey, output) {
128
138
  outputType = "Uint8Array";
129
139
  }
130
140
  else {
131
- if (output.byteLength < outputLength) {
132
- throw new Error("output buffer is too small");
141
+ if (output.length < outputLength) {
142
+ throw new TypeError("output buffer is too small");
133
143
  }
134
144
  outputType = "number";
135
145
  }
136
- const outputView = new DataView(output.buffer, output.byteOffset, output.byteLength);
146
+ const outputView = new DataView(output.buffer, output.byteOffset, output.length);
137
147
  let outputOffset = 0;
138
148
  // modulusLengthInWords
139
- outputView.setUint32(outputOffset, 2048 / 8 / 4, true);
149
+ outputView.setUint32(outputOffset, ModulusLengthInWords, true);
140
150
  outputOffset += 4;
141
151
  // extract `n` from private key
142
152
  const [n] = rsaParsePrivateKey(privateKey);
143
153
  // Calculate `n0inv`
144
- // Don't know why need to multiply by -1
145
- // Didn't exist in Android codebase
146
- const n0inv = modInverse(-Number(BigInt.asUintN(32, n)), 2 ** 32);
147
- outputView.setUint32(outputOffset, n0inv, true);
154
+ const n0inv = -modInverse(Number(n % 2n ** 32n), 2 ** 32);
155
+ outputView.setInt32(outputOffset, n0inv, true);
148
156
  outputOffset += 4;
149
- // Write n
150
- setBigUint(outputView, outputOffset, n, true);
151
- outputOffset += 256;
152
- // Calculate rr = (2^(rsa_size)) ^ 2 mod n
157
+ // Write `n` (a.k.a. `modulus`)
158
+ setBigUint(output, outputOffset, ModulusLengthInBytes, n, true);
159
+ outputOffset += ModulusLengthInBytes;
160
+ // Calculate rr = (2 ** (rsa_size)) ** 2 % n
153
161
  const rr = 2n ** 4096n % n;
154
- outputOffset += setBigUint(outputView, outputOffset, rr, true);
162
+ setBigUint(output, outputOffset, ModulusLengthInBytes, rr, true);
163
+ outputOffset += ModulusLengthInBytes;
155
164
  // exponent
156
165
  outputView.setUint32(outputOffset, 65537, true);
157
166
  outputOffset += 4;
@@ -235,11 +244,10 @@ export function rsaSign(privateKey, data) {
235
244
  padded.set(data, index);
236
245
  // Encryption
237
246
  // signature = padded ** d % n
238
- const view = new DataView(padded.buffer);
239
- const signature = powMod(getBigUint(view, 0, view.byteLength), d, n);
247
+ const signature = powMod(getBigUint(padded, 0, padded.length), d, n);
240
248
  // `padded` is not used anymore,
241
249
  // re-use the buffer to store the result
242
- setBigUint(view, 0, signature, false);
250
+ setBigUint(padded, 0, padded.length, signature, false);
243
251
  return padded;
244
252
  }
245
253
  //# sourceMappingURL=crypto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/daemon/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/daemon/crypto.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
1
2
  import type { Consumable, ReadableWritablePair } from "@yume-chan/stream-extra";
2
- import type { ValueOrPromise } from "@yume-chan/struct";
3
3
  import type { AdbPacketData, AdbPacketInit } from "./packet.js";
4
4
  export interface AdbDaemonDevice {
5
5
  readonly serial: string;
6
6
  readonly name: string | undefined;
7
- connect(): ValueOrPromise<ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>>>;
7
+ connect(): MaybePromiseLike<ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>>>;
8
8
  }
9
9
  //# sourceMappingURL=device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/daemon/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,OAAO,IAAI,cAAc,CACrB,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CACjE,CAAC;CACL"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/daemon/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,OAAO,IAAI,gBAAgB,CACvB,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CACjE,CAAC;CACL"}
@@ -1,29 +1,54 @@
1
- import type { Consumable, ReadableWritablePair } from "@yume-chan/stream-extra";
1
+ import type { ReadableWritablePair } from "@yume-chan/stream-extra";
2
+ import { Consumable } from "@yume-chan/stream-extra";
2
3
  import type { AdbIncomingSocketHandler, AdbSocket, Closeable } from "../adb.js";
3
4
  import type { AdbPacketData, AdbPacketInit } from "./packet.js";
4
5
  import { AdbCommand } from "./packet.js";
5
6
  export interface AdbPacketDispatcherOptions {
7
+ /**
8
+ * From Android 9.0, ADB stopped checking the checksum in packet header to improve performance.
9
+ *
10
+ * The value should be inferred from the device's ADB protocol version.
11
+ */
6
12
  calculateChecksum: boolean;
7
13
  /**
8
- * Before Android 9.0, ADB uses `char*` to parse service string,
14
+ * Before Android 9.0, ADB uses `char*` to parse service strings,
9
15
  * thus requires a null character to terminate.
10
16
  *
11
- * Usually it should have the same value as `calculateChecksum`.
17
+ * The value should be inferred from the device's ADB protocol version.
18
+ * Usually it should have the same value as `calculateChecksum`, since they both changed
19
+ * in Android 9.0.
12
20
  */
13
21
  appendNullToServiceString: boolean;
14
22
  maxPayloadSize: number;
23
+ /**
24
+ * Whether to keep the `connection` open (don't call `writable.close` and `readable.cancel`)
25
+ * when `AdbPacketDispatcher.close` is called.
26
+ *
27
+ * @default false
28
+ */
29
+ preserveConnection?: boolean | undefined;
15
30
  /**
16
31
  * The number of bytes the device can send before receiving an ack packet.
17
-
18
- * Set to 0 or any negative value to disable delayed ack.
19
- * Otherwise the value must be in the range of unsigned 32-bit integer.
32
+ * Using delayed ack can improve the throughput,
33
+ * especially when the device is connected over Wi-Fi (so the latency is higher).
34
+ *
35
+ * This must be the negotiated value between the client and device. If the device enabled
36
+ * delayed ack but the client didn't, the device will throw an error when the client sends
37
+ * the first `WRTE` packet. And vice versa.
20
38
  */
21
39
  initialDelayedAckBytes: number;
22
40
  /**
23
- * Whether to preserve the connection open after the `AdbPacketDispatcher` is closed.
41
+ * When set, the dispatcher will throw an error when
42
+ * one of the socket readable stalls for this amount of milliseconds.
43
+ *
44
+ * Because ADB is a multiplexed protocol, blocking one socket will also block all other sockets.
45
+ * It's important to always read from all sockets to prevent stalling.
46
+ *
47
+ * This option is helpful to detect bugs in the client code.
48
+ *
49
+ * @default false
24
50
  */
25
- preserveConnection?: boolean | undefined;
26
- debugSlowRead?: boolean | undefined;
51
+ readTimeLimit?: number | undefined;
27
52
  }
28
53
  /**
29
54
  * The dispatcher is the "dumb" part of the connection handling logic.
@@ -44,7 +69,7 @@ export declare class AdbPacketDispatcher implements Closeable {
44
69
  addReverseTunnel(service: string, handler: AdbIncomingSocketHandler): void;
45
70
  removeReverseTunnel(address: string): void;
46
71
  clearReverseTunnels(): void;
47
- sendPacket(command: AdbCommand, arg0: number, arg1: number, payload?: string | Uint8Array): Promise<void>;
72
+ sendPacket(command: AdbCommand, arg0: number, arg1: number, payload: string | Uint8Array): Promise<void>;
48
73
  close(): Promise<void>;
49
74
  }
50
75
  //# sourceMappingURL=dispatcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/daemon/dispatcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,UAAU,EACV,oBAAoB,EAEvB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGhF,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAG5D,MAAM,WAAW,0BAA0B;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,yBAAyB,EAAE,OAAO,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC;AAOD;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,SAAS;;IAWjD,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAI7C,IAAI,YAAY,kBAEf;gBAMG,UAAU,EAAE,oBAAoB,CAC5B,aAAa,EACb,UAAU,CAAC,aAAa,CAAC,CAC5B,EACD,OAAO,EAAE,0BAA0B;IAuOjC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA6BvD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB;IAInE,mBAAmB,CAAC,OAAO,EAAE,MAAM;IAInC,mBAAmB;IAIb,UAAU,CACZ,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAM,GAAG,UAA8B,GACjD,OAAO,CAAC,IAAI,CAAC;IAqBV,KAAK;CA4Bd"}
1
+ {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/daemon/dispatcher.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACR,oBAAoB,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEH,UAAU,EAEb,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAG5D,MAAM,WAAW,0BAA0B;IACvC;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;;;;;;OAOG;IACH,yBAAyB,EAAE,OAAO,CAAC;IAEnC,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAEzC;;;;;;;;OAQG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAOD;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,SAAS;;IAWjD,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAI7C,IAAI,YAAY,kBAEf;gBAMG,UAAU,EAAE,oBAAoB,CAC5B,aAAa,EACb,UAAU,CAAC,aAAa,CAAC,CAC5B,EACD,OAAO,EAAE,0BAA0B;IAqQjC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA6BvD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB;IAInE,mBAAmB,CAAC,OAAO,EAAE,MAAM;IAInC,mBAAmB;IAIb,UAAU,CACZ,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAEZ,OAAO,EAAE,MAAM,GAAG,UAAU,GAC7B,OAAO,CAAC,IAAI,CAAC;IAqBV,KAAK;CA4Bd"}