New app: L×Box

Required

  • The app complies with the inclusion criteria

  • The original app author has been notified (and does not oppose the inclusion)

  • All related fdroiddata and RFP issues have been referenced in this merge request

  • Builds with fdroid build and all pipelines pass

  • There is an issue tracker and contact info of the author so that we can report bugs and contact the author.

  • The upstream app source code repo contains the app metadata (summary/description/images/changelog/etc) in a Fastlane or Triple-T folder structure
  • Releases are tagged and auto update is enabled

Suggested

  • External repos are added as git submodules instead of srclibs

  • Enable Reproducible Builds

  • Multiple apks for native code


Closes rfp#4218


L×Box (com.leadaxe.lxbox) — a VPN and proxy client for Android. I am the author.

The app is a client only: the user supplies the servers. There is no account, no telemetry, no analytics and no bundled server list.

Building the core from source

libbox.aar is built from source.

Two edits are applied to the core's cmd/internal/build_libbox/main.go first:

sed -i -e 's/^\tcheckJavaVersion()$//' -e '/\/\/ Build legacy variant/,/}, bindTarget)/d'
  • checkJavaVersion() — an upstream gate requiring JDK 17, which cannot be satisfied on Debian trixie: it ships JDK 21 and has no openjdk-17 package.
  • the legacy variant — gomobile needs a separate SDK platform for the second AAR (API 21), and only the API 24 one is used.

Version codes

Fixed: versionCode is now derived from the version name, not from the commit count.

((major * 10000 + minor * 100 + patch) * 100 + PRE) * 10 + ABI

2.20.12 arm64 gives 22012502.

Reproducible builds

All three ABIs are verified against the release APKs. binary: per entry and AllowedAPKSigningKeys are declared.

Status

Green on my fork: pipeline — all three ABIs built and verified.

ABI versionCode size
armeabi-v7a 22012501 38.9 MB
arm64-v8a 22012502 39.1 MB
x86_64 22012504 41.1 MB

The three entries take ~2h45m in one job — libcronet.a is built from source, ~45 min per ABI.

Edited by Alexander Shulman

Merge request reports

Loading
Loading