Expand description
Direct Android SDK/NDK build, signing, and artifact validation.
The pipeline intentionally does not invoke Gradle or require a device. It builds a Rust
cdylib, consumes Cargo JSON build-script outputs, links resources with AAPT2, merges DEX
with D8, injects stored native libraries, aligns to 16 KiB, signs, and validates the result.
Structs§
- Android
Build Artifact - Verified signed APK metadata.
- Android
Build Paths - All deterministic output paths for one build fingerprint.
- Android
Build Plan - Executable direct Android plan.
- Android
Build Request - Complete direct Android build request.
- Android
Build Tools - One Android SDK Build Tools installation.
- Android
Discovery - Complete read-only inventory of Android toolchain candidates.
- Android
Host Tools - Optional host and SDK helper executables found during discovery.
- Android
Ndk - One Android NDK installation and its LLVM host toolchain.
- Android
Plan Step - One human/JSON-friendly dry-run step.
- Android
Platform - One installed Android SDK platform.
- Android
Toolchain - Selected tools used by one direct Android build.
- ApkExpectation
- Independent expectations for the final APK archive.
- ApkValidation
- Evidence returned by independent APK inspection.
- Cargo
Build Artifacts - Native and JVM artifacts extracted from one Cargo JSON message stream.
- Command
Output - Captured output from a successful external command.
- Command
Spec - One safely tokenized external command.
- Debug
Signing Paths - Machine-local files backing the persistent debug signer.
- Discovery
Options - Explicit discovery inputs.
Defaultreads only conventional path environment variables. - Doctor
Check - One stable, machine-readable Android doctor finding.
- Doctor
Options - Android doctor inputs.
- Doctor
Report - Complete Android doctor report. Generating it never installs or changes tools.
- Generated
Android Content - Deterministic Android manifest and resource source files.
- Generated
Android Files - Paths written for AAPT2 consumption.
- Manifest
Validation - Stable evidence extracted from the final APK’s compiled binary manifest.
- Native
Library Input - Native library produced for one configured ABI.
- Resolved
Signing Config - Fully resolved signing parameters; password values are never stored here.
Enums§
- Android
Build Outcome - Result of build orchestration.
- Android
Build Profile - Cargo profile used for the native build and manifest debuggability.
- Android
Error - Failure while discovering, building, signing, or validating an Android artifact.
- Android
Plan Step Kind - Stable kind for a dry-run build operation.
- Android
Signing Config - APK signing selection.
- DexPolicy
- Whether the application intentionally contains JVM DEX code.
- Doctor
Status - Severity and result of one doctor check.
- Signing
Password Source - Non-inline password source accepted by Android signing tools.
Constants§
- ACTIVITY_
CLASS - Generated launcher activity and private Rust bridge entry point.
- BRIDGE_
CLASS - Generated Java dispatcher invoked through the activity.
- DEBUG_
KEY_ ALIAS - Alias used only by the machine-local debug certificate.
- DEFAULT_
COMMAND_ TIMEOUT - Default deadline for one external build-tool invocation.
- FILE_
PROVIDER_ CLASS - Generated read-only provider for application-owned share files.
- NOTIFICATION_
RECEIVER_ CLASS - Generated alarm and notification-action receiver.
- WIDGET_
PROVIDER_ CLASS - Generated Android home-screen widget provider.
Functions§
- apksigner_
sign_ command - Build the
apksigner signcommand without exposing a password value. - apksigner_
verify_ command - Build the mandatory signature verification command.
- build_
android - Discover tools, create a plan, and either return it or execute the complete pipeline.
- cargo_
build_ command - Create a Cargo cross-build command using explicit target/linker arguments.
- collect_
cargo_ artifacts - Parse Cargo JSON, constrain reported paths to Cargo’s target directory, and collect DEX files.
- collect_
d8_ outputs - Collect and validate sequential D8 output names from a directory.
- collect_
explicit_ dex_ inputs - Recursively collect explicit bridge DEX/JAR inputs without following symlinks.
- default_
debug_ signing_ paths - Resolve paths in cargo-ferry’s OS configuration directory without creating files.
- discover_
android - Inspect configured and conventional Android SDK/NDK locations without changing the system.
- doctor_
android - Inspect the host for every direct Android pipeline prerequisite.
- generate_
android_ content - Create manifest and resource source text without filesystem access.
- inject_
apk_ entries - Append stored native libraries and DEX files to an AAPT2-linked APK.
- plan_
android_ build - Build a side-effect-free direct Android execution plan from a selected toolchain.
- preview_
signing_ config - Resolve signing paths and password references without reading or creating signing files.
- resolve_
signing_ config - Resolve a signing configuration, creating and validating the debug key when needed.
- run_
command - Run one command, capture both streams without pipe deadlock, and save a redacted log.
- validate_
aapt2_ badging - Parse and verify
aapt2 dump badgingpackage and launcher metadata. - validate_
aapt2_ manifest - Verify SDK levels, permissions, components, and deep-link filters from AAPT2 XML output.
- validate_
apk_ archive - Validate ZIP safety, resources, DEX headers, and ELF ABI headers without trusting build tools.
- write_
android_ content - Write generated content below a fingerprinted output directory.