move android stuff to contrib/android
This commit is contained in:
@@ -1,33 +0,0 @@
|
||||
PYTHON = python3
|
||||
|
||||
# needs kivy installed or in PYTHONPATH
|
||||
|
||||
.PHONY: theming apk clean
|
||||
|
||||
theming:
|
||||
#bash -c 'for i in network lightning; do convert -background none theming/light/$i.{svg,png}; done'
|
||||
$(PYTHON) -m kivy.atlas theming/light 1024 theming/light/*.png
|
||||
prepare:
|
||||
# running pre build setup
|
||||
@cp tools/buildozer.spec ../../../buildozer.spec
|
||||
# copy electrum to main.py
|
||||
@cp ../../../run_electrum ../../../main.py
|
||||
@-if [ ! -d "../../../.buildozer" ];then \
|
||||
cd ../../..; buildozer android debug;\
|
||||
cp -f electrum/gui/kivy/tools/blacklist.txt .buildozer/android/platform/python-for-android/src/blacklist.txt;\
|
||||
rm -rf ./.buildozer/android/platform/python-for-android/dist;\
|
||||
fi
|
||||
apk:
|
||||
@make prepare
|
||||
@-cd ../../..; buildozer android debug deploy run
|
||||
@make clean
|
||||
release:
|
||||
@make prepare
|
||||
@-cd ../../..; buildozer android release
|
||||
@make clean
|
||||
clean:
|
||||
# Cleaning up
|
||||
# rename main.py to electrum
|
||||
@-rm ../../../main.py
|
||||
# remove buildozer.spec
|
||||
@-rm ../../../buildozer.spec
|
||||
@@ -1,127 +0,0 @@
|
||||
# Kivy GUI
|
||||
|
||||
The Kivy GUI is used with Electrum on Android devices.
|
||||
To generate an APK file, follow these instructions.
|
||||
|
||||
## Android binary with Docker
|
||||
|
||||
✗ _This script does not produce reproducible output (yet!).
|
||||
Please help us remedy this._
|
||||
|
||||
This assumes an Ubuntu (x86_64) host, but it should not be too hard to adapt to another
|
||||
similar system. The docker commands should be executed in the project's root
|
||||
folder.
|
||||
|
||||
1. Install Docker
|
||||
|
||||
```
|
||||
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||||
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||
$ sudo apt-get update
|
||||
$ sudo apt-get install -y docker-ce
|
||||
```
|
||||
|
||||
2. Build image
|
||||
|
||||
```
|
||||
$ sudo docker build -t electrum-android-builder-img electrum/gui/kivy/tools
|
||||
```
|
||||
|
||||
3. Build locale files
|
||||
|
||||
```
|
||||
$ ./contrib/pull_locale
|
||||
```
|
||||
|
||||
4. Prepare pure python dependencies
|
||||
|
||||
```
|
||||
$ ./contrib/make_packages
|
||||
```
|
||||
|
||||
5. Build binaries
|
||||
|
||||
```
|
||||
$ mkdir --parents $PWD/.buildozer/.gradle
|
||||
$ sudo docker run -it --rm \
|
||||
--name electrum-android-builder-cont \
|
||||
-v $PWD:/home/user/wspace/electrum \
|
||||
-v $PWD/.buildozer/.gradle:/home/user/.gradle \
|
||||
-v ~/.keystore:/home/user/.keystore \
|
||||
--workdir /home/user/wspace/electrum \
|
||||
electrum-android-builder-img \
|
||||
./contrib/make_apk
|
||||
```
|
||||
This mounts the project dir inside the container,
|
||||
and so the modifications will affect it, e.g. `.buildozer` folder
|
||||
will be created.
|
||||
|
||||
5. The generated binary is in `./bin`.
|
||||
|
||||
|
||||
|
||||
## FAQ
|
||||
|
||||
### I changed something but I don't see any differences on the phone. What did I do wrong?
|
||||
You probably need to clear the cache: `rm -rf .buildozer/android/platform/build/{build,dists}`
|
||||
|
||||
|
||||
### How do I deploy on connected phone for quick testing?
|
||||
Assuming `adb` is installed:
|
||||
```
|
||||
$ adb -d install -r bin/Electrum-*-arm64-v8a-debug.apk
|
||||
$ adb shell monkey -p org.electrum.electrum 1
|
||||
```
|
||||
|
||||
|
||||
### How do I get an interactive shell inside docker?
|
||||
```
|
||||
$ sudo docker run -it --rm \
|
||||
-v $PWD:/home/user/wspace/electrum \
|
||||
-v $PWD/.buildozer/.gradle:/home/user/.gradle \
|
||||
--workdir /home/user/wspace/electrum \
|
||||
electrum-android-builder-img
|
||||
```
|
||||
|
||||
|
||||
### How do I get more verbose logs for the build?
|
||||
See `log_level` in `buildozer.spec`
|
||||
|
||||
|
||||
### How can I see logs at runtime?
|
||||
This should work OK for most scenarios:
|
||||
```
|
||||
adb logcat | grep python
|
||||
```
|
||||
Better `grep` but fragile because of `cut`:
|
||||
```
|
||||
adb logcat | grep -F "`adb shell ps | grep org.electrum.electrum | cut -c14-19`"
|
||||
```
|
||||
|
||||
|
||||
### Kivy can be run directly on Linux Desktop. How?
|
||||
Install Kivy.
|
||||
|
||||
Build atlas: `(cd electrum/gui/kivy/; make theming)`
|
||||
|
||||
Run electrum with the `-g` switch: `electrum -g kivy`
|
||||
|
||||
### debug vs release build
|
||||
If you just follow the instructions above, you will build the apk
|
||||
in debug mode. The most notable difference is that the apk will be
|
||||
signed using a debug keystore. If you are planning to upload
|
||||
what you build to e.g. the Play Store, you should create your own
|
||||
keystore, back it up safely, and run `./contrib/make_apk release`.
|
||||
|
||||
See e.g. [kivy wiki](https://github.com/kivy/kivy/wiki/Creating-a-Release-APK)
|
||||
and [android dev docs](https://developer.android.com/studio/build/building-cmdline#sign_cmdline).
|
||||
|
||||
### Access datadir on Android from desktop (e.g. to copy wallet file)
|
||||
Note that this only works for debug builds! Otherwise the security model
|
||||
of Android does not let you access the internal storage of an app without root.
|
||||
(See [this](https://stackoverflow.com/q/9017073))
|
||||
```
|
||||
$ adb shell
|
||||
$ run-as org.electrum.electrum ls /data/data/org.electrum.electrum/files/data
|
||||
$ run-as org.electrum.electrum cp /data/data/org.electrum.electrum/files/data/wallets/my_wallet /sdcard/some_path/my_wallet
|
||||
```
|
||||
@@ -1,171 +0,0 @@
|
||||
# based on https://github.com/kivy/python-for-android/blob/master/Dockerfile
|
||||
|
||||
FROM ubuntu:18.04
|
||||
|
||||
ENV ANDROID_HOME="/opt/android"
|
||||
|
||||
# configure locale
|
||||
RUN apt update -qq > /dev/null && apt install -qq --yes --no-install-recommends \
|
||||
locales && \
|
||||
locale-gen en_US.UTF-8
|
||||
ENV LANG="en_US.UTF-8" \
|
||||
LANGUAGE="en_US.UTF-8" \
|
||||
LC_ALL="en_US.UTF-8"
|
||||
|
||||
RUN apt -y update -qq \
|
||||
&& apt -y install -qq --no-install-recommends curl unzip ca-certificates \
|
||||
&& apt -y autoremove
|
||||
|
||||
|
||||
ENV ANDROID_NDK_HOME="${ANDROID_HOME}/android-ndk"
|
||||
ENV ANDROID_NDK_VERSION="19c"
|
||||
ENV ANDROID_NDK_HOME_V="${ANDROID_NDK_HOME}-r${ANDROID_NDK_VERSION}"
|
||||
|
||||
# get the latest version from https://developer.android.com/ndk/downloads/index.html
|
||||
ENV ANDROID_NDK_ARCHIVE="android-ndk-r${ANDROID_NDK_VERSION}-linux-x86_64.zip"
|
||||
ENV ANDROID_NDK_DL_URL="https://dl.google.com/android/repository/${ANDROID_NDK_ARCHIVE}"
|
||||
|
||||
# download and install Android NDK
|
||||
RUN curl --location --progress-bar \
|
||||
"${ANDROID_NDK_DL_URL}" \
|
||||
--output "${ANDROID_NDK_ARCHIVE}" \
|
||||
&& mkdir --parents "${ANDROID_NDK_HOME_V}" \
|
||||
&& unzip -q "${ANDROID_NDK_ARCHIVE}" -d "${ANDROID_HOME}" \
|
||||
&& ln -sfn "${ANDROID_NDK_HOME_V}" "${ANDROID_NDK_HOME}" \
|
||||
&& rm -rf "${ANDROID_NDK_ARCHIVE}"
|
||||
|
||||
|
||||
ENV ANDROID_SDK_HOME="${ANDROID_HOME}/android-sdk"
|
||||
|
||||
# get the latest version from https://developer.android.com/studio/index.html
|
||||
ENV ANDROID_SDK_TOOLS_VERSION="4333796"
|
||||
ENV ANDROID_SDK_BUILD_TOOLS_VERSION="28.0.3"
|
||||
ENV ANDROID_SDK_TOOLS_ARCHIVE="sdk-tools-linux-${ANDROID_SDK_TOOLS_VERSION}.zip"
|
||||
ENV ANDROID_SDK_TOOLS_DL_URL="https://dl.google.com/android/repository/${ANDROID_SDK_TOOLS_ARCHIVE}"
|
||||
|
||||
# download and install Android SDK
|
||||
RUN curl --location --progress-bar \
|
||||
"${ANDROID_SDK_TOOLS_DL_URL}" \
|
||||
--output "${ANDROID_SDK_TOOLS_ARCHIVE}" \
|
||||
&& mkdir --parents "${ANDROID_SDK_HOME}" \
|
||||
&& unzip -q "${ANDROID_SDK_TOOLS_ARCHIVE}" -d "${ANDROID_SDK_HOME}" \
|
||||
&& rm -rf "${ANDROID_SDK_TOOLS_ARCHIVE}"
|
||||
|
||||
# update Android SDK, install Android API, Build Tools...
|
||||
RUN mkdir --parents "${ANDROID_SDK_HOME}/.android/" \
|
||||
&& echo '### User Sources for Android SDK Manager' \
|
||||
> "${ANDROID_SDK_HOME}/.android/repositories.cfg"
|
||||
|
||||
# accept Android licenses (JDK necessary!)
|
||||
RUN apt -y update -qq \
|
||||
&& apt -y install -qq --no-install-recommends openjdk-8-jdk \
|
||||
&& apt -y autoremove
|
||||
RUN yes | "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" --licenses > /dev/null
|
||||
|
||||
# download platforms, API, build tools
|
||||
RUN "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "platforms;android-24" > /dev/null && \
|
||||
"${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "platforms;android-28" > /dev/null && \
|
||||
"${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "build-tools;${ANDROID_SDK_BUILD_TOOLS_VERSION}" > /dev/null && \
|
||||
"${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "extras;android;m2repository" > /dev/null && \
|
||||
chmod +x "${ANDROID_SDK_HOME}/tools/bin/avdmanager"
|
||||
|
||||
# download ANT
|
||||
ENV APACHE_ANT_VERSION="1.9.4"
|
||||
ENV APACHE_ANT_ARCHIVE="apache-ant-${APACHE_ANT_VERSION}-bin.tar.gz"
|
||||
ENV APACHE_ANT_DL_URL="http://archive.apache.org/dist/ant/binaries/${APACHE_ANT_ARCHIVE}"
|
||||
ENV APACHE_ANT_HOME="${ANDROID_HOME}/apache-ant"
|
||||
ENV APACHE_ANT_HOME_V="${APACHE_ANT_HOME}-${APACHE_ANT_VERSION}"
|
||||
|
||||
RUN curl --location --progress-bar \
|
||||
"${APACHE_ANT_DL_URL}" \
|
||||
--output "${APACHE_ANT_ARCHIVE}" \
|
||||
&& tar -xf "${APACHE_ANT_ARCHIVE}" -C "${ANDROID_HOME}" \
|
||||
&& ln -sfn "${APACHE_ANT_HOME_V}" "${APACHE_ANT_HOME}" \
|
||||
&& rm -rf "${APACHE_ANT_ARCHIVE}"
|
||||
|
||||
|
||||
ENV USER="user"
|
||||
ENV HOME_DIR="/home/${USER}"
|
||||
ENV WORK_DIR="${HOME_DIR}/wspace" \
|
||||
PATH="${HOME_DIR}/.local/bin:${PATH}"
|
||||
|
||||
# install system dependencies
|
||||
RUN apt -y update -qq \
|
||||
&& apt -y install -qq --no-install-recommends \
|
||||
python3 python3-pip python3-setuptools git wget lbzip2 patch sudo \
|
||||
software-properties-common libssl-dev \
|
||||
&& apt -y autoremove
|
||||
|
||||
# install kivy
|
||||
RUN add-apt-repository ppa:kivy-team/kivy \
|
||||
&& apt -y update -qq \
|
||||
&& apt -y install -qq --no-install-recommends python3-kivy \
|
||||
&& apt -y autoremove \
|
||||
&& apt -y clean
|
||||
RUN python3 -m pip install image
|
||||
|
||||
# build dependencies
|
||||
# https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-16-04-64bit
|
||||
RUN dpkg --add-architecture i386 \
|
||||
&& apt -y update -qq \
|
||||
&& apt -y install -qq --no-install-recommends \
|
||||
build-essential ccache git python3 python3-dev \
|
||||
libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 \
|
||||
libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 \
|
||||
zip zlib1g-dev zlib1g:i386 \
|
||||
&& apt -y autoremove \
|
||||
&& apt -y clean
|
||||
|
||||
# specific recipes dependencies (e.g. libffi requires autoreconf binary)
|
||||
RUN apt -y update -qq \
|
||||
&& apt -y install -qq --no-install-recommends \
|
||||
libffi-dev autoconf automake cmake gettext libltdl-dev libtool pkg-config \
|
||||
&& apt -y autoremove \
|
||||
&& apt -y clean
|
||||
|
||||
|
||||
# prepare non root env
|
||||
RUN useradd --create-home --shell /bin/bash ${USER}
|
||||
|
||||
# with sudo access and no password
|
||||
RUN usermod -append --groups sudo ${USER}
|
||||
RUN echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
|
||||
|
||||
WORKDIR ${WORK_DIR}
|
||||
|
||||
# user needs ownership/write access to these directories
|
||||
RUN chown --recursive ${USER} ${WORK_DIR} ${ANDROID_SDK_HOME}
|
||||
RUN chown ${USER} /opt
|
||||
USER ${USER}
|
||||
|
||||
|
||||
RUN python3 -m pip install --upgrade cython==0.28.6
|
||||
RUN python3 -m pip install --upgrade pip
|
||||
RUN python3 -m pip install --user wheel
|
||||
|
||||
# prepare git
|
||||
RUN git config --global user.name "John Doe" \
|
||||
&& git config --global user.email johndoe@example.com
|
||||
|
||||
# install buildozer
|
||||
RUN cd /opt \
|
||||
&& git clone https://github.com/kivy/buildozer \
|
||||
&& cd buildozer \
|
||||
&& git remote add sombernight https://github.com/SomberNight/buildozer \
|
||||
&& git fetch --all \
|
||||
&& git checkout d0323c165dd5d9aa23d5eb01044474fe006c3420 \
|
||||
&& python3 -m pip install --user -e .
|
||||
|
||||
# install python-for-android
|
||||
RUN cd /opt \
|
||||
&& git clone https://github.com/kivy/python-for-android \
|
||||
&& cd python-for-android \
|
||||
&& git remote add sombernight https://github.com/SomberNight/python-for-android \
|
||||
&& git fetch --all \
|
||||
&& git checkout cef08b92268fe69ef331699c2205cbb091e730f0 \
|
||||
&& python3 -m pip install --user -e .
|
||||
|
||||
# build env vars
|
||||
ENV USE_SDK_WRAPPER=1
|
||||
ENV GRADLE_OPTS="-Xmx1536M -Dorg.gradle.jvmargs='-Xmx1536M'"
|
||||
@@ -1,7 +0,0 @@
|
||||
<intent-filter >
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="bitcoin" />
|
||||
</intent-filter>
|
||||
@@ -1,107 +0,0 @@
|
||||
# eggs
|
||||
*.egg-info
|
||||
|
||||
# unit test
|
||||
unittest/*
|
||||
|
||||
# python config
|
||||
config/makesetup
|
||||
|
||||
# unused pygame files
|
||||
pygame/_camera_*
|
||||
pygame/camera.pyo
|
||||
pygame/*.html
|
||||
pygame/*.bmp
|
||||
pygame/*.svg
|
||||
pygame/cdrom.so
|
||||
pygame/pygame_icon.icns
|
||||
pygame/LGPL
|
||||
pygame/threads/Py25Queue.pyo
|
||||
pygame/*.ttf
|
||||
pygame/mac*
|
||||
pygame/_numpy*
|
||||
pygame/sndarray.pyo
|
||||
pygame/surfarray.pyo
|
||||
pygame/_arraysurfarray.pyo
|
||||
|
||||
# unused kivy files (platform specific)
|
||||
kivy/input/providers/wm_*
|
||||
kivy/input/providers/mactouch*
|
||||
kivy/input/providers/probesysfs*
|
||||
kivy/input/providers/mtdev*
|
||||
kivy/input/providers/hidinput*
|
||||
kivy/core/camera/camera_videocapture*
|
||||
kivy/core/spelling/*osx*
|
||||
kivy/core/video/video_pyglet*
|
||||
|
||||
kivy/adapters
|
||||
kivy/modules
|
||||
kivy/uix/sandbox
|
||||
kivy/uix/pagelayout
|
||||
kivy/uix/video
|
||||
kivy/uix/vkeyboard
|
||||
kivy/uix/videoplayer
|
||||
|
||||
# unused encodings
|
||||
lib-dynload/*codec*
|
||||
encodings/cp*.pyo
|
||||
encodings/tis*
|
||||
encodings/shift*
|
||||
encodings/bz2*
|
||||
encodings/iso*
|
||||
encodings/undefined*
|
||||
encodings/johab*
|
||||
encodings/p*
|
||||
encodings/m*
|
||||
encodings/euc*
|
||||
encodings/k*
|
||||
encodings/unicode_internal*
|
||||
encodings/quo*
|
||||
encodings/gb*
|
||||
encodings/big5*
|
||||
encodings/hp*
|
||||
encodings/hz*
|
||||
|
||||
# unused python modules
|
||||
bsddb/*
|
||||
wsgiref/*
|
||||
hotshot/*
|
||||
pydoc_data/*
|
||||
tty.pyo
|
||||
#anydbm.pyo
|
||||
nturl2path.pyo
|
||||
LICENCE.txt
|
||||
macurl2path.pyo
|
||||
dummy_threading.pyo
|
||||
audiodev.pyo
|
||||
antigravity.pyo
|
||||
#dumbdbm.pyo
|
||||
sndhdr.pyo
|
||||
__phello__.foo.pyo
|
||||
sunaudio.pyo
|
||||
os2emxpath.pyo
|
||||
multiprocessing/dummy*
|
||||
|
||||
# unused binaries python modules
|
||||
lib-dynload/termios.so
|
||||
lib-dynload/_lsprof.so
|
||||
lib-dynload/*audioop.so
|
||||
#lib-dynload/mmap.so
|
||||
lib-dynload/_hotshot.so
|
||||
#lib-dynload/_csv.so
|
||||
lib-dynload/future_builtins.so
|
||||
lib-dynload/_heapq.so
|
||||
lib-dynload/_json.so
|
||||
lib-dynload/grp.so
|
||||
lib-dynload/resource.so
|
||||
lib-dynload/pyexpat.so
|
||||
|
||||
# odd files
|
||||
plat-linux3/regen
|
||||
|
||||
#>sqlite3
|
||||
# conditionnal include depending if some recipes are included or not.
|
||||
#sqlite3/*
|
||||
#lib-dynload/_sqlite3.so
|
||||
#<sqlite3
|
||||
|
||||
@@ -1,226 +0,0 @@
|
||||
[app]
|
||||
|
||||
# (str) Title of your application
|
||||
title = Electrum
|
||||
|
||||
# (str) Package name
|
||||
package.name = Electrum
|
||||
|
||||
# (str) Package domain (needed for android/ios packaging)
|
||||
package.domain = org.electrum
|
||||
|
||||
# (str) Source code where the main.py live
|
||||
source.dir = .
|
||||
|
||||
# (list) Source files to include (let empty to include all the files)
|
||||
source.include_exts = py,png,jpg,kv,atlas,ttf,txt,gif,pem,mo,vs,fs,json,csv
|
||||
|
||||
# (list) Source files to exclude (let empty to not exclude anything)
|
||||
source.exclude_exts = spec
|
||||
|
||||
# (list) List of directory to exclude (let empty to not exclude anything)
|
||||
source.exclude_dirs = bin, build, dist, contrib,
|
||||
electrum/tests,
|
||||
electrum/gui/qt,
|
||||
electrum/gui/kivy/tools,
|
||||
electrum/gui/kivy/theming/light
|
||||
# (list) List of exclusions using pattern matching
|
||||
source.exclude_patterns = Makefile,setup*
|
||||
|
||||
# (str) Application versioning (method 1)
|
||||
version.regex = APK_VERSION = '(.*)'
|
||||
version.filename = %(source.dir)s/electrum/version.py
|
||||
|
||||
# (str) Application versioning (method 2)
|
||||
#version = 1.9.8
|
||||
|
||||
# (list) Application requirements
|
||||
requirements =
|
||||
# note: re python3.8, see #6147
|
||||
hostpython3==3.7.7,
|
||||
python3==3.7.7,
|
||||
android,
|
||||
openssl,
|
||||
plyer,
|
||||
# kivy 1.11.1
|
||||
kivy==39c17457bae91baf8fe710dc989791e45879f136,
|
||||
libffi,
|
||||
libsecp256k1,
|
||||
cryptography
|
||||
|
||||
# (str) Presplash of the application
|
||||
#presplash.filename = %(source.dir)s/gui/kivy/theming/splash.png
|
||||
presplash.filename = %(source.dir)s/electrum/gui/icons/electrum_presplash.png
|
||||
|
||||
# (str) Icon of the application
|
||||
icon.filename = %(source.dir)s/electrum/gui/icons/electrum_launcher.png
|
||||
|
||||
# (str) Supported orientation (one of landscape, portrait or all)
|
||||
orientation = portrait
|
||||
|
||||
# (bool) Indicate if the application should be fullscreen or not
|
||||
fullscreen = False
|
||||
|
||||
|
||||
#
|
||||
# Android specific
|
||||
#
|
||||
|
||||
# (list) Permissions
|
||||
android.permissions = INTERNET, CAMERA, WRITE_EXTERNAL_STORAGE
|
||||
|
||||
# (int) Android API to use
|
||||
android.api = 28
|
||||
|
||||
# (int) Minimum API required. You will need to set the android.ndk_api to be as low as this value.
|
||||
android.minapi = 21
|
||||
|
||||
# (str) Android NDK version to use
|
||||
android.ndk = 19c
|
||||
|
||||
# (int) Android NDK API to use (optional). This is the minimum API your app will support.
|
||||
android.ndk_api = 21
|
||||
|
||||
# (bool) Use --private data storage (True) or --dir public storage (False)
|
||||
android.private_storage = True
|
||||
|
||||
# (str) Android NDK directory (if empty, it will be automatically downloaded.)
|
||||
android.ndk_path = /opt/android/android-ndk
|
||||
|
||||
# (str) Android SDK directory (if empty, it will be automatically downloaded.)
|
||||
android.sdk_path = /opt/android/android-sdk
|
||||
|
||||
# (str) ANT directory (if empty, it will be automatically downloaded.)
|
||||
android.ant_path = /opt/android/apache-ant
|
||||
|
||||
# (str) Android entry point, default is ok for Kivy-based app
|
||||
#android.entrypoint = org.renpy.android.PythonActivity
|
||||
|
||||
# (list) List of Java .jar files to add to the libs so that pyjnius can access
|
||||
# their classes. Don't add jars that you do not need, since extra jars can slow
|
||||
# down the build process. Allows wildcards matching, for example:
|
||||
# OUYA-ODK/libs/*.jar
|
||||
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar
|
||||
#android.add_jars = lib/android/zbar.jar
|
||||
|
||||
# (list) List of Java files to add to the android project (can be java or a
|
||||
# directory containing the files)
|
||||
android.add_src = electrum/gui/kivy/data/java-classes/
|
||||
|
||||
android.gradle_dependencies = me.dm7.barcodescanner:zxing:1.9.8
|
||||
|
||||
android.add_activities = org.electrum.qr.SimpleScannerActivity
|
||||
|
||||
# (str) python-for-android branch to use, if not master, useful to try
|
||||
# not yet merged features.
|
||||
#android.branch = master
|
||||
|
||||
# (str) OUYA Console category. Should be one of GAME or APP
|
||||
# If you leave this blank, OUYA support will not be enabled
|
||||
#android.ouya.category = GAME
|
||||
|
||||
# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
|
||||
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png
|
||||
|
||||
# (str) XML file to include as an intent filters in <activity> tag
|
||||
android.manifest.intent_filters = electrum/gui/kivy/tools/bitcoin_intent.xml
|
||||
|
||||
# (str) launchMode to set for the main activity
|
||||
android.manifest.launch_mode = singleTask
|
||||
|
||||
# (list) Android additionnal libraries to copy into libs/armeabi
|
||||
#android.add_libs_armeabi = lib/android/*.so
|
||||
|
||||
# (bool) Indicate whether the screen should stay on
|
||||
# Don't forget to add the WAKE_LOCK permission if you set this to True
|
||||
#android.wakelock = False
|
||||
|
||||
# (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
|
||||
# note: can be overwritten by APP_ANDROID_ARCH env var
|
||||
android.arch = armeabi-v7a
|
||||
|
||||
# (list) Android application meta-data to set (key=value format)
|
||||
#android.meta_data =
|
||||
|
||||
# (list) Android library project to add (will be added in the
|
||||
# project.properties automatically.)
|
||||
#android.library_references =
|
||||
|
||||
android.whitelist = lib-dynload/_csv.so
|
||||
|
||||
|
||||
#
|
||||
# Python for android (p4a) specific
|
||||
#
|
||||
|
||||
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
|
||||
p4a.source_dir = /opt/python-for-android
|
||||
|
||||
# (str) The directory in which python-for-android should look for your own build recipes (if any)
|
||||
#p4a.local_recipes =
|
||||
|
||||
# (str) Filename to the hook for p4a
|
||||
#p4a.hook =
|
||||
|
||||
# (str) Bootstrap to use for android builds
|
||||
# p4a.bootstrap = sdl2
|
||||
|
||||
# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
|
||||
#p4a.port =
|
||||
|
||||
|
||||
#
|
||||
# iOS specific
|
||||
#
|
||||
|
||||
# (str) Name of the certificate to use for signing the debug version
|
||||
# Get a list of available identities: buildozer ios list_identities
|
||||
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"
|
||||
|
||||
# (str) Name of the certificate to use for signing the release version
|
||||
#ios.codesign.release = %(ios.codesign.debug)s
|
||||
|
||||
|
||||
|
||||
[buildozer]
|
||||
|
||||
# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
|
||||
log_level = 1
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# List as sections
|
||||
#
|
||||
# You can define all the "list" as [section:key].
|
||||
# Each line will be considered as a option to the list.
|
||||
# Let's take [app] / source.exclude_patterns.
|
||||
# Instead of doing:
|
||||
#
|
||||
# [app]
|
||||
# source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
|
||||
#
|
||||
# This can be translated into:
|
||||
#
|
||||
# [app:source.exclude_patterns]
|
||||
# license
|
||||
# data/audio/*.wav
|
||||
# data/images/original/*
|
||||
#
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Profiles
|
||||
#
|
||||
# You can extend section / key with a profile
|
||||
# For example, you want to deploy a demo version of your application without
|
||||
# HD content. You could first change the title to add "(demo)" in the name
|
||||
# and extend the excluded directories to remove the HD content.
|
||||
#
|
||||
# [app@demo]
|
||||
# title = My Application (demo)
|
||||
#
|
||||
# [app:source.exclude_patterns@demo]
|
||||
# images/hd/*
|
||||
#
|
||||
# Then, invoke the command line with the "demo" profile:
|
||||
#
|
||||
# buildozer --profile demo android debug
|
||||
Reference in New Issue
Block a user