@yume-chan/android-bin 0.0.17 → 0.0.19

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 (56) hide show
  1. package/CHANGELOG.json +21 -0
  2. package/CHANGELOG.md +14 -1
  3. package/README.md +15 -0
  4. package/esm/bu.d.ts +14 -14
  5. package/esm/bu.d.ts.map +1 -1
  6. package/esm/bu.js +13 -9
  7. package/esm/bu.js.map +1 -1
  8. package/esm/bug-report.d.ts +37 -37
  9. package/esm/bug-report.d.ts.map +1 -1
  10. package/esm/bug-report.js +136 -124
  11. package/esm/bug-report.js.map +1 -1
  12. package/esm/cmd.d.ts +15 -0
  13. package/esm/cmd.d.ts.map +1 -0
  14. package/esm/cmd.js +54 -0
  15. package/esm/cmd.js.map +1 -0
  16. package/esm/demo-mode.d.ts +43 -42
  17. package/esm/demo-mode.d.ts.map +1 -1
  18. package/esm/demo-mode.js +179 -146
  19. package/esm/demo-mode.js.map +1 -1
  20. package/esm/index.d.ts +6 -4
  21. package/esm/index.d.ts.map +1 -1
  22. package/esm/index.js +7 -5
  23. package/esm/index.js.map +1 -1
  24. package/esm/logcat.d.ts +91 -89
  25. package/esm/logcat.d.ts.map +1 -1
  26. package/esm/logcat.js +288 -192
  27. package/esm/logcat.js.map +1 -1
  28. package/esm/overlay-display.d.ts +21 -0
  29. package/esm/overlay-display.d.ts.map +1 -0
  30. package/esm/overlay-display.js +78 -0
  31. package/esm/overlay-display.js.map +1 -0
  32. package/esm/pm.d.ts +139 -0
  33. package/esm/pm.d.ts.map +1 -0
  34. package/esm/pm.js +125 -0
  35. package/esm/pm.js.map +1 -0
  36. package/esm/settings.d.ts +12 -12
  37. package/esm/settings.d.ts.map +1 -1
  38. package/esm/settings.js +29 -24
  39. package/esm/settings.js.map +1 -1
  40. package/package.json +15 -11
  41. package/src/bu.ts +7 -3
  42. package/src/bug-report.ts +74 -48
  43. package/src/cmd.ts +67 -0
  44. package/src/demo-mode.ts +111 -62
  45. package/src/index.ts +6 -4
  46. package/src/logcat.ts +359 -97
  47. package/src/overlay-display.ts +115 -0
  48. package/src/pm.ts +281 -0
  49. package/src/settings.ts +45 -16
  50. package/tsconfig.build.json +3 -0
  51. package/tsconfig.build.tsbuildinfo +1 -0
  52. package/.rush/temp/package-deps_build.json +0 -17
  53. package/.rush/temp/package-deps_build_watch.json +0 -17
  54. package/.rush/temp/shrinkwrap-deps.json +0 -5
  55. package/android-bin.build.log +0 -1
  56. package/tsconfig.json +0 -11
@@ -0,0 +1,78 @@
1
+ import { AdbCommandBase } from "@yume-chan/adb";
2
+ import { Settings } from "./settings.js";
3
+ class OverlayDisplay extends AdbCommandBase {
4
+ settings;
5
+ static OVERLAY_DISPLAY_DEVICES_KEY = "overlay_display_devices";
6
+ constructor(adb) {
7
+ super(adb);
8
+ this.settings = new Settings(adb);
9
+ }
10
+ async get() {
11
+ const devices = [];
12
+ const settingString = await this.settings.get("global", OverlayDisplay.OVERLAY_DISPLAY_DEVICES_KEY);
13
+ for (const displayString of settingString.split(";")) {
14
+ const [modesString, ...flagStrings] = displayString.split(",");
15
+ if (!modesString) {
16
+ continue;
17
+ }
18
+ const device = {
19
+ modes: [],
20
+ secure: false,
21
+ ownContentOnly: false,
22
+ showSystemDecorations: false,
23
+ };
24
+ for (const modeString of modesString.split("|")) {
25
+ const match = modeString.match(/(\d+)x(\d+)\/(\d+)/);
26
+ if (!match) {
27
+ continue;
28
+ }
29
+ device.modes.push({
30
+ width: parseInt(match[1], 10),
31
+ height: parseInt(match[2], 10),
32
+ density: parseInt(match[3], 10),
33
+ });
34
+ }
35
+ if (device.modes.length === 0) {
36
+ continue;
37
+ }
38
+ for (const flagString of flagStrings) {
39
+ switch (flagString) {
40
+ case "secure":
41
+ device.secure = true;
42
+ break;
43
+ case "own_content_only":
44
+ device.ownContentOnly = true;
45
+ break;
46
+ case "show_system_decorations":
47
+ device.showSystemDecorations = true;
48
+ break;
49
+ }
50
+ }
51
+ devices.push(device);
52
+ }
53
+ return devices;
54
+ }
55
+ async set(devices) {
56
+ let settingString = "";
57
+ for (const device of devices) {
58
+ if (settingString) {
59
+ settingString += ";";
60
+ }
61
+ settingString += device.modes
62
+ .map((mode) => `${mode.width}x${mode.height}/${mode.density}`)
63
+ .join("|");
64
+ if (device.secure) {
65
+ settingString += ",secure";
66
+ }
67
+ if (device.ownContentOnly) {
68
+ settingString += ",own_content_only";
69
+ }
70
+ if (device.showSystemDecorations) {
71
+ settingString += ",show_system_decorations";
72
+ }
73
+ }
74
+ await this.settings.put("global", OverlayDisplay.OVERLAY_DISPLAY_DEVICES_KEY, settingString);
75
+ }
76
+ }
77
+ export { OverlayDisplay };
78
+ //# sourceMappingURL=overlay-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-display.js","sourceRoot":"","sources":["../src/overlay-display.ts"],"names":[],"mappings":"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"}
package/esm/pm.d.ts ADDED
@@ -0,0 +1,139 @@
1
+ import type { Adb } from "@yume-chan/adb";
2
+ import { AdbCommandBase } from "@yume-chan/adb";
3
+ import type { Consumable, ReadableStream } from "@yume-chan/stream-extra";
4
+ export declare enum PackageManagerInstallLocation {
5
+ Auto = 0,
6
+ InternalOnly = 1,
7
+ PreferExternal = 2
8
+ }
9
+ export declare enum PackageManagerInstallReason {
10
+ Unknown = 0,
11
+ AdminPolicy = 1,
12
+ DeviceRestore = 2,
13
+ DeviceSetup = 3,
14
+ UserRequest = 4
15
+ }
16
+ export interface PackageManagerInstallOptions {
17
+ /**
18
+ * `-R`
19
+ */
20
+ skipExisting: boolean;
21
+ /**
22
+ * `-i`
23
+ */
24
+ installerPackageName: string;
25
+ /**
26
+ * `-t`
27
+ */
28
+ allowTest: boolean;
29
+ /**
30
+ * `-f`
31
+ */
32
+ internalStorage: boolean;
33
+ /**
34
+ * `-d`
35
+ */
36
+ requestDowngrade: boolean;
37
+ /**
38
+ * `-g`
39
+ */
40
+ grantRuntimePermissions: boolean;
41
+ /**
42
+ * `--restrict-permissions`
43
+ */
44
+ restrictPermissions: boolean;
45
+ /**
46
+ * `--dont-kill`
47
+ */
48
+ doNotKill: boolean;
49
+ /**
50
+ * `--originating-uri`
51
+ */
52
+ originatingUri: string;
53
+ /**
54
+ * `--referrer`
55
+ */
56
+ refererUri: string;
57
+ /**
58
+ * `-p`
59
+ */
60
+ inheritFrom: string;
61
+ /**
62
+ * `--pkg`
63
+ */
64
+ packageName: string;
65
+ /**
66
+ * `--abi`
67
+ */
68
+ abi: string;
69
+ /**
70
+ * `--ephemeral`/`--instant`/`--instantapp`
71
+ */
72
+ instantApp: boolean;
73
+ /**
74
+ * `--full`
75
+ */
76
+ full: boolean;
77
+ /**
78
+ * `--preload`
79
+ */
80
+ preload: boolean;
81
+ /**
82
+ * `--user`
83
+ */
84
+ userId: number;
85
+ /**
86
+ * `--install-location`
87
+ */
88
+ installLocation: PackageManagerInstallLocation;
89
+ /**
90
+ * `--install-reason`
91
+ */
92
+ installReason: PackageManagerInstallReason;
93
+ /**
94
+ * `--force-uuid`
95
+ */
96
+ forceUuid: string;
97
+ /**
98
+ * `--apex`
99
+ */
100
+ apex: boolean;
101
+ /**
102
+ * `--force-non-staged`
103
+ */
104
+ forceNonStaged: boolean;
105
+ /**
106
+ * `--staged`
107
+ */
108
+ staged: boolean;
109
+ /**
110
+ * `--force-queryable`
111
+ */
112
+ forceQueryable: boolean;
113
+ /**
114
+ * `--enable-rollback`
115
+ */
116
+ enableRollback: boolean;
117
+ /**
118
+ * `--staged-ready-timeout`
119
+ */
120
+ stagedReadyTimeout: number;
121
+ /**
122
+ * `--skip-verification`
123
+ */
124
+ skipVerification: boolean;
125
+ /**
126
+ * `--bypass-low-target-sdk-block`
127
+ */
128
+ bypassLowTargetSdkBlock: boolean;
129
+ }
130
+ export declare const PACKAGE_MANAGER_INSTALL_OPTIONS_MAP: Record<keyof PackageManagerInstallOptions, string>;
131
+ export declare class PackageManager extends AdbCommandBase {
132
+ private _cmd;
133
+ constructor(adb: Adb);
134
+ private buildInstallArgs;
135
+ install(apks: string[], options?: Partial<PackageManagerInstallOptions>): Promise<string>;
136
+ pushAndInstallStream(stream: ReadableStream<Consumable<Uint8Array>>, options?: Partial<PackageManagerInstallOptions>): Promise<ReadableStream<string>>;
137
+ installStream(size: number, stream: ReadableStream<Consumable<Uint8Array>>, options?: Partial<PackageManagerInstallOptions>): Promise<ReadableStream<string>>;
138
+ }
139
+ //# sourceMappingURL=pm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pm.d.ts","sourceRoot":"","sources":["../src/pm.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACH,cAAc,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK1E,oBAAY,6BAA6B;IACrC,IAAI,IAAA;IACJ,YAAY,IAAA;IACZ,cAAc,IAAA;CACjB;AAED,oBAAY,2BAA2B;IACnC,OAAO,IAAA;IACP,WAAW,IAAA;IACX,aAAa,IAAA;IACb,WAAW,IAAA;IACX,WAAW,IAAA;CACd;AAGD,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,EAAE,6BAA6B,CAAC;IAC/C;;OAEG;IACH,aAAa,EAAE,2BAA2B,CAAC;IAC3C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAC;CACpC;AAED,eAAO,MAAM,mCAAmC,EAAE,MAAM,CACpD,MAAM,4BAA4B,EAClC,MAAM,CA8BT,CAAC;AAEF,qBAAa,cAAe,SAAQ,cAAc;IAC9C,OAAO,CAAC,IAAI,CAAM;gBAEC,GAAG,EAAE,GAAG;IAK3B,OAAO,CAAC,gBAAgB;IA4BX,OAAO,CAChB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAChD,OAAO,CAAC,MAAM,CAAC;IAOL,oBAAoB,CAC7B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAChD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IA6BrB,aAAa,CACtB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAChD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;CAmBrC"}
package/esm/pm.js ADDED
@@ -0,0 +1,125 @@
1
+ // cspell:ignore dont
2
+ // cspell:ignore instantapp
3
+ // cspell:ignore apks
4
+ import { AdbCommandBase, AdbSubprocessNoneProtocol, escapeArg, } from "@yume-chan/adb";
5
+ import { DecodeUtf8Stream, WrapReadableStream } from "@yume-chan/stream-extra";
6
+ import { Cmd } from "./cmd.js";
7
+ export var PackageManagerInstallLocation;
8
+ (function (PackageManagerInstallLocation) {
9
+ PackageManagerInstallLocation[PackageManagerInstallLocation["Auto"] = 0] = "Auto";
10
+ PackageManagerInstallLocation[PackageManagerInstallLocation["InternalOnly"] = 1] = "InternalOnly";
11
+ PackageManagerInstallLocation[PackageManagerInstallLocation["PreferExternal"] = 2] = "PreferExternal";
12
+ })(PackageManagerInstallLocation = PackageManagerInstallLocation || (PackageManagerInstallLocation = {}));
13
+ export var PackageManagerInstallReason;
14
+ (function (PackageManagerInstallReason) {
15
+ PackageManagerInstallReason[PackageManagerInstallReason["Unknown"] = 0] = "Unknown";
16
+ PackageManagerInstallReason[PackageManagerInstallReason["AdminPolicy"] = 1] = "AdminPolicy";
17
+ PackageManagerInstallReason[PackageManagerInstallReason["DeviceRestore"] = 2] = "DeviceRestore";
18
+ PackageManagerInstallReason[PackageManagerInstallReason["DeviceSetup"] = 3] = "DeviceSetup";
19
+ PackageManagerInstallReason[PackageManagerInstallReason["UserRequest"] = 4] = "UserRequest";
20
+ })(PackageManagerInstallReason = PackageManagerInstallReason || (PackageManagerInstallReason = {}));
21
+ export const PACKAGE_MANAGER_INSTALL_OPTIONS_MAP = {
22
+ skipExisting: "-R",
23
+ installerPackageName: "-i",
24
+ allowTest: "-t",
25
+ internalStorage: "-f",
26
+ requestDowngrade: "-d",
27
+ grantRuntimePermissions: "-g",
28
+ restrictPermissions: "--restrict-permissions",
29
+ doNotKill: "--dont-kill",
30
+ originatingUri: "--originating-uri",
31
+ refererUri: "--referrer",
32
+ inheritFrom: "-p",
33
+ packageName: "--pkg",
34
+ abi: "--abi",
35
+ instantApp: "--instant",
36
+ full: "--full",
37
+ preload: "--preload",
38
+ userId: "--user",
39
+ installLocation: "--install-location",
40
+ installReason: "--install-reason",
41
+ forceUuid: "--force-uuid",
42
+ apex: "--apex",
43
+ forceNonStaged: "--force-non-staged",
44
+ staged: "--staged",
45
+ forceQueryable: "--force-queryable",
46
+ enableRollback: "--enable-rollback",
47
+ stagedReadyTimeout: "--staged-ready-timeout",
48
+ skipVerification: "--skip-verification",
49
+ bypassLowTargetSdkBlock: "--bypass-low-target-sdk-block",
50
+ };
51
+ export class PackageManager extends AdbCommandBase {
52
+ _cmd;
53
+ constructor(adb) {
54
+ super(adb);
55
+ this._cmd = new Cmd(adb);
56
+ }
57
+ buildInstallArgs(options) {
58
+ const args = ["pm", "install"];
59
+ if (options) {
60
+ for (const [key, value] of Object.entries(options)) {
61
+ if (value) {
62
+ const option = PACKAGE_MANAGER_INSTALL_OPTIONS_MAP[key];
63
+ if (option) {
64
+ args.push(option);
65
+ switch (typeof value) {
66
+ case "number":
67
+ args.push(value.toString());
68
+ break;
69
+ case "string":
70
+ args.push(value);
71
+ break;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ return args;
78
+ }
79
+ async install(apks, options) {
80
+ const args = this.buildInstallArgs(options);
81
+ // WIP: old version of pm doesn't support multiple apks
82
+ args.push(...apks);
83
+ return await this.adb.subprocess.spawnAndWaitLegacy(args);
84
+ }
85
+ async pushAndInstallStream(stream, options) {
86
+ const sync = await this.adb.sync();
87
+ const fileName = Math.random().toString().substring(2);
88
+ const filePath = `/data/local/tmp/${fileName}.apk`;
89
+ try {
90
+ await sync.write({
91
+ filename: filePath,
92
+ file: stream,
93
+ });
94
+ }
95
+ finally {
96
+ await sync.dispose();
97
+ }
98
+ const args = this.buildInstallArgs(options);
99
+ args.push(filePath);
100
+ const process = await AdbSubprocessNoneProtocol.raw(this.adb, args.map(escapeArg).join(" "));
101
+ return new WrapReadableStream({
102
+ start: () => process.stdout.pipeThrough(new DecodeUtf8Stream()),
103
+ close: async () => {
104
+ await this.adb.rm(filePath);
105
+ },
106
+ });
107
+ }
108
+ async installStream(size, stream, options) {
109
+ if (!this._cmd.supportsCmd) {
110
+ return this.pushAndInstallStream(stream, options);
111
+ }
112
+ // Android 7 added `cmd package` and piping apk to stdin,
113
+ // the source code suggests using `cmd package` over `pm`, but didn't say why.
114
+ // However, `cmd package install` can't read `/data/local/tmp` folder due to SELinux policy,
115
+ // so even ADB today is still using `pm install` for non-streaming installs.
116
+ const args = this.buildInstallArgs(options);
117
+ // Remove `pm` from args, final command will be `cmd package install`
118
+ args.shift();
119
+ args.push("-S", size.toString());
120
+ const process = await this._cmd.spawn(false, "package", ...args);
121
+ await stream.pipeTo(process.stdin);
122
+ return process.stdout.pipeThrough(new DecodeUtf8Stream());
123
+ }
124
+ }
125
+ //# sourceMappingURL=pm.js.map
package/esm/pm.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pm.js","sourceRoot":"","sources":["../src/pm.ts"],"names":[],"mappings":"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"}
package/esm/settings.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { AdbCommandBase } from "@yume-chan/adb";
2
- export declare type SettingsNamespace = 'system' | 'secure' | 'global';
3
- export declare type SettingsResetMode = 'untrusted_defaults' | 'untrusted_clear' | 'trusted_defaults';
4
- export declare class Settings extends AdbCommandBase {
5
- base(command: string, namespace: SettingsNamespace, ...args: string[]): Promise<string>;
6
- get(namespace: SettingsNamespace, key: string): Promise<string>;
7
- delete(namespace: SettingsNamespace, key: string): Promise<string>;
8
- put(namespace: SettingsNamespace, key: string, value: string, tag?: string, makeDefault?: boolean): Promise<string>;
9
- reset(namespace: SettingsNamespace, mode: SettingsResetMode): Promise<string>;
10
- reset(namespace: SettingsNamespace, packageName: string, tag?: string): Promise<string>;
11
- list(namespace: SettingsNamespace): Promise<string[]>;
12
- }
1
+ import { AdbCommandBase } from "@yume-chan/adb";
2
+ export type SettingsNamespace = "system" | "secure" | "global";
3
+ export type SettingsResetMode = "untrusted_defaults" | "untrusted_clear" | "trusted_defaults";
4
+ export declare class Settings extends AdbCommandBase {
5
+ base(command: string, namespace: SettingsNamespace, ...args: string[]): Promise<string>;
6
+ get(namespace: SettingsNamespace, key: string): Promise<string>;
7
+ delete(namespace: SettingsNamespace, key: string): Promise<string>;
8
+ put(namespace: SettingsNamespace, key: string, value: string, tag?: string, makeDefault?: boolean): Promise<string>;
9
+ reset(namespace: SettingsNamespace, mode: SettingsResetMode): Promise<string>;
10
+ reset(namespace: SettingsNamespace, packageName: string, tag?: string): Promise<string>;
11
+ list(namespace: SettingsNamespace): Promise<string[]>;
12
+ }
13
13
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,oBAAY,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/D,oBAAY,iBAAiB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAG9F,qBAAa,QAAS,SAAQ,cAAc;IAGjC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE;IAIrE,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAI7C,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAIhD,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO;IAWjG,KAAK,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7E,KAAK,CAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUjF,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAIrE"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GACvB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,CAAC;AAGzB,qBAAa,QAAS,SAAQ,cAAc;IAGjC,IAAI,CACP,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,iBAAiB,EAC5B,GAAG,IAAI,EAAE,MAAM,EAAE;IAUd,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAI7C,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAIhD,GAAG,CACN,SAAS,EAAE,iBAAiB,EAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,OAAO;IAYlB,KAAK,CACR,SAAS,EAAE,iBAAiB,EAC5B,IAAI,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC;IACX,KAAK,CACR,SAAS,EAAE,iBAAiB,EAC5B,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAcL,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAIrE"}
package/esm/settings.js CHANGED
@@ -1,25 +1,30 @@
1
- import { AdbCommandBase } from "@yume-chan/adb";
2
- // frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsService.java
3
- export class Settings extends AdbCommandBase {
4
- // TODO: `--user <user>` argument
5
- base(command, namespace, ...args) {
6
- return this.adb.subprocess.spawnAndWaitLegacy(['settings', command, namespace, ...args]);
7
- }
8
- get(namespace, key) {
9
- return this.base('get', namespace, key);
10
- }
11
- delete(namespace, key) {
12
- return this.base('delete', namespace, key);
13
- }
14
- put(namespace, key, value, tag, makeDefault) {
15
- return this.base('put', namespace, key, value, ...(tag ? [tag] : []), ...(makeDefault ? ['default'] : []));
16
- }
17
- reset(namespace, modeOrPackageName, tag) {
18
- return this.base('reset', namespace, modeOrPackageName, ...(tag ? [tag] : []));
19
- }
20
- async list(namespace) {
21
- const output = await this.base('list', namespace);
22
- return output.split('\n');
23
- }
24
- }
1
+ import { AdbCommandBase } from "@yume-chan/adb";
2
+ // frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsService.java
3
+ export class Settings extends AdbCommandBase {
4
+ // TODO: `--user <user>` argument
5
+ base(command, namespace, ...args) {
6
+ return this.adb.subprocess.spawnAndWaitLegacy([
7
+ "settings",
8
+ command,
9
+ namespace,
10
+ ...args,
11
+ ]);
12
+ }
13
+ get(namespace, key) {
14
+ return this.base("get", namespace, key);
15
+ }
16
+ delete(namespace, key) {
17
+ return this.base("delete", namespace, key);
18
+ }
19
+ put(namespace, key, value, tag, makeDefault) {
20
+ return this.base("put", namespace, key, value, ...(tag ? [tag] : []), ...(makeDefault ? ["default"] : []));
21
+ }
22
+ reset(namespace, modeOrPackageName, tag) {
23
+ return this.base("reset", namespace, modeOrPackageName, ...(tag ? [tag] : []));
24
+ }
25
+ async list(namespace) {
26
+ const output = await this.base("list", namespace);
27
+ return output.split("\n");
28
+ }
29
+ }
25
30
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMhD,oGAAoG;AACpG,MAAM,OAAO,QAAS,SAAQ,cAAc;IACxC,iCAAiC;IAE1B,IAAI,CAAC,OAAe,EAAE,SAA4B,EAAE,GAAG,IAAc;QACxE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7F,CAAC;IAEM,GAAG,CAAC,SAA4B,EAAE,GAAW;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,SAA4B,EAAE,GAAW;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,GAAG,CAAC,SAA4B,EAAE,GAAW,EAAE,KAAa,EAAE,GAAY,EAAE,WAAqB;QACpG,OAAO,IAAI,CAAC,IAAI,CACZ,KAAK,EACL,SAAS,EACT,GAAG,EACH,KAAK,EACL,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC,CAAC;IACN,CAAC;IAIM,KAAK,CAAC,SAA4B,EAAE,iBAAyB,EAAE,GAAY;QAC9E,OAAO,IAAI,CAAC,IAAI,CACZ,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACxB,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,SAA4B;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAShD,oGAAoG;AACpG,MAAM,OAAO,QAAS,SAAQ,cAAc;IACxC,iCAAiC;IAE1B,IAAI,CACP,OAAe,EACf,SAA4B,EAC5B,GAAG,IAAc;QAEjB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAC1C,UAAU;YACV,OAAO;YACP,SAAS;YACT,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;IAEM,GAAG,CAAC,SAA4B,EAAE,GAAW;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,SAA4B,EAAE,GAAW;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,GAAG,CACN,SAA4B,EAC5B,GAAW,EACX,KAAa,EACb,GAAY,EACZ,WAAqB;QAErB,OAAO,IAAI,CAAC,IAAI,CACZ,KAAK,EACL,SAAS,EACT,GAAG,EACH,KAAK,EACL,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC,CAAC;IACN,CAAC;IAWM,KAAK,CACR,SAA4B,EAC5B,iBAAyB,EACzB,GAAY;QAEZ,OAAO,IAAI,CAAC,IAAI,CACZ,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACxB,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,SAA4B;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/android-bin",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "Wrappers for Android built-in executables.",
5
5
  "keywords": [
6
6
  "adb",
@@ -24,18 +24,22 @@
24
24
  "type": "module",
25
25
  "main": "esm/index.js",
26
26
  "types": "esm/index.d.ts",
27
- "devDependencies": {
28
- "typescript": "^4.7.4",
29
- "@yume-chan/ts-package-builder": "^1.0.0"
30
- },
31
27
  "dependencies": {
32
- "@yume-chan/adb": "^0.0.17",
33
- "@yume-chan/stream-extra": "^0.0.17",
34
- "@yume-chan/struct": "^0.0.17",
35
- "tslib": "^2.4.0"
28
+ "@yume-chan/adb": "^0.0.19",
29
+ "@yume-chan/stream-extra": "^0.0.19",
30
+ "@yume-chan/struct": "^0.0.19",
31
+ "tslib": "^2.4.1"
32
+ },
33
+ "devDependencies": {
34
+ "@yume-chan/eslint-config": "^1.0.0",
35
+ "@yume-chan/tsconfig": "^1.0.0",
36
+ "eslint": "^8.36.0",
37
+ "prettier": "^2.8.4",
38
+ "typescript": "^4.9.4"
36
39
  },
37
40
  "scripts": {
38
- "build": "build-ts-package",
39
- "build:watch": "build-ts-package --incremental"
41
+ "build": "tsc -b tsconfig.build.json",
42
+ "build:watch": "tsc -b tsconfig.build.json",
43
+ "lint": "eslint src/**/*.ts --fix && prettier src/**/*.ts --write --tab-width 4"
40
44
  }
41
45
  }
package/src/bu.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  import { AdbCommandBase } from "@yume-chan/adb";
5
5
 
6
6
  export interface AdbBackupOptions {
7
- apps: string[] | 'all' | 'all-including-system';
7
+ apps: string[] | "all" | "all-including-system";
8
8
  apks: boolean;
9
9
  obbs: boolean;
10
10
  shared: boolean;
@@ -14,9 +14,13 @@ export interface AdbBackupOptions {
14
14
  }
15
15
 
16
16
  export class AdbBackup extends AdbCommandBase {
17
- async backup(options: AdbBackupOptions): Promise<void> {
17
+ backup(options: AdbBackupOptions): Promise<void> {
18
+ void options;
19
+ throw new Error("Not implemented");
18
20
  }
19
21
 
20
- async restore(options: AdbBackupOptions): Promise<void> {
22
+ restore(options: AdbBackupOptions): Promise<void> {
23
+ void options;
24
+ throw new Error("Not implemented");
21
25
  }
22
26
  }