Files

2.3 KiB

Building DiPlay

Requirements: JDK 25, Android SDK 37, NDK 28.2.13676358 and the included Gradle wrapper.

Source and CI builds

./gradlew :shared:testDebugUnitTest :common:testDebugUnitTest :mobile:lintDebug :mobile:assembleDebug

The resulting source-only APK contains no accessory identity. Standalone CarPlay requires runtime authentication provisioning. Tests generate synthetic identities at runtime; no test private-key files are tracked.

Local release packaging

Provide an external asset directory using DIPLAY_AUTH_ASSETS_DIR. The directory must contain exactly the intended runtime files under offline-mfi/identity.pk8 and offline-mfi/certificate.p7b. Neither file belongs in Git. The build permits those two files only when this explicit input is set and rejects unexpected credential containers elsewhere in APK assets.

Set ANDROID_KEYSTORE_PATH, ANDROID_KEYSTORE_PASSWORD, ANDROID_KEY_ALIAS, and ANDROID_KEY_PASSWORD locally for your Android signing key. Never commit these values or the keystore. Different signing keys cannot update an existing project-signed installation.

./gradlew :shared:testDebugUnitTest :common:testDebugUnitTest :mobile:lintRelease :mobile:assembleRelease

Output: mobile/build/outputs/apk/release/mobile-release.apk. The release APK deliberately contains the experimental identity described in the notices; it is extractable by recipients. The separate Android signing key is not included. The retired build-beta.py helper is not used; this Gradle workflow uses explicit environment inputs.

The public release source archive corresponds to the tagged source and excludes runtime identities, signing keys, local configuration and build output.

Standalone car-test APK

Use :mobile:assembleStandaloneDebug for a test APK that must connect to an iPhone:

DIPLAY_AUTH_ASSETS_DIR=/absolute/path/to/runtime-assets ./gradlew :mobile:assembleStandaloneDebug

This task refuses missing or empty runtime inputs. assembleDebug remains an identity-free source/CI build when the explicit asset input is absent; do not install that output as a standalone car-test package. Before delivery, verify both assets/offline-mfi/identity.pk8 and assets/offline-mfi/certificate.p7b in the APK against the selected local inputs. Update the existing test app without uninstalling it to preserve its settings.