Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 19:03
· 13 commits to main since this release
5a24bcb

Added

  • VM Suspend Controls for Launch and Attach: Added --no-suspend option to debroid launch and --suspend flag to debroid attach allowing explicit control over whether the VM should be suspended immediately upon connection (#43).

Fixed

  • Exit Code 0 for Informational CLI Flags: Ensured CliRunner exits with status code 0 when invoked with --help, --version, or --schema instead of terminating with code 1 (#60).
  • Support Custom Daemon Port and Clean Up Dead Code: Added --port / -p option and DEBROID_PORT environment variable to DebroidCli root command to allow configuring custom daemon ports, and removed unused dead DebroidCommand class (#61).
  • Clean ADB Port Forwards on Process Termination: Registered a JVM shutdown hook in DaemonServer to ensure active JDI sessions and ADB port forwards are safely cleaned up and un-forwarded when the daemon process is terminated via SIGTERM, Ctrl+C, or killed by the OS (#56).
  • Hang on Detach / Stop & App Freezing: Fixed an issue where debroid detach and debroid stop hung indefinitely when disconnecting from a stepped or suspended target application on Android ART. Event request tracking is now cleared in-memory without sending blocking JDWP delete requests, suspended threads and the target VM are explicitly resumed upon teardown to keep the app responsive, a 15s timeout safeguard is configured on the SocketAttach JDI connector, CLI socket communication timeouts are added, and step execution requests are updated to SUSPEND_ALL with resumeAll() to prevent deadlocks (#65).
  • Hang in Command Runner on Stream Reading: Fixed a potential hang in DefaultCommandRunner where process standard output was read synchronously before checking process timeout, causing CLI execution to block indefinitely if a subprocess stalled without closing its output stream (#55).
  • Threads Command Schema and Type Mismatch: Fixed schema descriptor and response format for debroid threads <session_id>. Replaced numeric status codes and snake_case strings with strongly-typed ThreadInfo and CliThreadInfo models featuring camelCase properties (threadId, threadName, status, isSuspended) and a typed ThreadStatus enum (RUNNING, SLEEPING, WAIT, MONITOR, NOT_STARTED, ZOMBIE, UNKNOWN) (#54).
  • App Startup Breakpoint Catching: Fixed an issue where debroid launch returned before the VM was actually suspended (suspendedThreadsCount: 0), causing Android to finish startup execution before breakpoints could be set. The VM is now suspended immediately upon connection by default (#43).