Skip to content

Tags: disini/Podroid

Tags

v1.1.3

Toggle v1.1.3's commit message
build: add --no-cache flag for QEMU rebuild, add GitHub issue templates

- Add --no-cache to docker build to force rebuild QEMU from scratch
- Fix version detection to explain QEMU calendar versioning
- Add bug_report and feature_request issue templates

testing

Toggle testing's commit message
build: add --no-cache flag for QEMU rebuild, add GitHub issue templates

- Add --no-cache to docker build to force rebuild QEMU from scratch
- Fix version detection to explain QEMU calendar versioning
- Add bug_report and feature_request issue templates

v1.1.2

Toggle v1.1.2's commit message
v1.1.2: fix wakelock race, Android 14+ crash, nav back handler, updat…

…e check rate limit

- PodroidService: fix StateFlow replay releasing wakelock immediately (seenActive guard)
- PodroidService: add VmState.Error to cleanup; use ServiceCompat.startForeground for Android 14+
- PodroidQemu: remove Thread.sleep(500); add qmp.sock cleanup; socket timeout throws exception
- HomeViewModel: replace delay(2000) with await terminal state for reliable restart
- NavGraph: fix popBackStack warning when navigating back
- MainActivity: add Surface wrapper to prevent background flash on navigation
- UpdateRepository: check GitHub API max once per 24 hours to avoid rate limiting
- Bump version to 1.1.2

v1.1.1

Toggle v1.1.1's commit message
feat: move notification permission request to after setup wizard

- Remove permission request from MainActivity.onCreate()
- Add permission request in SetupScreen when setup completes
- Previously the permission popup appeared at app start, which is
  annoying during the setup wizard. Now it appears after the user
  clicks 'Get Started' and completes setup.

v1.1.0

Toggle v1.1.0's commit message
Bump version to 1.1.0

v1.0.9

Toggle v1.0.9's commit message
Release v1.0.9 with QEMU 11 builder and setup storage toggle

v1.0.8

Toggle v1.0.8's commit message
Bump to v1.0.8: Android 8+ support and lint cleanup

- Lower minSdk from 34 to 26 (Android 8.0+)
- Guard API 30+ calls (isExternalStorageManager) and API 33+ calls
  (POST_NOTIFICATIONS, STOP_FOREGROUND_REMOVE) with version checks
- Add VIBRATE permission for terminal bell haptic feedback
- Remove dead code: unreachable ctrl+codePoint branch in TerminalViewModel
- Suppress StaticFieldLeak false positive on terminalView (nulled in onCleared)
- Suppress WakelockTimeout: VM must run indefinitely, timeout would kill it
- Remove redundant android:label from activity manifest entry
- Delete unused template resources (colors, strings, ic_refresh drawable)
- Update README: Android 8.0+ requirement

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

v1.0.7

Toggle v1.0.7's commit message
Bump version to 1.0.7 with QEMU 11 rebuild, perf improvements, and se…

…rver hosting

QEMU:
- Rebuild QEMU 11.0.0-rc2 for Android ARM64 with virtfs, SLIRP, KVM, TCG
- Add Dockerfile.qemu and build-qemu-android.sh to repo
- Fix shm_open/shm_unlink linking via memfd_create stub (NDK stubs omit these)
- Fix libslirp soname: patch libslirp.so.0 → libslirp.so for Android linker
- Add full keymap set from new QEMU build

Performance (TCG, no root/KVM needed):
- GICv3 interrupt controller (fewer vCPU exits than GICv2)
- MTTCG tb-size=256 (cap JIT cache at 256MB, default 1GB thrashes mobile RAM)
- virtio-blk cache=writeback + aio=threads (host page cache for disk I/O)
- virtio-blk num-queues=cpus (parallel I/O queues with MTTCG)
- virtio-rng from /dev/urandom (prevents entropy stalls in containers)
- SLIRP ipv6=off (removes unused IPv6 processing overhead)

Features:
- Downloads folder shared into VM at /mnt/downloads via virtio-9p
- UDP port forwarding support (TCP / UDP / TCP+UDP selector in dialog)
- Service presets: Pi-hole, Nginx, Gitea, Grafana one-tap port setup
- Phone LAN IP shown in port forwarding section
- Pi-hole DNS mapped to host :5300 (Android blocks apps from binding <1024)

Bug fixes / code quality:
- PodroidService: SupervisorJob so notification failure can't kill VM launch
- UpdateRepository: explicitly disconnect HttpURLConnection
- PodroidApplication: skip asset re-extraction if size matches (avoid copying
  large kernel/initrd on every app launch); fixed openFd fallback for compressed
  assets; removed redundant hardcoded 2GB storage creation

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

v1.0.6

Toggle v1.0.6's commit message
Bump version to 1.0.6 with notifications, storage permission, and boo…

…t fixes

- Add POST_NOTIFICATIONS permission and runtime request
- Add MANAGE_EXTERNAL_STORAGE permission for future Downloads sharing
- Request storage permission on launch
- Fix update checker falsely triggering on debug builds (strip -debug suffix)
- Update QEMU version string to 11.0.0-rc2 in Settings
- Load kernel modules for 9p in init (prep for Downloads sharing)

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

v1.0.5.1

Toggle v1.0.5.1's commit message
Fix boot stage stuck at Almost ready after VM is ready

The MOTD fits in a single read buffer, so "internet " and "podman run"
arrive in the same chunk. The when block matched "internet " first and
never reached "podman run". Fixed by checking the Ready condition first.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>