Tags: disini/Podroid
Tags
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
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.
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]>
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]>
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]>
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]>
PreviousNext