Skip to content

About

Yaru Design file manager for Android

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

 
 

Repository files navigation

Yaru Files (becoming soon)

with Yaru icon theme like on Ubuntu.

Android CI status GitHub release License

An open source Yaru icon design file manager, for Android.

Preview

Features

  • Open source: Lightweight, clean and secure.
  • Yaru icon theme: Follows Yaru Icon theme like on Nautilus or Nemo (file exploreres) on Ubuntu 18.10+.
  • Breadcrumbs: Navigate in the filesystem with ease.
  • Root support: View and manage files with root access (actually availlable only if device is rooted).
  • Archive support: View, extract and create common compressed files.
  • NAS support: View and manage files on FTP, SFTP, SMB and WebDAV servers.
  • Themes: Customizable UI colors, plus night mode with optional true black.
  • Linux-aware: Like Nautilus, knows symbolic links, file permissions and SELinux context.
  • Robust: Uses Linux system calls under the hood, not yet another ls parser.
  • Well-implemented: Built upon the right things, including Java NIO2 File API and LiveData.

Why Yaru Files?

Because I like Yaru Icons, and is styled like Nautilus on Ubuntu.

There are already a handful of powerful file managers, but they aren't using Yaru Icon theme and they are not like the pure Desktop Nautilus on Ubuntu. So I had to fork a not Yaru Icon Theme fileexplorer to conver it my own.

Because I want to fork opensource Android file manager.

Most of the popular and reliable file managers are just closed source, and I sometimes use them to view and modify files that require root access. But deep down inside, I just feel uneasy with giving any closed source app the root access to my device. After all, that means giving literally full access to my device, which stays with me every day and stores my own information, and what apps do with such access merely depends on their good intent.

Because Hai Zhang ( creator of original Material Files ) whant a file manager that is implemented the right way.

  • This app implemented Java NIO2 File API as its backend, instead of inventing a custom model for file information/operations, which often gets coupled with UI logic and grows into a mixture of everything (example). On the contrary, a decoupled backend allows cleaner code (which means less bugs), and easier addition of support for other file systems.

  • This app doesn't use java.io.File or parse the output of ls, but built bindings to Linux syscalls to properly access the file system. java.io.File is an old API missing many features, and just can't handle things like symbolic links correctly, which is the reason why many people rather parse ls instead. However parsing the output ls is not only slow, but also unreliable, which made Cabinet broken on newer Android versions. By virtue of using Linux syscalls, this app is able to be fast and smooth, and handle advanced things like Linux permissions, symbolic links and even SELinux context. It can also handle file names with invalid UTF-8 encoding because paths are not naively stored as Java Strings, which most file managers does and fails during file operation.

  • This app built its frontend upon modern ViewModel and LiveData which enables a clear code structure and support for rotation. It also properly handles things like errors during file operation, file conflicts and foreground/background state.

In a word, this app tries to follow the best practices on Android and do the right thing, while keeping its source code clean and maintainable.

Because I know people can do it right.

Nautilus is a beautifully-designed and user-friendly file manager on Linux desktop, and it's fully Linux-aware. Phonograph is an open source Material Design music player app (which I've been using for years), and it has just the right Material Design and implementation.

So, it's time for yet another Android file manager.

Inclusion in custom ROMs

Thank you if you choose to include Yaru Files in your custom ROM! However since I've received several user complaints due to improper inclusion, I'd like to offer some suggestions on including this app properly for the good of end users:

  • Please don't replace the AOSP DocumentsUI app with this app. This app is not designed to replace DocumentsUI and can't handle a number of functionalities in DocumentsUI - in fact, it relies on DocumentsUI to do things like granting external SD card access.

  • Please make sure this app can be uninstalled or at least disabled. Some users may not want this app like most other apps for a variety of reasons, and get very upset when they can't remove it.

License

Copyright (C) 2018 Hai Zhang
Copyright (C) 2026 Brick-linux-disigner

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
along with this program.  If not, see <https://www.gnu.org/licenses/>.
You should have received a copy of the GNU General Public License

Unchanged icons from [Yaru theme](https://github.com/ubuntu/yaru) , Copyright (C) Ubuntu Community, [Attribution CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
This project is not affiliated or approuved by Canonical Ltd. or the Ubuntu Comunity.
Ubuntu is a registrated mark of Canonical Ltd.
The Yaru Icons are under Creative Commons Attribution-ShareAlike 4.0 licence (CC BY-SA 4.0)
See <https://creativecommons.org/licenses/by-sa/4.0/>.

About

Yaru Design file manager for Android

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages