Abhay Tiwari
6668424343
feat(apktool): share one APK resource decode across selected locale tables ( #4777 ) ( #4804 )
...
Project default and multiple selected localized string tables from one
immutable decode pass. Remove the need for repeated APK snapshotting,
digesting, version probing, apktool d invocations, and workspace enumeration.
- Contract: add optional locales array to decode_android_resources input
schema (bounded to 20 locales) and structured string_tables to output schema
with per-table status, strings, total_count, unparsed_count, and coverage.
Preserve legacy strings and locale fields for complete backward compatibility.
- Bounds: enforce 32 MiB aggregate XML read cap and 10,000 aggregate string
entries cap across batched projections. Handle missing, oversized, and
malformed tables per-table without failing or losing completed tables.
- Lifecycle: maintain strict descriptor cleanup and provider-owned workspace
removal in finally, preserving typed cancellation and failure details.
- Adapters: add --locales repeatable option to CLI and update MCP contract.
Validation: 10 service tests, 3 CLI boundary tests, and MCP boundary schema
tests pass. Fast typecheck/lint and turbo docs:check:built pass.
Fixes #4777
2026-10-18 03:57:17 +08:00
..
2026-10-16 11:48:59 +08:00
2026-10-16 07:25:22 +08:00
2026-10-18 01:28:36 +08:00
2026-10-18 03:57:17 +08:00
2026-10-07 21:09:33 +08:00
2026-10-15 03:43:28 +08:00
2026-10-18 01:59:10 +08:00
2026-10-17 21:44:54 +08:00
2026-10-18 02:38:30 +08:00
2026-10-17 21:24:00 +08:00
2026-10-17 13:16:40 +08:00
2026-10-16 11:48:59 +08:00
2026-10-13 11:39:30 +08:00
2026-10-14 16:10:46 +08:00
2026-10-16 11:48:59 +08:00
2026-10-11 20:09:21 +08:00
2026-10-16 04:41:39 +08:00
2026-10-18 03:54:51 +08:00
2026-10-15 03:43:29 +08:00
2026-10-14 03:01:23 +08:00
2026-10-15 06:33:48 +08:00
2026-10-13 04:53:03 +00:00
2026-10-12 14:12:44 +08:00
2026-10-15 05:19:43 -07:00
2026-10-17 00:44:02 +08:00
2026-10-18 02:38:30 +08:00
2026-10-12 18:33:23 +00:00
2026-10-16 11:48:59 +08:00
2026-10-14 08:32:00 +08:00
2026-10-14 08:32:00 +08:00
2026-10-09 00:57:28 +08:00
2026-10-09 19:52:54 -07:00
2026-10-18 01:59:10 +08:00
2026-10-16 02:23:25 +08:00
2026-10-16 02:23:25 +08:00
2026-10-14 08:32:15 +08:00
2026-10-17 10:44:24 +00:00
2026-10-17 05:47:19 +08:00
2026-10-14 00:36:37 +08:00
2026-10-16 06:46:26 +08:00
2026-10-16 06:46:25 +08:00
2026-10-16 11:48:59 +08:00
2026-10-11 00:03:22 +08:00
2026-10-18 03:22:29 +08:00
2026-10-18 03:22:29 +08:00
2026-10-09 23:35:19 +08:00
2026-10-14 04:47:34 +08:00
2026-10-05 20:16:44 +08:00
2026-10-17 10:44:24 +00:00
2026-10-17 10:44:24 +00:00
2026-10-17 00:44:02 +08:00
2026-10-17 00:44:02 +08:00
2026-10-06 05:58:46 +08:00
2026-10-18 03:41:32 +08:00
2026-10-12 23:24:24 +08:00
2026-10-18 03:41:32 +08:00
2026-10-14 13:58:15 +08:00
2026-10-15 07:36:34 +08:00
2026-10-17 23:22:43 +08:00
2026-10-17 23:22:43 +08:00
2026-10-16 05:09:35 +08:00
2026-10-17 03:11:32 +08:00
2026-10-16 05:09:35 +08:00
2026-10-17 03:11:32 +08:00
2026-10-17 09:57:43 +08:00
2026-10-15 12:15:55 +08:00
2026-10-17 11:29:03 +08:00
2026-10-15 12:15:55 +08:00
2026-10-18 01:59:10 +08:00
2026-10-15 12:15:55 +08:00
2026-10-15 05:56:56 +00:00
2026-10-14 16:10:46 +08:00
2026-10-17 00:24:35 +08:00
2026-10-12 11:06:26 +08:00
2026-10-13 20:56:20 +08:00
2026-10-17 10:44:24 +00:00
2026-10-12 14:46:10 +08:00
2026-10-10 21:04:05 -07:00
2026-10-13 21:50:25 +08:00
2026-10-13 03:22:38 +08:00
2026-10-09 20:18:52 +08:00
2026-10-06 20:17:59 +08:00
2026-10-12 08:55:19 +08:00
2026-10-14 17:49:19 +08:00
2026-10-10 18:19:51 +08:00
2026-10-15 00:57:57 +08:00
2026-10-15 00:57:57 +08:00
2026-10-09 03:28:25 +00:00
2026-10-15 12:15:55 +08:00
2026-10-15 12:15:55 +08:00
2026-10-15 12:15:55 +08:00
2026-10-10 21:04:05 -07:00
2026-10-15 06:45:53 +08:00
2026-10-17 04:27:38 -07:00
2026-10-13 16:04:44 +08:00
2026-10-16 11:48:59 +08:00
2026-10-16 11:48:59 +08:00
2026-10-17 05:47:19 +08:00
2026-10-15 03:43:29 +08:00
2026-10-15 03:43:29 +08:00
2026-10-14 17:09:17 +08:00
2026-10-14 17:09:17 +08:00
2026-10-17 21:10:07 +08:00
2026-10-12 07:50:31 +08:00
2026-10-14 14:47:26 +08:00
2026-10-14 14:47:26 +08:00
2026-10-17 00:44:02 +08:00
2026-10-12 22:01:58 +08:00
2026-10-09 02:42:39 +08:00
2026-10-10 18:54:57 +08:00
2026-10-13 15:23:56 +08:00
2026-10-17 04:27:55 -07:00
2026-10-09 20:26:46 +08:00
2026-10-10 21:04:05 -07:00
2026-09-29 13:57:24 +08:00
2026-10-11 02:21:28 +08:00
2026-10-17 00:19:52 +08:00
2026-10-08 04:03:24 +08:00
2026-10-14 17:11:40 -07:00
2026-10-14 17:11:28 -07:00
2026-10-12 08:59:14 +08:00
2026-10-14 17:11:40 -07:00
2026-10-12 08:59:14 +08:00
2026-10-17 00:19:52 +08:00
2026-10-14 17:11:40 -07:00
2026-07-24 13:17:56 +00:00
2026-10-14 08:36:38 +08:00
2026-10-17 00:25:43 +08:00
2026-10-17 00:25:43 +08:00
2026-10-17 08:25:01 +08:00
2026-10-11 06:10:10 +08:00
2026-10-13 14:39:06 +08:00
2026-10-17 08:25:01 +08:00
2026-10-17 08:25:01 +08:00
2026-10-17 04:57:06 +08:00
2026-10-15 05:23:04 +08:00
2026-10-10 05:56:01 +08:00
2026-10-16 23:59:15 +08:00
2026-10-13 23:33:54 +08:00
2026-10-16 23:59:15 +08:00
2026-10-17 05:47:19 +08:00
2026-10-17 04:57:06 +08:00
2026-10-15 12:15:55 +08:00
2026-10-14 08:25:53 +08:00
2026-10-15 12:15:55 +08:00
2026-10-15 12:15:55 +08:00
2026-10-17 05:01:46 +08:00
2026-10-15 05:16:08 +08:00
2026-10-17 05:01:46 +08:00
2026-10-17 04:57:06 +08:00
2026-10-15 06:39:48 +08:00
2026-10-16 07:25:21 +08:00
2026-10-13 15:58:25 +08:00
2026-10-17 04:57:06 +08:00
2026-10-11 13:20:15 +08:00
2026-10-12 05:57:35 +08:00
2026-10-12 05:57:35 +08:00
2026-10-12 05:57:35 +08:00
2026-10-13 12:46:05 +08:00
2026-10-11 17:56:05 +08:00
2026-10-12 05:57:35 +08:00
2026-10-10 01:37:41 -07:00
2026-10-07 16:21:18 +08:00
2026-10-13 16:08:41 +08:00
2026-10-09 20:18:52 +08:00
2026-10-13 16:16:31 +08:00
2026-10-13 16:08:41 +08:00
2026-10-16 06:46:25 +08:00
2026-10-16 11:48:59 +08:00
2026-10-16 06:46:26 +08:00
2026-10-07 21:45:07 +08:00
2026-10-16 11:48:59 +08:00
2026-10-16 11:48:59 +08:00
2026-10-13 16:08:41 +08:00
2026-10-17 08:25:01 +08:00
2026-10-13 16:08:41 +08:00
2026-10-16 06:46:25 +08:00
2026-10-16 11:48:59 +08:00
2026-10-14 08:28:14 +08:00
2026-10-15 06:39:48 +08:00
2026-10-15 06:33:48 +08:00
2026-10-09 00:49:30 +08:00
2026-10-09 13:28:48 +08:00