Releases: appdevforall/KnowledgeToGo
Release list
Static binaries [binaries-2026-07-05_05-38]
Automated rolling build of static PRoot and utilities. Passed the native-binary contract/smoke gate (ADFA-4465).
v0.4.1-beta
K2Go v0.4.1-beta
Architecture-and-maintenance release after v0.4.0-beta: Share/rsync and install carved to clean architecture (more resilient on Android 12+), new operator feedback + a shared delivery backbone powering anonymous opt-in analytics, in-app language switching, and the finished Node 24 CI migration + branding refresh.
Highlights
- Share/rsync tab moved to clean architecture (pure domain + tests, survives
recreation) with phantom-process resilience on Android 12+. - Install flow rebuilt as observable progress in a foreground service that survives
recreation. - New operator Feedback (form + crash reports, email-first) and a shared offline
delivery backbone that already powers operational, anonymous, opt-in usage
analytics. - App Language selector — switch the app UI language independently of the phone locale.
- Finished the Node 24 CI migration + refreshed K2Go branding in the README.
Share / rsync (ADFA-4492, ADFA-4456)
- Start the rsync daemon off the UI thread + log swallowed errors (#82)
- Extract a pure rsync domain + JVM tests (#93)
- TransportEngine port + ShareConfig adapter (#94)
- NetworkInterfaces + QrCodec + SecretStore (#96)
- Concurrency + lifecycle hardening (#98)
- rsync transfer survives recreation (ViewModel + observable repo) (#99)
- Share/rsync carve: TransferGuard + S16/D17 cleanups (#104)
Sync robustness — phantom process & networking (ADFA-4496)
- Bind the receive to the local network that reaches the peer (#105)
- Detect phantom-process SIGKILL and show an actionable message (#107)
- Informed phantom pre-flight (warn + continue) on start share (#109)
Install & downloads (ADFA-4474, ADFA-4459, ADFA-4473)
- Observable install-progress infrastructure (#87)
- Run the rootfs install in a foreground InstallService (#89)
- Planner selection + projection gauge survive recreation (#90)
- Own download state in a ViewModel, drop statics (#85)
- Scale
aria2c --splitby the meta4 HTTP mirror count (#81)
Operator feedback (ADFA-4294)
- Pure domain slice for operator feedback (#95)
- Settings shell with Setup/Feedback/About (#97)
- Operator Send-feedback form + email transport (#100)
- Crash handler + report preview (operator v1) (#103)
Delivery backbone, analytics & feedback transport (ADFA-4504, ADFA-4466, ADFA-4507)
- Shared offline store-and-forward delivery backbone (#106)
- Consent-gated operational usage analytics on the backbone (#108)
- Flip-ready Worker feedback transport behind a flag (mailto default) (#110)
Localization (ADFA-4304)
- In-app UI language selector (App Language) in Setup (#112)
CI & branding (ADFA-4472, ADFA-4444)
- Bump GitHub Actions to Node 24 (#80); finish the Node 24 migration — artifacts + gcloud auth (#92)
- README: replace the placeholder logo with the K2Go icon (#84); refresh README screenshots (#88); preliminary K2Go launcher icon (interim) (#86)
Docs
- Mark Phase 2 (concurrency) closed (#83)
- Refresh TECH_DEBT_PLAN — ADFA-4474 done (install survives recreation) (#91)
- Share export design overview with Mermaid diagrams (#101); remove SHARE_EXPORT_DESIGN.md (design/diagrams belong on Jira, not the repo) (#102)
- Refresh the tech-debt plan — Share tab (S14) carved + robustness (#111)
Contributors
Full Changelog: v0.4.0-beta...v0.4.1-beta
Static binaries [binaries-2026-06-29_08-12]
Automated rolling build of static PRoot and utilities. Passed the native-binary contract/smoke gate (ADFA-4465).
v0.4.0-beta
K2Go v0.4.0-beta
First release under the Knowledge To Go (K2Go) name, on top of a large
security, reliability and build-integrity pass since v0.3.7-beta.
Highlights
- Rebrand to K2Go across the app: name, launcher icon, splash, dashboard, and README.
- Native binaries hardened:
xz(and the bundle) now built fully static, with a contract/smoke gate that blocks publishing a broken rebuild. - Security sweep: closed command/rsync/ADB injection paths, enforced TLS + download/rootfs integrity, and blocked tar path-traversal.
- Install & proot reliability: DNS on fast-install/restore, writable
/dev/shm, failed-runrole detection, and resume/reentrancy fixes. - Cleaner architecture:
DeployFragmentcarved into focused controllers; off-main-thread polling.
Security & integrity
- Validate sync credentials — close rsync injection (#9)
- Allowlist module names — close command injection (#13)
- Validate ADB shell commands — close arbitrary-shell (#28);
- ADB key sign/verify-only + log-broadcast scope (#10);
- keystore caps restored (#21)
- Verify download integrity + fail-closed on TLS (#12)
- Block tar path-traversal on extraction (#15)
- Rootfs integrity verification
iiab-tree-sha256-v1+ device-backup manifest (#37); - validate rootfs + architecture on backup import/restore (#31)
- OTA updater security & correctness redesign (#30)
Install, proot & reliability
- Make
iiab-androidproot-safe — deterministic chroot/reboot handling (#22) - Inject
resolv.conf+ hosts on fast-install and restore — no-DNS fix (#25) - Bind writable
/dev/shmfor Ansible multiprocessing (#49) + detect failed runrole, stop false "installed" (#50) - Clone installer repo into explicit
iiab-androidtarget dir (#63) - proot process race / resume reentrancy / module selection across tabs (#64, #65, #66);
- safe process handle + reap on kill (#70)
- Drain process output to avoid deadlock / silent failures (#16); proot-safe dashboard copy
cp -a(#29)
Networking / DNS
Features & UX
- Live rootfs sizes + offline-gated projection (#6, #7);
- real device arch on the dashboard (#8)
- Backup import/restore UX — names, progress, spinner, extraction log (#34);
- transparency + spinner fixes (#40, #44)
- In-app OTA update progress dialog + cancel (#32)
- Portal WebView slice + two-finger map gestures (#35)
K2Go branding
- Launcher/monogram icon + custom splash with "powered by App Dev for All" (#41, #54, #55); footer → "Knowledge To Go" (#42)
- Rebrand user-facing strings + terminal banner (#53); K2Go Dashboard (#69)
- README rebrand + logo (#57) and full Spanish translation (#59);
- fork URLs + app display name (#33)
Native binaries & build (supply chain)
- Link
xzfully static (-all-staticat link) (#77); restoreautoreconf -fiso tar/less build on the new image (#72) - Native-binary contract/smoke + static-linkage gate (#74)
- Cache-first + token-fallback native artifact sync (#20); group rootfs tooling under
tools/rootfs-builder/(#78)
🛠️ Under the hood (architecture, theming, CI, docs)
Architecture / refactor: move extra-keys layout into app (#5); carve DeployFragment into:
- Planner (#48),
- Install (#51),
- Reset/Delete (#52),
- ADB/Share (#56),
- Backup (#43) controllers;
off-main-thread dashboard status (#67); sync/adb thread-leak + volatile handle (#73); MainActivity shared executor (#75); rootfs projection viaRootfsViewModel(#7).
Theming: semantic colour tokens + screen migrations
- Dashboard (#14),
- Usage (#17),
- Install/Deploy (#18),
- Share/Sync (#19);
- dark-theme storage-gauge fix (#39).
CI / tooling / lint / docs:
- phase-0 tech-debt guardrails + lint gate (#4, #11);
- skip APK sanity-check on docs/CI-only changes (#23);
- disable then re-enable the hanging fragment lint detector (#36, #58);
- MissingTranslation as a hard error + backfill (#61);
build-iiab-rootfs.sh(#24);- tech-debt + naming-convention docs (#38, #47, #62);
- pin firebase-tools standalone (#71).
Contributors
- @hal-eisen-adfa — first contribution (#71)
- @luisguzman-adfa
Full Changelog: v0.3.7-beta...v0.4.0-beta
Static binaries [binaries-2026-06-26_10-25]
Automated rolling build of static PRoot and utilities. Passed the native-binary contract/smoke gate (ADFA-4465).
v0.3.7-beta
Full Changelog: binaries-2026-06-10_17-17...v0.3.7-beta
Full Changelog: binaries-2026-06-10_17-17...v0.3.7-beta
v0.3.6.3-beta
What's Changed
- [android] improve finish task and exit capabilities. by @luisguzman-adfa in #3
Full Changelog: binaries-2026-06-07_05-52...v0.3.6.3-beta