Full-featured Android file manager with root access, archive support, network protocols, cloud storage, built-in editor, and app manager. OLED dark theme. Zero-config.
git clone https://github.com/SysAdminDoc/FileExplorer.git
cd FileExplorer- Open in Android Studio Ladybug (2024.2.1+)
- Sync Gradle
- Run on device or emulator (API 26+)
- Grant All Files Access when prompted
| Feature | Description | Status |
|---|---|---|
| File Browsing | NIO2 backend, breadcrumb nav, grid/list, sort by name/size/date/type | Complete |
| File Operations | Copy, move, delete, rename, create. Foreground service with progress notification | Complete |
| Search | Streaming results via Coroutine Flow, regex support, search history | Complete |
| Bookmarks | Bookmark any directory, persisted in Room DB, accessible from drawer | Complete |
| Recent Files | Track opened files, quick access from drawer | Complete |
| Root Access | libsu 6.0.0, browse /data /system /vendor, SELinux context, chmod/chown, remount | Complete |
| Archives | Browse ZIP/7z/TAR as virtual folders. Extract/create with AES-256 passwords | Complete |
| SMB/CIFS | Windows network shares via smbj 0.13.0 with domain auth | Complete |
| SFTP | SSH file transfer via sshj 0.38.0 with password + private key auth | Complete |
| FTP/FTPS | File transfer via Apache Commons Net 3.11.1 with TLS toggle | Complete |
| WebDAV | HTTP/HTTPS via sardine-android 0.14 with server-side copy/move | Complete |
| Connection Manager | Save, edit, test network connections. Remote file browser | Complete |
| Google Drive | REST API v3. Browse, upload, download, delete, rename, quota display | Complete |
| Dropbox | HTTP API v2. Browse, upload, download, folder operations | Complete |
| OneDrive | Microsoft Graph API. Full file operations, quota tracking | Complete |
| Biometric Lock | Fingerprint/face/device credential via AndroidX Biometric | Complete |
| Encrypted Vault | App-private storage with owner-only permissions | Complete |
| Secure Delete | DoD 5220.22-M 3-pass overwrite before deletion | Complete |
| Checksum Verify | MD5, SHA-1, SHA-256, SHA-512 via java.security.MessageDigest | Complete |
| Text Editor | Built-in editor with syntax highlighting, line numbers, find/replace, undo/redo | Complete |
| App Manager | List all apps, filter user/system/disabled, search, sort, share APK, uninstall | Complete |
┌─────────────────────────────────────────────┐
│ :app │
│ Application, Navigation (8 routes), │
│ Permission flow, MainActivity │
└──────┬──────┬──────┬──────┬──────┬─────────┘
│ │ │ │ │
┌───────────────────┼──────┼──────┼──────┼──────┼───────────────┐
│ │ │ │ │ │ │
┌────────▼──┐ ┌─────▼──┐ ┌─▼────┐ │ ┌────▼──┐ ┌▼─────┐│ ┌──────┐ ┌──▼────┐
│ :feature: │ │:feature│ │:feat: │ │ │:feat: │ │:feat:││ │:feat:│ │:feat: │
│ browser │ │:search │ │transf │ │ │:netw │ │cloud ││ │:edit │ │:apps │
│ │ │ │ │ │ │ │ │ │ ││ │ │ │ │
└──┬──┬─────┘ └───┬────┘ └──┬────┘ │ └──┬────┘ └──┬───┘│ └──┬───┘ └──┬────┘
│ │ │ │ │ │ │ │ │ │
┌──▼──▼─────────────▼────────▼──────▼────▼─────────▼────▼─────▼────────▼──┐
│ Core Layer │
│ :core:data FileRepositoryFactory → Local / Root / Archive │
│ :core:storage PermissionHelper, StorageVolumeHelper, RootHelper │
│ :core:network SMB / SFTP / FTP / WebDAV + ConnectionManager │
│ :core:cloud Google Drive / Dropbox / OneDrive + AccountManager │
│ :core:database Room (bookmarks, recents, history, connections) │
│ :core:model FileItem, SortOrder, TransferTask, ClipboardContent │
│ :core:ui FileIcon, BreadcrumbBar, FileListItem │
│ :core:designsystem OLED dark theme, Material 3 colors │
└─────────────────────────────────────────────────────────────────────────┘
18 Gradle modules. MVVM + Clean Architecture. FileRepositoryFactory routes file operations to the correct backend based on path type and device capabilities.
| Layer | Technology | Version |
|---|---|---|
| Language | Kotlin | 2.1 |
| UI | Jetpack Compose + Material 3 | BOM 2024.12 |
| DI | Hilt | 2.53.1 |
| Async | Kotlin Coroutines + Flow | 1.9.0 |
| Persistence | Room + DataStore | 2.6.1 |
| File I/O | java.nio.file (NIO2) | JDK 17 |
| Root | libsu | 6.0.0 |
| Archives | Apache Commons Compress + zip4j | 1.27.1 / 2.11.5 |
| SMB | smbj | 0.13.0 |
| SFTP | sshj + BouncyCastle | 0.38.0 / 1.78.1 |
| FTP | Apache Commons Net | 3.11.1 |
| WebDAV | sardine-android | 0.14 |
| HTTP | OkHttp | 4.12.0 |
| Security | AndroidX Biometric + Security-Crypto | 1.2.0 / 1.1.0 |
| Images | Coil | 2.7.0 |
| Navigation | Jetpack Navigation Compose | 2.8.5 |
Cloud providers require OAuth configuration. Each is optional and the app works without them.
Google Drive: Create OAuth 2.0 client in Google Cloud Console, add your app's package name and SHA-1 fingerprint.
Dropbox: Register an app at Dropbox App Console, copy the App Key.
OneDrive: Register an app in Azure AD Portal, add Files.ReadWrite.All offline_access scope.
| Setting | Location | Description |
|---|---|---|
| Show hidden files | Settings / Drawer | Toggle visibility of dotfiles |
| Folders first | Settings | Pin folders above files in listings |
| Default view | Settings | List or Grid |
| Sort order | Settings / Top bar | Name, size, date, type |
| Root mode | Drawer toggle | Enable/disable root shell access |
| App lock | Security screen | Biometric requirement on launch |
| Secure delete | Security screen | 3-pass overwrite before deletion |
| Vault | Security screen | Protected private storage area |
Forced OLED dark mode across the entire app.
| Element | Color |
|---|---|
| Background | #0D0D0D |
| Surface | #161616 |
| Primary accent | #00BCD4 (Cyan) |
| Root indicators | #FF9800 (Orange) |
| Error | #CF6679 |
No light theme. No theme toggle.
- Android Studio Ladybug (2024.2.1+)
- Android SDK 35, JDK 17
- Device or emulator running Android 8.0+ (API 26)
- Rooted device for root features (optional)
Q: Why does it need All Files Access?
A: Android requires MANAGE_EXTERNAL_STORAGE to browse outside app-specific directories. Without it, you can only see your own app's files.
Q: Is root required? A: No. Root features are optional and auto-detected. The app works as a standard file manager without root.
Q: Which archive formats are supported? A: ZIP (with AES-256 encryption), 7z, TAR, GZ, BZ2, XZ, and Zstandard. Archives can be browsed as virtual folders without extracting.
Q: Are my cloud credentials stored securely? A: OAuth tokens are managed in memory. For production, integrate Android Keystore encryption for persistent token storage.
Issues and PRs welcome. This project follows the "maximum feature density" philosophy — if it belongs in a file manager, it should be here.