deepadb 1.1.0 → 1.1.2

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 (231) hide show
  1. package/LICENSE +202 -21
  2. package/NOTICE +16 -0
  3. package/README.md +95 -41
  4. package/build/bridge/adb-bridge.d.ts +14 -0
  5. package/build/bridge/adb-bridge.d.ts.map +1 -1
  6. package/build/bridge/adb-bridge.js +34 -5
  7. package/build/bridge/adb-bridge.js.map +1 -1
  8. package/build/bridge/device-manager.d.ts.map +1 -1
  9. package/build/bridge/device-manager.js +18 -9
  10. package/build/bridge/device-manager.js.map +1 -1
  11. package/build/bridge/local-bridge.d.ts +10 -2
  12. package/build/bridge/local-bridge.d.ts.map +1 -1
  13. package/build/bridge/local-bridge.js +51 -16
  14. package/build/bridge/local-bridge.js.map +1 -1
  15. package/build/config/config.d.ts +7 -0
  16. package/build/config/config.d.ts.map +1 -1
  17. package/build/config/config.js +26 -10
  18. package/build/config/config.js.map +1 -1
  19. package/build/graphql-api.d.ts.map +1 -1
  20. package/build/graphql-api.js +73 -3
  21. package/build/graphql-api.js.map +1 -1
  22. package/build/http-transport.d.ts.map +1 -1
  23. package/build/http-transport.js +44 -7
  24. package/build/http-transport.js.map +1 -1
  25. package/build/index.d.ts.map +1 -1
  26. package/build/index.js +41 -16
  27. package/build/index.js.map +1 -1
  28. package/build/middleware/auth.d.ts.map +1 -1
  29. package/build/middleware/auth.js +43 -6
  30. package/build/middleware/auth.js.map +1 -1
  31. package/build/middleware/chipset.d.ts.map +1 -1
  32. package/build/middleware/chipset.js +16 -1
  33. package/build/middleware/chipset.js.map +1 -1
  34. package/build/middleware/cleanup.d.ts +39 -7
  35. package/build/middleware/cleanup.d.ts.map +1 -1
  36. package/build/middleware/cleanup.js +148 -16
  37. package/build/middleware/cleanup.js.map +1 -1
  38. package/build/middleware/fetch-utils.d.ts +50 -7
  39. package/build/middleware/fetch-utils.d.ts.map +1 -1
  40. package/build/middleware/fetch-utils.js +127 -14
  41. package/build/middleware/fetch-utils.js.map +1 -1
  42. package/build/middleware/fs-utils.d.ts +126 -0
  43. package/build/middleware/fs-utils.d.ts.map +1 -0
  44. package/build/middleware/fs-utils.js +229 -0
  45. package/build/middleware/fs-utils.js.map +1 -0
  46. package/build/middleware/logger.d.ts +16 -0
  47. package/build/middleware/logger.d.ts.map +1 -1
  48. package/build/middleware/logger.js +18 -0
  49. package/build/middleware/logger.js.map +1 -1
  50. package/build/middleware/output-processor.d.ts.map +1 -1
  51. package/build/middleware/output-processor.js +43 -8
  52. package/build/middleware/output-processor.js.map +1 -1
  53. package/build/middleware/parse-utils.d.ts +19 -0
  54. package/build/middleware/parse-utils.d.ts.map +1 -0
  55. package/build/middleware/parse-utils.js +30 -0
  56. package/build/middleware/parse-utils.js.map +1 -0
  57. package/build/middleware/png-utils.d.ts.map +1 -1
  58. package/build/middleware/png-utils.js +33 -11
  59. package/build/middleware/png-utils.js.map +1 -1
  60. package/build/middleware/result-handle.d.ts +76 -0
  61. package/build/middleware/result-handle.d.ts.map +1 -0
  62. package/build/middleware/result-handle.js +378 -0
  63. package/build/middleware/result-handle.js.map +1 -0
  64. package/build/middleware/sanitize.d.ts +26 -0
  65. package/build/middleware/sanitize.d.ts.map +1 -1
  66. package/build/middleware/sanitize.js +43 -2
  67. package/build/middleware/sanitize.js.map +1 -1
  68. package/build/middleware/security.d.ts.map +1 -1
  69. package/build/middleware/security.js +30 -5
  70. package/build/middleware/security.js.map +1 -1
  71. package/build/middleware/ui-dump.d.ts.map +1 -1
  72. package/build/middleware/ui-dump.js +30 -10
  73. package/build/middleware/ui-dump.js.map +1 -1
  74. package/build/server.d.ts.map +1 -1
  75. package/build/server.js +36 -5
  76. package/build/server.js.map +1 -1
  77. package/build/tool-context.d.ts.map +1 -1
  78. package/build/tool-context.js +2 -0
  79. package/build/tool-context.js.map +1 -1
  80. package/build/tools/accessibility.d.ts.map +1 -1
  81. package/build/tools/accessibility.js +39 -40
  82. package/build/tools/accessibility.js.map +1 -1
  83. package/build/tools/at-commands.d.ts.map +1 -1
  84. package/build/tools/at-commands.js +61 -56
  85. package/build/tools/at-commands.js.map +1 -1
  86. package/build/tools/baseband.d.ts.map +1 -1
  87. package/build/tools/baseband.js +18 -7
  88. package/build/tools/baseband.js.map +1 -1
  89. package/build/tools/build.d.ts.map +1 -1
  90. package/build/tools/build.js +30 -8
  91. package/build/tools/build.js.map +1 -1
  92. package/build/tools/ci.d.ts.map +1 -1
  93. package/build/tools/ci.js +16 -5
  94. package/build/tools/ci.js.map +1 -1
  95. package/build/tools/control.d.ts.map +1 -1
  96. package/build/tools/control.js +19 -11
  97. package/build/tools/control.js.map +1 -1
  98. package/build/tools/device-farm.d.ts.map +1 -1
  99. package/build/tools/device-farm.js +27 -3
  100. package/build/tools/device-farm.js.map +1 -1
  101. package/build/tools/device-profiles.d.ts.map +1 -1
  102. package/build/tools/device-profiles.js +70 -8
  103. package/build/tools/device-profiles.js.map +1 -1
  104. package/build/tools/device.d.ts.map +1 -1
  105. package/build/tools/device.js +4 -2
  106. package/build/tools/device.js.map +1 -1
  107. package/build/tools/diagnostics.d.ts.map +1 -1
  108. package/build/tools/diagnostics.js +20 -10
  109. package/build/tools/diagnostics.js.map +1 -1
  110. package/build/tools/emulator.d.ts.map +1 -1
  111. package/build/tools/emulator.js +12 -13
  112. package/build/tools/emulator.js.map +1 -1
  113. package/build/tools/files.d.ts +27 -1
  114. package/build/tools/files.d.ts.map +1 -1
  115. package/build/tools/files.js +1109 -11
  116. package/build/tools/files.js.map +1 -1
  117. package/build/tools/firmware-analysis.d.ts.map +1 -1
  118. package/build/tools/firmware-analysis.js +35 -12
  119. package/build/tools/firmware-analysis.js.map +1 -1
  120. package/build/tools/forwarding.d.ts.map +1 -1
  121. package/build/tools/forwarding.js +284 -4
  122. package/build/tools/forwarding.js.map +1 -1
  123. package/build/tools/health.d.ts.map +1 -1
  124. package/build/tools/health.js +14 -3
  125. package/build/tools/health.js.map +1 -1
  126. package/build/tools/input-gestures.d.ts.map +1 -1
  127. package/build/tools/input-gestures.js +65 -13
  128. package/build/tools/input-gestures.js.map +1 -1
  129. package/build/tools/logcat-watch.d.ts.map +1 -1
  130. package/build/tools/logcat-watch.js +21 -14
  131. package/build/tools/logcat-watch.js.map +1 -1
  132. package/build/tools/logs.d.ts.map +1 -1
  133. package/build/tools/logs.js +8 -4
  134. package/build/tools/logs.js.map +1 -1
  135. package/build/tools/mirroring.d.ts.map +1 -1
  136. package/build/tools/mirroring.js +21 -19
  137. package/build/tools/mirroring.js.map +1 -1
  138. package/build/tools/multi-device.d.ts.map +1 -1
  139. package/build/tools/multi-device.js +10 -0
  140. package/build/tools/multi-device.js.map +1 -1
  141. package/build/tools/network-capture.d.ts.map +1 -1
  142. package/build/tools/network-capture.js +32 -8
  143. package/build/tools/network-capture.js.map +1 -1
  144. package/build/tools/network-discovery.d.ts.map +1 -1
  145. package/build/tools/network-discovery.js +11 -2
  146. package/build/tools/network-discovery.js.map +1 -1
  147. package/build/tools/ota-monitor.d.ts.map +1 -1
  148. package/build/tools/ota-monitor.js +26 -12
  149. package/build/tools/ota-monitor.js.map +1 -1
  150. package/build/tools/packages.d.ts.map +1 -1
  151. package/build/tools/packages.js +18 -11
  152. package/build/tools/packages.js.map +1 -1
  153. package/build/tools/plugins.d.ts +18 -0
  154. package/build/tools/plugins.d.ts.map +1 -1
  155. package/build/tools/plugins.js +47 -2
  156. package/build/tools/plugins.js.map +1 -1
  157. package/build/tools/prompts.d.ts.map +1 -1
  158. package/build/tools/prompts.js +2 -0
  159. package/build/tools/prompts.js.map +1 -1
  160. package/build/tools/qemu.d.ts +18 -0
  161. package/build/tools/qemu.d.ts.map +1 -1
  162. package/build/tools/qemu.js +42 -18
  163. package/build/tools/qemu.js.map +1 -1
  164. package/build/tools/registry.d.ts.map +1 -1
  165. package/build/tools/registry.js +76 -26
  166. package/build/tools/registry.js.map +1 -1
  167. package/build/tools/regression.d.ts +37 -0
  168. package/build/tools/regression.d.ts.map +1 -1
  169. package/build/tools/regression.js +63 -22
  170. package/build/tools/regression.js.map +1 -1
  171. package/build/tools/resources.d.ts.map +1 -1
  172. package/build/tools/resources.js +62 -15
  173. package/build/tools/resources.js.map +1 -1
  174. package/build/tools/result-handles.d.ts +37 -0
  175. package/build/tools/result-handles.d.ts.map +1 -0
  176. package/build/tools/result-handles.js +286 -0
  177. package/build/tools/result-handles.js.map +1 -0
  178. package/build/tools/ril-intercept.d.ts.map +1 -1
  179. package/build/tools/ril-intercept.js +15 -18
  180. package/build/tools/ril-intercept.js.map +1 -1
  181. package/build/tools/screen-record.d.ts.map +1 -1
  182. package/build/tools/screen-record.js +34 -5
  183. package/build/tools/screen-record.js.map +1 -1
  184. package/build/tools/screenshot-diff.d.ts.map +1 -1
  185. package/build/tools/screenshot-diff.js +29 -21
  186. package/build/tools/screenshot-diff.js.map +1 -1
  187. package/build/tools/selinux-audit.d.ts.map +1 -1
  188. package/build/tools/selinux-audit.js +7 -5
  189. package/build/tools/selinux-audit.js.map +1 -1
  190. package/build/tools/sensors.d.ts +18 -0
  191. package/build/tools/sensors.d.ts.map +1 -0
  192. package/build/tools/sensors.js +555 -0
  193. package/build/tools/sensors.js.map +1 -0
  194. package/build/tools/shell.d.ts.map +1 -1
  195. package/build/tools/shell.js +9 -0
  196. package/build/tools/shell.js.map +1 -1
  197. package/build/tools/snapshot.d.ts.map +1 -1
  198. package/build/tools/snapshot.js +38 -19
  199. package/build/tools/snapshot.js.map +1 -1
  200. package/build/tools/split-apk.d.ts.map +1 -1
  201. package/build/tools/split-apk.js +48 -24
  202. package/build/tools/split-apk.js.map +1 -1
  203. package/build/tools/test-gen.d.ts.map +1 -1
  204. package/build/tools/test-gen.js +29 -10
  205. package/build/tools/test-gen.js.map +1 -1
  206. package/build/tools/testing.d.ts.map +1 -1
  207. package/build/tools/testing.js +27 -9
  208. package/build/tools/testing.js.map +1 -1
  209. package/build/tools/thermal-power.d.ts +8 -1
  210. package/build/tools/thermal-power.d.ts.map +1 -1
  211. package/build/tools/thermal-power.js +35 -10
  212. package/build/tools/thermal-power.js.map +1 -1
  213. package/build/tools/ui.d.ts.map +1 -1
  214. package/build/tools/ui.js +20 -13
  215. package/build/tools/ui.js.map +1 -1
  216. package/build/tools/wireless-firmware.d.ts.map +1 -1
  217. package/build/tools/wireless-firmware.js +21 -7
  218. package/build/tools/wireless-firmware.js.map +1 -1
  219. package/build/tools/wireless.d.ts.map +1 -1
  220. package/build/tools/wireless.js +39 -3
  221. package/build/tools/wireless.js.map +1 -1
  222. package/build/tools/workflow-market.d.ts.map +1 -1
  223. package/build/tools/workflow-market.js +67 -13
  224. package/build/tools/workflow-market.js.map +1 -1
  225. package/build/tools/workflow.d.ts.map +1 -1
  226. package/build/tools/workflow.js +77 -8
  227. package/build/tools/workflow.js.map +1 -1
  228. package/build/ws-transport.d.ts.map +1 -1
  229. package/build/ws-transport.js +21 -3
  230. package/build/ws-transport.js.map +1 -1
  231. package/package.json +20 -8
@@ -1,3 +1,5 @@
1
+ // Copyright 2026 Jason <fullread@github>
2
+ // SPDX-License-Identifier: Apache-2.0
1
3
  /**
2
4
  * AT Command Interface — Raw modem AT command passthrough via root access.
3
5
  *
@@ -18,7 +20,23 @@
18
20
  import { z } from "zod";
19
21
  import { OutputProcessor } from "../middleware/output-processor.js";
20
22
  import { MODEM_PATHS, detectChipsetFamily } from "../middleware/chipset.js";
21
- /** AT commands that can brick, factory-reset, or disable the modem. */
23
+ import { shellQuote } from "../middleware/sanitize.js";
24
+ /**
25
+ * AT commands that can brick, factory-reset, or disable the modem.
26
+ *
27
+ * T1 note: NON-EXHAUSTIVE. Covers the well-known cross-vendor dangerous
28
+ * commands but vendor-specific surfaces have many more entries that aren't
29
+ * listed here. Notable missing vendor-specific commands:
30
+ * - Huawei: AT^SYSCFG* (system config, can disable bands/RATs)
31
+ * - MediaTek: AT^EFNAME (EF file writes, can corrupt SIM)
32
+ * - Quectel: AT+QCFG (config writes)
33
+ * - Cinterion: AT^SCFG (config writes)
34
+ * - Generic: AT+CPOL (preferred operator list write)
35
+ *
36
+ * Operators MUST review their modem's vendor datasheet before using
37
+ * `force: true` — the blocklist is a safety net for the common case, not
38
+ * a substitute for understanding what a command does.
39
+ */
22
40
  const DANGEROUS_AT_COMMANDS = [
23
41
  "AT+CFUN=0", // Minimum functionality — kills radio
24
42
  "AT+CFUN=4", // Disable TX
@@ -87,10 +105,11 @@ async function sendAtCommand(ctx, serial, deviceNode, command, timeoutMs) {
87
105
  const cmd = command.trimEnd();
88
106
  // Send the command and read response with a timeout.
89
107
  // Both cmd and deviceNode are validated above — no shell metacharacters.
90
- // Use printf instead of echo -e for portable carriage return handling
91
- // (echo -e is not supported by all Android shell implementations).
108
+ // Use printf with '%s\r' format to separate format string from data —
109
+ // AT commands may contain % (e.g., AT%RESTART) which printf would
110
+ // misinterpret as format specifiers if cmd were in the format position.
92
111
  const timeoutSec = Math.max(1, Math.ceil(timeoutMs / 1000));
93
- const shellCmd = `printf '${cmd}\\r' > '${deviceNode}' && timeout ${timeoutSec} cat '${deviceNode}' 2>&1 || true`;
112
+ const shellCmd = `printf '%s\\r' '${cmd}' > '${deviceNode}' && timeout ${timeoutSec} cat '${deviceNode}' 2>&1 || true`;
94
113
  try {
95
114
  const result = await ctx.bridge.rootShell(shellCmd, {
96
115
  device: serial,
@@ -107,6 +126,31 @@ async function sendAtCommand(ctx, serial, deviceNode, command, timeoutMs) {
107
126
  return { response: "", error: err instanceof Error ? err.message : String(err) };
108
127
  }
109
128
  }
129
+ /**
130
+ * Auto-detect the first existing modem device node for the given chipset family.
131
+ * Probes MODEM_PATHS entries via `test -e` through root shell.
132
+ * Returns the first existing node path, or null if none found.
133
+ */
134
+ async function autoDetectAtPort(ctx, serial, family) {
135
+ if (!family) {
136
+ const props = await ctx.deviceManager.getDeviceProps(serial);
137
+ family = detectChipsetFamily(props);
138
+ }
139
+ const paths = MODEM_PATHS[family] ?? MODEM_PATHS.generic;
140
+ // T5 fix: defense-in-depth shellQuote on MODEM_PATHS entries. Current
141
+ // values are hardcoded /dev/... constants from chipset.ts (no whitespace
142
+ // or metacharacters), so this is safe by construction today. Wrapping
143
+ // ensures a future contributor adding a path with whitespace doesn't
144
+ // accidentally word-split here.
145
+ const existCmd = paths.map((p) => `test -e ${shellQuote(p)} && echo "EXISTS:${p}"`).join("; ");
146
+ const existResult = await ctx.bridge.rootShell(existCmd, {
147
+ device: serial, timeout: 5000, ignoreExitCode: true,
148
+ });
149
+ const existing = existResult.stdout.split("\n")
150
+ .filter((l) => l.startsWith("EXISTS:"))
151
+ .map((l) => l.replace("EXISTS:", "").trim());
152
+ return existing.length > 0 ? existing[0] : null;
153
+ }
110
154
  export function registerAtCommandTools(ctx) {
111
155
  ctx.server.tool("adb_at_detect", "Auto-detect the modem AT command device node. Identifies the chipset family (Shannon, Qualcomm, MediaTek, Unisoc) and probes known device node paths. Requires root. Returns the first responding node.", {
112
156
  device: z.string().optional().describe("Device serial"),
@@ -130,7 +174,8 @@ export function registerAtCommandTools(ctx) {
130
174
  const allPaths = [...familyPaths, ...otherPaths];
131
175
  sections.push(`\nProbing ${allPaths.length} device nodes...`);
132
176
  // Check which device nodes exist
133
- const existCmd = allPaths.map((p) => `test -e ${p} && echo "EXISTS:${p}"`).join("; ");
177
+ // T5 fix (same rationale as autoDetectAtPort)
178
+ const existCmd = allPaths.map((p) => `test -e ${shellQuote(p)} && echo "EXISTS:${p}"`).join("; ");
134
179
  const existResult = await ctx.bridge.rootShell(existCmd, {
135
180
  device: serial, timeout: 10000, ignoreExitCode: true,
136
181
  });
@@ -209,24 +254,13 @@ export function registerAtCommandTools(ctx) {
209
254
  // Auto-detect port if not specified
210
255
  let targetPort = port;
211
256
  if (!targetPort) {
212
- const props = await ctx.deviceManager.getDeviceProps(serial);
213
- const family = detectChipsetFamily(props);
214
- const paths = MODEM_PATHS[family] ?? MODEM_PATHS.generic;
215
- // Quick probe: find first existing node
216
- const existCmd = paths.map((p) => `test -e ${p} && echo "EXISTS:${p}"`).join("; ");
217
- const existResult = await ctx.bridge.rootShell(existCmd, {
218
- device: serial, timeout: 5000, ignoreExitCode: true,
219
- });
220
- const existing = existResult.stdout.split("\n")
221
- .filter((l) => l.startsWith("EXISTS:"))
222
- .map((l) => l.replace("EXISTS:", "").trim());
223
- if (existing.length === 0) {
257
+ targetPort = await autoDetectAtPort(ctx, serial) ?? undefined;
258
+ if (!targetPort) {
224
259
  return {
225
260
  content: [{ type: "text", text: "No modem device node found. Use adb_at_detect to identify available ports, or specify 'port' manually." }],
226
261
  isError: true,
227
262
  };
228
263
  }
229
- targetPort = existing[0];
230
264
  }
231
265
  const { response, error } = await sendAtCommand(ctx, serial, targetPort, command, timeout);
232
266
  let output = `Port: ${targetPort}\nCommand: ${command}\n\n`;
@@ -276,23 +310,13 @@ export function registerAtCommandTools(ctx) {
276
310
  // Auto-detect port if not specified
277
311
  let targetPort = port;
278
312
  if (!targetPort) {
279
- const props = await ctx.deviceManager.getDeviceProps(serial);
280
- const family = detectChipsetFamily(props);
281
- const paths = MODEM_PATHS[family] ?? MODEM_PATHS.generic;
282
- const existCmd = paths.map((p) => `test -e ${p} && echo "EXISTS:${p}"`).join("; ");
283
- const existResult = await ctx.bridge.rootShell(existCmd, {
284
- device: serial, timeout: 5000, ignoreExitCode: true,
285
- });
286
- const existing = existResult.stdout.split("\n")
287
- .filter((l) => l.startsWith("EXISTS:"))
288
- .map((l) => l.replace("EXISTS:", "").trim());
289
- if (existing.length === 0) {
313
+ targetPort = await autoDetectAtPort(ctx, serial) ?? undefined;
314
+ if (!targetPort) {
290
315
  return {
291
316
  content: [{ type: "text", text: "No modem device node found. Use adb_at_detect or specify 'port'." }],
292
317
  isError: true,
293
318
  };
294
319
  }
295
- targetPort = existing[0];
296
320
  }
297
321
  const results = [`Port: ${targetPort}`, `Commands: ${commands.length}`, ``];
298
322
  for (let i = 0; i < commands.length; i++) {
@@ -325,23 +349,13 @@ export function registerAtCommandTools(ctx) {
325
349
  // Auto-detect port
326
350
  let targetPort = port;
327
351
  if (!targetPort) {
328
- const props = await ctx.deviceManager.getDeviceProps(serial);
329
- const family = detectChipsetFamily(props);
330
- const paths = MODEM_PATHS[family] ?? MODEM_PATHS.generic;
331
- const existCmd = paths.map((p) => `test -e ${p} && echo "EXISTS:${p}"`).join("; ");
332
- const existResult = await ctx.bridge.rootShell(existCmd, {
333
- device: serial, timeout: 5000, ignoreExitCode: true,
334
- });
335
- const existing = existResult.stdout.split("\n")
336
- .filter((l) => l.startsWith("EXISTS:"))
337
- .map((l) => l.replace("EXISTS:", "").trim());
338
- if (existing.length === 0) {
352
+ targetPort = await autoDetectAtPort(ctx, serial) ?? undefined;
353
+ if (!targetPort) {
339
354
  return {
340
355
  content: [{ type: "text", text: "No modem device node found. Use adb_at_detect or specify 'port'." }],
341
356
  isError: true,
342
357
  };
343
358
  }
344
- targetPort = existing[0];
345
359
  }
346
360
  // Standard diagnostic AT command sequence
347
361
  const probeCommands = [
@@ -391,17 +405,7 @@ export function registerAtCommandTools(ctx) {
391
405
  // ── Auto-detect port if not specified ──
392
406
  let targetPort = port;
393
407
  if (!targetPort) {
394
- const paths = MODEM_PATHS[family] ?? MODEM_PATHS.generic;
395
- const existCmd = paths.map((p) => `test -e ${p} && echo "EXISTS:${p}"`).join("; ");
396
- const existResult = await ctx.bridge.rootShell(existCmd, {
397
- device: serial, timeout: 5000, ignoreExitCode: true,
398
- });
399
- const existing = existResult.stdout.split("\n")
400
- .filter((l) => l.startsWith("EXISTS:"))
401
- .map((l) => l.replace("EXISTS:", "").trim());
402
- if (existing.length > 0) {
403
- targetPort = existing[0];
404
- }
408
+ targetPort = await autoDetectAtPort(ctx, serial, family) ?? undefined;
405
409
  }
406
410
  sections.push(`AT port: ${targetPort ?? "not available"}`);
407
411
  // ── Gather AT command responses ──
@@ -483,10 +487,11 @@ export function registerAtCommandTools(ctx) {
483
487
  }
484
488
  else {
485
489
  discrepancies++;
486
- sections.push("✗ DISCREPANCY: Firmware revision mismatch between AT+CGMR and gsm.version.baseband");
490
+ sections.push("⚠ HEURISTIC MISMATCH: Firmware revision strings differ between AT+CGMR and gsm.version.baseband");
487
491
  sections.push(` AT+CGMR: ${atResults["AT+CGMR"]}`);
488
492
  sections.push(` getprop: ${propBaseline["gsm.version.baseband"]}`);
489
- sections.push(" ⚠ This may indicate firmware tampering, incomplete OTA, or property spoofing");
493
+ // T7 fix: soften — this is a heuristic token-overlap check, not a tampering indicator
494
+ sections.push(" Note: vendor AT+CGMR strings and Android getprop labels rarely match exactly even on healthy hardware. Treat as an investigation hint, not evidence of tampering.");
490
495
  }
491
496
  }
492
497
  // Check 2: ATI identification vs chipset family
@@ -541,7 +546,7 @@ export function registerAtCommandTools(ctx) {
541
546
  }
542
547
  else {
543
548
  discrepancies++;
544
- sections.push("✗ DISCREPANCY: Expected baseband doesn't match running baseband");
549
+ sections.push("⚠ HEURISTIC MISMATCH: Expected baseband string doesn't match running baseband string");
545
550
  sections.push(` Expected: ${propBaseline["ro.build.expect.baseband"]}`);
546
551
  sections.push(` Running: ${propBaseline["gsm.version.baseband"]}`);
547
552
  sections.push(" ⚠ This may indicate a pending OTA, partial update, or firmware downgrade");
@@ -1 +1 @@
1
- {"version":3,"file":"at-commands.js","sourceRoot":"","sources":["../../src/tools/at-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"at-commands.js","sourceRoot":"","sources":["../../src/tools/at-commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseband.d.ts","sourceRoot":"","sources":["../../src/tools/baseband.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAwX5D"}
1
+ {"version":3,"file":"baseband.d.ts","sourceRoot":"","sources":["../../src/tools/baseband.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAoY5D"}
@@ -1,3 +1,5 @@
1
+ // Copyright 2026 Jason <fullread@github>
2
+ // SPDX-License-Identifier: Apache-2.0
1
3
  /**
2
4
  * Baseband/Modem Integration Tools — Deep cellular radio state inspection.
3
5
  *
@@ -12,13 +14,15 @@
12
14
  */
13
15
  import { z } from "zod";
14
16
  import { OutputProcessor } from "../middleware/output-processor.js";
15
- import { validateShellArg } from "../middleware/sanitize.js";
17
+ import { resultHandleSchemaFields, withResultHandle } from "./result-handles.js";
18
+ import { validateShellArg, shellQuote } from "../middleware/sanitize.js";
16
19
  import { detectSimConfig } from "../middleware/chipset.js";
17
20
  export function registerBasebandTools(ctx) {
18
21
  ctx.server.tool("adb_baseband_info", "Get comprehensive modem/baseband identification: firmware version, RIL implementation, chipset, IMEI, SIM state, and radio capabilities.", {
19
22
  device: z.string().optional().describe("Device serial"),
20
23
  includeImei: z.boolean().optional().default(false).describe("Include IMEI in output (sensitive permanent device identifier — opt-in only)"),
21
- }, async ({ device, includeImei }) => {
24
+ ...resultHandleSchemaFields,
25
+ }, async ({ device, includeImei, result_handle, result_handle_ttl }) => {
22
26
  try {
23
27
  const resolved = await ctx.deviceManager.resolveDevice(device);
24
28
  const serial = resolved.serial;
@@ -41,7 +45,7 @@ export function registerBasebandTools(ctx) {
41
45
  "telephony.active_modems.max_count",
42
46
  "persist.radio.multisim.config",
43
47
  ];
44
- const propResults = await Promise.allSettled(propKeys.map((key) => ctx.bridge.shell(`getprop ${key}`, { device: serial })
48
+ const propResults = await Promise.allSettled(propKeys.map((key) => ctx.bridge.shell(`getprop ${shellQuote(key)}`, { device: serial })
45
49
  .then((r) => ({ key, value: r.stdout.trim() }))));
46
50
  const props = {};
47
51
  for (const r of propResults) {
@@ -92,7 +96,7 @@ export function registerBasebandTools(ctx) {
92
96
  }
93
97
  }
94
98
  }
95
- const slotResults = await Promise.allSettled(slotQueries.map((q) => ctx.bridge.shell(`getprop ${q.prop}`, { device: serial })
99
+ const slotResults = await Promise.allSettled(slotQueries.map((q) => ctx.bridge.shell(`getprop ${shellQuote(q.prop)}`, { device: serial })
96
100
  .then((r) => ({ ...q, value: r.stdout.trim() }))));
97
101
  // Organize per-slot data: first non-empty value wins for each slot+key
98
102
  const slotData = Array.from({ length: simSlots }, () => ({}));
@@ -160,7 +164,7 @@ export function registerBasebandTools(ctx) {
160
164
  else {
161
165
  sections.push("\nIMEI: (omitted — set includeImei=true to retrieve)");
162
166
  }
163
- return { content: [{ type: "text", text: sections.join("\n") }] };
167
+ return withResultHandle({ content: [{ type: "text", text: sections.join("\n") }] }, "baseband_info", { result_handle, result_handle_ttl });
164
168
  }
165
169
  catch (error) {
166
170
  return { content: [{ type: "text", text: OutputProcessor.formatError(error) }], isError: true };
@@ -284,8 +288,15 @@ export function registerBasebandTools(ctx) {
284
288
  if (grepErr)
285
289
  return { content: [{ type: "text", text: grepErr }], isError: true };
286
290
  }
287
- const grepSuffix = grep ? ` | grep -iF '${grep}'` : "";
288
- // Double-quotes intentional: this goes through rootShell (su -c '...'), so inner single quotes would break
291
+ // U3 fix: corrected rationale. Previous comment claimed single-quotes
292
+ // would "break" through rootShell, which is technically incorrect —
293
+ // shellQuote's '\'' close/reopen pattern handles embedded single
294
+ // quotes correctly through both ADB and rootShell paths. The actual
295
+ // reason for the dual format is visual: the rootShell wrap composes
296
+ // its own su -c "..." string, so using double-quotes here avoids a
297
+ // visual mess of escaped single-quote sequences when read by humans.
298
+ // Functionally either style is safe; the choice is for readability.
299
+ const grepSuffix = grep ? ` | grep -iF ${shellQuote(grep)}` : "";
289
300
  const dmesgGrepSuffix = grep ? ` | grep -iF "${grep}"` : "";
290
301
  const [rilLog, telephonyLog, radioLog, dmesgModem] = await Promise.allSettled([
291
302
  // RIL daemon logs from the radio buffer
@@ -1 +1 @@
1
- {"version":3,"file":"baseband.js","sourceRoot":"","sources":["../../src/tools/baseband.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseband.js","sourceRoot":"","sources":["../../src/tools/baseband.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAUjD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAoEzD"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"AAEA;;GAEG;AAOH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAUjD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAuFzD"}
@@ -1,3 +1,5 @@
1
+ // Copyright 2026 Jason <fullread@github>
2
+ // SPDX-License-Identifier: Apache-2.0
1
3
  /**
2
4
  * Build Tools — Gradle build, install, and run integration.
3
5
  */
@@ -17,17 +19,26 @@ export function registerBuildTools(ctx) {
17
19
  ctx.server.tool("adb_gradle", "Run a Gradle task in an Android project directory", {
18
20
  projectPath: z.string().describe("Path to the Android project root (containing gradlew)"),
19
21
  task: z.string().describe("Gradle task (e.g., 'assembleDebug', 'installDebug', 'clean')"),
20
- args: z.string().optional().describe("Additional Gradle arguments"),
21
- }, async ({ projectPath, task, args }) => {
22
+ args: z.array(z.string()).optional().describe("Additional Gradle arguments as an array of strings (e.g., ['-Pversion=1.0', '--info']). Use an array — not a space-separated string — so arguments containing quoted values are preserved as single tokens."),
23
+ timeout: z.number().int().min(30000).max(1800000).optional().default(300000)
24
+ .describe("Build timeout in milliseconds (30s-30min, default 5min). V5 fix: large multi-module Android projects (60+ modules) routinely exceed the default; raise this for clean builds of bigger projects."),
25
+ }, async ({ projectPath, task, args, timeout }) => {
22
26
  try {
27
+ // V1 fix: preflight existsSync on projectPath. A non-existent path was
28
+ // previously passed to execFile as cwd, producing a low-level ENOENT
29
+ // from the OS that obscured the operator's actual mistake (wrong path).
30
+ // Clear error surfaces immediately, before any subprocess work.
31
+ if (!existsSync(projectPath)) {
32
+ return { content: [{ type: "text", text: `Project path does not exist: ${projectPath}` }], isError: true };
33
+ }
23
34
  const gradle = getGradleWrapper(projectPath);
24
35
  const gradleArgs = [task];
25
36
  if (args)
26
- gradleArgs.push(...args.split(" "));
37
+ gradleArgs.push(...args);
27
38
  return new Promise((resolve) => {
28
39
  execFile(gradle, gradleArgs, {
29
40
  cwd: projectPath,
30
- timeout: 300000,
41
+ timeout,
31
42
  maxBuffer: 1024 * 1024 * 10,
32
43
  windowsHide: true,
33
44
  }, (error, stdout, stderr) => {
@@ -35,7 +46,7 @@ export function registerBuildTools(ctx) {
35
46
  if (stderr)
36
47
  output += `\n--- STDERR ---\n${stderr.toString()}`;
37
48
  if (error && error.killed)
38
- output += "\n--- BUILD TIMED OUT (5 min limit) ---";
49
+ output += `\n--- BUILD TIMED OUT (${Math.round(timeout / 1000)}s limit) ---`;
39
50
  resolve({ content: [{ type: "text", text: OutputProcessor.process(output) }] });
40
51
  });
41
52
  });
@@ -47,14 +58,20 @@ export function registerBuildTools(ctx) {
47
58
  ctx.server.tool("adb_build_and_install", "Build a debug APK and install it on the connected device (convenience wrapper)", {
48
59
  projectPath: z.string().describe("Path to the Android project root"),
49
60
  device: z.string().optional().describe("Device serial"),
50
- }, async ({ projectPath, device }) => {
61
+ timeout: z.number().int().min(30000).max(1800000).optional().default(300000)
62
+ .describe("Build+install timeout in milliseconds (30s-30min, default 5min). V5 fix."),
63
+ }, async ({ projectPath, device, timeout }) => {
51
64
  try {
65
+ // V1 fix (matches above): preflight existsSync on projectPath.
66
+ if (!existsSync(projectPath)) {
67
+ return { content: [{ type: "text", text: `Project path does not exist: ${projectPath}` }], isError: true };
68
+ }
52
69
  const resolved = await ctx.deviceManager.resolveDevice(device);
53
70
  const gradle = getGradleWrapper(projectPath);
54
71
  return new Promise((resolve) => {
55
72
  execFile(gradle, ["installDebug"], {
56
73
  cwd: projectPath,
57
- timeout: 300000,
74
+ timeout,
58
75
  maxBuffer: 1024 * 1024 * 10,
59
76
  windowsHide: true,
60
77
  env: { ...process.env, ANDROID_SERIAL: resolved.serial },
@@ -62,7 +79,12 @@ export function registerBuildTools(ctx) {
62
79
  let output = stdout?.toString() ?? "";
63
80
  if (stderr)
64
81
  output += `\n--- STDERR ---\n${stderr.toString()}`;
65
- if (error && !error.killed) {
82
+ if (error && error.killed) {
83
+ // V4 fix: surface timeout marker (matches gradle V5 tool). Previously
84
+ // a killed build_and_install fell through with no diagnostic.
85
+ output += `\n--- BUILD AND INSTALL TIMED OUT (${Math.round(timeout / 1000)}s limit) ---`;
86
+ }
87
+ else if (error && !error.killed) {
66
88
  output += `\n--- BUILD FAILED ---`;
67
89
  }
68
90
  else if (!error) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/tools/ci.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA+KtD"}
1
+ {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/tools/ci.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAwLtD"}