Skip to content

v1.11.1

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Aug 21:06
· 38 commits to main since this release
2b87d46

Summary

Highlights

Critical fix release for the file/storage tools: android_list_files now actually filters by the path you pass on built-in locations, and the camera roll — previously unreachable — is exposed through a new Camera (DCIM) location, along with a new Recordings location for voice recordings.

  • list_files path filtering fixed — on built-in locations the path parameter was effectively ignored (any single-folder path returned the same root listing), making folder navigation impossible (PR #157).
  • Camera roll reachable — new builtin:dcim ("Camera (DCIM)") location exposes camera photos and videos; builtin:pictures now also includes videos stored under Pictures/ (PR #157).
  • Voice recordings reachable — new builtin:recordings location covers the Recordings/ directory, which builtin:music (scoped to Music/) could not see (PR #158).

🐛 Fixes

Both issues were introduced by an earlier reorganization of the storage layer and went unnoticed until reported against v1.11.0:

  • android_list_files used a broken directory filter on built-in locations (PR #157, #154) — the reorganization reused a file-path helper (which drops the last segment to get a file's parent directory) for directory listings, so path="Camera", path="Screenshots", etc. all returned the identical root listing, mislabeled as the requested folder. The filter now keeps every segment and escapes SQL LIKE wildcards (%, _, \), so folder names containing those characters can't distort results.
  • Camera roll (DCIM/Camera) was structurally invisible (PR #157, #155) — the reorganized built-in locations were each backed by a single MediaStore collection scoped to one top-level directory, so DCIM/ content had no location at all and camera videos under Pictures/ were filtered out. Built-in locations are now backed by all the collections whose content can live in their directory.

✨ Improvements

  • New builtin:dcim — "Camera (DCIM)" (PR #157) — lists, reads and serves camera photos and videos; with READ_MEDIA_IMAGES / READ_MEDIA_VIDEO granted it shows the full camera roll.
  • New builtin:recordings — "Recordings" (PR #158, #156) — lists, reads and (when write is enabled) accepts audio files in the Recordings/ directory (Android 12+ standard directory for voice recordings).
  • Per-type access shown in location names (PR #157) — built-in location names now reflect the actual grant state per media type: "All files", "Only owned files", or an explicit partial state like "Pictures - All images, owned videos". The settings grant button requests all missing READ_MEDIA_* permissions of a location in one tap.
  • Uniform MIME validation on writes (PR #157, #158) — writing, file-URI creation and URL downloads through built-in locations validate the file type against what the location accepts before any insert or network I/O, and reject mismatches with a clear error listing the accepted types (e.g. no text files into builtin:pictures, no video into builtin:recordings).

What's Changed

  • Plan 61: Fix list_files path filtering and make the camera roll reachable (DCIM) by @danielealbano in #157
  • Plan 62: Add builtin:recordings storage location by @danielealbano in #158

Full Changelog: v1.11.0...v1.11.1


Requirements

  • Android 13 or newer (API 33+) is required. On older Android versions the install fails with "There was a problem parsing the package." This includes emulators running older Android images — for example BlueStacks 5, whose device profiles top out at Android 11, cannot run this app.
  • Privacy Mode's model-backed categories (names, addresses, national IDs) require a one-time ~154 MB model download; the other categories work without it.