NFile
1.0.43 · GitHub
More about this app
File manager with Android folder access using Shizuku
NFile
A beautiful File Manager application built with Flutter.
Overview
NFile is designed to provide a highly aesthetic file management experience on Android. It features a stunning interface with an exclusive "Broken" icon pack, dynamic AMOLED-friendly dark mode, and a fluid user experience.
With the latest update, NFile transitions from a simple file explorer to a comprehensive media hub with built-in high-performance players and viewers.
Features
- Premium UI/UX: A textured and alpha-blended aesthetic that gives a modern, glassmorphic feel to your file browsing.
- Native Media Indexing: Lightning-fast gallery views for Images, Videos, and Audio using native device indexing. No more slow recursive scans.
- Built-in Media Players:
- High-Performance Video Player: Powered by
media_kitfor smooth playback of high-resolution videos. - Elegant Audio Player: Clean playback interface with album art support and precise seeking.
- Pinch-to-Zoom Image Viewer: View your memories in full detail with smooth gestures.
- High-Performance Video Player: Powered by
- Built-in Text Editor: View and edit
.txt,.md,.json, and other code files directly within the app. - Advanced Sorting: Filter your media by Newest, Oldest, or Date-wise to find what you need instantly.
- Complete File Operations: Easily copy, cut, paste, rename, and delete files or folders.
- Quick Categories: One-tap access to your indexed media libraries.
- Storage Overview: Visual representation of your device's internal storage usage.
- Fluid UI: iOS-style bouncy physics and smooth transitions throughout the app.
Screenshots
Permissions
The application requires the following permissions for full functionality:
MANAGE_EXTERNAL_STORAGE: For seamless file operations across the entire device.READ_MEDIA_IMAGES,READ_MEDIA_VIDEO,READ_MEDIA_AUDIO: For high-speed native media indexing.
Building and Running
- Clone this repository.
- Run
flutter pub getto install dependencies. - Run
flutter runon an Android device (API 21+ required).
Technologies Used
- Flutter & Dart
- State Management:
provider - Media Engine:
media_kit(Video & Audio playback) - Indexing:
photo_manager&on_audio_query - Permissions:
permission_handler - Viewers:
photo_view&open_filex
License
GNU GPL v3 License
How Shizuku is used
Can browse, create, copy, move, rename, delete and open files in restricted folders via `sh -c` through Shizuku.
This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.
How this app uses Shizuku
Shizuku is used to manage files inside restricted folders that normal file access cannot reach, such as app data folders. All operations run as shell commands through Shizuku.
- Browse restricted folders: open and list contents of restricted locations with file details such as type, size and modification time, using the
statshell command through Shizuku. - Delete files and folders: remove files and folders in restricted locations, including moving items to the recycle bin, restoring them and emptying the bin, using the
rmshell command through Shizuku. - Rename, copy and move items: rename items, duplicate them and move them between folders in restricted locations using the
mvandcpshell commands through Shizuku. - Create folders and files: create new folders and empty files in restricted locations using the
mkdirandtouchshell commands through Shizuku. - Open and edit restricted files: open restricted files in viewers or external apps and edit text files by copying them to a temporary location and copying changes back, using the
cpshell command through Shizuku.
Android APIs or commands used
sh -cstatrmmvmkdirtouchcp
Notable details
Regular storage locations work without Shizuku using standard file access. Shizuku is only needed for restricted paths such as Android/data, Android/obb and other protected directories.
Changelog
What's new for version 1.0.43
new update. Here is what is new:
- Added synchronized lyrics support with an interactive layout featuring chronological scrolling and custom tap-to-seek playback (#65).
- Added support for loading
.lrcfiles automatically from the song's directory, with a manual file picker option starting at the primary storage root (#65). - Added a customizable "Double-Press to Exit" option in General & Behavior settings to bypass the app exit confirmation dialog (#65).
- Standardized the selection title header format across Images, Videos, Audio, Documents, Files, Downloads, APKs, and Screenshots to display
selected/totalcounts (e.g., 7/60) without using the word "Selected" (#65). - Added quick categories caching to prevent loading skeleton screens and display media lists immediately on startup.
- Optimized folder scrolling responsiveness and media lookup database query performance.
- Optimized grid layout column scaling for tablet and widescreen displays.
- Fixed a memory leak crash when extracting large zip/archive files.
- Fixed a bug causing duplicate item size and count properties in the media category info panel.
- Fixed drawer header styling/typography constraints in custom dark themes.
- Fixed screenshots loading glitches and cached category sync.
Thank you so much! ❤️
Permissions
21 permissions requested
Sources
3 sources
Sources
3 sources