Skip to content

Remove Java application paths and add a checked direct-DEX reader - #147

Draft
isomorphisms wants to merge 5 commits into
repair/idric-longview-androidfrom
native/no-java-frontend
Draft

isomorphisms wants to merge 5 commits into
repair/idric-longview-androidfrom
native/no-java-frontend

Conversation

@isomorphisms

@isomorphisms isomorphisms commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

The IB Android harnesses compiled first-party Java application logic through Gradle. This removes all 18 Java files, both android-prepaint/ and android-webview/ trees, and their build workflows. The replacement text/action reader is generated directly from checked Idriç with native framework views, XML resources and Grease packaging. Existing Idriç browser semantics and Grease acquisition keep their ownership.

Longview verification now reads the compiler SHA declared by IB's committed gitlink, checks exact source/compiler identities, and refuses staged or dirty dependency substitutions. It no longer relies on a stale duplicated compiler constant. Eight actual positive/refusal/recovery controls preserve that boundary.

Stacked on isomorphisms/ib PR #134, “Move Long View lifecycle dispatch into Idriç and exercise its direct-DEX path”, base 41d4cae9c15e42d3b0b4ed4ed957ba86a7ac396a. At earlier qualified head 912ae8905ae137868ce6e9aff1a82c915c40ee85, tree 402dc5bd1950994904844a33197391ffbd8ba6a3, the vendor/android-NDK gitlink consumes 78522f32576b7c14f138a875c0c572f8243dc2eb from isomorphisms/android-NDK PR #27, “Generate checked Activity adapters and preserve source loop values in DEX”.

Historical validation at that earlier head (not inherited by the new head):

  • The earlier source-boundary, public-vocabulary and eight dependency-pin controls pass locally. The published tree matches the FP-captured candidate tree and staged patch; the declared dependency check matches the exact compiler checkout.
  • Fresh NativeReader source-to-DEX and independent AOSP parsing pass with Idriç 2734ac5a86610eddfab73b1644d72b4ac85a65ee and the consumed compiler source. DEX SHA-256 remains f3b217e29c6e722fe3cd7d568ee77827fe4133cb3f334e9812e730e968a7c4ec.
  • The exact consumed backend passed host/layout/refusal and Android 14 SDK 34 x86_64 ART checks, including the new loop-value oracle, two precise executed source mutations, and a separately scoped unchanged IB Longview diagnostic.
  • IB's earlier exact-head Longview acceptance passed with the declared compiler pin: actual source-to-DEX-to-Android 14 SDK 34 x86_64 ART diagnostic, executed separator and wrong-host production mutations, and the independent final acceptance gate. Browser foundation, Pensieve bindings and the universal merge gate also passed at this head.
  • Immutable exact-head Longview evidence: SHA-256 acced29e90b5a78b40531230762a8353b13afd49f72a3aa21174532f397e0441.

Historical APK evidence remains in android-native/acceptance-2026-10-14.md: resources, package/version/test signer, alignment and packaged/emitted DEX equality passed for the earlier 12,782-byte package. It was not rebuilt or installed as part of this continuation; signing Java works on package metadata only.

Keep draft: full browser migration is incomplete. The unchanged NativeSourceProjection consumer and canonical IB source typecheck, then direct DEX refuses the existing list accumulator: source constructor _builtin.NIL in checked helper IB.Information.tokenize_chars. No source DEX is emitted. Full retained-source recovery, image projection, acquisition integration, Binder/Longview workers and durable navigation remain incomplete. Activity lifecycle/clicks and physical replacement-install acceptance are NOT_RUN. Inherited bootstrap/independent AICI producer qualification remains unqualified; FP command-stage execution does not constitute registered model dispatch.

One-off navigation and source-projection qualification

The Idriç neutral-address constructor now refuses user-info, unsupported schemes, missing/ambiguous authority, control and Unicode whitespace, queries/fragments and backslashes while retaining exact legitimate internationalized hosts and paths. Actual pinned Idriç host execution passed 36 constructor, 48 maintained lifecycle and 31 independent adversarial cases. The original source fails 19 of the independent cases; independent review caught and repaired three over/under-restrictions in the first candidate. This is structural credential/control safety, not complete URI/IDNA/DNS validation.

The unchanged real NativeSourceProjection.idric was replayed against canonical android-NDK 973c24bc0b4eab6f3c88699102f7cb0e7fd8951f and frontend 740bbf2b1d9e811fd00c719c3473eede17ceea3b: actual exit 1, _builtin.NIL refusal in existing IB.Information.tokenize_chars, no DEX. The app dependency pin remains unchanged.

A separately identified command invokes the same existing title/parser path for exactly one HTML argument after synthetic argv0. Wrong arity refuses with exit 1. Actual host checks cover zero/one/two/Unicode inputs and reject the earlier all-arguments mutant. Corrected command source emits deterministic 75,092-byte DEX SHA-256 9f9f845e141fe7a76b96fd91eb4d67c1e5cd7eadc18ac402b80033588e6ddf6c; independent baksmali decoding finds 166 methods. Independent replay confirms the same raw pure failure and managed bytes. These are host behavior and DEX emission/decoding results, not DEX/ART execution or an Activity bridge.

The published tree 0bc3738d82b8ad7162f46a2ccfb102de29259b27 matches the integrated tested sources. URL/Binder/reader/search wiring, ART, APK and physical A1/C67 acceptance remain incomplete. No Java/Kotlin application source was introduced; no merge or release.

Earlier one-off head: 59716dabd375f0d49b8fb67a18dfd604b33a923a. Broader hosted qualification must be checked independently at this exact head and is not inherited from the historical results above.

Pinned-compiler compatibility repair

Head f2b3ea861ef960bc79fe59406131abbff0c628d2 renames only the local matcher suffix from the reserved token prefix to expected_suffix. The original failure was the foundation lane's Idriç 7050c116 parser; the validation policy is unchanged. The existing 36 constructor, 31 independent, 48 lifecycle and core smoke checks passed again on the verified host bundle. All four exact-head hosted lanes passed: foundation, Long View model/direct DEX, Pensieve bindings and universal gate. These do not qualify the pending pure-parser/Activity/source integration or physical devices.

…gnostic

Reject credential-bearing and ambiguous durable addresses while preserving internationalized authorities and safe paths. Independent Idric host checks cover 31 adversarial, 36 constructor and 48 lifecycle cases and reproduce prior failures.

Keep the original pure source export and app pin unchanged: canonical DEX still refuses its list constructor. A separate one-HTML command passes host arity/Unicode checks and emits deterministic independently decoded DEX; ART and Activity acceptance remain unproven.

Published source tree 0bc3738 matches the tested integrated source.
The foundation lane pins Idric7050c116, which rejects prefix as a local pattern name. Rename only that local suffix; preserve all URL validation semantics. Existing36constructor,31independent,48lifecycle and core smoke cases pass on the verified94df host bundle. Requalify the actual pinned hosted lane.
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.

1 participant