Add AFC (Apple File Conduit) KIO worker
It uses libimobiledevice to provide file system access to iOS devices.
Inaccessible/untrusted device found when on afc:/
What works:
- Listing plugged in iOS devices
- Internal state also tracks adding/removal, also refreshing
afc:/
overview reloads device list as there appears to be no signal for "device is now trusted" - Listing directories, file birthtime/mtime, size
- Opening files (both small ones and large ones where it does multiple reads), even seamlessly through kiofuse
- Creating, editing files, copying onto and off the device
- Creating folders
- Renaming files
- Moving files
- Deleting files and folders (folders also recursively)
- file system free space (shows free space available to the user and might differ from what the device shows in Settings)
What wasn't tested:
- Seeking
- Setting mtime (our call after
put
works so I assumesetModifiedTime
also works) - Truncating
It allows accessing app shared files via "Houearrest API" through a magic "Apps" folder. This is somewhat flaky especially on newer iOS but has become a lot better after I upgraded to neon 22.04.
Edited by Kai Uwe Broulik