1{deployAndroidPackage, lib, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgsi686Linux, stdenv, cmdLineToolsVersion, postInstall}:
2
3deployAndroidPackage {
4 name = "androidsdk";
5 inherit package os;
6 nativeBuildInputs = [ makeWrapper ]
7 ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
8
9 patchInstructions = ''
10 ${lib.optionalString (os == "linux") ''
11 # Auto patch all binaries
12 autoPatchelf .
13 ''}
14
15 # Strip double dots from the root path
16 export ANDROID_SDK_ROOT="$out/libexec/android-sdk"
17
18 # Wrap all scripts that require JAVA_HOME
19 find $ANDROID_SDK_ROOT/cmdline-tools/${cmdLineToolsVersion}/bin -maxdepth 1 -type f -executable | while read program; do
20 if grep -q "JAVA_HOME" $program; then
21 wrapProgram $program --prefix PATH : ${pkgs.jdk11}/bin \
22 --prefix ANDROID_SDK_ROOT : $ANDROID_SDK_ROOT
23 fi
24 done
25
26 # Wrap sdkmanager script
27 wrapProgram $ANDROID_SDK_ROOT/cmdline-tools/${cmdLineToolsVersion}/bin/sdkmanager \
28 --prefix PATH : ${lib.makeBinPath [ pkgs.jdk11 ]} \
29 --add-flags "--sdk_root=$ANDROID_SDK_ROOT"
30
31 # Patch all script shebangs
32 patchShebangs $ANDROID_SDK_ROOT/cmdline-tools/${cmdLineToolsVersion}/bin
33
34 cd $ANDROID_SDK_ROOT
35 ${postInstall}
36 '';
37
38 meta.license = lib.licenses.unfree;
39}