
File browser, app data manager and cache cleaner for iOS 27 (worse_query, no jailbreak)
WQ Files is a file browser, app data manager and cache cleaner for iOS 26 and 27. "WQ" stands for worse_query, the sandbox technique it is built on. It reaches other apps' and system containers with no jailbreak and no kernel exploit. Tested on iOS 26.7.1, 27.0.1 and 27.2.
iOS 26 (26.0 to 26.7.2): preliminary support since 0.7; tested on 26.7.1. worse_query reaches the app, extension, daemon and app group containers there, but not System Data or the system groups, so WQ Files hides those two and the Cache Cleaner has no crash-log section. A full inode scan would take most of an hour on iOS 26, so App Data, Extension Data and App Groups are listed from the LaunchServices database instead (found once and remembered). Internal Daemons aren't in that database: the first scan for them takes long, later ones only check new files. Apps, backups, restores, clearing app data, the Cache Cleaner and the file browser work as on iOS 27. App icons don't: iOS 26 hands WQ Files only placeholder icons and doesn't let it read other apps' bundles, so apps show symbol tiles.
Containers/Data/Application),
shown with the app's name and icon instead of a UUID./var/containers/Data/System (listing only; its contents
are owned by root).The container parents can't be listed, so App Data, Extension Data and App
Groups come from the LaunchServices database, which lists every installed
app's and extension's containers. It is found once (among the newest files,
usually within seconds) and remembered. Internal Daemons, and the app folders
when the database can't be read, need a scan of every file id (fsgetpath,
the way KAMUI does it): minutes on a well-used device the first time, so WQ
Files asks before it starts and shows a scan window; later scans only check
new files.
tmp is intentionally ephemeral: clear removes it, but app
backups do not include it and restore leaves the current tmp untouched.-wal file, so the app's own files are never
changed; close the app first for an up-to-date copy.App names come from LaunchServices' own database, read from lsd's container (the LaunchServices API itself refuses this app on 27.x). Apple services that only have localized names use a built-in table. Services without an icon get a symbol tile.
Before a regular file is overwritten or deleted, its contents are copied to
Backups inside the app (also reachable in the Files app). Long-press a
backup to restore it to its original location. In the file browser only empty
folders can be deleted; symbolic links are removed as links. Clearing an app's
data and cleaning caches delete without a file-by-file backup; Apps offers to
back up Documents and Library first, while tmp is discarded and cannot be
restored. Close the target app before backup, restore, or clear. App copies are
verified by a source-stability digest, a destination-shape digest and stored
part content hashes (rechecked before restore and rollback), and purge
postconditions are rechecked, but the operations are not filesystem snapshots
if the target app keeps running. Target data is changed only in response to
explicit actions; interrupted safety transactions may be recovered on startup.
File saves retain the original inode and verify descriptor identity and saved contents. Locks are advisory: another app that ignores them can still write concurrently, and in-place writes are not crash-atomic. Close the target app and keep the durable backups. Recovery fails closed when required safety material is missing. Generic overwrite/delete operations on backup-storage files are refused to avoid recursively backing up backups; valid backups can still be restored. App backups live in App Backups (also in the Files app); old ones are never pruned automatically. Tap Select in Backups or App Backups to choose one or more complete backup folders and delete them together; a single folder can still be removed with Delete Backup. Automatic pruning is intentionally left out so a safety copy is never discarded without a user decision.
Editing another app's or the system's files can break things. Keep the backups and only change what you understand.
fsgetpath scan of
the data volume. A missing/denied container parent, an unavailable inode
probe, or an exhausted scan bound is logged as enumerate: … and
app scan: … in Log. The current build only treats a missing parent as
failure; a denied parent and a completion-probe miss still return the
scanned subset, so refresh instead of assuming there are no apps.NO TOKEN: the container path was visible but wq_grant could not
obtain a sandbox token. Common causes are a signer that dropped the App
Group, an app-group cache-swap failure, or a container the app-group query
refuses. See the grant failed/enumerate lines in Log.(no label): a token was obtained, but the container identifier
(com.apple.containermanager.identifier xattr or the container metadata
plist) could not be read. On iOS 27.2 the attribute can't be read at all,
so WQ Files also asks the container manager for a path-to-identifier map
and then looks the container up in the LaunchServices database, which lists
the data container of every app and most extensions. If the identifier is
still missing (for example a system/daemon container with none, or an
extension the database doesn't list), the folder stays browsable but cannot
be backed up or cleared until identity is available.Add this source to get WQ Files and its updates:
https://raw.githubusercontent.com/kolbicz/WQFiles/main/source.json