Sign inSign up

nenadzaric/skills-android-d8-compile-dex

By nenadzaric

•Updated 4 days ago

Compile a supplied classfile JAR to one native DEX artifact using fixed API28/release mode without d

Image
Artifact
0

51

nenadzaric/skills-android-d8-compile-dex repository overview

⁠d8-compile-dex

Compile a supplied classfile JAR to one native DEX artifact using fixed API28/release mode without desugaring.

Pinned R8 D8 9.5.26, source e3b702721f5dfe78fc536316df4741ff6f32916a. Linux amd64 tested. No Java class execution, APK/AAB build/sign/install, android.jar/library resolution, device or runtime network calls. Caller must supply compatible classfiles; native warnings are not dependency-completeness proof.

⁠Immutable image

docker pull --platform linux/amd64 docker.io/nenadzaric/skills-android-d8-compile-dex@sha256:5d9c311ba8a63c3b053caf0f52e19280bf2b9cd60edfc510b8298e2458c9e5e1

Image index: sha256:b859d902e937dbf299496001d90591aad537bcfaabf1325adc9dd38f2673fba6. Tested Google Maven binary is byte-identical to official r8lib.jar.

⁠Actual adapter source and original notices

Retrieve the immutable companion artifact below. d8-compile-dex/build-source/ contains actual custom adapter, Dockerfile, owned inert JAR fixtures, native tests/verifier and safe platform graph. Native upstream alone does not contain the custom entrypoint. notices/primary-source/ contains official R8 sourceJAR/release SPDX, notices/pinned-build-source/ matching build definitions, notices/dependency-payloads/ exact dependency source/POMs, notices/installed-image/ original runtime notices and notices/openjdk-corresponding-source/ exact OpenJDK source/Debian patches/descriptor.

oras pull docker.io/nenadzaric/skills-android-d8-compile-dex@sha256:5dba2e6046b7f2ad692aa09c2eb6ec7f5b1af3f12690e1b27872d90962ff5971
sha256sum d8-compile-dex-source-notices.tar.gz

Expected bundle SHA256: 4cf7537927e0f234b706cac5e709043fdc6e69e0e82225f8857f3c36deec2d65. Extract and read d8-compile-dex/SOURCE-DELIVERY.txt and d8-compile-dex/notices/SOURCE-AND-NOTICES.json for source/image/proof hashes. Later recipe/catalog delivery/status metadata can change without runtime changes; the artifact preserves its recorded build-source snapshot.

Pinned native source: https://r8.googlesource.com/r8/+/e3b702721f5dfe78fc536316df4741ff6f32916a⁠

⁠Verification and limits

Nine actual local image cases passed: positive, Hive-style output.txt input filename, no-class JAR, malformed class, malformed ZIP, missing input, oversized input, unsafe ZIP member and existing-output preservation. Actual bounded private fixture/tool/verifier workflow passed3nodes/max1machine; downloaded JAR/nativeDEX/verifier hashes and completion registry binding checked. Positive DEX exactly matches separately baksmali-inspected class org.trickest.fixture.Fixture with answer() returning42. No Java method/device/app was executed.

Native D8 returns0/noartifact for a no-class archive; adapter rejects it before native execution. Hive FILE names need not end in.jar: adapter copies validated unchanged input bytes to a task-local input.jar before invoking D8. Initial private attempt exposed native suffix dispatch and failed; corrected attempt passed after reviewed local regression/new immutable image/same private ID update. Original failed run and old tag remain preserved. Other native errors become adapter2. Input20MiB,5000ZIPentries/64MiB declared uncompressed metadata; duplicates/unsafe member names/symlinks/encrypted entries rejected. This is declared ZIP metadata checking, not peak containment. Native90s deadline/JVM256MiB heap/4MiB post-run output/log caps are not total process or peak disk limits. Requires exactly one classes.dex with valid header/SHA1/Adler32; multidex rejected. No desugaring/library/classpath service or arbitrary framework compatibility promise. Existing nonempty output preserved.

⁠Reproduce owned checks

cd d8-compile-dex/build-source
IMAGE=docker.io/nenadzaric/skills-android-d8-compile-dex@sha256:5d9c311ba8a63c3b053caf0f52e19280bf2b9cd60edfc510b8298e2458c9e5e1 python3 test_native.py

Only owned inert bytecode fixtures; network-none containers. Build-time source downloads pinned; runtime downloads none.

⁠License scope

BSD-3-Clause native core and original bundled component/runtime terms retained. Existing workflows Proprietary adapter policy is separate; no new grant/relicense. Official release SPDX identifies30build dependency records, all binarySHA matched;29sourcearchives delivered. Zero-class listenablefuture placeholder source404 retained with original binary/POM. This is not an exhaustive minimized-binary composition/SBOM or bit-reproducible build claim. Exact original installed notices and OpenJDK corresponding source supplied.

Tag summary

Content type

Unrecognized

Digest

sha256:5dba2e604…

Size

89.8 MB

Last updated

4 days ago

docker pull nenadzaric/skills-android-d8-compile-dex:source-notices-5d9c311ba8a6