Sander van Grieken
29b5e1672b
p4a ref 1098be6964cfc2156959e435e81c2c50f8398586
2026-04-22 11:17:30 +02:00
Sander van Grieken
7b7d7028bd
android: hash-pin hostpython prerequisites for pyqt6sip and sip
2026-04-22 11:13:32 +02:00
Sander van Grieken
9d5b4a7cd9
android: use plain 'build' dependency (using 'venv') instead of 'build[virtualenv]',
...
remove setuptools as its use is now pinned via hostpython_prerequisites where applicable,
update depends asserts in pyqt6sip, sip, pyqt_builder
2026-04-22 10:15:30 +02:00
Sander van Grieken
c8f5798d4e
android: build pyqt_builder and sip ourselves, hash pin all hostpython_prerequisites
2026-04-22 10:15:30 +02:00
Sander van Grieken
854f95b794
android: openssl 3.0.18
2026-04-22 10:15:30 +02:00
Sander van Grieken
74f3c0427d
android: pin hostpython3 PyProjectRecipe versions,
...
pin android and pyjnius recipes Cython version
2026-04-22 10:15:30 +02:00
f321x
323189874b
android: update Qt6 to 6.10.2, PyQt6 to 6.10.2
2026-04-22 10:15:30 +02:00
Sander van Grieken
42472a1e94
android: minimum API 26 required for Qt6.10 (Android 8.0)
2026-04-22 10:15:30 +02:00
Sander van Grieken
4d55b049b6
android: upgrade to androidx.core:core:1.16.0 from com.android.support:support-compat:28.0.0
2026-04-22 10:15:30 +02:00
Sander van Grieken
dba6b751cc
android: update for rebase p4a, update qt to 6.10, ndk to 28
...
p4a rebased on spesmilo/electrum_202602, 375a05de21b538d704174b1efeb3fc85d151f94e
2026-04-22 10:15:30 +02:00
SomberNight
9dc725fa56
deps: bump libsecp256k1 version (0.7.0->0.7.1) and electrum-ecc
2026-02-25 16:38:11 +00:00
SomberNight
4da7b7f55d
build: android: use Java 17, as before debian upgrade :/
...
When building on debian 12, we were using Java 17.
On debian 13, Java 17 is not packaged anymore, instead there is Java 21 and 25.
Ideally we should upgrade to Java 21 and just install it from apt.
However old Gradle is not compatible with new Java, so we have to upgrade Gradle for that.
- see https://docs.gradle.org/current/userguide/compatibility.html
Old Gradle is giving build errors with Java 21:
```
Could not compile build file '/home/user/wspace/electrum/.buildozer_qml/android/platform/build-arm64-v8a/dists/Electrum/build.gradle'.
> startup failed:
General error during conversion: Unsupported class file major version 65
java.lang.IllegalArgumentException: Unsupported class file major version 65
```
for our p4a fork, I tried to cherry-pick stuff from upstream:
- https://github.com/kivy/python-for-android/commit/17bf5322791ec8cec85836fbe906e63664a05445
- https://github.com/kivy/python-for-android/pull/3172
https://github.com/kivy/python-for-android/commit/a8f2ca1c5b1bb6696b47fdf2c052285e116e0ebe
- see https://github.com/SomberNight/python-for-android/compare/a01269f7799587ad74ee40e0b642d917b8db7d4e...846a1094874aeb64b623fa746222a41851245271
That seems sufficient to upgrade Gradle as far as p4a is concerned.
However that still did not work yet:
- contrib/android/make_barcode_scanner.sh fails, as
markusfisch/zxing-cpp and markusfisch/CameraView
are also using too old gradle versions for Java 21
- it seems they are intentionally doing this to maintain compat with Android 4:
see https://github.com/markusfisch/zxing-cpp/commit/d98ed5d0be513c4077b4c13d1f7873f141949839
So for now maybe the path of least resistance is to downgrade to Java 17 :(
2026-01-30 16:45:13 +00:00
SomberNight
35ca9b4fff
build: android: build and use python 3.12 on host, instead of apt 3.13
...
- want to do the android build on debian 13 (stable)
- debian 13 ships python 3.13 in apt
- p4a requires Cython < 3.0
- ref https://github.com/kivy/python-for-android/issues/2919
- ref https://github.com/kivy/buildozer/issues/1526
- the newest such Cython is version 0.29.37, which predates python 3.13
- the latest python I managed to build cython 0.29.37 with is 3.12
- upstream p4a really would need some love :(
- this is not even just an issue on our p4a fork, but still unsolved upstream
- re rebasing our fork: https://github.com/spesmilo/electrum/issues/10331
2026-01-29 17:13:40 +00:00
SomberNight
4d33b6cad9
build: android: upgrade docker base img to debian 13
...
This should make the F-Droid build simpler.
ref https://gitlab.com/fdroid/fdroiddata/-/merge_requests/32358#note_3038803195
2026-01-29 15:27:49 +00:00
SomberNight
d5ca2e89d5
contrib/android/Readme.md: add note re adb install --user option
2026-01-19 15:33:38 +00:00
ghost43
ece52b0a4e
Merge pull request #10340 from f321x/fingerprint
...
android: implement biometric authentication (fingerprint)
2026-01-19 15:22:17 +00:00
user
5dd3dda238
android: implement biometric authentication
...
Allows to unlock the android app with the android biometric api (e.g.
fingerprint). Can be enabled in the settings.
2026-01-13 18:10:00 +01:00
SomberNight
adb4f6f246
android build: bump python version (3.10.18->3.11.14)
...
Bump the python version used on Android from 3.10 to 3.11.
The substance is the backport of the corresponding commit [0] from upstream p4a.
Tested that apk is still reproducible by doing two full builds.
I also used the apk a bit and it seems to work at runtime. :)
[0]: https://github.com/kivy/python-for-android/pull/2850/commits/78db83223f4f481598343237a6b8788fb4731a00 (which got squashed into https://github.com/kivy/python-for-android/commit/83e74cac0fa230231f63b7d7e4f1e8581fd9e2ce )
2025-12-27 03:31:19 +00:00
f321x
e09794c232
android: bump barcode scanner version
...
Bumps the BarcodeScannerView and zxing++ version which allows us to
remove the 16kb page alignment patch as this is now done upstream.
Ref https://github.com/spesmilo/electrum/commit/87d82f38c559ef27c7f749dac565a92d984148da
2025-12-22 14:44:32 +01:00
SomberNight
cfa052bc86
android build: switch from "cryptography" to "pycryptodomex"
...
We had been using an ancient version of "cryptography" so far in our p4a fork,
however it is not compatible with OpenSSL 3.0. (Previously we were building it with OpenSSL 1.1)
Bumping "cryptography" is difficult, as building new versions of it from source requires a full rust toolchain.
Instead, this commit switches to "pycryptodomex", as a replacement, which is much easier to build from source.
2025-12-11 17:42:42 +00:00
SomberNight
2d4d4dbdc8
android build: bump openssl (1.1.1w -> 3.0.18)
2025-12-11 17:42:29 +00:00
SomberNight
447c7cf8b3
build: Dockerfile: mod "new user to avoid using root" to support UID=0
...
Extend "create new user to avoid using root" copypasta to support being run as root
(ARG UID=0).
When running build.sh directly on a cirrus CI runner, we are running as root.
2025-09-26 14:24:26 +00:00
SomberNight
b676c1e9d3
build: docker run: make "-it" flags conditional on tty being available
...
from https://stackoverflow.com/a/69088164
I am trying to run the build.sh scripts directly on a cirrus CI runner, and "docker run -it" is erroring due to lack of a tty.
2025-09-26 14:24:23 +00:00
ghost43
77eb3ff01e
Merge pull request #10148 from accumulator/android_16kb_page_alignment
...
android: 16kb alignment updates
2025-09-01 16:12:24 +00:00
Sander van Grieken
87d82f38c5
android: 16kb alignment updates
...
p4a ref: electrum_20240930_android_16kb_page_alignment
Dockerfile: obtain 16kb aligned NDK r23 from google CI (dl-ndk-ci.sh)
barcode, zxing-cpp: add 16kb align patch
build_tools_util.sh: add function to apply a patch
2025-08-28 09:24:40 +02:00
f321x
c365272745
android: bump target sdk to 35
2025-08-27 13:57:22 +02:00
SomberNight
d6c300ebcc
deps: bump libsecp256k1 version (0.6.0->0.7.0) and electrum-ecc
2025-08-07 13:24:41 +00:00
SomberNight
a94deedc26
android build: rm blacklist.txt
...
this looks like broken dead code
- the "if" body is never entered as `.buildozer/` gets created by `contrib/android/build.sh`
https://github.com/spesmilo/electrum/blob/8eb3c43603ed1915fa3e0b8d17c9dbeb183270c5/contrib/android/build.sh#L32
- `blacklist.txt` is at `contrib/android/blacklist.txt` but the Makefile expects it at the root
ref https://gitlab.com/fdroid/fdroiddata/-/merge_requests/24948#note_2643399062
- `blacklist.txt` is not referenced anywhere else
2025-07-22 18:05:46 +00:00
f321x
5298e29a36
fix: log correct var in make_barcode_scanner script
...
Fixes two log lines to use the correct path variable.
2025-07-21 16:28:00 +02:00
SomberNight
7e98d2fe92
follow-up prev: fix typo
2025-07-04 13:08:31 +00:00
f321x
10b75ebed7
android: build BarcodeScannerView from src
...
Adds a script `make_barcode_scanner.sh` which builds the
`BarcodeScannerView` library and its dependencies, `zxing-cpp` and
`CameraView` from source. Builds `zxing-cpp` architecture dependent
reducing the final apk size.
2025-06-30 17:20:01 +02:00
f321x
5ae2deb704
android: shasum pin barcode scanner
...
pins the barcode scanner aar used in the android build and its 2
dependencies to a sha256 hash using a script `fetch_barcode_scanner.sh`
which is called in the process of building the apk by `make_apk.sh`.
It fetches the 3 aar files if not already existing, puts them in
`/contrib/android/aars` and verifies their shasum against the hardcoded
hashes in `fetch_barcode_scanner.sh`.
2025-06-25 17:21:54 +02:00
f321x
0a05674f2f
android: replace qr code scanning library
...
Replaces the unmaintained and unreliable
`me.dm7.barcodescanner:zxing:1.9.8` qr code scanning library used only
on android with the `com.github.markusfisch:BarcodeScannerView:1.6.0`
(https://github.com/markusfisch/BarcodeScannerView ) library which seems
more actively maintained.
The `BarcodeScannerView` library is incredibly fast and scanning qr
codes is now fun again :)
wip: still looking into ways to pin the library.
2025-06-24 17:38:03 +02:00
SomberNight
51dfb1ee3d
android/get_apk_versioncode.py: add support for beta/alpha releases
2025-06-12 18:15:49 +00:00
ThomasV
1d7a5cbe16
android/build.sh: do not log password
2025-06-11 15:03:17 +02:00
SomberNight
fa271e3958
build: bump python versions in binaries
...
note: 3.12 just transitioned to security-only status,
so can't bump win/mac binaries without switching to 3.13
(as we don't compile our own cpython for those)
2025-06-05 16:51:56 +00:00
SomberNight
04a0d30176
android build: update pinned versions in p4a recipes
...
note: some files have two versions in them, e.g.:
```
assert CffiRecipe._version == "1.15.1"
class CffiRecipePinned(util.InheritedRecipeMixin, CffiRecipe):
version = "1.17.1"
```
The assert is left there as I think it might be useful to get a failure if we rebase p4a
and the upstream recipe version changes. There might be substantial changes in the upstream
recipe that we need to adapt to. In the happy case, if we rebase p4a, we just have to manually
update these asserts to the new versions at that time.
2025-06-05 16:51:43 +00:00
SomberNight
70aeaccaf8
android build: rm "certifi" recipe
...
I don't think this was ever needed(?). certifi is pure python
and it already gets pulled in from the main requirements.txt
2025-06-05 16:51:39 +00:00
SomberNight
13cd7a6af0
build: bump libsecp256k1 version (0.5.1->0.6.0)
2025-06-05 16:50:42 +00:00
SomberNight
bf0ad20c60
build: bump python versions in binaries
2025-06-05 16:50:35 +00:00
SomberNight
37ca5f7eff
build: appimage: bump base from debian buster(2019) to bullseye(2021)
2025-06-05 16:50:31 +00:00
Sander van Grieken
960e4ba583
android: update plugin exclude list
2025-04-23 14:50:22 +02:00
SomberNight
31b176169a
contrib: mv locale-related scripts to contrib/locale/
2025-04-14 17:18:37 +00:00
SomberNight
1144d9b8ea
build: add script build_cleanlocale.sh
2025-04-14 17:18:34 +00:00
SomberNight
3567a4cfb0
mv git submodule electrum-locale from contrib to electrum/locale
...
- this merges `contrib/deterministic-build/locale` and `electrum/locale`
- it is now once again possible have translations when running from a local git clone
- which was already possible in the past before crowdin removed their unauthenticated APIs
- see https://github.com/spesmilo/electrum/issues/9531
- however, the translations available are the often-old frozen strings from electrum-locale
- while previously one could just download the latest strings from crowdin
2025-04-14 17:18:30 +00:00
Sander van Grieken
1ac885ea40
qml: add android permission methods in AppController
2025-04-03 12:37:17 +02:00
Sander van Grieken
4a072a45b1
android: add POST_NOTIFICATIONS permission
2025-03-28 15:53:13 +01:00
SomberNight
a3fc43cc2d
qml: remove dependency "Pillow" (and its transitive deps)
...
closes https://github.com/spesmilo/electrum/issues/9572
2025-02-20 18:53:08 +00:00
Sander van Grieken
f89fd96e22
android: exclude unused plugins
2024-10-23 16:08:55 +02:00
SomberNight
fdc8430d40
bump libsecp256k1 version (0.5.0->0.5.1)
2024-10-18 14:47:15 +00:00