Modules

Toolchain

moduleSource
macOSLinuxWindows

#import "Android/Toolchain";

Procedures#

ABI names#

SHA#

(s: string) -> [SHA_DIGEST_LENGTH] u8
(s: string) -> [SHA256_DIGEST_LENGTH] u8

Project API#

Manifest API#

SDK API#

Helper API#

Device API#

(directories: [] string, app_id: string, dest_relative_path := "", only_update_newer_files := false, force_create_directories := false) -> bool
(apk_path: string, reinstall_keeping_data := false, allow_test_apk := false, allow_version_code_downgrade := false, uninstall_and_retry_on_key_mismatch := true, log_errors := true) -> bool

Gradle API#

(project_path: string, task: string, print_output := true) -> bool

JKS generation#

(java_bin_path: string, keystore_path: string, key_alias := DEFAULT_KEYSTORE_ALIAS, key_password := DEFAULT_KEYSTORE_PASSWORD, algorithm := Android_Signing_Key_Signature_Algorithm.EC, key_size := 0, common_name := "Jai Android", organization_name := "Jai", country_code := "US") -> (bool, Android_Signing_Key)

ASN1 identity#

ASN1 tags#

ASN1 values#

ASN1 records#

ASN1 diagnostics#

Byte readers#

($Int_Type: Type, s: *string, $BIG_ENDIAN := false) -> Int_Type
($Int_Type: Type, s: *string, $BIG_ENDIAN := false) -> Int_Type

ASN1 hex#

ADB process#

(command_args: ..string, device_serial := "", log_adb_command_errors := false, print_captured_output := false, loc := #caller_location, try_and_escape_spaces_in_shell_arguments := true) -> (bool, output_string := "", error_string := "", exit_code := 0)

ADB transfer#

(local_source: string, remote_destination: string, only_update_newer_files := false, dry_run := false, compression_algorithm := Adb_Compression_Algorithm.UNSPECIFIED, disable_compression := false) -> bool
(remote_source: string, local_destination := "", preserve_timestamps := true, disable_compression := false, compression_algorithm := Adb_Compression_Algorithm.UNSPECIFIED) -> bool

ADB apps#

(package_name: string) -> bool
(package_name: string) -> (running: bool, success: bool)

SDK discovery#

Config flags#

X509 structure#

Android ZIP wire#

Android ZIP writer#

(w: *Zip_Writer, filepath: string, zip_filename: string, compression := Zip_Compression_Method.NONE, alignment := 0) -> bool

Android APK#

JKS reader#

(data: string, password: string) -> (bool, certificate: string, encrypted_private_key_info: string)

JKS decryption#

(encrypted_private_key_info: string, password: string) -> (bool, private_key_info: string)

APK signing framing#

APK signing digest#

APK signing orchestration#

(unsigned_apk_filepath: string, keystore_filepath: string, keystore_password := "password") -> (bool, string)
(unsigned_apk_filepath: string, private_key_info: string, certificate: string) -> (bool, string)
apk_verify2 overloads
(filepath: string, verbose := false) -> bool

Build API#

Loader API#

Types#

:: struct

Android wire ABI: official androidfw/ResourceTypes.h.

Constants#

:: ASN1_Object_Identifier.{ parts_count = 11, parts = .[1, 3, 6, 1, 4, 1, 42, 2, 17, 1, 1, 0] }