Skip to content

Barrel 0.1.7

Latest

Choose a tag to compare

@DghostNinja DghostNinja released this 05 Aug 15:56

Added

  • APK Pull — new Pull button beside Uninstall on each package row. Resolves the on-device APK via pm path <pkg>, pulls it with normal adb pull, and falls back to adb exec-out su -c cat writing bytes locally on permission errors (same as the file explorer). Saves via a native save dialog defaulting to <pkg>.apk. All invocations use the app's hide_window-hardened runner, so no cmd popups on Windows.
  • Tool path auto-resolve on detectdetect_tool now unwraps Barrel's ~/.local/bin wrappers and returns the real binary they point to. When a user clicks Detect and Save, the saved tool path is always the canonical tool (e.g. /usr/lib/android-sdk/platform-tools/adb), never a Barrel wrapper. Handles wrapper chains safely.

Fixed

  • Tool wrappers corrupted into infinite self-recursionapply_tool_wrappers and create_adb_wrapper could write a wrapper whose exec target was the wrapper file itself (when a configured tool path pointed at ~/.local/bin/<tool>), which hung every adb/frida/scrcpy call — including Barrel's own device polling. Both writers now detect and skip any target that resolves to the wrapper being written. New regression tests cover the self-reference guard and wrapper unwrapping.
  • Frida download failing with Unexpected end of input — a truncated .xz (interrupted download) surfaced as a cryptic xz error. The download now retries the full download+decompress cycle up to 3 times, curl uses --retry 5 + -C - resume with a 600s budget, truncation is detected at the curl step (transfer closed), and the final error tells the user the byte count and manual download URL.
  • Frida version timeout string used as a version numberfrida --version timing out returned [frida version timed out after 10s] as a "successful" result, which the download flow then embedded into the GitHub URL (curl: (3) bad range in URL). frida_version now rejects timeout/garbage output, and the frontend validates version against /^\d+(\.\d+)*$/ and arch against a known-set regex before downloading.
  • Frida-server not staying running on rooted emulatorsfrida_start_server now starts with the su -c '<server>' & form (outer &, survives adb exit, the command that works on Android Studio emulators), then Magisk-style nohup inside su, then plain shell-user as a last resort — checking pidof between attempts so it stops as soon as the server is up as root.