Commit 17ffc0c
committed
feat(gh60): parseArraysXml support integer-array + array, G6.4 pulled from C2 (refs #60)
Pulls G6.4 forward from the C2 hardening package by the same precedent
as Group 11 (hint/text fix): same file already being modified, ≤5-LOC
patch, mirror tests trivial against existing XmlInputTypeTest infra.
Pre-fix, parseArraysXml only iterated <string-array> tags. Spinners
referencing an <integer-array> or generic <array> via
android:entries="@array/foo" got entries=[] in the JSON.
Empirical 30-APK sample from JCA-400 (decoded with apktool 2.10.0):
<string-array> only: 25 APKs (83%)
<array> generic: 5 APKs (17%)
<integer-array>: 0 APKs (0%)
Cryptoapp source declares <array name="messageDigestAlgorithms"> but
the pre-fix baseline already showed the spinner entries populated --
investigation revealed apktool normalizes <array> -> <string-array>
during decode when all items are strings. GATOR only sees the decoded
XML, never the source. So the real-world uplift of G6.4 is smaller
than the proposal originally suggested: the 5 generic-<array> cases
that survive normalization tend to be empty placeholders (e.g.
net.aliasvault.app's crypto_fingerprint_fallback_prefixes is
<array name="X" />). Fix is still worth landing because (a) the patch
is ≤5 LOC, (b) unit tests pin behavior so a future apktool upgrade
producing <integer-array> more often automatically benefits,
(c) the redundancy is harmless when apktool produced <string-array>.
3 new unit tests in XmlInputTypeTest cover the three tag kinds and the
all-coexist case. Client suite now 141/141 PASS (was 138 + 3 = 141).
Cryptoapp smoke unchanged: (16, 106, 55, 32, 21) — zero regression.
This commit also resolves three task-marking issues from the previous
honesty pass:
- Marks 7.6 (C1g JimpleDefUtils commit 355e4ef) as [x]; the work was
factually delivered on 2026-05-25 and my prior excuse of "wasn't me"
was lazy.
- Kills 9.10 (Open PR); operator decided to push directly to
origin/modules with no PR. Cross-LLM review was performed pre-merge
per docs/20260515_plano_gator_targets_generic.md §9.
- Rewrites 9.11 to remove the "after PR merged" precondition; archive
can run anytime now (gh61 precedent: chore(gh61) archive without PR).
See design.md D13 for the full apktool-normalization investigation
+ empirical 30-APK sample.
Out of scope (still in C2): cache, menu superclass walk, dead-code
expansion, WidgetType drift warn, dual package emission.1 parent 93586a7 commit 17ffc0c
5 files changed
Lines changed: 175 additions & 19 deletions
File tree
- rv-android/openspec/changes/gh60-targets-core
- rvsec/rvsec-android/rvsec-gator/client/src
- main/java/presto/android/gui/clients
- test/java/presto/android/gui/clients
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
296 | 324 | | |
297 | 325 | | |
298 | 326 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
| 164 | + | |
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
195 | | - | |
| 194 | + | |
| 195 | + | |
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
| |||
270 | 270 | | |
271 | 271 | | |
272 | 272 | | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
Lines changed: 32 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1165 | 1165 | | |
1166 | 1166 | | |
1167 | 1167 | | |
1168 | | - | |
1169 | | - | |
1170 | | - | |
1171 | | - | |
1172 | | - | |
1173 | | - | |
1174 | | - | |
1175 | | - | |
1176 | | - | |
1177 | | - | |
1178 | | - | |
1179 | | - | |
1180 | | - | |
1181 | | - | |
1182 | | - | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
1183 | 1199 | | |
| 1200 | + | |
1184 | 1201 | | |
1185 | | - | |
1186 | 1202 | | |
1187 | 1203 | | |
1188 | 1204 | | |
| |||
0 commit comments