{ pkgs, ... }: let buildToolsVersion = "33.0.2"; androidComposition = pkgs.unstable.androidenv.composeAndroidPackages { platformToolsVersion = "34.0.5"; buildToolsVersions = [ buildToolsVersion ]; includeEmulator = false; emulatorVersion = "34.1.9"; platformVersions = [ "29" "30" "33" ]; includeSources = false; includeSystemImages = false; systemImageTypes = [ "google_apis_playstore" ]; abiVersions = [ "armeabi-v7a" "arm64-v8a" ]; cmakeVersions = [ "3.10.2" ]; includeNDK = true; ndkVersions = [ "23.2.8568313" ]; useGoogleAPIs = false; useGoogleTVAddOns = false; includeExtras = [ "extras;google;gcm" ]; }; in { # TODO: try to remove this. nixpkgs.config.allowUnfree = true; local.nix.allowUnfreePackages = [ "android-sdk-cmdline-tools" ]; programs.adb.enable = true; programs.java = { enable = true; package = pkgs.jdk17; }; nixpkgs.config.android_sdk.accept_license = true; environment.variables = rec { ANDROID_SDK_ROOT = "${androidComposition.androidsdk}/libexec/android-sdk"; ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle"; # Use the same buildToolsVersion here # GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${buildToolsVersion}/aapt2"; # JAVA_HOME = pkgs.jdk17.home; }; services.udev.extraRules = '' SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev" ''; }