Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/azahar-emu/azahar/llms.txt

Use this file to discover all available pages before exploring further.

The Azahar Android app is built with Android Studio and Gradle. The Gradle build invokes CMake internally to compile the native C++ core, so you do not need to run CMake manually. Most third-party C++ dependencies are included as Git submodules and compiled as part of the native build. The app targets Android 10 (API 29) and above, and produces native libraries for arm64-v8a and x86_64.
Azahar ships two product flavors: Vanilla and Google Play. The Vanilla flavor does not use Google Play file manager APIs, which makes it suitable for sideloading and F-Droid-style distribution. The Google Play flavor is intended for Play Store submissions. For most contributors, you want the Vanilla flavor.
1

Install Android Studio

Download and install Android Studio (any recent stable release). During the initial setup wizard, let Android Studio install its bundled SDK tools. You can also install Android Studio via JetBrains Toolbox if you prefer.Make sure the ANDROID_HOME (or ANDROID_SDK_ROOT) environment variable is set to your SDK directory. Android Studio sets this automatically on most systems, but you can also set it manually:
# Linux / macOS — add to ~/.bashrc or ~/.zshrc
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH"
2

Install the Android NDK

The project requires NDK version 27.3.13750724. Install it through Android Studio’s SDK Manager:
  1. Open Android Studio and go to Settings → Languages & Frameworks → Android SDK.
  2. Click the SDK Tools tab.
  3. Check NDK (Side by side) and click Show Package Details.
  4. Select version 27.3.13750724 and click Apply.
Alternatively, install it from the command line using sdkmanager:
sdkmanager "ndk;27.3.13750724"
The NDK version is pinned in src/android/app/build.gradle.kts:
ndkVersion = "27.3.13750724"
If you see a CMake version error during the build, install CMake 3.25.0 or later via the SDK Manager’s SDK Tools tab as well.
3

Clone the repository with submodules

Clone the Azahar repository and initialize all submodules. The native build requires the C++ submodules (dynarmic, fmt, cryptopp, soundtouch, cubeb, zstd, and others), so do not skip this step:
git clone --recurse-submodules https://github.com/azahar-emu/azahar.git
cd azahar
If you already cloned without --recurse-submodules, initialize the submodules now:
git submodule update --init --recursive
4

Open the Android project in Android Studio

Open the src/android folder (not the repository root) in Android Studio:
  1. Launch Android Studio and choose Open.
  2. Navigate to azahar/src/android and click OK.
  3. Wait for Gradle to sync. Android Studio will download any missing dependencies declared in build.gradle.kts and compile the Kotlin plugin set.
If Gradle sync fails with an NDK or CMake error, verify that the NDK version from the previous step is installed correctly and that your ANDROID_HOME path is set.
5

Build the APK

You can build from inside Android Studio or from the command line.
  1. Select the vanillaRelWithDebInfo build variant in the Build Variants panel (bottom-left). This is the default and is signed with the debug key, so you can install it directly without a release keystore.
  2. Click Build → Make Project (or press Ctrl+F9 / Cmd+F9).
  3. To produce a distributable APK, go to Build → Build Bundle(s) / APK(s) → Build APK(s).
The output APK appears under src/android/app/build/bundle/.
A release build signed for distribution to end users requires a signing keystore. Set the ANDROID_KEYSTORE_FILE, ANDROID_KEYSTORE_PASS, and ANDROID_KEY_ALIAS environment variables before building. Without them, Gradle falls back to the debug signing config, which is fine for local testing but not for distribution.
6

Install the APK on a device

With your Android device connected over USB and USB debugging enabled, install the APK using adb:
adb install src/android/app/build/bundle/app-vanilla-relWithDebInfo.apk
Replace the filename with the actual APK name produced by your chosen build variant. You can list the build output to find the exact filename:
ls src/android/app/build/bundle/
Alternatively, copy the APK to your device and open it with a file manager to trigger installation. Make sure Install from unknown sources is enabled in your device’s security settings if you are sideloading the Vanilla flavor.

Build docs developers (and LLMs) love