Merge pull request #66747 from erikarvstedt/androidenv-fixes
Androidenv fixes
This commit is contained in:
commit
5be571eea1
|
@ -185,10 +185,9 @@ with import <nixpkgs> {};
|
||||||
|
|
||||||
androidenv.emulateApp {
|
androidenv.emulateApp {
|
||||||
name = "emulate-MyAndroidApp";
|
name = "emulate-MyAndroidApp";
|
||||||
platformVersion = "24";
|
platformVersion = "28";
|
||||||
abiVersion = "armeabi-v7a"; # mips, x86 or x86_64
|
abiVersion = "x86_64"; # armeabi-v7a, mips, x86
|
||||||
systemImageType = "default";
|
systemImageType = "google_apis_playstore";
|
||||||
useGoogleAPIs = false;
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -201,7 +200,7 @@ with import <nixpkgs> {};
|
||||||
androidenv.emulateApp {
|
androidenv.emulateApp {
|
||||||
name = "emulate-MyAndroidApp";
|
name = "emulate-MyAndroidApp";
|
||||||
platformVersion = "24";
|
platformVersion = "24";
|
||||||
abiVersion = "armeabi-v7a"; # mips, x86 or x86_64
|
abiVersion = "armeabi-v7a"; # mips, x86, x86_64
|
||||||
systemImageType = "default";
|
systemImageType = "default";
|
||||||
useGoogleAPIs = false;
|
useGoogleAPIs = false;
|
||||||
app = ./MyApp.apk;
|
app = ./MyApp.apk;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ composeAndroidPackages, stdenv, ant, jdk, gnumake, gawk }:
|
{ composeAndroidPackages, stdenv, lib, ant, jdk, gnumake, gawk }:
|
||||||
|
|
||||||
{ name
|
{ name
|
||||||
, release ? false, keyStore ? null, keyAlias ? null, keyStorePassword ? null, keyAliasPassword ? null
|
, release ? false, keyStore ? null, keyAlias ? null, keyStorePassword ? null, keyAliasPassword ? null
|
||||||
|
@ -16,11 +16,11 @@ let
|
||||||
extraArgs = removeAttrs args ([ "name" ] ++ builtins.attrNames androidSdkFormalArgs);
|
extraArgs = removeAttrs args ([ "name" ] ++ builtins.attrNames androidSdkFormalArgs);
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation ({
|
stdenv.mkDerivation ({
|
||||||
name = stdenv.lib.replaceChars [" "] [""] name; # Android APKs may contain white spaces in their names, but Nix store paths cannot
|
name = lib.replaceChars [" "] [""] name; # Android APKs may contain white spaces in their names, but Nix store paths cannot
|
||||||
ANDROID_HOME = "${androidsdk}/libexec/android-sdk";
|
ANDROID_HOME = "${androidsdk}/libexec/android-sdk";
|
||||||
buildInputs = [ jdk ant ];
|
buildInputs = [ jdk ant ];
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
${stdenv.lib.optionalString release ''
|
${lib.optionalString release ''
|
||||||
# Provide key singing attributes
|
# Provide key singing attributes
|
||||||
( echo "key.store=${keyStore}"
|
( echo "key.store=${keyStore}"
|
||||||
echo "key.alias=${keyAlias}"
|
echo "key.alias=${keyAlias}"
|
||||||
|
@ -31,7 +31,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
export ANDROID_SDK_HOME=`pwd` # Key files cannot be stored in the user's home directory. This overrides it.
|
export ANDROID_SDK_HOME=`pwd` # Key files cannot be stored in the user's home directory. This overrides it.
|
||||||
|
|
||||||
${stdenv.lib.optionalString (args ? includeNDK && args.includeNDK) ''
|
${lib.optionalString (args ? includeNDK && args.includeNDK) ''
|
||||||
export GNUMAKE=${gnumake}/bin/make
|
export GNUMAKE=${gnumake}/bin/make
|
||||||
export NDK_HOST_AWK=${gawk}/bin/gawk
|
export NDK_HOST_AWK=${gawk}/bin/gawk
|
||||||
${androidsdk}/libexec/android-sdk/ndk-bundle/ndk-build
|
${androidsdk}/libexec/android-sdk/ndk-bundle/ndk-build
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs) stdenv fetchurl makeWrapper unzip;
|
inherit (pkgs) stdenv lib fetchurl makeWrapper unzip;
|
||||||
|
|
||||||
# Determine the Android os identifier from Nix's system identifier
|
# Determine the Android os identifier from Nix's system identifier
|
||||||
os = if stdenv.system == "x86_64-linux" then "linux"
|
os = if stdenv.system == "x86_64-linux" then "linux"
|
||||||
|
@ -59,12 +59,12 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
system-images-packages =
|
system-images-packages =
|
||||||
stdenv.lib.recursiveUpdate
|
lib.recursiveUpdate
|
||||||
system-images-packages-android
|
system-images-packages-android
|
||||||
(stdenv.lib.recursiveUpdate system-images-packages-android-tv
|
(lib.recursiveUpdate system-images-packages-android-tv
|
||||||
(stdenv.lib.recursiveUpdate system-images-packages-android-wear
|
(lib.recursiveUpdate system-images-packages-android-wear
|
||||||
(stdenv.lib.recursiveUpdate system-images-packages-android-wear-cn
|
(lib.recursiveUpdate system-images-packages-android-wear-cn
|
||||||
(stdenv.lib.recursiveUpdate system-images-packages-google_apis system-images-packages-google_apis_playstore))));
|
(lib.recursiveUpdate system-images-packages-google_apis system-images-packages-google_apis_playstore))));
|
||||||
|
|
||||||
# Generated addons
|
# Generated addons
|
||||||
addons = import ./generated/addons.nix {
|
addons = import ./generated/addons.nix {
|
||||||
|
@ -77,15 +77,13 @@ rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
platform-tools = import ./platform-tools.nix {
|
platform-tools = import ./platform-tools.nix {
|
||||||
inherit deployAndroidPackage os autoPatchelfHook pkgs;
|
inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
|
||||||
inherit (stdenv) lib;
|
|
||||||
package = packages.platform-tools."${platformToolsVersion}";
|
package = packages.platform-tools."${platformToolsVersion}";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-tools = map (version:
|
build-tools = map (version:
|
||||||
import ./build-tools.nix {
|
import ./build-tools.nix {
|
||||||
inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686;
|
inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686 lib;
|
||||||
inherit (stdenv) lib;
|
|
||||||
package = packages.build-tools."${version}";
|
package = packages.build-tools."${version}";
|
||||||
}
|
}
|
||||||
) buildToolsVersions;
|
) buildToolsVersions;
|
||||||
|
@ -96,8 +94,7 @@ rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
emulator = import ./emulator.nix {
|
emulator = import ./emulator.nix {
|
||||||
inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686;
|
inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686 lib;
|
||||||
inherit (stdenv) lib;
|
|
||||||
package = packages.emulator."${emulatorVersion}"."${os}";
|
package = packages.emulator."${emulatorVersion}"."${os}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -115,12 +112,18 @@ rec {
|
||||||
}
|
}
|
||||||
) platformVersions;
|
) platformVersions;
|
||||||
|
|
||||||
system-images = stdenv.lib.flatten (map (apiVersion:
|
system-images = lib.flatten (map (apiVersion:
|
||||||
map (type:
|
map (type:
|
||||||
map (abiVersion:
|
map (abiVersion:
|
||||||
deployAndroidPackage {
|
deployAndroidPackage {
|
||||||
inherit os;
|
inherit os;
|
||||||
package = system-images-packages.${apiVersion}.${type}.${abiVersion};
|
package = system-images-packages.${apiVersion}.${type}.${abiVersion};
|
||||||
|
# Patch 'google_apis' system images so they're recognized by the sdk.
|
||||||
|
# Without this, `android list targets` shows 'Tag/ABIs : no ABIs' instead
|
||||||
|
# of 'Tag/ABIs : google_apis*/*' and the emulator fails with an ABI-related error.
|
||||||
|
patchInstructions = lib.optionalString (lib.hasPrefix "google_apis" type) ''
|
||||||
|
sed -i '/^Addon.Vendor/d' source.properties
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
) abiVersions
|
) abiVersions
|
||||||
) systemImageTypes
|
) systemImageTypes
|
||||||
|
@ -128,23 +131,20 @@ rec {
|
||||||
|
|
||||||
lldb = map (version:
|
lldb = map (version:
|
||||||
import ./lldb.nix {
|
import ./lldb.nix {
|
||||||
inherit deployAndroidPackage os autoPatchelfHook pkgs;
|
inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
|
||||||
inherit (stdenv) lib;
|
|
||||||
package = packages.lldb."${version}";
|
package = packages.lldb."${version}";
|
||||||
}
|
}
|
||||||
) lldbVersions;
|
) lldbVersions;
|
||||||
|
|
||||||
cmake = map (version:
|
cmake = map (version:
|
||||||
import ./cmake.nix {
|
import ./cmake.nix {
|
||||||
inherit deployAndroidPackage os autoPatchelfHook pkgs;
|
inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
|
||||||
inherit (stdenv) lib;
|
|
||||||
package = packages.cmake."${version}";
|
package = packages.cmake."${version}";
|
||||||
}
|
}
|
||||||
) cmakeVersions;
|
) cmakeVersions;
|
||||||
|
|
||||||
ndk-bundle = import ./ndk-bundle {
|
ndk-bundle = import ./ndk-bundle {
|
||||||
inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs platform-tools;
|
inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs lib platform-tools;
|
||||||
inherit (stdenv) lib;
|
|
||||||
package = packages.ndk-bundle."${ndkVersion}";
|
package = packages.ndk-bundle."${ndkVersion}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -164,24 +164,24 @@ rec {
|
||||||
|
|
||||||
# Function that automatically links all plugins for which multiple versions can coexist
|
# Function that automatically links all plugins for which multiple versions can coexist
|
||||||
linkPlugins = {name, plugins}:
|
linkPlugins = {name, plugins}:
|
||||||
stdenv.lib.optionalString (plugins != []) ''
|
lib.optionalString (plugins != []) ''
|
||||||
mkdir -p ${name}
|
mkdir -p ${name}
|
||||||
${stdenv.lib.concatMapStrings (plugin: ''
|
${lib.concatMapStrings (plugin: ''
|
||||||
ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
|
ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
|
||||||
'') plugins}
|
'') plugins}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Function that automatically links a plugin for which only one version exists
|
# Function that automatically links a plugin for which only one version exists
|
||||||
linkPlugin = {name, plugin, check ? true}:
|
linkPlugin = {name, plugin, check ? true}:
|
||||||
stdenv.lib.optionalString check ''
|
lib.optionalString check ''
|
||||||
ln -s ${plugin}/libexec/android-sdk/* ${name}
|
ln -s ${plugin}/libexec/android-sdk/* ${name}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Links all plugins related to a requested platform
|
# Links all plugins related to a requested platform
|
||||||
linkPlatformPlugins = {name, plugins, check}:
|
linkPlatformPlugins = {name, plugins, check}:
|
||||||
stdenv.lib.optionalString check ''
|
lib.optionalString check ''
|
||||||
mkdir -p ${name}
|
mkdir -p ${name}
|
||||||
${stdenv.lib.concatMapStrings (plugin: ''
|
${lib.concatMapStrings (plugin: ''
|
||||||
ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
|
ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
|
||||||
'') plugins}
|
'') plugins}
|
||||||
''; # */
|
''; # */
|
||||||
|
@ -194,8 +194,7 @@ rec {
|
||||||
https://developer.android.com/studio/terms
|
https://developer.android.com/studio/terms
|
||||||
by setting nixpkgs config option 'android_sdk.accept_license = true;'
|
by setting nixpkgs config option 'android_sdk.accept_license = true;'
|
||||||
'' else import ./tools.nix {
|
'' else import ./tools.nix {
|
||||||
inherit deployAndroidPackage requireFile packages toolsVersion autoPatchelfHook makeWrapper os pkgs pkgs_i686;
|
inherit deployAndroidPackage requireFile packages toolsVersion autoPatchelfHook makeWrapper os pkgs pkgs_i686 lib;
|
||||||
inherit (stdenv) lib;
|
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Symlink all requested plugins
|
# Symlink all requested plugins
|
||||||
|
@ -210,9 +209,9 @@ rec {
|
||||||
${linkPlugins { name = "cmake"; plugins = cmake; }}
|
${linkPlugins { name = "cmake"; plugins = cmake; }}
|
||||||
${linkPlugin { name = "ndk-bundle"; plugin = ndk-bundle; check = includeNDK; }}
|
${linkPlugin { name = "ndk-bundle"; plugin = ndk-bundle; check = includeNDK; }}
|
||||||
|
|
||||||
${stdenv.lib.optionalString includeSystemImages ''
|
${lib.optionalString includeSystemImages ''
|
||||||
mkdir -p system-images
|
mkdir -p system-images
|
||||||
${stdenv.lib.concatMapStrings (system-image: ''
|
${lib.concatMapStrings (system-image: ''
|
||||||
apiVersion=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*))
|
apiVersion=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*))
|
||||||
type=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*/*))
|
type=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*/*))
|
||||||
mkdir -p system-images/$apiVersion/$type
|
mkdir -p system-images/$apiVersion/$type
|
||||||
|
@ -224,7 +223,7 @@ rec {
|
||||||
${linkPlatformPlugins { name = "add-ons"; plugins = google-apis; check = useGoogleTVAddOns; }}
|
${linkPlatformPlugins { name = "add-ons"; plugins = google-apis; check = useGoogleTVAddOns; }}
|
||||||
|
|
||||||
# Link extras
|
# Link extras
|
||||||
${stdenv.lib.concatMapStrings (identifier:
|
${lib.concatMapStrings (identifier:
|
||||||
let
|
let
|
||||||
path = addons.extras."${identifier}".path;
|
path = addons.extras."${identifier}".path;
|
||||||
addon = deployAndroidPackage {
|
addon = deployAndroidPackage {
|
||||||
|
|
|
@ -10,12 +10,12 @@ rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
buildApp = import ./build-app.nix {
|
buildApp = import ./build-app.nix {
|
||||||
inherit (pkgs) stdenv jdk ant gnumake gawk;
|
inherit (pkgs) stdenv lib jdk ant gnumake gawk;
|
||||||
inherit composeAndroidPackages;
|
inherit composeAndroidPackages;
|
||||||
};
|
};
|
||||||
|
|
||||||
emulateApp = import ./emulate-app.nix {
|
emulateApp = import ./emulate-app.nix {
|
||||||
inherit (pkgs) stdenv;
|
inherit (pkgs) stdenv lib;
|
||||||
inherit composeAndroidPackages;
|
inherit composeAndroidPackages;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
{ composeAndroidPackages, stdenv }:
|
{ composeAndroidPackages, stdenv, lib }:
|
||||||
{ name, app ? null
|
{ name, app ? null
|
||||||
, platformVersion ? "16", abiVersion ? "armeabi-v7a", systemImageType ? "default", useGoogleAPIs ? false
|
, platformVersion ? "16", abiVersion ? "armeabi-v7a", systemImageType ? "default"
|
||||||
, enableGPU ? false, extraAVDFiles ? []
|
, enableGPU ? false, extraAVDFiles ? []
|
||||||
, package ? null, activity ? null
|
, package ? null, activity ? null
|
||||||
, avdHomeDir ? null
|
, avdHomeDir ? null, sdkExtraArgs ? {}
|
||||||
}@args:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
androidSdkArgNames = builtins.attrNames (builtins.functionArgs composeAndroidPackages);
|
sdkArgs = {
|
||||||
|
|
||||||
# Extract the parameters meant for the Android SDK
|
|
||||||
androidParams = {
|
|
||||||
platformVersions = [ platformVersion ];
|
platformVersions = [ platformVersion ];
|
||||||
includeEmulator = true;
|
includeEmulator = true;
|
||||||
includeSystemImages = true;
|
includeSystemImages = true;
|
||||||
systemImageTypes = [ systemImageType ];
|
systemImageTypes = [ systemImageType ];
|
||||||
abiVersions = [ abiVersion ];
|
abiVersions = [ abiVersion ];
|
||||||
};
|
} // sdkExtraArgs;
|
||||||
|
|
||||||
androidsdkComposition = (composeAndroidPackages androidParams).androidsdk;
|
sdk = (composeAndroidPackages sdkArgs).androidsdk;
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
inherit name;
|
inherit name;
|
||||||
|
@ -44,7 +41,7 @@ stdenv.mkDerivation {
|
||||||
''}
|
''}
|
||||||
|
|
||||||
# We need to specify the location of the Android SDK root folder
|
# We need to specify the location of the Android SDK root folder
|
||||||
export ANDROID_SDK_ROOT=${androidsdkComposition}/libexec/android-sdk
|
export ANDROID_SDK_ROOT=${sdk}/libexec/android-sdk
|
||||||
|
|
||||||
# We have to look for a free TCP port
|
# We have to look for a free TCP port
|
||||||
|
|
||||||
|
@ -52,7 +49,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
for i in $(seq 5554 2 5584)
|
for i in $(seq 5554 2 5584)
|
||||||
do
|
do
|
||||||
if [ -z "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb devices | grep emulator-$i)" ]
|
if [ -z "$(${sdk}/libexec/android-sdk/platform-tools/adb devices | grep emulator-$i)" ]
|
||||||
then
|
then
|
||||||
port=$i
|
port=$i
|
||||||
break
|
break
|
||||||
|
@ -70,41 +67,41 @@ stdenv.mkDerivation {
|
||||||
export ANDROID_SERIAL="emulator-$port"
|
export ANDROID_SERIAL="emulator-$port"
|
||||||
|
|
||||||
# Create a virtual android device for testing if it does not exists
|
# Create a virtual android device for testing if it does not exists
|
||||||
${androidsdkComposition}/libexec/android-sdk/tools/android list targets
|
${sdk}/libexec/android-sdk/tools/android list targets
|
||||||
|
|
||||||
if [ "$(${androidsdkComposition}/libexec/android-sdk/tools/android list avd | grep 'Name: device')" = "" ]
|
if [ "$(${sdk}/libexec/android-sdk/tools/android list avd | grep 'Name: device')" = "" ]
|
||||||
then
|
then
|
||||||
# Create a virtual android device
|
# Create a virtual android device
|
||||||
yes "" | ${androidsdkComposition}/libexec/android-sdk/tools/android create avd -n device -t 1 --abi ${systemImageType}/${abiVersion} $NIX_ANDROID_AVD_FLAGS
|
yes "" | ${sdk}/libexec/android-sdk/tools/android create avd -n device -t 1 --abi ${systemImageType}/${abiVersion} $NIX_ANDROID_AVD_FLAGS
|
||||||
|
|
||||||
${stdenv.lib.optionalString enableGPU ''
|
${lib.optionalString enableGPU ''
|
||||||
# Enable GPU acceleration
|
# Enable GPU acceleration
|
||||||
echo "hw.gpu.enabled=yes" >> $ANDROID_SDK_HOME/.android/avd/device.avd/config.ini
|
echo "hw.gpu.enabled=yes" >> $ANDROID_SDK_HOME/.android/avd/device.avd/config.ini
|
||||||
''}
|
''}
|
||||||
|
|
||||||
${stdenv.lib.concatMapStrings (extraAVDFile: ''
|
${lib.concatMapStrings (extraAVDFile: ''
|
||||||
ln -sf ${extraAVDFile} $ANDROID_SDK_HOME/.android/avd/device.avd
|
ln -sf ${extraAVDFile} $ANDROID_SDK_HOME/.android/avd/device.avd
|
||||||
'') extraAVDFiles}
|
'') extraAVDFiles}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Launch the emulator
|
# Launch the emulator
|
||||||
${androidsdkComposition}/libexec/android-sdk/emulator/emulator -avd device -no-boot-anim -port $port $NIX_ANDROID_EMULATOR_FLAGS &
|
${sdk}/libexec/android-sdk/emulator/emulator -avd device -no-boot-anim -port $port $NIX_ANDROID_EMULATOR_FLAGS &
|
||||||
|
|
||||||
# Wait until the device has completely booted
|
# Wait until the device has completely booted
|
||||||
echo "Waiting until the emulator has booted the device and the package manager is ready..." >&2
|
echo "Waiting until the emulator has booted the device and the package manager is ready..." >&2
|
||||||
|
|
||||||
${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port wait-for-device
|
${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port wait-for-device
|
||||||
|
|
||||||
echo "Device state has been reached" >&2
|
echo "Device state has been reached" >&2
|
||||||
|
|
||||||
while [ -z "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop dev.bootcomplete | grep 1)" ]
|
while [ -z "$(${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop dev.bootcomplete | grep 1)" ]
|
||||||
do
|
do
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "dev.bootcomplete property is 1" >&2
|
echo "dev.bootcomplete property is 1" >&2
|
||||||
|
|
||||||
#while [ -z "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop sys.boot_completed | grep 1)" ]
|
#while [ -z "$(${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop sys.boot_completed | grep 1)" ]
|
||||||
#do
|
#do
|
||||||
#sleep 5
|
#sleep 5
|
||||||
#done
|
#done
|
||||||
|
@ -113,10 +110,10 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
echo "ready" >&2
|
echo "ready" >&2
|
||||||
|
|
||||||
${stdenv.lib.optionalString (app != null) ''
|
${lib.optionalString (app != null) ''
|
||||||
# Install the App through the debugger, if it has not been installed yet
|
# Install the App through the debugger, if it has not been installed yet
|
||||||
|
|
||||||
if [ -z "${package}" ] || [ "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell pm list packages | grep package:${package})" = "" ]
|
if [ -z "${package}" ] || [ "$(${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell pm list packages | grep package:${package})" = "" ]
|
||||||
then
|
then
|
||||||
if [ -d "${app}" ]
|
if [ -d "${app}" ]
|
||||||
then
|
then
|
||||||
|
@ -125,12 +122,12 @@ stdenv.mkDerivation {
|
||||||
appPath="${app}"
|
appPath="${app}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port install "$appPath"
|
${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port install "$appPath"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Start the application
|
# Start the application
|
||||||
${stdenv.lib.optionalString (package != null && activity != null) ''
|
${lib.optionalString (package != null && activity != null) ''
|
||||||
${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell am start -a android.intent.action.MAIN -n ${package}/${activity}
|
${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell am start -a android.intent.action.MAIN -n ${package}/${activity}
|
||||||
''}
|
''}
|
||||||
''}
|
''}
|
||||||
EOF
|
EOF
|
||||||
|
|
Loading…
Reference in a new issue