@yume-chan/adb 0.0.22 → 0.0.24
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.
- package/CHANGELOG.json +51 -0
- package/CHANGELOG.md +24 -1
- package/LICENSE +1 -1
- package/esm/adb.d.ts +6 -3
- package/esm/adb.d.ts.map +1 -1
- package/esm/adb.js +11 -4
- package/esm/adb.js.map +1 -1
- package/esm/banner.d.ts.map +1 -1
- package/esm/banner.js +1 -0
- package/esm/banner.js.map +1 -1
- package/esm/commands/power.d.ts.map +1 -1
- package/esm/commands/power.js +6 -5
- package/esm/commands/power.js.map +1 -1
- package/esm/commands/reverse.d.ts.map +1 -1
- package/esm/commands/reverse.js +23 -11
- package/esm/commands/reverse.js.map +1 -1
- package/esm/commands/subprocess/command.js +3 -3
- package/esm/commands/subprocess/command.js.map +1 -1
- package/esm/commands/subprocess/protocols/none.d.ts +2 -2
- package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/shell.d.ts +3 -3
- package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/shell.js +14 -69
- package/esm/commands/subprocess/protocols/shell.js.map +1 -1
- package/esm/commands/subprocess/protocols/types.d.ts +2 -2
- package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
- package/esm/commands/subprocess/utils.js +1 -1
- package/esm/commands/subprocess/utils.js.map +1 -1
- package/esm/commands/sync/list.d.ts +2 -5
- package/esm/commands/sync/list.d.ts.map +1 -1
- package/esm/commands/sync/list.js +2 -4
- package/esm/commands/sync/list.js.map +1 -1
- package/esm/commands/sync/pull.d.ts +1 -4
- package/esm/commands/sync/pull.d.ts.map +1 -1
- package/esm/commands/sync/pull.js +2 -2
- package/esm/commands/sync/pull.js.map +1 -1
- package/esm/commands/sync/push.d.ts +4 -7
- package/esm/commands/sync/push.d.ts.map +1 -1
- package/esm/commands/sync/push.js +3 -6
- package/esm/commands/sync/push.js.map +1 -1
- package/esm/commands/sync/request.d.ts +13 -18
- package/esm/commands/sync/request.d.ts.map +1 -1
- package/esm/commands/sync/request.js +23 -28
- package/esm/commands/sync/request.js.map +1 -1
- package/esm/commands/sync/response.d.ts +18 -12
- package/esm/commands/sync/response.d.ts.map +1 -1
- package/esm/commands/sync/response.js +39 -17
- package/esm/commands/sync/response.js.map +1 -1
- package/esm/commands/sync/socket.d.ts +2 -2
- package/esm/commands/sync/socket.d.ts.map +1 -1
- package/esm/commands/sync/socket.js +10 -5
- package/esm/commands/sync/socket.js.map +1 -1
- package/esm/commands/sync/stat.d.ts +0 -3
- package/esm/commands/sync/stat.d.ts.map +1 -1
- package/esm/commands/sync/stat.js +0 -2
- package/esm/commands/sync/stat.js.map +1 -1
- package/esm/commands/sync/sync.d.ts +4 -3
- package/esm/commands/sync/sync.d.ts.map +1 -1
- package/esm/commands/sync/sync.js +9 -7
- package/esm/commands/sync/sync.js.map +1 -1
- package/esm/commands/tcpip.js +1 -1
- package/esm/commands/tcpip.js.map +1 -1
- package/esm/daemon/auth.js +1 -1
- package/esm/daemon/auth.js.map +1 -1
- package/esm/daemon/crypto.d.ts +3 -2
- package/esm/daemon/crypto.d.ts.map +1 -1
- package/esm/daemon/crypto.js +56 -49
- package/esm/daemon/crypto.js.map +1 -1
- package/esm/daemon/dispatcher.d.ts +38 -6
- package/esm/daemon/dispatcher.d.ts.map +1 -1
- package/esm/daemon/dispatcher.js +86 -28
- package/esm/daemon/dispatcher.js.map +1 -1
- package/esm/daemon/packet.d.ts +2 -2
- package/esm/daemon/packet.d.ts.map +1 -1
- package/esm/daemon/packet.js +13 -12
- package/esm/daemon/packet.js.map +1 -1
- package/esm/daemon/socket.d.ts +11 -6
- package/esm/daemon/socket.d.ts.map +1 -1
- package/esm/daemon/socket.js +42 -12
- package/esm/daemon/socket.js.map +1 -1
- package/esm/daemon/transport.d.ts +75 -11
- package/esm/daemon/transport.d.ts.map +1 -1
- package/esm/daemon/transport.js +60 -33
- package/esm/daemon/transport.js.map +1 -1
- package/esm/features.d.ts +2 -1
- package/esm/features.d.ts.map +1 -1
- package/esm/features.js +2 -1
- package/esm/features.js.map +1 -1
- package/esm/server/client.d.ts +128 -48
- package/esm/server/client.d.ts.map +1 -1
- package/esm/server/client.js +378 -145
- package/esm/server/client.js.map +1 -1
- package/esm/server/transport.d.ts +3 -0
- package/esm/server/transport.d.ts.map +1 -1
- package/esm/server/transport.js +30 -4
- package/esm/server/transport.js.map +1 -1
- package/esm/utils/base64.d.ts.map +1 -1
- package/esm/utils/base64.js +33 -22
- package/esm/utils/base64.js.map +1 -1
- package/esm/utils/hex.d.ts +1 -1
- package/esm/utils/hex.d.ts.map +1 -1
- package/esm/utils/hex.js +12 -14
- package/esm/utils/hex.js.map +1 -1
- package/esm/utils/index.d.ts +1 -1
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +1 -1
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/sequence-equal.d.ts +2 -0
- package/esm/utils/sequence-equal.d.ts.map +1 -0
- package/esm/utils/sequence-equal.js +12 -0
- package/esm/utils/sequence-equal.js.map +1 -0
- package/package.json +13 -15
- package/src/adb.ts +22 -6
- package/src/banner.ts +1 -0
- package/src/commands/power.ts +7 -5
- package/src/commands/reverse.ts +31 -18
- package/src/commands/subprocess/command.ts +3 -3
- package/src/commands/subprocess/protocols/none.ts +2 -2
- package/src/commands/subprocess/protocols/shell.ts +21 -100
- package/src/commands/subprocess/protocols/types.ts +2 -2
- package/src/commands/subprocess/utils.ts +1 -1
- package/src/commands/sync/list.ts +2 -4
- package/src/commands/sync/pull.ts +2 -2
- package/src/commands/sync/push.ts +7 -10
- package/src/commands/sync/request.ts +32 -32
- package/src/commands/sync/response.ts +47 -20
- package/src/commands/sync/socket.ts +13 -8
- package/src/commands/sync/stat.ts +0 -2
- package/src/commands/sync/sync.ts +13 -9
- package/src/commands/tcpip.ts +1 -1
- package/src/daemon/auth.ts +1 -1
- package/src/daemon/crypto.ts +64 -55
- package/src/daemon/dispatcher.ts +175 -37
- package/src/daemon/packet.ts +21 -14
- package/src/daemon/socket.ts +62 -28
- package/src/daemon/transport.ts +145 -40
- package/src/features.ts +2 -1
- package/src/server/client.ts +472 -224
- package/src/server/transport.ts +32 -4
- package/src/utils/base64.ts +33 -22
- package/src/utils/hex.ts +16 -14
- package/src/utils/index.ts +1 -1
- package/src/utils/sequence-equal.ts +13 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/utils/conditional-variable.d.ts +0 -8
- package/esm/utils/conditional-variable.d.ts.map +0 -1
- package/esm/utils/conditional-variable.js +0 -34
- package/esm/utils/conditional-variable.js.map +0 -1
- package/src/utils/conditional-variable.ts +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,cAAc,EACd,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import Struct from "@yume-chan/struct";
|
|
2
|
-
import { AdbSyncResponseId } from "./response.js";
|
|
3
2
|
import type { AdbSyncSocket } from "./socket.js";
|
|
4
3
|
export declare enum LinuxFileType {
|
|
5
4
|
Directory = 4,
|
|
@@ -22,7 +21,6 @@ export declare const AdbSyncLstatResponse: Struct<{
|
|
|
22
21
|
size: number;
|
|
23
22
|
mtime: number;
|
|
24
23
|
}, never, {
|
|
25
|
-
id: AdbSyncResponseId.Lstat;
|
|
26
24
|
readonly type: LinuxFileType;
|
|
27
25
|
readonly permission: number;
|
|
28
26
|
}, undefined>;
|
|
@@ -63,7 +61,6 @@ export declare const AdbSyncStatResponse: Struct<{
|
|
|
63
61
|
mtime: bigint;
|
|
64
62
|
ctime: bigint;
|
|
65
63
|
}, never, {
|
|
66
|
-
id: AdbSyncResponseId.Stat;
|
|
67
64
|
readonly type: LinuxFileType;
|
|
68
65
|
readonly permission: number;
|
|
69
66
|
}, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,oBAAY,aAAa;IACrB,SAAS,IAAO;IAChB,IAAI,IAAO;IACX,IAAI,KAAO;CACd;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,IAAI,IAAI,aAAa,CAAC;IAC1B,IAAI,UAAU,IAAI,MAAM,CAAC;IAEzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB;;;;;;;aAgB3B,CAAC;AAEP,MAAM,MAAM,oBAAoB,GAC5B,CAAC,OAAO,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAExD,oBAAY,oBAAoB;IAC5B,OAAO,IAAI;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,KAAK,KAAK;IACV,KAAK,IAAI;IACT,MAAM,KAAK;IACX,GAAG,IAAI;IACP,MAAM,KAAK;IACX,KAAK,KAAK;IACV,MAAM,KAAK;IACX,YAAY,KAAK;IACjB,MAAM,KAAK;IACX,MAAM,IAAI;IACV,MAAM,KAAK;IACX,MAAM,KAAK;IACX,OAAO,KAAK;IACZ,SAAS,KAAK;IACd,KAAK,IAAI;IACT,KAAK,KAAK;IACV,OAAO,KAAK;CACf;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;aAwB1B,CAAC;AAEP,MAAM,MAAM,mBAAmB,GAC3B,CAAC,OAAO,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEvD,wBAAsB,YAAY,CAC9B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,GACZ,OAAO,CAAC,WAAW,CAAC,CAiCtB;AAED,wBAAsB,WAAW,CAC7B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAY9B"}
|
|
@@ -13,7 +13,6 @@ export const AdbSyncLstatResponse = new Struct({ littleEndian: true })
|
|
|
13
13
|
.int32("size")
|
|
14
14
|
.int32("mtime")
|
|
15
15
|
.extra({
|
|
16
|
-
id: AdbSyncResponseId.Lstat,
|
|
17
16
|
get type() {
|
|
18
17
|
return (this.mode >> 12);
|
|
19
18
|
},
|
|
@@ -63,7 +62,6 @@ export const AdbSyncStatResponse = new Struct({ littleEndian: true })
|
|
|
63
62
|
.uint64("mtime")
|
|
64
63
|
.uint64("ctime")
|
|
65
64
|
.extra({
|
|
66
|
-
id: AdbSyncResponseId.Stat,
|
|
67
65
|
get type() {
|
|
68
66
|
return (this.mode >> 12);
|
|
69
67
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGvE,kGAAkG;AAClG,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,2DAAgB,CAAA;IAChB,iDAAW,CAAA;IACX,kDAAW,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAeD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACjE,KAAK,CAAC,MAAM,CAAC;KACb,KAAK,CAAC,MAAM,CAAC;KACb,KAAK,CAAC,OAAO,CAAC;KACd,KAAK,CAAC;IACH,
|
|
1
|
+
{"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AutoDisposable } from "@yume-chan/event";
|
|
2
|
-
import type {
|
|
2
|
+
import type { MaybeConsumable, ReadableStream } from "@yume-chan/stream-extra";
|
|
3
3
|
import type { Adb, AdbSocket } from "../../adb.js";
|
|
4
4
|
import type { AdbSyncEntry } from "./list.js";
|
|
5
|
+
import type { AdbSyncSocketLocked } from "./socket.js";
|
|
5
6
|
import { AdbSyncSocket } from "./socket.js";
|
|
6
7
|
import type { AdbSyncStat, LinuxFileType } from "./stat.js";
|
|
7
8
|
/**
|
|
@@ -12,7 +13,7 @@ import type { AdbSyncStat, LinuxFileType } from "./stat.js";
|
|
|
12
13
|
export declare function dirname(path: string): string;
|
|
13
14
|
export interface AdbSyncWriteOptions {
|
|
14
15
|
filename: string;
|
|
15
|
-
file: ReadableStream<
|
|
16
|
+
file: ReadableStream<MaybeConsumable<Uint8Array>>;
|
|
16
17
|
type?: LinuxFileType;
|
|
17
18
|
permission?: number;
|
|
18
19
|
mtime?: number;
|
|
@@ -40,7 +41,6 @@ export declare class AdbSync extends AutoDisposable {
|
|
|
40
41
|
* If `path` points to a symbolic link, it will be resolved and the returned information is about the target (with `type` being `LinuxFileType.File` or `LinuxFileType.Directory`).
|
|
41
42
|
*/
|
|
42
43
|
stat(path: string): Promise<{
|
|
43
|
-
id: import("./response.js").AdbSyncResponseId.Stat;
|
|
44
44
|
readonly type: LinuxFileType;
|
|
45
45
|
readonly permission: number;
|
|
46
46
|
error: import("./stat.js").AdbSyncStatErrorCode;
|
|
@@ -76,6 +76,7 @@ export declare class AdbSync extends AutoDisposable {
|
|
|
76
76
|
* @param options The content and options of the file to write.
|
|
77
77
|
*/
|
|
78
78
|
write(options: AdbSyncWriteOptions): Promise<void>;
|
|
79
|
+
lockSocket(): Promise<AdbSyncSocketLocked>;
|
|
79
80
|
dispose(): Promise<void>;
|
|
80
81
|
}
|
|
81
82
|
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG5D;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS5C;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,OAAQ,SAAQ,cAAc;;IACvC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;IACpB,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IAQjC,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,IAAI,uBAAuB,IAAI,OAAO,CAErC;gBAEW,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS;IAiBvC;;;;OAIG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;IAQvB;;;;OAIG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASjD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAIzD,OAAO,CAAC,IAAI,EAAE,MAAM;IAQ1B;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAIlD;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD,UAAU,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI3B,OAAO;CAIzB"}
|
|
@@ -48,14 +48,13 @@ export class AdbSync extends AutoDisposable {
|
|
|
48
48
|
super();
|
|
49
49
|
this._adb = adb;
|
|
50
50
|
this._socket = new AdbSyncSocket(socket, adb.maxPayloadSize);
|
|
51
|
-
this.#supportsStat = adb.
|
|
52
|
-
this.#supportsListV2 = adb.
|
|
53
|
-
this.#fixedPushMkdir = adb.
|
|
54
|
-
this.#supportsSendReceiveV2 = adb.
|
|
51
|
+
this.#supportsStat = adb.canUseFeature(AdbFeature.StatV2);
|
|
52
|
+
this.#supportsListV2 = adb.canUseFeature(AdbFeature.ListV2);
|
|
53
|
+
this.#fixedPushMkdir = adb.canUseFeature(AdbFeature.FixedPushMkdir);
|
|
54
|
+
this.#supportsSendReceiveV2 = adb.canUseFeature(AdbFeature.SendReceiveV2);
|
|
55
55
|
// https://android.googlesource.com/platform/packages/modules/adb/+/91768a57b7138166e0a3d11f79cd55909dda7014/client/file_sync_client.cpp#1361
|
|
56
56
|
this.#needPushMkdirWorkaround =
|
|
57
|
-
this._adb.
|
|
58
|
-
!this.fixedPushMkdir;
|
|
57
|
+
this._adb.canUseFeature(AdbFeature.ShellV2) && !this.fixedPushMkdir;
|
|
59
58
|
}
|
|
60
59
|
/**
|
|
61
60
|
* Gets information of a file or folder.
|
|
@@ -116,7 +115,7 @@ export class AdbSync extends AutoDisposable {
|
|
|
116
115
|
*/
|
|
117
116
|
async write(options) {
|
|
118
117
|
if (this.needPushMkdirWorkaround) {
|
|
119
|
-
// It may fail if
|
|
118
|
+
// It may fail if `filename` already exists.
|
|
120
119
|
// Ignore the result.
|
|
121
120
|
// TODO: sync: test push mkdir workaround (need an Android 8 device)
|
|
122
121
|
await this._adb.subprocess.spawnAndWait([
|
|
@@ -131,6 +130,9 @@ export class AdbSync extends AutoDisposable {
|
|
|
131
130
|
...options,
|
|
132
131
|
});
|
|
133
132
|
}
|
|
133
|
+
lockSocket() {
|
|
134
|
+
return this._socket.lock();
|
|
135
|
+
}
|
|
134
136
|
async dispose() {
|
|
135
137
|
super.dispose();
|
|
136
138
|
await this._socket.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"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"}
|
package/esm/commands/tcpip.js
CHANGED
|
@@ -20,7 +20,7 @@ export class AdbTcpIpCommand extends AdbCommandBase {
|
|
|
20
20
|
}
|
|
21
21
|
async setPort(port) {
|
|
22
22
|
if (port <= 0) {
|
|
23
|
-
throw new
|
|
23
|
+
throw new TypeError(`Invalid port ${port}`);
|
|
24
24
|
}
|
|
25
25
|
const output = await this.adb.createSocketAndWait(`tcpip:${port}`);
|
|
26
26
|
if (output !== `restarting in TCP mode port: ${port}\n`) {
|
|
@@ -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,
|
|
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,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"}
|
package/esm/daemon/auth.js
CHANGED
package/esm/daemon/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/daemon/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,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,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,+CAAS,CAAA;IACT,uDAAa,CAAA;IACb,uDAAa,CAAA;AACjB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAoBD,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,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/daemon/auth.ts"],"names":[],"mappings":"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"}
|
package/esm/daemon/crypto.d.ts
CHANGED
|
@@ -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(
|
|
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(
|
|
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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/daemon/crypto.ts"],"names":[],"mappings":"
|
|
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;AACH,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,YAiB3B,CAAC;AAQH,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAqC5E"}
|
package/esm/daemon/crypto.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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,41 @@ 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(
|
|
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 =
|
|
16
|
-
result
|
|
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(
|
|
28
|
-
const start = byteOffset;
|
|
28
|
+
export function setBigUint(array, byteOffset, length, value, littleEndian) {
|
|
29
29
|
if (littleEndian) {
|
|
30
30
|
while (value > 0n) {
|
|
31
|
-
|
|
31
|
+
setInt64LittleEndian(array, byteOffset, value);
|
|
32
32
|
byteOffset += 8;
|
|
33
33
|
value >>= 64n;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
|
|
38
|
-
// Convert it to an array of `uint64` first.
|
|
39
|
-
const uint64Array = [];
|
|
37
|
+
let position = byteOffset + length - 8;
|
|
40
38
|
while (value > 0n) {
|
|
41
|
-
|
|
39
|
+
setInt64BigEndian(array, position, value);
|
|
40
|
+
position -= 8;
|
|
42
41
|
value >>= 64n;
|
|
43
42
|
}
|
|
44
|
-
for (let i = uint64Array.length - 1; i >= 0; i -= 1) {
|
|
45
|
-
setBigUint64(dataView, byteOffset, uint64Array[i], false);
|
|
46
|
-
byteOffset += 8;
|
|
47
|
-
}
|
|
48
43
|
}
|
|
49
|
-
return byteOffset - start;
|
|
50
44
|
}
|
|
51
45
|
// These values are correct only if
|
|
52
46
|
// modulus length is 2048 and
|
|
@@ -71,16 +65,24 @@ const RsaPrivateKeyNLength = 2048 / 8;
|
|
|
71
65
|
const RsaPrivateKeyDOffset = 303;
|
|
72
66
|
const RsaPrivateKeyDLength = 2048 / 8;
|
|
73
67
|
export function rsaParsePrivateKey(key) {
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const d = getBigUint(view, RsaPrivateKeyDOffset, RsaPrivateKeyDLength);
|
|
68
|
+
const n = getBigUint(key, RsaPrivateKeyNOffset, RsaPrivateKeyNLength);
|
|
69
|
+
const d = getBigUint(key, RsaPrivateKeyDOffset, RsaPrivateKeyDLength);
|
|
77
70
|
return [n, d];
|
|
78
71
|
}
|
|
72
|
+
function nonNegativeMod(m, d) {
|
|
73
|
+
const r = m % d;
|
|
74
|
+
if (r > 0) {
|
|
75
|
+
return r;
|
|
76
|
+
}
|
|
77
|
+
return r + (d > 0 ? d : -d);
|
|
78
|
+
}
|
|
79
|
+
// https://en.wikipedia.org/wiki/Modular_multiplicative_inverse
|
|
80
|
+
// Solve for the smallest positive `x` in the equation `a * x ≡ 1 (mod m)`,
|
|
81
|
+
// or in other words, `a * x % m = 1`
|
|
79
82
|
// Taken from https://stackoverflow.com/a/51562038
|
|
80
|
-
// I can't understand, but it does work
|
|
81
83
|
// Only used with numbers smaller than 2^32 so doesn't need BigInt
|
|
82
84
|
export function modInverse(a, m) {
|
|
83
|
-
a = (
|
|
85
|
+
a = nonNegativeMod(a, m);
|
|
84
86
|
if (!a || m < 2) {
|
|
85
87
|
return NaN; // invalid input
|
|
86
88
|
}
|
|
@@ -91,6 +93,7 @@ export function modInverse(a, m) {
|
|
|
91
93
|
[a, b] = [b, a % b];
|
|
92
94
|
s.push({ a, b });
|
|
93
95
|
}
|
|
96
|
+
/* istanbul ignore next */
|
|
94
97
|
if (a !== 1) {
|
|
95
98
|
return NaN; // inverse does not exists
|
|
96
99
|
}
|
|
@@ -100,27 +103,33 @@ export function modInverse(a, m) {
|
|
|
100
103
|
for (let i = s.length - 2; i >= 0; i -= 1) {
|
|
101
104
|
[x, y] = [y, x - y * Math.floor(s[i].a / s[i].b)];
|
|
102
105
|
}
|
|
103
|
-
return (
|
|
106
|
+
return nonNegativeMod(y, m);
|
|
104
107
|
}
|
|
108
|
+
const ModulusLengthInBytes = 2048 / 8;
|
|
109
|
+
const ModulusLengthInWords = ModulusLengthInBytes / 4;
|
|
105
110
|
export function adbGetPublicKeySize() {
|
|
106
|
-
return 4 + 4 +
|
|
111
|
+
return 4 + 4 + ModulusLengthInBytes + ModulusLengthInBytes + 4;
|
|
107
112
|
}
|
|
108
113
|
export function adbGeneratePublicKey(privateKey, output) {
|
|
109
|
-
//
|
|
110
|
-
//
|
|
111
|
-
//
|
|
114
|
+
// cspell: ignore: mincrypt
|
|
115
|
+
// Android 6 and earlier has its own encryption library called mincrypt
|
|
116
|
+
// This is the RSA public key format used by mincrypt:
|
|
117
|
+
// https://android.googlesource.com/platform/system/core/+/bb0c180e62703c2068a1b2c9f8ba6d634bf1553c/include/mincrypt/rsa.h#46
|
|
118
|
+
// `n0inv` and `rr` are pre-calculated to speed up RSA operations
|
|
119
|
+
// Android 7 switched its encryption library to BoringSSL, but still keeps the key format:
|
|
120
|
+
// https://android.googlesource.com/platform/system/core.git/+/91784040db2b9273687f88d8b95f729d4a61ecc2/libcrypto_utils/android_pubkey.cpp#38
|
|
121
|
+
// Except when reading a key, `n0inv` and `rr` are ignored (they are still populated when generating a key):
|
|
122
|
+
// https://android.googlesource.com/platform/system/core.git/+/91784040db2b9273687f88d8b95f729d4a61ecc2/libcrypto_utils/android_pubkey.cpp#55
|
|
123
|
+
// The public key is a struct (in little endian) of:
|
|
112
124
|
//
|
|
113
125
|
// [
|
|
114
126
|
// modulusLengthInWords, // 32-bit integer, a "word" is 32-bit so it must be 2048 / 8 / 4
|
|
115
|
-
// //
|
|
116
|
-
// n0inv, // 32-bit integer, the modular inverse of (
|
|
117
|
-
// modulus, // n
|
|
127
|
+
// // (the comment in Android source code is incorrect saying "This must be ANDROID_PUBKEY_MODULUS_SIZE")
|
|
128
|
+
// n0inv, // 32-bit integer, the modular inverse of (lower 32 bits of `n`)
|
|
129
|
+
// modulus, // `n`
|
|
118
130
|
// rr, // Montgomery parameter R^2
|
|
119
|
-
// exponent, // 32-bit integer, must be 65537
|
|
131
|
+
// exponent, // 32-bit integer, must be 3 or 65537
|
|
120
132
|
// ]
|
|
121
|
-
//
|
|
122
|
-
// (All in little endian)
|
|
123
|
-
// See https://android.googlesource.com/platform/system/core.git/+/91784040db2b9273687f88d8b95f729d4a61ecc2/libcrypto_utils/android_pubkey.cpp#38
|
|
124
133
|
let outputType;
|
|
125
134
|
const outputLength = adbGetPublicKeySize();
|
|
126
135
|
if (!output) {
|
|
@@ -128,30 +137,29 @@ export function adbGeneratePublicKey(privateKey, output) {
|
|
|
128
137
|
outputType = "Uint8Array";
|
|
129
138
|
}
|
|
130
139
|
else {
|
|
131
|
-
if (output.
|
|
132
|
-
throw new
|
|
140
|
+
if (output.length < outputLength) {
|
|
141
|
+
throw new TypeError("output buffer is too small");
|
|
133
142
|
}
|
|
134
143
|
outputType = "number";
|
|
135
144
|
}
|
|
136
|
-
const outputView = new DataView(output.buffer, output.byteOffset, output.
|
|
145
|
+
const outputView = new DataView(output.buffer, output.byteOffset, output.length);
|
|
137
146
|
let outputOffset = 0;
|
|
138
147
|
// modulusLengthInWords
|
|
139
|
-
outputView.setUint32(outputOffset,
|
|
148
|
+
outputView.setUint32(outputOffset, ModulusLengthInWords, true);
|
|
140
149
|
outputOffset += 4;
|
|
141
150
|
// extract `n` from private key
|
|
142
151
|
const [n] = rsaParsePrivateKey(privateKey);
|
|
143
152
|
// Calculate `n0inv`
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const n0inv = modInverse(-Number(BigInt.asUintN(32, n)), 2 ** 32);
|
|
147
|
-
outputView.setUint32(outputOffset, n0inv, true);
|
|
153
|
+
const n0inv = -modInverse(Number(n % 2n ** 32n), 2 ** 32);
|
|
154
|
+
outputView.setInt32(outputOffset, n0inv, true);
|
|
148
155
|
outputOffset += 4;
|
|
149
|
-
// Write n
|
|
150
|
-
setBigUint(
|
|
151
|
-
outputOffset +=
|
|
152
|
-
// Calculate rr = (2
|
|
156
|
+
// Write `n` (a.k.a. `modulus`)
|
|
157
|
+
setBigUint(output, outputOffset, ModulusLengthInBytes, n, true);
|
|
158
|
+
outputOffset += ModulusLengthInBytes;
|
|
159
|
+
// Calculate rr = (2 ** (rsa_size)) ** 2 % n
|
|
153
160
|
const rr = 2n ** 4096n % n;
|
|
154
|
-
|
|
161
|
+
setBigUint(output, outputOffset, ModulusLengthInBytes, rr, true);
|
|
162
|
+
outputOffset += ModulusLengthInBytes;
|
|
155
163
|
// exponent
|
|
156
164
|
outputView.setUint32(outputOffset, 65537, true);
|
|
157
165
|
outputOffset += 4;
|
|
@@ -235,11 +243,10 @@ export function rsaSign(privateKey, data) {
|
|
|
235
243
|
padded.set(data, index);
|
|
236
244
|
// Encryption
|
|
237
245
|
// signature = padded ** d % n
|
|
238
|
-
const
|
|
239
|
-
const signature = powMod(getBigUint(view, 0, view.byteLength), d, n);
|
|
246
|
+
const signature = powMod(getBigUint(padded, 0, padded.length), d, n);
|
|
240
247
|
// `padded` is not used anymore,
|
|
241
248
|
// re-use the buffer to store the result
|
|
242
|
-
setBigUint(
|
|
249
|
+
setBigUint(padded, 0, padded.length, signature, false);
|
|
243
250
|
return padded;
|
|
244
251
|
}
|
|
245
252
|
//# sourceMappingURL=crypto.js.map
|
package/esm/daemon/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/daemon/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/daemon/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,54 @@
|
|
|
1
|
-
import type {
|
|
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
|
|
14
|
+
* Before Android 9.0, ADB uses `char*` to parse service strings,
|
|
9
15
|
* thus requires a null character to terminate.
|
|
10
16
|
*
|
|
11
|
-
*
|
|
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;
|
|
15
23
|
/**
|
|
16
|
-
* Whether to
|
|
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
|
|
17
28
|
*/
|
|
18
29
|
preserveConnection?: boolean | undefined;
|
|
19
|
-
|
|
30
|
+
/**
|
|
31
|
+
* The number of bytes the device can send before receiving an ack packet.
|
|
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.
|
|
38
|
+
*/
|
|
39
|
+
initialDelayedAckBytes: number;
|
|
40
|
+
/**
|
|
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
|
|
50
|
+
*/
|
|
51
|
+
readTimeLimit?: number | undefined;
|
|
20
52
|
}
|
|
21
53
|
/**
|
|
22
54
|
* The dispatcher is the "dumb" part of the connection handling logic.
|
|
@@ -37,7 +69,7 @@ export declare class AdbPacketDispatcher implements Closeable {
|
|
|
37
69
|
addReverseTunnel(service: string, handler: AdbIncomingSocketHandler): void;
|
|
38
70
|
removeReverseTunnel(address: string): void;
|
|
39
71
|
clearReverseTunnels(): void;
|
|
40
|
-
sendPacket(command: AdbCommand, arg0: number, arg1: number, payload
|
|
72
|
+
sendPacket(command: AdbCommand, arg0: number, arg1: number, payload: string | Uint8Array): Promise<void>;
|
|
41
73
|
close(): Promise<void>;
|
|
42
74
|
}
|
|
43
75
|
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/daemon/dispatcher.ts"],"names":[],"mappings":"
|
|
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"}
|