Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/docker-android-sdk/android-30.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorppoffice <ppoffice@users.noreply.github.com>2020-10-08 00:58:47 +0300
committerppoffice <ppoffice@users.noreply.github.com>2020-10-08 00:58:47 +0300
commit2f980d457dfd7d344790b021132aed3ea24670ae (patch)
tree35ae693d532bdefef5224d07e2502027b9cf0b2e
initial commit
-rw-r--r--.gitignore1
-rw-r--r--Dockerfile52
-rw-r--r--README.md45
-rw-r--r--licenses/android-sdk-license2
-rw-r--r--licenses/android-sdk-preview-license2
-rwxr-xr-xtools/android-accept-licenses.sh14
-rw-r--r--tools/android-env.sh44
-rwxr-xr-xtools/android-sdk-update.sh64
-rwxr-xr-xtools/android-wait-for-emulator.sh30
-rwxr-xr-xtools/entrypoint.sh24
-rw-r--r--tools/package-list-minimal.txt23
-rw-r--r--tools/package-list.txt182
12 files changed, 483 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..485dee6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..0541c7a
--- /dev/null
+++ b/Dockerfile
@@ -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
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0bb4757
--- /dev/null
+++ b/README.md
@@ -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
+ ``` \ No newline at end of file
diff --git a/licenses/android-sdk-license b/licenses/android-sdk-license
new file mode 100644
index 0000000..ff1da21
--- /dev/null
+++ b/licenses/android-sdk-license
@@ -0,0 +1,2 @@
+
+8933bad161af4178b1185d1a37fbf41ea5269c55
diff --git a/licenses/android-sdk-preview-license b/licenses/android-sdk-preview-license
new file mode 100644
index 0000000..74069f8
--- /dev/null
+++ b/licenses/android-sdk-preview-license
@@ -0,0 +1,2 @@
+
+84831b9409646a918e30573bab4c9c91346d8abd
diff --git a/tools/android-accept-licenses.sh b/tools/android-accept-licenses.sh
new file mode 100755
index 0000000..fa3e4a0
--- /dev/null
+++ b/tools/android-accept-licenses.sh
@@ -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
+}
diff --git a/tools/android-env.sh b/tools/android-env.sh
new file mode 100644
index 0000000..160aba6
--- /dev/null
+++ b/tools/android-env.sh
@@ -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
diff --git a/tools/android-sdk-update.sh b/tools/android-sdk-update.sh
new file mode 100755
index 0000000..8481379
--- /dev/null
+++ b/tools/android-sdk-update.sh
@@ -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"
diff --git a/tools/android-wait-for-emulator.sh b/tools/android-wait-for-emulator.sh
new file mode 100755
index 0000000..0219687
--- /dev/null
+++ b/tools/android-wait-for-emulator.sh
@@ -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"
diff --git a/tools/entrypoint.sh b/tools/entrypoint.sh
new file mode 100755
index 0000000..74a629b
--- /dev/null
+++ b/tools/entrypoint.sh
@@ -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
+
+
+
+
+
+
+
diff --git a/tools/package-list-minimal.txt b/tools/package-list-minimal.txt
new file mode 100644
index 0000000..3cf9455
--- /dev/null
+++ b/tools/package-list-minimal.txt
@@ -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
diff --git a/tools/package-list.txt b/tools/package-list.txt
new file mode 100644
index 0000000..60709b2
--- /dev/null
+++ b/tools/package-list.txt
@@ -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