Skip to content

Share Android JNI version state and honor DEX capacity limits - #1345

Merged
gmh5225 merged 4 commits into
devfrom
codex/android-dex-classpath
Oct 18, 2026
Merged

gmh5225 merged 4 commits into
devfrom
codex/android-dex-classpath

Conversation

@gmh5225

@gmh5225 gmh5225 commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Android JNI callers could not read Build.VERSION, and valid explicit DEX classpaths hit unrelated 64 KiB JSON and 16-class limits before execution. Add an API 28 scalar version projection owned by the shared Dalvik Program/Runtime and sourced from the explicit Android property snapshot. JNI and DEX reads retain one field and heap identity; unsupported fields, writes and platform replacements remain explicit failures.

Keep the existing 64 KiB metadata limit while allowing the already documented 1 MiB DEX payload as hex, and separate the 16-image ceiling from a bounded 4096-class aggregate inventory. Preserve byte, memory, checksum and execution budgets. Synthetic fixtures exercise single/split classpaths, bounds, duplicate classes and malformed containers; no application inputs are included.

Validation:

  • Version/wire revision cddcda3: Dalvik 38 passed; execution configuration 17 passed; Android JNI/Binder/property 325 passed, 324 platform skips; Linux process suite 477 passed, 283 skips; C API/CLI process suite 690 passed; SDK contract drift check passed.
  • Final class-capacity revision c5bc4c0: complete JNI suite 252 passed, 252 platform skips; Binder/property 85 passed, 84 skips; Dalvik 38 passed. Unicorn and available HVF variants exercised.
  • An attempted full Android suite was interrupted after unrelated HVF semaphore stress cases exhausted the 30-second deadline. Full Android coverage is not claimed.

This is a bounded version-state projection, not a boot framework, application context, class-loader or RegisterNatives implementation. Unknown application classes remain unsupported rather than being invented or assumed absent.

@gmh5225
gmh5225 merged commit 523a0c7 into dev Oct 18, 2026
6 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants