You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CLI build option to omit embedded terminal assets #2897
With the ongoing work to replace the Alpine terminal environment with Ubuntu (#2699), the embedded terminal rootfs installation payload increases from ~15 MB to roughly ~90 MB. This expands the overall compiled APK artifact size to approximately 113 MB.
For developers working under a capped/metered internet connection, downloading ~113 MB APK artifacts for every incremental test run creates significant bandwidth overhead and friction during testing.
Developer Use Case & Workflow
Fork Testing Workflow: Before opening a Pull Request or pushing updates to an active PR branch, test APKs are compiled via custom GitHub Actions workflows on personal forks to verify feature implementations and bug fixes.
Current CLI Limitations: The standard build task npm run build paid dev apk forcefully bundles the complete embedded rootfs payload into the final APK.
F-Droid Build Workaround Constraints: Although the npm run build paid dev apk fdroid command excludes certain assets, F-Droid builds target legacy Android SDK levels (API 28), making them unsuitable for accurately testing modern Android API behaviors and release builds.
Proposed Solution
Could we introduce an optional CLI flag or environment parameter (e.g., --no-terminal-assets or via utils/storage_manager.mjs) during the build step?
This toggle would skip copying the heavy terminal rootfs package into platforms/android/app/build/outputs/apk/debug/, producing lightweight modern-target APKs specifically optimized for rapid iteration and bandwidth-constrained testing environments.
Key Benefits
Bandwidth Savings: Drastically reduces artifact download sizes from ~113 MB down to a fraction of the size for developers on capped data plans.
Faster CI/CD Iteration: Speeds up workflow execution, artifact packaging, and step summary generation during fork testing.
Targeted Verification: Allows thorough testing of non-terminal app features against modern API targets without carrying the extra ~90 MB terminal payload.
F-Droid Build Workaround Constraints: Although the npm run build paid dev apk fdroid command excludes certain assets, F-Droid builds target legacy Android SDK levels (API 28), making them unsuitable for accurately testing modern Android API behaviors and release builds.
I tried (non-F-Droid build)
I expected Alpine assets to be excluded from this apk, dropping the size to ~25 MB
Does Acode not even rely on Android 10 (or later) features anyway?
F-Droid Build Workaround Constraints: Although the npm run build paid dev apk fdroid command excludes certain assets, F-Droid builds target legacy Android SDK levels (API 28), making them unsuitable for accurately testing modern Android API behaviors and release builds.
I tried (non-F-Droid build)
I expected Alpine assets to be excluded from this apk, dropping the size to ~25 MB
Does Acode not even rely on Android 10 (or later) features anyway?
You are confusing target sdk with android api,
any app can use any android api no matter what target sdk it uses
For example
The all file access permission is a android 11+ api but it works on fdroid version too which uses target sdk 28 (android 8)
Activity
RohitKushvaha01 commentedon Sep 14, 2026
You can use the fdroid version that doesn't include any inbuilt assets
AuDevTist1C commentedon Sep 14, 2026
I tried (non-F-Droid build)
I expected Alpine assets to be excluded from this apk, dropping the size to ~25 MB
Does Acode not even rely on Android 10 (or later) features anyway?
RohitKushvaha01 commentedon Sep 15, 2026
You are confusing target sdk with android api,
any app can use any android api no matter what target sdk it uses
For example
The
all file accesspermission is a android 11+ api but it works on fdroid version too which uses target sdk 28 (android 8)feat(build): add no-terminal flag to omit embedded terminal assets