initial commit
This commit is contained in:
commit
2f980d457d
|
@ -0,0 +1 @@
|
|||
.idea
|
|
@ -0,0 +1,52 @@
|
|||
FROM ubuntu:18.04
|
||||
|
||||
ENV ANDROID_SDK_HOME /opt/android-sdk-linux
|
||||
ENV ANDROID_SDK_ROOT /opt/android-sdk-linux
|
||||
ENV ANDROID_HOME /opt/android-sdk-linux
|
||||
ENV ANDROID_SDK /opt/android-sdk-linux
|
||||
|
||||
ENV PATH "${PATH}:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/cmdline-tools/tools/bin:${ANDROID_HOME}/emulator:${ANDROID_HOME}/bin"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Install required tools
|
||||
# Dependencies to execute Android builds
|
||||
|
||||
RUN dpkg --add-architecture i386 && apt-get update -yqq && apt-get install -y \
|
||||
curl \
|
||||
expect \
|
||||
git \
|
||||
libc6:i386 \
|
||||
libgcc1:i386 \
|
||||
libncurses5:i386 \
|
||||
libstdc++6:i386 \
|
||||
zlib1g:i386 \
|
||||
openjdk-8-jdk \
|
||||
wget \
|
||||
unzip \
|
||||
vim \
|
||||
&& apt-get clean
|
||||
|
||||
RUN groupadd android && useradd -d /opt/android-sdk-linux -g android android
|
||||
|
||||
COPY tools /opt/tools
|
||||
|
||||
COPY licenses /opt/licenses
|
||||
|
||||
WORKDIR /opt/android-sdk-linux
|
||||
|
||||
RUN /opt/tools/entrypoint.sh built-in
|
||||
|
||||
RUN /opt/android-sdk-linux/cmdline-tools/tools/bin/sdkmanager "cmdline-tools;latest"
|
||||
|
||||
RUN /opt/android-sdk-linux/cmdline-tools/tools/bin/sdkmanager "build-tools;30.0.2"
|
||||
|
||||
RUN /opt/android-sdk-linux/cmdline-tools/tools/bin/sdkmanager "platforms;android-30"
|
||||
|
||||
RUN /opt/android-sdk-linux/cmdline-tools/tools/bin/sdkmanager "platform-tools"
|
||||
|
||||
RUN /opt/android-sdk-linux/cmdline-tools/tools/bin/sdkmanager "emulator"
|
||||
|
||||
RUN /opt/android-sdk-linux/cmdline-tools/tools/bin/sdkmanager "system-images;android-30;google_apis;x86_64"
|
||||
|
||||
CMD /opt/tools/entrypoint.sh built-in
|
|
@ -0,0 +1,45 @@
|
|||
# Docker for Android SDK 30
|
||||
|
||||
Docker for Android SDK 30 with preinstalled build tools and emulator image
|
||||
|
||||
> Edit from [mindrunner/docker-android-sdk](https://github.com/mindrunner/docker-android-sdk)
|
||||
|
||||
**Installed Packages**
|
||||
```bash
|
||||
# sdkmanager --list
|
||||
Path | Version | Description | Location
|
||||
------- | ------- | ------- | -------
|
||||
build-tools;30.0.2 | 30.0.2 | Android SDK Build-Tools 30.0.2 | build-tools/30.0.2/
|
||||
cmdline-tools;latest | 2.1 | Android SDK Command-line Tools (latest) | cmdline-tools/latest/
|
||||
emulator | 30.1.5 | Android Emulator | emulator/
|
||||
patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/
|
||||
platform-tools | 30.0.4 | Android SDK Platform-Tools | platform-tools/
|
||||
platforms;android-30 | 3 | Android SDK Platform 30 | platforms/android-30/
|
||||
system-images;android-30;google_apis;x86_64 | 8 | Google APIs Intel x86 Atom_64 System Image | system-images/android-30/google_apis/x86_64/
|
||||
```
|
||||
|
||||
**Usage**
|
||||
|
||||
- Interactive way
|
||||
```bash
|
||||
$ docker run -it --rm --privileged androidsdk/android-30:latest bash
|
||||
# check installed packages
|
||||
$ sdkmanager --list
|
||||
# create and run emulator
|
||||
$ avdmanager create avd -n first_avd --abi google_apis/x86_64 -k "system-images;android-30;google_apis;x86_64"
|
||||
$ emulator -avd first_avd -no-window -no-audio &
|
||||
$ adb devices
|
||||
# You can also run other Android platform tools, which are all added to the PATH environment variable
|
||||
```
|
||||
|
||||
To connect the emulator using `adb` on the docker host machine, start the container with `--net=host`.
|
||||
You could also use [`scrcpy`](https://github.com/Genymobile/scrcpy) to do a screencast of the emulator.
|
||||
|
||||
- Non-interactive way
|
||||
```bash
|
||||
# check installed packages
|
||||
$ docker run -it --rm androidsdk/android-30:latest sdkmanager --list
|
||||
# list existing emulators
|
||||
$ docker run -it --rm androidsdk/android-30:latest avdmanager list avd
|
||||
# You can also run other Android platform tools, which are all added to the PATH environment variable
|
||||
```
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
8933bad161af4178b1185d1a37fbf41ea5269c55
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
84831b9409646a918e30573bab4c9c91346d8abd
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/expect -f
|
||||
|
||||
set timeout 1800
|
||||
set cmd [lindex $argv 0]
|
||||
set licenses [lindex $argv 1]
|
||||
|
||||
spawn {*}$cmd
|
||||
expect {
|
||||
"(y/N)" {
|
||||
exp_send "y\r"
|
||||
exp_continue
|
||||
}
|
||||
eof
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
export ANDROID_HOME=/opt/android-sdk-linux
|
||||
export ANDROID_SDK_ROOT=${ANDROID_HOME}
|
||||
export ANDROID_SDK_HOME=${ANDROID_HOME}
|
||||
export ANDROID_SDK=${ANDROID_HOME}
|
||||
|
||||
export PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator:${ANDROID_HOME}/bin:
|
||||
|
||||
function print_header() {
|
||||
figlet SBB CFF FFS
|
||||
figlet welcome to
|
||||
figlet andep
|
||||
echo ''
|
||||
echo ''
|
||||
echo ''
|
||||
}
|
||||
|
||||
function help() {
|
||||
figlet "usage:"
|
||||
echo "update_sdk: Updates the SDK"
|
||||
echo "andep: Installs one or more android Packets."
|
||||
echo " -Example: anddep \"platforms;android-26\""
|
||||
echo "help: Shows this help"
|
||||
echo ''
|
||||
echo ''
|
||||
echo ''
|
||||
}
|
||||
|
||||
function update_sdk() {
|
||||
android-accept-licenses.sh "sdkmanager --update"
|
||||
}
|
||||
|
||||
function andep() {
|
||||
if [ -z ${1} ]; then
|
||||
help
|
||||
return 1
|
||||
fi
|
||||
android-accept-licenses.sh "sdkmanager ${1}"
|
||||
}
|
||||
|
||||
export -f help
|
||||
export -f update_sdk
|
||||
export -f andep
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/bash
|
||||
|
||||
mkdir -p /opt/android-sdk-linux/bin/
|
||||
cp /opt/tools/android-env.sh /opt/android-sdk-linux/bin/
|
||||
source /opt/android-sdk-linux/bin/android-env.sh
|
||||
|
||||
built_in_sdk=1
|
||||
|
||||
|
||||
echo $#
|
||||
|
||||
echo $1
|
||||
|
||||
if [ $# -ge 0 ] && [ "$1" == "lazy-dl" ]
|
||||
then
|
||||
echo "Using Lazy Download Flavour"
|
||||
built_in_sdk=0
|
||||
elif [ $# -ge 0 ] && [ "$1" == "built-in" ]
|
||||
then
|
||||
echo "Using Built-In SDK Flavour"
|
||||
built_in_sdk=1
|
||||
else
|
||||
echo "Please use either built-in or lazy-dl as parameter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd ${ANDROID_HOME}
|
||||
echo "Set ANDROID_HOME to ${ANDROID_HOME}"
|
||||
|
||||
if [ -f commandlinetools-linux.zip ]
|
||||
then
|
||||
echo "SDK Tools already bootstrapped. Skipping initial setup"
|
||||
else
|
||||
echo "Bootstrapping SDK-Tools"
|
||||
wget -q https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip -O commandlinetools-linux.zip
|
||||
unzip commandlinetools-linux.zip
|
||||
mkdir cmdline-tools
|
||||
mv tools cmdline-tools/
|
||||
fi
|
||||
|
||||
echo "Make sure repositories.cfg exists"
|
||||
mkdir -p ~/.android/
|
||||
touch ~/.android/repositories.cfg
|
||||
|
||||
echo "Copying Licences"
|
||||
cp -rv /opt/licenses ${ANDROID_HOME}/licenses
|
||||
|
||||
echo "Copying Tools"
|
||||
mkdir -p ${ANDROID_HOME}/bin
|
||||
cp -v /opt/tools/*.sh ${ANDROID_HOME}/bin
|
||||
|
||||
echo "Installing packages"
|
||||
if [ $built_in_sdk -eq 1 ]
|
||||
then
|
||||
android-accept-licenses.sh "sdkmanager --package_file=/opt/tools/package-list-minimal.txt --verbose"
|
||||
else
|
||||
android-accept-licenses.sh "sdkmanager --package_file=/opt/tools/package-list.txt --verbose"
|
||||
fi
|
||||
|
||||
echo "Updating SDK"
|
||||
update_sdk
|
||||
|
||||
echo "Accepting Licenses"
|
||||
android-accept-licenses.sh "sdkmanager --licenses --verbose"
|
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
|
||||
set +e
|
||||
|
||||
bootcomplete=""
|
||||
failcounter=0
|
||||
timeout=600
|
||||
sleeptime=10
|
||||
maxfail=$((timeout / sleeptime))
|
||||
|
||||
until [[ "${bootcomplete}" =~ "1" ]]; do
|
||||
bootcomplete=`adb -e shell getprop dev.bootcomplete 2>&1 &`
|
||||
if [[ "${bootcomplete}" =~ "" ]]; then
|
||||
((failcounter += 1))
|
||||
echo "Waiting for emulator to start"
|
||||
if [[ ${failcounter} -gt ${maxfail} ]]; then
|
||||
echo "Timeout ($timeout seconds) reached; failed to start emulator"
|
||||
while pkill -9 "emulator" >/dev/null 2>&1; do
|
||||
echo "Killing emulator proces...."
|
||||
pgrep "emulator"
|
||||
done
|
||||
echo "Process terminated"
|
||||
pgrep "emulator"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
sleep ${sleeptime}
|
||||
done
|
||||
|
||||
echo "Emulator is ready"
|
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
|
||||
function checkbin() {
|
||||
type -P su-exec
|
||||
}
|
||||
|
||||
function su_mt_user() {
|
||||
su android -c '"$0" "$@"' -- "$@"
|
||||
}
|
||||
|
||||
chown android:android /opt/android-sdk-linux
|
||||
|
||||
if checkbin; then
|
||||
exec su-exec android:android /opt/tools/android-sdk-update.sh "$@"
|
||||
else
|
||||
su_mt_user /opt/tools/android-sdk-update.sh ${1}
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
add-ons;addon-google_apis-google-26
|
||||
add-ons;addon-google_apis-google-27
|
||||
build-tools;26.0.3
|
||||
build-tools;27.0.0
|
||||
cmake;3.6.4111459
|
||||
emulator
|
||||
extras;android;gapid;1
|
||||
extras;android;gapid;3
|
||||
extras;android;m2repository
|
||||
extras;google;auto
|
||||
extras;google;google_play_services
|
||||
extras;google;instantapps
|
||||
extras;google;m2repository
|
||||
extras;google;market_apk_expansion
|
||||
extras;google;market_licensing
|
||||
extras;google;simulators
|
||||
extras;google;webdriver
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2
|
||||
lldb;2.3
|
||||
platforms;android-26
|
||||
platforms;android-27
|
||||
tools
|
|
@ -0,0 +1,182 @@
|
|||
add-ons;addon-google_apis-google-15
|
||||
add-ons;addon-google_apis-google-16
|
||||
add-ons;addon-google_apis-google-17
|
||||
add-ons;addon-google_apis-google-18
|
||||
add-ons;addon-google_apis-google-19
|
||||
add-ons;addon-google_apis-google-21
|
||||
add-ons;addon-google_apis-google-22
|
||||
add-ons;addon-google_apis-google-23
|
||||
add-ons;addon-google_apis-google-24
|
||||
add-ons;addon-google_gdk-google-19
|
||||
build-tools;19.1.0
|
||||
build-tools;20.0.0
|
||||
build-tools;21.1.2
|
||||
build-tools;22.0.1
|
||||
build-tools;23.0.1
|
||||
build-tools;23.0.2
|
||||
build-tools;23.0.3
|
||||
build-tools;24.0.0
|
||||
build-tools;24.0.1
|
||||
build-tools;24.0.2
|
||||
build-tools;24.0.3
|
||||
build-tools;25.0.0
|
||||
build-tools;25.0.1
|
||||
build-tools;25.0.2
|
||||
build-tools;25.0.3
|
||||
build-tools;26.0.0
|
||||
build-tools;26.0.2
|
||||
build-tools;26.0.3
|
||||
build-tools;27.0.0
|
||||
cmake;3.6.4111459
|
||||
emulator
|
||||
extras;android;gapid;1
|
||||
extras;android;gapid;3
|
||||
extras;android;m2repository
|
||||
extras;google;auto
|
||||
extras;google;google_play_services
|
||||
extras;google;instantapps
|
||||
extras;google;m2repository
|
||||
extras;google;market_apk_expansion
|
||||
extras;google;market_licensing
|
||||
extras;google;simulators
|
||||
extras;google;webdriver
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha2
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha3
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha5
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha6
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha7
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha9
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha2
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha3
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha5
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha6
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha7
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha9
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1
|
||||
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2
|
||||
lldb;2.3
|
||||
platforms;android-10
|
||||
platforms;android-11
|
||||
platforms;android-12
|
||||
platforms;android-13
|
||||
platforms;android-14
|
||||
platforms;android-15
|
||||
platforms;android-16
|
||||
platforms;android-17
|
||||
platforms;android-18
|
||||
platforms;android-19
|
||||
platforms;android-20
|
||||
platforms;android-21
|
||||
platforms;android-22
|
||||
platforms;android-23
|
||||
platforms;android-24
|
||||
platforms;android-25
|
||||
platforms;android-26
|
||||
platforms;android-7
|
||||
platforms;android-8
|
||||
platforms;android-9
|
||||
sources;android-15
|
||||
sources;android-16
|
||||
sources;android-17
|
||||
sources;android-18
|
||||
sources;android-19
|
||||
sources;android-20
|
||||
sources;android-21
|
||||
sources;android-22
|
||||
sources;android-23
|
||||
sources;android-24
|
||||
sources;android-25
|
||||
sources;android-26
|
||||
sources;android-27
|
||||
system-images;android-10;default;armeabi-v7a
|
||||
system-images;android-10;default;x86
|
||||
system-images;android-10;google_apis;armeabi-v7a
|
||||
system-images;android-10;google_apis;x86
|
||||
system-images;android-14;default;armeabi-v7a
|
||||
system-images;android-15;default;armeabi-v7a
|
||||
system-images;android-15;default;mips
|
||||
system-images;android-15;default;x86
|
||||
system-images;android-15;google_apis;armeabi-v7a
|
||||
system-images;android-15;google_apis;x86
|
||||
system-images;android-16;default;armeabi-v7a
|
||||
system-images;android-16;default;mips
|
||||
system-images;android-16;default;x86
|
||||
system-images;android-16;google_apis;x86
|
||||
system-images;android-17;default;armeabi-v7a
|
||||
system-images;android-17;default;mips
|
||||
system-images;android-17;default;x86
|
||||
system-images;android-17;google_apis;armeabi-v7a
|
||||
system-images;android-17;google_apis;x86
|
||||
system-images;android-18;default;armeabi-v7a
|
||||
system-images;android-18;default;x86
|
||||
system-images;android-18;google_apis;armeabi-v7a
|
||||
system-images;android-18;google_apis;x86
|
||||
system-images;android-19;default;armeabi-v7a
|
||||
system-images;android-19;default;x86
|
||||
system-images;android-19;google_apis;armeabi-v7a
|
||||
system-images;android-19;google_apis;x86
|
||||
system-images;android-21;android-tv;armeabi-v7a
|
||||
system-images;android-21;android-tv;x86
|
||||
system-images;android-21;default;armeabi-v7a
|
||||
system-images;android-21;default;x86
|
||||
system-images;android-21;default;x86_64
|
||||
system-images;android-21;google_apis;armeabi-v7a
|
||||
system-images;android-21;google_apis;x86
|
||||
system-images;android-21;google_apis;x86_64
|
||||
system-images;android-22;android-tv;armeabi-v7a
|
||||
system-images;android-22;android-tv;x86
|
||||
system-images;android-22;default;armeabi-v7a
|
||||
system-images;android-22;default;armeabi-v7a
|
||||
system-images;android-22;default;x86
|
||||
system-images;android-22;default;x86_64
|
||||
system-images;android-22;google_apis;armeabi-v7a
|
||||
system-images;android-22;google_apis;x86
|
||||
system-images;android-22;google_apis;x86_64
|
||||
system-images;android-23;android-tv;armeabi-v7a
|
||||
system-images;android-23;android-tv;x86
|
||||
system-images;android-23;android-wear;armeabi-v7a
|
||||
system-images;android-23;android-wear;x86
|
||||
system-images;android-23;default;x86
|
||||
system-images;android-23;default;x86_64
|
||||
system-images;android-23;google_apis;armeabi-v7a
|
||||
system-images;android-23;google_apis;x86
|
||||
system-images;android-23;google_apis;x86_64
|
||||
system-images;android-24;android-tv;x86
|
||||
system-images;android-24;default;arm64-v8a
|
||||
system-images;android-24;default;armeabi-v7a
|
||||
system-images;android-24;default;x86
|
||||
system-images;android-24;default;x86_64
|
||||
system-images;android-24;google_apis;arm64-v8a
|
||||
system-images;android-24;google_apis;armeabi-v7a
|
||||
system-images;android-24;google_apis_playstore;x86
|
||||
system-images;android-24;google_apis;x86
|
||||
system-images;android-24;google_apis;x86_64
|
||||
system-images;android-25;android-tv;x86
|
||||
system-images;android-25;android-wear;armeabi-v7a
|
||||
system-images;android-25;android-wear;x86
|
||||
system-images;android-25;google_apis;armeabi-v7a
|
||||
system-images;android-25;google_apis;x86
|
||||
system-images;android-25;google_apis;x86_64
|
||||
system-images;android-26;android-tv;x86
|
||||
system-images;android-26;android-wear;x86
|
||||
system-images;android-26;google_apis_playstore;x86
|
||||
system-images;android-26;google_apis;x86
|
||||
tools
|
Loading…
Reference in New Issue