A packaged Flutter SDK for Android/Termux ARM64 with APK builds, Linux desktop builds, and hot reload.
flutter build apk β
| flutter build linux β
| flutter run + Hot Reload β
| installable .deb β
δΈζ | English
π΄ Forked from mumumusuc/termux-flutter
- What this is
- Current release and validation
- Quick install
- Create a project and build an APK
- Linux desktop / Termux:X11
- Build the
.debyourself - CI/CD and release validation
- Documentation map
- Limitations and notes
Flutter's ARM64 target support does not mean the official SDK can be used as an Android/Termux host SDK. Termux uses Android bionic, Android linker paths, and a different toolchain layout; the official Linux SDK assumes a glibc host.
This repository packages a Flutter SDK for Termux ARM64:
- Cross-compiles Flutter Engine, Dart runtime, and required host tools from WSL/Linux.
- Assembles an installable
flutter_3.44.0_aarch64.debpackage for Termux. - Runs
post_install.shto patch Flutter Tools, the Gradle plugin, NDK/build-tools wrappers, Android SDK constraints, and Termux shebangs. - Enables
flutter doctor,flutter create,flutter build apk,flutter build linux, and hot reload through Termux:X11.
| Item | Value |
|---|---|
| Flutter | 3.44.0 |
| Dart | 3.12.1 |
| Architecture | aarch64 / arm64-v8a |
| Release asset | flutter_3.44.0_aarch64.deb |
| Size | 666,366,556 bytes |
| SHA256 | b8af08d26ee4ae4b3dcf1aab4ee6b05965529587ddf1bc9b936b48b5f01f9846 |
Last full device validation: 2026-06-01, Samsung SM-X716B / Android 16 / Termux.
| Check | Result |
|---|---|
dpkg -i + post_install.sh |
β |
flutter --version / dart --version / dartvm --version |
β |
flutter doctor -v |
β expected channel/device warnings only |
flutter create --platforms=android,linux |
β |
flutter build apk --release --target-platform android-arm64 |
β |
flutter build linux --release |
β |
| Item | Requirement |
|---|---|
| Device | Android ARM64 / aarch64 |
| Android | Android 11+ recommended |
| App | F-Droid Termux; Termux:X11 for Linux GUI |
| Storage | At least 8GB free space recommended |
pkg update && pkg upgrade -y
pkg install -y curl
curl -L https://raw.githubusercontent.com/ImL1s/termux-flutter-wsl/master/install_flutter_complete.sh -o install_flutter_complete.sh
bash install_flutter_complete.shpkg update && pkg install -y wget
wget https://github.com/ImL1s/termux-flutter-wsl/releases/download/v3.44.0/flutter_3.44.0_aarch64.deb
sha256sum flutter_3.44.0_aarch64.deb
dpkg -i flutter_3.44.0_aarch64.deb
apt --fix-broken install -y
bash $PREFIX/share/flutter/post_install.sh
source ~/.bashrc
flutter --versionDo not install the file if its SHA256 differs from the value in the release table above.
flutter create my_app
cd my_appAndroid builds inside Termux should explicitly use Termux native aapt2 and restrict the APK target to ARM64:
# android/gradle.properties
android.aapt2FromMavenOverride=/data/data/com.termux/files/usr/bin/aapt2// android/app/build.gradle.kts
android {
compileSdk = 34
defaultConfig {
targetSdk = 34
ndk { abiFilters += listOf("arm64-v8a") }
}
}Build the APK:
flutter build apk --release --target-platform android-arm64
post_install.shpatches Flutter Tools defaults for Termux, but keeping the project-level Gradle settings above makes different templates and plugins more predictable.
pkg install -y x11-repo termux-x11-nightly
termux-x11 :0 &
export DISPLAY=:0
flutter create --platforms=linux linux_demo
cd linux_demo
flutter run -d linuxYou can also build only:
flutter build linux --releaseA full build requires WSL/Linux, Android NDK, depot_tools, a Flutter Engine checkout, and usually takes multiple hours.
python3 build.py build_all --arch=arm64Common step-by-step commands:
python3 build.py clone
python3 build.py sync
python3 build.py patch_engine && python3 build.py patch_dart && python3 build.py patch_skia
python3 build.py sysroot --arch=arm64
python3 build.py configure --arch=arm64 --mode=debug
python3 build.py build --arch=arm64 --mode=debug
python3 build.py build_dart --arch=arm64 --mode=debug
python3 build.py debuild --arch=arm64See docs/guides/BUILD_GUIDE.md for the full build process, mode matrix, and troubleshooting.
| Workflow | Trigger | Runner | Purpose |
|---|---|---|---|
CI |
PR / push / manual | GitHub-hosted Ubuntu | Python, Shell, PowerShell, YAML, and package/docs contract sanity |
Build deb |
Manual | self-hosted Linux/WSL | Full Flutter Engine build, .deb packaging, optional release publishing |
Device smoke |
Manual | self-hosted Windows + ADB | Install the deb in Termux, then run doctor/create/APK/Linux smoke tests |
Release check |
Release / manual | GitHub-hosted Ubuntu | Verify release asset name, size, and SHA256 |
See docs/CI_CD.md for runner requirements and local equivalents.
Device smoke requires the tablet to stay awake and unlocked; secure lock screens block ADB text injection into Termux.
termux-flutter-wsl/
βββ .github/workflows/ # GitHub-hosted CI + self-hosted build/device gates
βββ docs/ # Long-form documentation, guides, and release notes
β βββ README.md # Documentation index
β βββ CI_CD.md # CI/CD, runner, and device-lab guide
β βββ guides/ # Install, build, and upgrade guides
β βββ releases/ # Changelog and release notes
βββ scripts/
β βββ ci/ # Lightweight repository contract checks
β βββ device/ # ADB β Termux smoke automation
β βββ install/ # Termux install and post-install patches
β βββ test/ # Release / Termux E2E smoke scripts
βββ patches/3.44.0/ # Flutter Engine / Dart / Skia patches
βββ build.py # Main build CLI
βββ build.toml # Version, NDK, sysroot, and patch configuration
βββ package.yaml # .deb artifact mapping
βββ install_flutter_complete.sh
| Document | Purpose |
|---|---|
docs/README.md |
Full documentation index |
docs/guides/INSTALL_GUIDE.md |
Install flow and Termux runtime prerequisites |
docs/guides/BUILD_GUIDE.md |
WSL/Engine build, packaging, and troubleshooting |
docs/guides/UPGRADE_GUIDE.md |
Checklist for upgrading to a new Flutter release |
docs/CI_CD.md |
CI/CD, self-hosted runners, and device smoke |
docs/releases/CHANGELOG.md |
Version history |
docs/releases/RELEASE_NOTES.md |
Current GitHub release body |
- The supported target is ARM64 / arm64-v8a. 32-bit ARM and x64 Android gen_snapshot builds are out of scope.
- Android APK builds should use
compileSdk = 34/targetSdk = 34to avoid Termuxaapt2compatibility problems with newerandroid.jarfiles. flutter doctorreports custom channel / upstream remote warnings for the packaged SDK. These are expected and do not mean the smoke test failed.ninja flutterdoes not produce a usabledartbinary; source builds must runbuild_dart()separately.- The release
.debis large, so install and firstpost_install.shruns can take time.
- APK build /
aapt2/ compileSdk issues:docs/guides/INSTALL_GUIDE.md - Engine / Dart / Skia patch or WSL build issues:
docs/guides/BUILD_GUIDE.md - CI/CD, release assets, and device smoke:
docs/CI_CD.md - Upgrading Flutter versions:
docs/guides/UPGRADE_GUIDE.md
- Original project:
mumumusuc/termux-flutter - Termux community for the Android userspace, packages, and X11 ecosystem
- Flutter / Dart / Skia / Chromium Engine upstreams
This project is licensed under GPL-3.0.

