@iyexin/mio-android-tools 0.1.3 → 0.1.4

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/dist/errors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type MioToolErrorCode = "JAVA_NOT_FOUND" | "ANDROID_TOOLS_NOT_FOUND" | "INVALID_TOOLS_DIR" | "MISSING_FILE" | "INVALID_ARGUMENT" | "SPAWN_FAILED" | "TIMEOUT" | "APKSIGNER_SIGN_FAILED" | "APKSIGNER_VERIFY_FAILED" | "ZIPALIGN_FAILED" | "KEYSTORE_NOT_FOUND" | "KEYTOOL_NOT_FOUND" | "KEYTOOL_FAILED" | "BUNDLE_DOWNLOAD_FAILED" | "BUNDLE_CHECKSUM_FAILED" | "BUNDLE_EXTRACT_FAILED";
1
+ export type MioToolErrorCode = "JAVA_NOT_FOUND" | "ANDROID_TOOLS_NOT_FOUND" | "INVALID_TOOLS_DIR" | "MISSING_FILE" | "INVALID_ARGUMENT" | "SPAWN_FAILED" | "TIMEOUT" | "APKSIGNER_SIGN_FAILED" | "APKSIGNER_VERIFY_FAILED" | "ZIPALIGN_FAILED" | "KEYSTORE_NOT_FOUND" | "KEYTOOL_NOT_FOUND" | "KEYTOOL_FAILED" | "KEYSTORE_EXISTS" | "BUNDLE_DOWNLOAD_FAILED" | "BUNDLE_CHECKSUM_FAILED" | "BUNDLE_EXTRACT_FAILED";
2
2
  export interface MioToolErrorOptions {
3
3
  cause?: unknown;
4
4
  stdout?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAmB;IACvB,MAAM,CAAU;IAChB,MAAM,CAAU;IAChB,OAAO,CAAU;IAE1B,YAAY,IAAsB,EAAE,OAAe,EAAE,UAA+B,EAAE;QACpF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAmB;IACvB,MAAM,CAAU;IAChB,MAAM,CAAU;IAChB,OAAO,CAAU;IAE1B,YAAY,IAAsB,EAAE,OAAe,EAAE,UAA+B,EAAE;QACpF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export { discoverAndroidTools, describeAndroidTools, inspectAndroidTools, status
4
4
  export { ensureAndroidTools, type EnsureAndroidToolsOptions, type EnsureAndroidToolsResult, } from "./ensure.js";
5
5
  export { alignApk, checkAlignment, type AlignOptions, type AlignmentCheck, type PageSize, } from "./zipalign.js";
6
6
  export { signApkWithApksigner, verifyApkWithApksigner, buildSignArgs, parseVerifyOutput, type SignApkWithApksignerOptions, type VerifyApkOptions, type VerifyResult, type SignerCertificate, } from "./apksigner.js";
7
- export { ensureDebugKeystore, type DebugKeystoreOptions } from "./keystore.js";
7
+ export { ensureDebugKeystore, generateKeystore, type DebugKeystoreOptions, type KeystoreOptions, } from "./keystore.js";
8
8
  export { parseAxml, patchManifestAxml, type AxmlAttribute, type AxmlDocument, type AxmlElement, type ManifestPatch, } from "./axml.js";
9
9
  export { injectApk, type InjectApkOptions, type InjectApkResult, } from "./apk.js";
10
10
  export { injectWindowsExe, type InjectWindowsExeOptions, type InjectWindowsExeResult, } from "./windows.js";
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ export { discoverAndroidTools, describeAndroidTools, inspectAndroidTools, status
3
3
  export { ensureAndroidTools, } from "./ensure.js";
4
4
  export { alignApk, checkAlignment, } from "./zipalign.js";
5
5
  export { signApkWithApksigner, verifyApkWithApksigner, buildSignArgs, parseVerifyOutput, } from "./apksigner.js";
6
- export { ensureDebugKeystore } from "./keystore.js";
6
+ export { ensureDebugKeystore, generateKeystore, } from "./keystore.js";
7
7
  export { parseAxml, patchManifestAxml, } from "./axml.js";
8
8
  export { injectApk, } from "./apk.js";
9
9
  export { injectWindowsExe, } from "./windows.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,GAIhB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,cAAc,GAIf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAKlB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAA6B,MAAM,eAAe,CAAC;AAE/E,OAAO,EACL,SAAS,EACT,iBAAiB,GAKlB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,SAAS,GAGV,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,OAAO,EACP,SAAS,GAGV,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,GAOd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAqC,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,GAIhB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,cAAc,GAIf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAKlB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,SAAS,EACT,iBAAiB,GAKlB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,SAAS,GAGV,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,OAAO,EACP,SAAS,GAGV,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,GAOd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAqC,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -1,4 +1,49 @@
1
1
  import type { AndroidTools } from "./discover.js";
2
+ export interface KeystoreOptions {
3
+ /** Where to write the keystore. */
4
+ path: string;
5
+ /** Keystore alias. Defaults to "release". */
6
+ alias?: string;
7
+ /** Keystore password. */
8
+ password?: string;
9
+ /**
10
+ * Read the password from this environment variable instead of passing it on
11
+ * the keytool command line.
12
+ */
13
+ passwordEnv?: string;
14
+ /** Key password when it differs from the store password (PKCS12 ignores it). */
15
+ keyPassword?: string;
16
+ /** Defaults to "CN=Mio, O=Mio, C=CN". */
17
+ distinguishedName?: string;
18
+ /** Valid days. Defaults to 10000 (~27 years). */
19
+ validityDays?: number;
20
+ /** RSA key size. Defaults to 2048. */
21
+ keySize?: number;
22
+ /** Overwrite an existing file. */
23
+ force?: boolean;
24
+ }
25
+ export interface KeytoolArgs {
26
+ alias: string;
27
+ password: string;
28
+ /** When set, the password is read from this environment variable instead of argv. */
29
+ passwordEnv?: string;
30
+ keyPassword?: string;
31
+ distinguishedName?: string;
32
+ validityDays?: number;
33
+ keySize?: number;
34
+ }
35
+ /**
36
+ * Generate a fresh signing keystore with keytool.
37
+ *
38
+ * This is the same keytool that ships inside the Mio tool bundle, so a machine
39
+ * with no JDK can still create its own release key.
40
+ */
41
+ export declare function generateKeystore(tools: AndroidTools, options: KeystoreOptions): Promise<{
42
+ path: string;
43
+ alias: string;
44
+ storetype: "PKCS12";
45
+ created: boolean;
46
+ }>;
2
47
  export interface DebugKeystoreOptions {
3
48
  /** Where to create the keystore. */
4
49
  path: string;
@@ -12,8 +57,8 @@ export interface DebugKeystoreOptions {
12
57
  /**
13
58
  * Create a debug keystore if it does not exist yet.
14
59
  *
15
- * Never use this key for release artifacts. Release keys are supplied by the
16
- * developer and must not be generated or stored by Mio.
60
+ * Debug keys are fine for local installs; releases should use a key the
61
+ * developer owns (see `generateKeystore`).
17
62
  */
18
63
  export declare function ensureDebugKeystore(tools: AndroidTools, options: DebugKeystoreOptions): Promise<{
19
64
  path: string;
package/dist/keystore.js CHANGED
@@ -1,8 +1,32 @@
1
- import { access, mkdir } from "node:fs/promises";
1
+ import { access, mkdir, rm } from "node:fs/promises";
2
2
  import { constants } from "node:fs";
3
3
  import { dirname } from "node:path";
4
4
  import { MioToolError } from "./errors.js";
5
5
  import { run } from "./exec.js";
6
+ function keytoolArgs(options, path, storetype) {
7
+ const credentials = options.passwordEnv
8
+ ? ["-storepass:env", options.passwordEnv, "-keypass:env", options.passwordEnv]
9
+ : ["-storepass", options.password, "-keypass", options.keyPassword ?? options.password];
10
+ return [
11
+ "-genkeypair",
12
+ "-keystore",
13
+ path,
14
+ "-storetype",
15
+ storetype,
16
+ "-alias",
17
+ options.alias,
18
+ "-keyalg",
19
+ "RSA",
20
+ "-keysize",
21
+ String(options.keySize ?? 2048),
22
+ "-validity",
23
+ String(options.validityDays ?? 10000),
24
+ ...credentials,
25
+ "-dname",
26
+ options.distinguishedName ?? "CN=Mio, O=Mio, C=CN",
27
+ "-noprompt",
28
+ ];
29
+ }
6
30
  async function exists(path) {
7
31
  try {
8
32
  await access(path, constants.F_OK);
@@ -12,11 +36,55 @@ async function exists(path) {
12
36
  return false;
13
37
  }
14
38
  }
39
+ async function runKeytool(tools, args) {
40
+ if (!tools.keytool) {
41
+ throw new MioToolError("KEYTOOL_NOT_FOUND", "keytool is required to generate a keystore but was not found.", {
42
+ details: "Mio's tool bundle includes keytool; run an Android build once to download it, or use a JDK that ships keytool.",
43
+ });
44
+ }
45
+ const result = await run(tools.keytool, args, { timeoutMs: 120_000 });
46
+ if (result.code !== 0) {
47
+ throw new MioToolError("KEYTOOL_FAILED", "keytool failed to create the keystore", {
48
+ stdout: result.stdout,
49
+ stderr: result.stderr,
50
+ details: `exit code ${result.code}`,
51
+ });
52
+ }
53
+ }
54
+ /**
55
+ * Generate a fresh signing keystore with keytool.
56
+ *
57
+ * This is the same keytool that ships inside the Mio tool bundle, so a machine
58
+ * with no JDK can still create its own release key.
59
+ */
60
+ export async function generateKeystore(tools, options) {
61
+ const alias = options.alias ?? "release";
62
+ if (await exists(options.path)) {
63
+ if (!options.force) {
64
+ throw new MioToolError("KEYSTORE_EXISTS", `Keystore already exists: ${options.path}`, {
65
+ details: "Pass --force to overwrite it.",
66
+ });
67
+ }
68
+ await rm(options.path, { force: true });
69
+ }
70
+ await mkdir(dirname(options.path), { recursive: true });
71
+ const password = options.password ?? "changeit";
72
+ await runKeytool(tools, keytoolArgs({
73
+ alias,
74
+ password,
75
+ passwordEnv: options.passwordEnv,
76
+ keyPassword: options.keyPassword,
77
+ distinguishedName: options.distinguishedName,
78
+ validityDays: options.validityDays,
79
+ keySize: options.keySize,
80
+ }, options.path, "PKCS12"));
81
+ return { path: options.path, alias, storetype: "PKCS12", created: true };
82
+ }
15
83
  /**
16
84
  * Create a debug keystore if it does not exist yet.
17
85
  *
18
- * Never use this key for release artifacts. Release keys are supplied by the
19
- * developer and must not be generated or stored by Mio.
86
+ * Debug keys are fine for local installs; releases should use a key the
87
+ * developer owns (see `generateKeystore`).
20
88
  */
21
89
  export async function ensureDebugKeystore(tools, options) {
22
90
  const password = options.password ?? "android";
@@ -24,42 +92,13 @@ export async function ensureDebugKeystore(tools, options) {
24
92
  if (await exists(options.path)) {
25
93
  return { path: options.path, alias, password };
26
94
  }
27
- if (!tools.keytool) {
28
- throw new MioToolError("KEYTOOL_NOT_FOUND", "keytool is required to generate a debug keystore but was not found.", {
29
- details: "Use a JDK/JRE that includes keytool, or provide an existing debug keystore.",
30
- });
31
- }
32
95
  await mkdir(dirname(options.path), { recursive: true });
33
- const args = [
34
- "-genkeypair",
35
- "-keystore",
36
- options.path,
37
- "-storetype",
38
- "PKCS12",
39
- "-alias",
96
+ await runKeytool(tools, keytoolArgs({
40
97
  alias,
41
- "-keyalg",
42
- "RSA",
43
- "-keysize",
44
- "2048",
45
- "-validity",
46
- "10000",
47
- "-storepass",
48
98
  password,
49
- "-keypass",
50
- password,
51
- "-dname",
52
- options.distinguishedName ?? "CN=Mio Debug, O=Mio, C=CN",
53
- "-noprompt",
54
- ];
55
- const result = await run(tools.keytool, args, { timeoutMs: 120_000 });
56
- if (result.code !== 0) {
57
- throw new MioToolError("KEYTOOL_FAILED", "keytool failed to create the debug keystore", {
58
- stdout: result.stdout,
59
- stderr: result.stderr,
60
- details: `exit code ${result.code}`,
61
- });
62
- }
99
+ distinguishedName: options.distinguishedName ?? "CN=Mio Debug, O=Mio, C=CN",
100
+ validityDays: 10000,
101
+ }, options.path, "PKCS12"));
63
102
  return { path: options.path, alias, password };
64
103
  }
65
104
  //# sourceMappingURL=keystore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../src/keystore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAchC,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAmB,EACnB,OAA6B;IAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC;IAE3C,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,YAAY,CACpB,mBAAmB,EACnB,qEAAqE,EACrE;YACE,OAAO,EAAE,6EAA6E;SACvF,CACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG;QACX,aAAa;QACb,WAAW;QACX,OAAO,CAAC,IAAI;QACZ,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,SAAS;QACT,KAAK;QACL,UAAU;QACV,MAAM;QACN,WAAW;QACX,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO,CAAC,iBAAiB,IAAI,2BAA2B;QACxD,WAAW;KACZ,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,YAAY,CAAC,gBAAgB,EAAE,6CAA6C,EAAE;YACtF,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,aAAa,MAAM,CAAC,IAAI,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../src/keystore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iyexin/mio-android-tools",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Android APK alignment, signing and verification for Mio",