Aurora KInterop
Kotlin Multiplatform libraries provide convenient functionality for interacting with Aurora OS.
Libs
- Battery Info.
- Camera Info.
- Connectivity Info.
- Device Info.
- Keyboard Maliit.
- Local Notification.
- Location Info.
- Package Info.
- Path Info.
- Sensors Info.
- Share Data.
- Shared Preferences.
- Uri Launcher.
- Vibration.
- WakeLock.
- Window.
Building the Project
The project consists of two independent build layers. Each layer handles its specific task, and there is a strict dependency between them: it is impossible to build the upper layer without first building the lower one.
┌─────────────────────────────────────────────────────────────┐
│ Level 2: KInterop (Kotlin Multiplatform) │
│ ───────────────────────────────────────── │
│ • Kotlin bindings over native libraries │
│ • Module publication to Maven │
│ • Works on any platform │
└────────────────────────────┬────────────────────────────────┘
▼
┌────────────────────────────┴────────────────────────────────┐
│ Level 1: CInterop (Rust backend) │
│ ───────────────────────────────────────── │
│ • Native libraries (Rust + cross-compilation) │
│ • Included as a git submodule │
│ • Works ONLY on Linux │
└─────────────────────────────────────────────────────────────┘
Level 1: Aurora CInterop
The Aurora CInterop project acts as the project's backend: Rust libraries that provide interaction with the Aurora OS API.
It is included in the main project as a git submodule (submodules/aurora-cinterop).
The build output is saved in the submodules/aurora-cinterop/BUILDS/ directory,
which is included in .gitignore (as it contains platform-specific artifacts).
A detailed description of the build process, dependencies, and tools used can be found in the submodule's README.
Level 2: Aurora KInterop
The Aurora KInterop project is a Kotlin Multiplatform wrapper over the native libraries. It uses cinterop generation based on headers from the first level and provides a type-safe Kotlin API for application developers.
How to Build
On Linux — both layers are built automatically with a single command:
./gradlew publishToMavenLocalAll
Gradle will automatically execute the tasks in the correct order:
updateAuroraCinterop → buildAuroraCinterop → cinterop* → publishToMavenLocal.
⚠ ️ If you are using macOS or Windows, you can obtain the Aurora CInterop artifacts by building them on Linux and placing them insubmodules/aurora-cinterop/BUILDS.Alternatively, you can use pre-built Kotlin Multiplatform libraries with Aurora OS support: Aurora Maven
Testing
Run the complete testing pipeline for all modules:
./gradlew runTestsPipeline