Mycelium Review WIP

Below Containerfile will build latest commit: (which currently at time of writing this it's the 3.8.9.0 version)

Build with: podman build --rm -t mycelium_build_apk . APK file at: /home/appuser/app/mycelium/wallet-android/mbw/build/outputs/apk/prodnet/release/mbw-prodnet-release.apk

FROM frolvlad/alpine-glibc

RUN set -ex; \
    apk update; \
    apk add --no-cache \
        git \
        openjdk8; \
    adduser -D appuser;

USER appuser

ENV ANDROID_SDK_ROOT="/home/appuser/app/sdk" \
    ANDROID_HOME="/home/appuser/app/sdk"

RUN set -ex; \
    mkdir -p "/home/appuser/app/sdk/licenses" "/home/appuser/app/mycelium/"; \
    printf "\n24333f8a63b6825ea9c5514f83c2829b004d1fee" > "/home/appuser/app/sdk/licenses/android-sdk-license"; \
    cd "/home/appuser/app/mycelium/"; \
    git clone --depth 1 https://github.com/mycelium-com/wallet-android; \
    cd wallet-android; \
    git clone --depth 1 https://github.com/mycelium-com/wallet-android-modularization-tools.git; \
    git submodule update --init --recursive; \
    ./gradlew clean :mbw:assProdRel

But the result is not reproducible (diffs in classes*.dex files), the instructions require using disorderfs for reproducible-builds, will try it later with above alpine container and maybe also new one based on debian/ubuntu, thus WIP, will edit later.

Also opened issues in repo:

"Use /bin/sh instead of /bin/bash when possible" - https://github.com/mycelium-com/wallet-android/issues/597 which not affected the compilation as it's worked without bash installed.

"Broken link to direct APK download in README" - https://github.com/mycelium-com/wallet-android/issues/598 APK download link is broken

"Building instructions contain old versions" - https://github.com/mycelium-com/wallet-android/issues/599

"Publish apksigner output" - https://github.com/mycelium-com/wallet-android/issues/600 To verify the downloaded APK signature.

"Website shows older version for google-play & direct download" - https://github.com/mycelium-com/wallet-android/issues/601

Assignee Loading
Time tracking Loading