Build app list from worse_query path traversal with name resolution

This commit is contained in:
admin committed 2026-11-12 13:22:35 +08:00
1 parent 176ff30ee5
commit 9bc7b9bcc6
5 files changed
+204 -25

No files matched your search

+14
View File
@@ -33,6 +33,20 @@ source/
- Detail page version/path/date/app-group support.
- Replace the `filza://` prompt with the built-in WQ Files browser.
- Present media through the native `AVPlayerViewController`.
- Build the app list by traversing `/private/var/mobile/Containers/Data/Application` through `worse_query` on every launch. LaunchServices is optional and only used for names and bundle paths.
- Resolve app names from the native LaunchServices API, the bundle `Info.plist`, LaunchServices display names, and finally a prettified bundle ID.
- Rebuild the list after preparation if the first load ran before the container registry was ready.
## 应用列表 / App list
The list no longer requires a readable LaunchServices CSStore:
1. Enumerate app data containers through `wq_enumerate` (MCM / LaunchServices API / full inode scan fallback).
2. Resolve each container's bundle ID from the native API, LaunchServices map, container xattr, metadata plist, or bundle ID resolver.
3. Resolve the display name from the native API, bundle `Info.plist`, LaunchServices display names, or the bundle ID.
4. If the screen loaded before preparation finished, reload it once the registry is ready.
The first full scan on a device where the LaunchServices API and container manager return nothing can take around 30 seconds; the launch progress sheet is shown. Later launches reuse the incremental scan cache.
## 构建要求 / Build requirements