Skip to content

v1.8.7

Latest

Choose a tag to compare

@Kilowatch Kilowatch released this 16 Aug 11:49
· 3 commits to main since this release

Added

  • Storage Access Framework (SAF) Tree Fallback for Protected Folders — Added Storage Access Framework (DocumentFile / ACTION_OPEN_DOCUMENT_TREE) integration allowing users to grant persistable folder permissions to /Android/data, /Android/obb, or specific app packages without requiring Shizuku.
  • Protected Folder Guidance UI — Replaced the ambiguous generic empty folder state in protected directories (/Android/data and /Android/obb) with an informative guidance banner offering direct 1-tap action buttons to "Enable Elevated Access (Shizuku)" or "Grant Folder Access (SAF)".
  • Properties for Selected Items — Added the "Properties" option to the Tools menu and selection actions whenever one or more items (single folders, multiple files, multiple folders, or mixed selections) are selected across Local and Network Storage. For folders and multi-item selections, recursive folder sizes and contained file/folder counts are calculated asynchronously in the background with live calculation feedback, while the Tags view/edit section is displayed exclusively for single-file selections.
  • Universal "Open With" Support — Added universal "Open with" receiver integration allowing UFM to appear in Android's system chooser across all external applications (such as Gmail, Chrome, WhatsApp, Telegram, and other file managers) for documents (PDF, EPUB, Word, Excel, PowerPoint), media (audio, video, photos, images), plain text/code files, archives (ZIP, 7z, RAR, TAR, GZ), directories, and arbitrary files. Includes transparent stream caching for external cloud/content provider URIs, automatic directory navigation, and bidirectional content provider write-back in the Text Viewer when editing files from external applications.
  • Extract Options Dialog & Multi-Storage FAB Staging — Added a professional glassmorphic Extract Options dialog for Mobile (BottomSheet) and Android TV (centered glass dialog with D-pad focus states) offering three extraction modes: "Extract to Current Folder" (instant extraction into active directory), "Extract to New Folder" (prompts for custom folder name and extracts directly into it), and "Extract & Select Folder" (extracts to temporary staging, activates "Extract Here" FAB with extract icon, allowing navigation across Local, Network shares, and Cloud drives with auto-cleanup upon paste).
  • Compress to Current Folder — Added a "Use current folder" toggle switch (on by default) to the archive compression options dialog on Mobile and Android TV. When enabled, compressing selected files or folders instantly creates the archive directly inside the active directory without requiring destination folder selection. If unchecked, it maintains the existing folder picker workflow to choose custom local or network destinations.
  • "Keep Both" Folder Collision Handling — Improved folder copy and move behavior across Local, Network (SMB, FTP, SFTP, NFS, TV Share), and Cloud Storage (Google Drive, Microsoft OneDrive, Dropbox, AWS S3, iDrive E2, WebDAV, rclone) on Mobile and Android TV. When pasting or moving a folder to a destination where a folder with the same name exists, the conflict dialog is now presented at the folder level. Choosing "Keep Both" auto-increments the target directory name (e.g., Folder (1)) and transfers all source contents into the newly renamed, isolated folder instead of merging. "Overwrite" maintains standard merge behavior, "Skip" skips the entire folder, and "Cancel" cancels the transfer. Supported in both Single-Pane and Dual-Pane (Twin Window) transfer modes.

Fixed

  • Deep Subdirectory Access in Android/data & Android/obb (Elevated Access / Shizuku) — Fixed an issue on Android 11–14 (including Google TV and Android TV boxes) where navigating into 2nd-level subdirectories of app packages (e.g. /Android/data/com.xxx/files or /cache) appeared empty despite Elevated Access being active. ShizukuShellWrapper now dynamically resolves the underlying working mount path via Android's pass-through mount points (/mnt/pass_through/0/emulated/0/, /data/media/0/, /mnt/media_rw/) to bypass MediaProvider's per-package FUSE isolation, and uses resilient shell enumeration to prevent glob expansion failures on empty directories.
  • Fixed a crash on Amazon Appstore builds (mobileAmazon and tvAmazon) when opening the "Support the developer" (Tip Jar) screen caused by internal Amazon Appstore SDK Kiwi assertion errors and missing response null-checks; refactored AmazonBillingManager with process-level listener registration, delegate dispatching, price caching, and Throwable safety guards.
  • Storage Indexer in Android/data — Fixed an issue where folders inside Android/data/com.xx.xx/ displayed missing or empty contents when the Storage Indexer was enabled. Flow collectors now wrap Room indexed items in protected paths as ShizukuFile instances when authorized, preventing standard File.exists() checks on Android 11+ from incorrectly filtering them out. Background directory synchronization and startup deletion reconciliation now query files via Shizuku shell instead of standard Java I/O to preserve valid database records for protected app directories.
  • Favorite Folders in Android/data Navigation — Fixed an issue where opening favorite folders pointing to locations inside Android/data failed to navigate to the target directory. Launching favorites from the home tile grid, custom tiles, and home screen widgets now resolves the underlying storage volume root for EXTRA_MOUNT_PATH while passing the specific directory to EXTRA_INITIAL_PATH, and directory loading guards ensure protected subfolders are accessed and loaded directly via Shizuku without falling back to the storage root.