Smart Background Media Service for Mobile
EXIFiler monitors any folder you configure and automatically moves matching photos and videos to a dedicated destination — no manual sorting needed. Originally built for Meta AI Glasses media, it works with any device or camera photos that can be identified by EXIF metadata or embedded file properties.
Available now on Android. iOS support is coming soon.
Features
Automatic Detection
Identifies media files by inspecting EXIF metadata (JPEG) and MP4 box atoms — not just filenames — making it accurate across any source device or app.
Background Service
Runs as a foreground service with persistent notification. Survives device reboots.
Fully Configurable Profiles
Create monitoring profiles: choose any source folder to watch, define file-type and EXIF criteria, and set the destination — all independently configurable.
Activity Log
In-app scrollable log showing the 10 most recent file operations.
Scoped Storage
All file I/O uses ContentResolver/MediaStore with no raw filesystem paths.
Kotlin Multiplatform
Detection logic is shared across platforms via KMP. Android is available today; iOS support is coming soon.
How It Works
Enable the Service
Turn on the background monitoring service with a single toggle.
Configure a Profile
Set up one or more monitoring profiles: pick a source folder to watch, define file-type and EXIF match criteria, and choose a destination folder for each profile.
Automatic Organization
EXIFiler monitors your configured source folder(s) and automatically moves matching files in real-time.
Detection Logic
EXIFiler uses metadata-based detection to identify files rather than relying on filenames. The built-in rules cover Meta AI Glasses media (the original use case), and the architecture is designed to support additional device profiles in the future:
| Format | Metadata Field | Match Condition |
|---|---|---|
| JPEG / JPG | EXIF IFD0 Make tag (0x010F) | equals "Meta" (case-insensitive) |
| MP4 / MOV | udta/©cmt box content | contains "device=Ray-Ban Meta Smart Glasses" |
Requirements — Android
- Android 10+ (API level 29 or higher)
- Access required:
- Read Media Images/Video (Android 13+) or Read External Storage (≤ Android 12)
- Post Notifications (Android 13+)
- Special access: Manage media (optional but recommended for silent deletion on Android 12+; enabled via Settings on supported devices)
Installation — Android
- Download the latest APK from the Releases page
- Install the APK on your Android device
- Grant required permissions when prompted
- Enable the service and configure your monitoring profile(s)
- Done! EXIFiler will now automatically organize your media as it arrives in your configured source folder(s)
Technology
EXIFiler is built with a Kotlin Multiplatform architecture designed for Android and soon iOS:
- Kotlin Multiplatform (KMP) — shared detection logic across platforms
- Jetpack Compose — modern declarative UI
- Coroutines & Flow — reactive state management
- DataStore — type-safe preference storage
- Okio — efficient file I/O and parsing
- Scoped Storage — Android 10+ compliant file access
Open Source
EXIFiler is open source and available on GitHub. Contributions, issues, and feature requests are welcome!
Roadmap
Phase 1: KMP Android ✅
Complete
Phase 2: KMP iOS
Planned
Phase 3: Swift iOS
Planned
Phase 4: Swift Android
Planned