Skip to content

app: add variant-compatible APK transport - #29

Merged
lfdevs merged 4 commits into
termuxfrom
dev/app/add-compatible-version
Aug 12, 2026
Merged

app: add variant-compatible APK transport#29
lfdevs merged 4 commits into
termuxfrom
dev/app/add-compatible-version

Conversation

@lfdevs

@lfdevs lfdevs commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fix Question about F-Droid release compatibility #21.
  • Add a compatible APK flavor that does not use sharedUserId.
  • Add the Termux-side anland-compatible Binder bridge.
  • Pass the daemon socket fd from the Termux UID to the compatible APK through Binder.
  • Build both standard and compatible APKs in local scripts and GitHub Actions.
  • Update English and Chinese user/developer documentation.

Compatibility

The standard APK continues to use sharedUserId for GitHub Termux.

The compatible APK uses the Termux:X11-style transport: anland-compatible connects to the daemon socket under the Termux UID, keeps the connection open, and transfers duplicated descriptors to the APK through Binder.

Both variants use the same application ID, versionCode, and app/testkey_untrusted.jks signing key. The compatible variant appends -compatible to versionName and cannot be installed alongside the standard variant.

Artifacts

Examples:

  • AnlandTermux-5.13.2.apk
  • AnlandTermux-5.13.2-compatible.apk
  • AnlandTermux-5.13.2-debug-70d1b85-compatible.apk

Usage

After installing the compatible APK built by this PR and the Termux daemon here, use the following commands to start the Termux daemon and Binder bridge:

pkill -TERM -x anland-compatible
killall anland > /dev/null 2>&1
anland > /dev/null 2>&1 &
anland-compatible &

lfdevs added 2 commits August 10, 2026 03:30
Add standard and compatible transport flavors while keeping the existing shared UID only in the standard manifest. The compatible flavor appends -compatible to versionName and uses the same versionCode and test signing key.

Run the Termux-side CompatibleBridge through app_process, publish its Binder over a package-targeted broadcast, and pass duplicated daemon socket descriptors into the native consumer without an Android-side Unix connect. Preserve the daemon control connection across compatible reconnect attempts.
Install the anland-compatible command from both the local Makefile and the Termux package recipe. The launcher resolves the installed Anland APK with pm, runs CompatibleBridge under the Termux UID via app_process, and accepts the daemon socket path with the existing default as a fallback.

Document the new Termux-side command alongside the daemon.
@lfdevs
lfdevs force-pushed the dev/app/add-compatible-version branch from 7329953 to 5dad6ab Compare August 9, 2026 19:30
Build the standard and compatible debug flavors with separate scripts. Name the compatible artifact with the -compatible suffix while preserving the PR debug and short-SHA prefix generated by the workflow.

Run both flavor builds in GitHub Actions and include bridge, packaging, and build-script changes in pull request path filters.
@lfdevs
lfdevs force-pushed the dev/app/add-compatible-version branch from 5dad6ab to 1cd0843 Compare August 10, 2026 01:59
@lfdevs
lfdevs marked this pull request as ready for review August 10, 2026 05:55
@robertkirkman

Copy link
Copy Markdown

Wow that is awesome good job making and releasing Wayland for Termux, I don't use Wayland personally but that's good to see.

@lfdevs
lfdevs force-pushed the dev/app/add-compatible-version branch from 1cd0843 to 20279a1 Compare August 12, 2026 02:54
Describe when to choose the standard or compatible APK in both English and Chinese documentation. Document the Termux-side bridge startup, Binder descriptor flow, separate artifact names, signing and versionCode invariants, and the PR debug suffix ordering.

Update the project and daemon READMEs to point F-Droid users at the compatible transport instead of requiring the F-Droid signing key.
@lfdevs
lfdevs force-pushed the dev/app/add-compatible-version branch from 20279a1 to 4eeaca5 Compare August 12, 2026 07:19
@lfdevs
lfdevs merged commit 39e4a84 into termux Aug 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Question about F-Droid release compatibility

2 participants