summaryrefslogtreecommitdiff
path: root/mobile-ns/nix
diff options
context:
space:
mode:
Diffstat (limited to 'mobile-ns/nix')
-rw-r--r--mobile-ns/nix/android-composition.nix14
-rwxr-xr-xmobile-ns/nix/androidsdk-fixup.py24
-rw-r--r--mobile-ns/nix/androidsdk.nix29
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
+ '';
+}