A file manager for Android that exposes Android/data/, Android/obb/, and other restricted directories hidden since Android 11.
Not available on Google Play. Distributed as a sideloaded APK only.
- Browse
Android/data/,Android/obb/, and all internal storage folders - Multi-select files and folders
- Copy or move selected items to
Downloads - Works on Android 9 through Android 14+ (API 28–35+)
- Progress reporting for long copy/move operations
- Cancellable operations
Android 11+ blocks direct File API access to Android/data. This app uses a tiered approach per API level:
| Android Version | API | Method |
|---|---|---|
| Android 9–10 | 28–29 | File API + READ/WRITE_EXTERNAL_STORAGE |
| Android 11–13 | 30–33 | MANAGE_EXTERNAL_STORAGE ("All files access") |
| Android 14+ | 34+ | Shizuku — privileged shell via libshizuku.so (uid 2000) |
Standard storage permissions. No extra tools needed.
- Install the APK — download from Releases and enable "Install from unknown sources" in Settings → Security.
- Launch the app.
- A permission dialog appears — tap Allow to grant
READ_EXTERNAL_STORAGE. - Done.
Android/data/is accessible directly via theFileAPI.
Android 10 note: The app uses
requestLegacyExternalStorage, so scoped storage restrictions do not apply.
Requires
MANAGE_EXTERNAL_STORAGE— the "All files access" special permission.
- Install the APK — download from Releases.
- Launch the app.
- The app will show a dialog explaining why the permission is needed. Tap Open Settings.
- Android opens Settings → Special app access → All files access. Find AndroidFolderExplorer and toggle it ON.
- Return to the app (press Back or use the Recent Apps button).
- The app reloads the current directory automatically.
Android/data/andAndroid/obb/are now fully accessible.
MANAGE_EXTERNAL_STORAGEalone cannot enumerateAndroid/datasubfolders on these versions. Shizuku is required — a privileged shell bridge that runs without root.
Install from any source:
| Source | Link |
|---|---|
| Google Play | play.google.com |
| F-Droid | f-droid.org |
| Official site | shizuku.rikka.app |
Choose one of the methods below. You only need to do this once per boot (or use auto-start via Wireless Debugging — see Method B).
Method A — via ADB (requires a PC once)
-
Enable Developer Options: Settings → About phone → tap Build number 7 times.
-
Enable USB Debugging: Developer Options → USB debugging → ON.
-
Connect phone to PC via USB.
-
On PC, open a terminal:
Windows (PowerShell) — recommended, uses the included script:
.\scripts\start-shizuku.ps1Windows / macOS / Linux — manual:
# Find the path on the device adb shell pm path moe.shizuku.privileged.api # Output: package:/data/app/~~XXXX==/moe.shizuku.privileged.api-YYYY==/base.apk # Replace "base.apk" with "lib/arm64/libshizuku.so" in the path and run it: adb shell /data/app/~~XXXX==/moe.shizuku.privileged.api-YYYY==/lib/arm64/libshizuku.so
The hash segments
~~XXXX==and-YYYY==will be different on every device/install. Copy the exact value frompm pathoutput. -
Open the Shizuku app — status should show Running.
Method B — via Wireless Debugging (no PC needed after first pairing)
Android 11+ only. This allows Shizuku to auto-start on its own using the Wireless ADB subsystem.
- Enable Developer Options (same as above).
- Enable Wireless debugging: Developer Options → Wireless debugging → ON.
- Open the Shizuku app on the device.
- Tap "Pairing via Wireless debugging".
- Follow the on-screen prompts — Shizuku pairs itself automatically.
- Enable "Start on Launch" in Shizuku settings so it restarts after every reboot.
- Launch AndroidFolderExplorer.
- Navigate to
Android/data/— a dialog appears. - Tap Allow on the Shizuku permission prompt.
- Done — full directory access is now active.
Permission is remembered until you uninstall either app.
Pre-built APKs are available on the Releases page.
Latest: AndroidFolderExplorer_v2-release.apk
Requirements:
- Android Studio Ladybug or newer
- JDK 17 (bundled with Android Studio)
- Android SDK 35
# Debug APK
./gradlew assembleDebug
# Release APK (signed with debug keystore)
./gradlew assembleRelease
# Run unit tests
./gradlew test
# Lint
./gradlew lintOutput: app/build/outputs/apk/release/AndroidFolderExplorer_v2-release.apk
The release build uses the Android debug keystore (
~/.android/debug.keystore) for signing. To use a production keystore, updatesigningConfigsinapp/build.gradle.kts.
| Layer | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose + Material 3 |
| Async | Kotlin Coroutines + Flow |
| DI | Hilt |
| Architecture | MVVM + Clean Architecture |
| Build | Gradle KTS |
| Privileged access | Shizuku 12.x (Android 14+) |
| Min SDK | 28 (Android 9) |
| Target SDK | 35 |
app/src/main/java/com/afex/explorer/
├── presentation/
│ ├── browser/ # FileBrowserScreen, FileBrowserViewModel
│ └── permissions/ # Permission rationale UI
├── domain/
│ ├── model/ # FileItem, CopyJob, MoveJob
│ ├── usecase/ # BrowseDirectoryUseCase, CopyFilesUseCase, MoveFilesUseCase
│ └── repository/ # FileRepository (interface)
├── data/
│ ├── repository/ # FileRepositoryImpl — routes to correct access method
│ └── source/ # LocalFileDataSource, SafFileAccess, ShizukuFileAccess
└── di/ # Hilt modules
Data flow: Screen → ViewModel → UseCase → Repository → DataSource
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="moe.shizuku.manager.permission.API_V23" />Стандартные разрешения хранилища. Дополнительные инструменты не нужны.
- Установите APK — скачайте из раздела Releases, предварительно включив "Установка из неизвестных источников" в Настройки → Безопасность.
- Запустите приложение.
- Появится диалог запроса разрешений — нажмите Разрешить для
READ_EXTERNAL_STORAGE. - Готово. Папка
Android/data/доступна напрямую через File API.
Примечание для Android 10: Приложение использует
requestLegacyExternalStorage, поэтому ограничения Scoped Storage не применяются.
Требуется
MANAGE_EXTERNAL_STORAGE— специальное разрешение "Доступ ко всем файлам".
- Установите APK — скачайте из раздела Releases.
- Запустите приложение.
- Приложение покажет диалог с объяснением, зачем нужно разрешение. Нажмите Открыть настройки.
- Android откроет Настройки → Приложения → Специальный доступ → Доступ ко всем файлам. Найдите AndroidFolderExplorer и переключите в положение ВКЛ.
- Вернитесь в приложение (кнопка Назад или Последние приложения).
- Приложение автоматически перезагрузит текущую директорию.
Папки
Android/data/иAndroid/obb/теперь полностью доступны.
На этих версиях
MANAGE_EXTERNAL_STORAGEне позволяет просматривать содержимоеAndroid/data. Требуется Shizuku — привилегированный shell-мост без рута.
Установите из любого источника:
| Источник | Ссылка |
|---|---|
| Google Play | play.google.com |
| F-Droid | f-droid.org |
| Официальный сайт | shizuku.rikka.app |
Выберите один из методов ниже. Это нужно сделать один раз после каждой перезагрузки (или используйте автозапуск через Беспроводную отладку — Метод Б).
Метод А — через ADB (требуется ПК один раз)
-
Включите Параметры разработчика: Настройки → О телефоне → нажимайте Номер сборки 7 раз.
-
Включите Отладку по USB: Параметры разработчика → Отладка по USB → ВКЛ.
-
Подключите телефон к ПК по USB.
-
На ПК откройте терминал:
Windows (PowerShell) — рекомендуется, использует готовый скрипт:
.\scripts\start-shizuku.ps1Windows / macOS / Linux — вручную:
# Найти путь на устройстве adb shell pm path moe.shizuku.privileged.api # Вывод: package:/data/app/~~XXXX==/moe.shizuku.privileged.api-YYYY==/base.apk # Заменить "base.apk" на "lib/arm64/libshizuku.so" и запустить: adb shell /data/app/~~XXXX==/moe.shizuku.privileged.api-YYYY==/lib/arm64/libshizuku.so
Хэш-сегменты
~~XXXX==и-YYYY==уникальны для каждого устройства и установки. Скопируйте точное значение из выводаpm path. -
Откройте приложение Shizuku — статус должен показывать Работает.
Метод Б — через Беспроводную отладку (без ПК после первой настройки)
Только Android 11+. Позволяет Shizuku автоматически запускаться после перезагрузки.
- Включите Параметры разработчика (как описано выше).
- Включите Беспроводную отладку: Параметры разработчика → Беспроводная отладка → ВКЛ.
- Откройте приложение Shizuku на устройстве.
- Нажмите «Сопряжение через беспроводную отладку».
- Следуйте инструкциям на экране — Shizuku выполняет сопряжение автоматически.
- Включите «Запускать при старте» в настройках Shizuku, чтобы служба запускалась после каждой перезагрузки.
- Запустите AndroidFolderExplorer.
- Перейдите в
Android/data/— появится диалог. - Нажмите Разрешить на запросе разрешения Shizuku.
- Готово — полный доступ к директориям активирован.
Разрешение сохраняется до удаления одного из приложений.
This app is intended for personal use and advanced users who want to manage their own device storage. It relies on privileged APIs and cannot be distributed through the Google Play Store.
Copyright 2025-2026
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.