Skip to content

Releases: appdevforall/KnowledgeToGo

v0.5.0-beta

v0.5.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Jul 07:34

K2Go v0.5.0-beta

Pre-release (beta) for testing. APKs are attached below.

Highlights

  • Final Knowledge To Go branding: launcher icon, splash logo, intro animation, content-page name and Code on the Go brand mark.
  • In-app help: new three-tier long-press tooltips wired across the app, plus module lists on each install edition and the section renamed to Easy Installation.
  • Massive localization push: app UI, content page, dashboard, and tooltips brought to the full 33-language set.
  • Reliability: crash-report wiring, and fixes to install/terminal/Kiwix flows (including the Kiwix "Wipe Cache → Select" crash).
  • Big refactor of MainActivity into focused controllers (Share, Receive, Terminal, Server, OTA, arch-check).

New features

  • Portal: download APKs served by the box (code module) — ADFA-4512 (#117)
  • Three-tier in-APK help — tiers 1 & 2 tooltip mechanism (scaffold) — ADFA-4593 (#151)
  • Wire three-tier help to all native controls — ADFA-4593 (#152)
  • Version footer — three-gesture scheme (tap = updates, long-press…) — ADFA-4595 (#161)
  • Draggable feedback FAB on all tabs, with screenshot capture — ADFA-4538 (#166)
  • LocalOnlyHotspot fallback for SIM-less hotspot — ADFA-4520 (#139)
  • Install editions now show a tier-2 tooltip listing their modules; section renamed to Easy Installation — ADFA-4665 (#189)
  • Upstream patch staging mechanism, wired into iiab-android — ADFA-4664 (#188)

UI, branding & UX

  • Final K2Go launcher icon (replaces placeholder) — ADFA-4609 (#167)
  • Introduction animation (Aurora + logo draw-on + wordmark) — ADFA-4609 (#170)
  • Use the Knowledge To Go logo on the splash and remove the gradient — ADFA-4626 (#179)
  • Content page: product name + Code on the Go brand mark — ADFA-4619 / ADFA-4620 (#180)
  • Content page: subtitle reworded to "powered by Internet-in-a-Box" — ADFA-4619 (#186)
  • BrandDialog component + branded dialog theme — ADFA-4638 (#178)
  • Adopt Atkinson Hyperlegible as the app font (CoGo alignment) — ADFA-4651 (#181)
  • Rework the Usage server-log console for real terminal-style scrolling — ADFA-4640 (#176)
  • Standardize Snackbars on reading-time duration — ADFA-4579 (#145)
  • "Show Wi-Fi QR" button — half-width, left, purple — ADFA-4520 (#147)
  • Match the custom-DNS button to the Show Wi-Fi QR button (#175)
  • Change launch button text to "Install selected" (#185)

Localization & in-app help

  • Externalize hardcoded user-facing strings — ADFA-4537 (#156)
  • App UI language: add German (Track A, wave 1) — ADFA-4537 (#164)
  • Expose app languages in the system per-app language picker — ADFA-4537 (#168)
  • Sort the app-language picker A–Z by English name — ADFA-4537 (#169)
  • Content page translations for the full language set — ADFA-4537 (#182)
  • Dashboard translations for the full language set — ADFA-4537 (#183)
  • Tooltip help translations (it/zh/ko/nl/tr) — ADFA-4537 (#163)
  • Translate install_btn_launch to match "Install selected" — ADFA-4655 (#187)
  • Three-tier help: content + localization (concludes 4593) — ADFA-4593 (#153)
  • Debug-only placeholder tooltip for wired-but-empty controls — ADFA-4593 (#154)
  • Help mechanism fixes (LOHS wiring + smart tooltip placement) — ADFA-4593 (#155)
  • Wire Internet-access and Developer-mode status LEDs to help — ADFA-4593 (#158)
  • Anchor Internet/Developer-mode tooltips to the whole column — ADFA-4593 (#159)
  • Wire per-row backup Export/Delete buttons to help — ADFA-4593 (#160)

Dashboard

  • Maps Extractor — ui_bounds parsing + tolerance — ADFA-4511 (#113)
  • Localization parity with the app (6 locales) — ADFA-4516 (#114)
  • Non-Latin text rendering + nav accessibility — ADFA-4518 (#116)

Sharing & sync

  • Carve arch-check into ArchCheckController — ADFA-4506 (#126)
  • Carve the Share area into ShareController — ADFA-4506 (#127)
  • Carve the Receive flow into ReceiveController — ADFA-4506 (#128)
  • Name the shared APK K2Go-<version>-<arch>.apk (drop "-Latest") — ADFA-4540 (#129)

Fixes

  • Fix theme-toggle Snackbar crash on the Install screen — ADFA-4519 (#118)
  • Module grid shows in-flight installs honestly across recreation — ADFA-4519 (#119)
  • Block install-queue re-entry across recreation (stop concurrent installs) — ADFA-4519 (#120)
  • Guard against empty clipboard paste into the terminal — ADFA-4519 (#121)
  • Surface tar's real failure cause on extraction — ADFA-4544 (#133)
  • Stop must kill the rsync daemon's per-connection children — ADFA-4539 (#131)
  • Block the server toggle during a rootfs/module install — ADFA-4621 (#172)
  • Fix Calibre-Web install by its role name, not its variable base — ADFA-4629 (#173)
  • Provision resolv.conf at terminal login so the terminal has DNS — ADFA-4630 (#174)
  • Module-grid selection survives recreation — ADFA-4476 (#115)
  • Fix content page header overlap in landscape — ADFA-4619 (#184)
  • Fix NPE crash and empty-dialog trap in Kiwix settings (Wipe Cache → Select) — ADFA-4658 (#190)

Analytics, feedback & crash reporting

  • Operational events to Firebase — Phase 1 (online) (#125)
  • Operational events — Phase 2 (onboarding, feedback…) (#130)
  • Wire GlitchTip (Sentry SDK) crash reporting (DSN-only, consented) — ADFA-4533 (#165)

Refactors & cleanup

  • Route scratch reset through InstallService — ADFA-4476 (#122)
  • Route the per-module install queue through InstallService (#123)
  • Animate the module-management install button like the others — ADFA-4476 (#124)
  • Remove dead VpnService scaffolding (keep the live proxy) — ADFA-4552 (#135)
  • Remove the dead SOCKS-proxy transport; always serve localhost — ADFA-4553 (#136)
  • Remove the dead tunnel/enable/SOCKS Java — ADFA-4553 (#137)
  • Remove the tunnel/SOCKS layout, strings and colors — ADFA-4553 (#138)
  • Remove residual hidden tunnel/VPN UI and prefs — ADFA-4553 (#141)
  • Carve the OTA self-updater into UpdateController — ADFA-4576 (#140)
  • Carve the terminal out of MainActivity into TerminalController — ADFA-4577 (#142)
  • App-level observable ServerState + repository — ADFA-4578 (#143)
  • Observe ServerState...
Read more

Static binaries [binaries-2026-07-05_05-38]

Choose a tag to compare

@github-actions github-actions released this 05 Jul 05:38
e07b6aa

Automated rolling build of static PRoot and utilities. Passed the native-binary contract/smoke gate (ADFA-4465).

v0.4.1-beta

v0.4.1-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jul 09:39

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 --split by 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

@luisguzman-adfa

Full Changelog: v0.4.0-beta...v0.4.1-beta

Static binaries [binaries-2026-06-29_08-12]

Choose a tag to compare

@github-actions github-actions released this 29 Jun 08:12
a928a4d

Automated rolling build of static PRoot and utilities. Passed the native-binary contract/smoke gate (ADFA-4465).

v0.4.0-beta

v0.4.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Jun 11:24
507f961

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: DeployFragment carved 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-android proot-safe — deterministic chroot/reboot handling (#22)
  • Inject resolv.conf + hosts on fast-install and restore — no-DNS fix (#25)
  • Bind writable /dev/shm for Ansible multiprocessing (#49) + detect failed runrole, stop false "installed" (#50)
  • Clone installer repo into explicit iiab-android target 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

  • DNS Clean-Architecture slice + single injection point (#26)
  • Restore DNS Setup UI (#60)

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 xz fully static (-all-static at link) (#77); restore autoreconf -fi so 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 via RootfsViewModel (#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

Full Changelog: v0.3.7-beta...v0.4.0-beta

Static binaries [binaries-2026-06-26_10-25]

Choose a tag to compare

@github-actions github-actions released this 26 Jun 10:25
dde3c0b

Automated rolling build of static PRoot and utilities. Passed the native-binary contract/smoke gate (ADFA-4465).

v0.3.7-beta

v0.3.7-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Jun 16:02

v0.3.6.3-beta

v0.3.6.3-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jun 20:37

What's Changed

Full Changelog: binaries-2026-06-07_05-52...v0.3.6.3-beta