diff options
Diffstat (limited to 'mobile-ns/nix')
-rw-r--r-- | mobile-ns/nix/android-composition.nix | 14 | ||||
-rwxr-xr-x | mobile-ns/nix/androidsdk-fixup.py | 24 | ||||
-rw-r--r-- | mobile-ns/nix/androidsdk.nix | 29 |
3 files changed, 67 insertions, 0 deletions
diff --git a/mobile-ns/nix/android-composition.nix b/mobile-ns/nix/android-composition.nix new file mode 100644 index 0000000..1f8e5d8 --- /dev/null +++ b/mobile-ns/nix/android-composition.nix @@ -0,0 +1,14 @@ +with (import <nixpkgs> { + config.allowUnfree = true; + config.android_sdk.accept_license = true; +}); + +androidenv.composeAndroidPackages { + platformVersions = ["23" "33"]; + buildToolsVersions = ["33.0.2"]; + + includeEmulator = true; + includeSystemImages = true; + # systemImageTypes = ["google_apis_playstore"]; + abiVersions = ["x86_64"]; +} diff --git a/mobile-ns/nix/androidsdk-fixup.py b/mobile-ns/nix/androidsdk-fixup.py new file mode 100755 index 0000000..ab419e6 --- /dev/null +++ b/mobile-ns/nix/androidsdk-fixup.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +import sys, os, shutil + +ANDROIDSDK_PATH = sys.argv[1] +BUILD_TOOLS_PATH = f'{ANDROIDSDK_PATH}/build-tools' +PLATFORMS_PATH = f'{ANDROIDSDK_PATH}/platforms' + +BUILD_TOOLS = [os.path.join(BUILD_TOOLS_PATH, filename) for filename in os.listdir(BUILD_TOOLS_PATH)] +PLATFORMS = [os.path.join(PLATFORMS_PATH, filename) for filename in os.listdir(PLATFORMS_PATH)] + +for build_tool in BUILD_TOOLS: + if os.path.islink(build_tool): + print(f'build-tool "{os.path.basename(build_tool)}" is a symlink. Copying...') + link_src = os.readlink(build_tool) + os.unlink(build_tool) + shutil.copytree(link_src, build_tool) + +for platform in PLATFORMS: + if os.path.islink(platform): + print(f'platform "{os.path.basename(platform)}" is a symlink. Copying...') + link_src = os.readlink(platform) + os.unlink(platform) + shutil.copytree(link_src, platform) diff --git a/mobile-ns/nix/androidsdk.nix b/mobile-ns/nix/androidsdk.nix new file mode 100644 index 0000000..cf1ea04 --- /dev/null +++ b/mobile-ns/nix/androidsdk.nix @@ -0,0 +1,29 @@ +with (import <nixpkgs> {}); +let + android-composition = import ./android-composition.nix; +in +stdenv.mkDerivation { + name = "androidsdk"; + + buildInputs = [ + python3Full + ]; + + src = "${android-composition.androidsdk}"; + + dontUnpack = true; + + buildPhase = '' + buildDir=$PWD/android-composition + mkdir $buildDir + + cp -r $src/* $buildDir + + chmod -R +w "$buildDir/libexec/android-sdk" + python ${./androidsdk-fixup.py} "$buildDir/libexec/android-sdk" + ''; + + installPhase = '' + cp -r $buildDir $out + ''; +} |