{ description = "Nix dev shell for building matrix-android from the CLI"; inputs = { flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; }; outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; config.allowUnfree = true; config.android_sdk.accept_license = true; }; androidComposition = pkgs.androidenv.composeAndroidPackages { platformVersions = [ "31" "35" ]; buildToolsVersions = [ "30.0.2" "34.0.0" "35.0.0" ]; includeEmulator = false; includeNDK = true; includeSources = false; includeSystemImages = false; }; androidSdk = androidComposition.androidsdk; androidSdkRoot = "${androidSdk}/libexec/android-sdk"; in { devShells.default = pkgs.mkShell { packages = [ pkgs.gradle pkgs.jdk17 androidSdk ]; ANDROID_HOME = androidSdkRoot; ANDROID_SDK_ROOT = androidSdkRoot; JAVA_HOME = pkgs.jdk17.home; shellHook = '' export ANDROID_USER_HOME="$PWD/.android" export GRADLE_USER_HOME="$PWD/.gradle" export PATH="$ANDROID_SDK_ROOT/platform-tools:$PATH" export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=$ANDROID_SDK_ROOT/build-tools/35.0.0/aapt2" cat > local.properties <