Skip to content

Explainer

How Android Storage Cleaners Work Under Scoped Storage

What an Android storage cleaner can and cannot reach on modern Android, explained through Full Cleaner permission and content-provider commits.

How Android Storage Cleaners Work Under Scoped Storage preview

Written by the Fulldive product engineering team, based on direct inspection of the repositories listed below.

“Android storage cleaner” is a category that has narrowed a lot over the last five years. On older Android versions, a cleaner could walk the whole shared storage tree, identify caches and leftover files across apps, and delete them. On modern Android, that is no longer true. Scoped storage, per-app cache isolation, and tightened content-provider permissions changed what a cleaner app can legitimately reach.

This post explains how Android storage cleaners actually work today and where the limits are. The engineering examples come from Fulldive’s own Full Cleaner repository (fulldiveVR/FulldiveExtension.JunkRemover, package com.fulldive.extension.cleaner). Full Cleaner is a small, less-actively-maintained app in the Fulldive catalog — its last inspected maintenance commits are from January 2022 — and its history is a useful, honest record of what a cleaner has to negotiate on modern Android.

See also the umbrella Fulldive apps page and the Fulldive extensions explainer for where Full Cleaner sits in the ecosystem.

What “cleaning” actually means on Android

On Android, a storage cleaner typically tries to do some combination of four things:

  1. Delete its own cache and files inside its private app-specific directory. This is always allowed.
  2. Delete files the user picked through the system file picker or Storage Access Framework. Also allowed, with the user in the loop.
  3. Scan shared media (images, audio, video, downloads) via MediaStore and delete items the user confirms.
  4. Reach other apps’ caches, databases, or private files. This is not allowed on modern Android without special system-level privileges that normal apps do not have.

The first three are the realistic surface area for a third-party cleaner. The fourth is the one marketing copy in the “cleaner” category has historically overclaimed, and Android has steadily closed that door.

Scoped storage, briefly

Starting with Android 10 (API 29) and enforced from Android 11 (API 30), Android applies scoped storage to apps that target modern SDK levels. The short version, taken from the Android Developers guidance:

  • Each app has its own app-specific directory that only it can access.
  • Shared media (photos, videos, audio, downloads) is reached through MediaStore, not raw filesystem paths.
  • Broad filesystem access (MANAGE_EXTERNAL_STORAGE) is reserved for apps whose primary, user-facing purpose is file management, and Google Play reviews those apps carefully.
  • Other apps’ private directories are not readable.

That is the environment a cleaner app lives in. It cannot just walk /sdcard and delete “junk.”

Reference: Android Developers — Data and file storage overview and Android Developers — Manage all files on a storage device.

What the Full Cleaner history shows

Full Cleaner’s Fulldive-era commits (2021-2022) are a small, focused sequence of platform-permission work. A few commits make the constraints concrete:

  • fde533f — sets the Fulldive app ID (com.fulldive.extension.cleaner), adds content provider permissions, adds “launch from main app” support, and calls out Android SDK 30 permission issues. SDK 30 is the Android 11 line where scoped storage becomes enforced; the commit is literally a record of “what the app can no longer assume.”
  • 6a42c35 — further work on content provider permissions. Content providers are the Android mechanism by which one app exposes data to another; a cleaner reading shared storage, categorized media, or handing off a cleanup request between the main Fulldive app and the Full Cleaner extension runs through these.
  • bb1523b — adds a permission check from the main app. This is the pattern Fulldive uses to launch an extension from the main app only when the required permissions are actually present, rather than letting the extension fail silently.

None of those commits unlock “delete other apps’ junk.” They are the cost of doing the allowed work correctly on modern Android.

What a cleaner can realistically do

Putting the platform rules and the repository evidence together, a modern Android cleaner can reasonably:

  • Clear its own caches and temporary files.
  • Offer the user a media review flow (images, video, audio, downloads) via MediaStore, so the user can remove items they no longer want. Android’s MediaStore API and the newer photo picker are the supported way to do this.
  • Ask the user to pick folders or files via the Storage Access Framework (SAF) and then operate only on that selection.
  • Surface Android’s own per-app settings so the user can visit “App info” and clear another app’s cache themselves.

Reference: Android Developers — MediaStore and Android Developers — StorageManager for manage-storage intents.

What a cleaner cannot do (without overclaiming)

A normal, non-privileged Android app cannot:

  • Read or delete another app’s private files, databases, or caches.
  • Guarantee a measurable speed boost or battery improvement. Free storage is not the same as RAM; deleting files rarely changes system responsiveness in a noticeable way on a healthy device.
  • “Deep clean” the operating system. Android manages its own caches and will reclaim space automatically when it needs it.
  • Act as a security or malware remover. Storage cleaning is not security.
  • Bypass scoped storage limits unless the app has MANAGE_EXTERNAL_STORAGE and a legitimate file-manager use case Google Play has approved.

This is where a lot of “cleaner” category marketing has gone wrong historically. We would rather be specific about what Full Cleaner’s architecture allows.

Limits

Full Cleaner is a smaller, less-actively-maintained product. Its last inspected maintenance commits (953e73a, 357690e) are from January 2022; the repository contains 538 commits across all refs from 2018-06-19 to 2022-01-10. We have not shipped new Full Cleaner features since then, and on our last map (2026-04-13) the direct Google Play listing URL returned 404. For the current availability and maintenance stance, see Full Cleaner availability and transparency. For newer, actively maintained Fulldive utilities see Wize AdBlock VPN, WizeUp / Fulldive Browser, or One Emulator for Game Consoles.

Nothing in this post should be read as a claim that Full Cleaner, or any cleaner app, will speed up a modern Android device. On modern Android, the cleaner’s job is narrow: help the user review and remove files the user can already see, inside the permission envelope Android allows.

How to think about cleaner apps as a user

If you are evaluating any Android storage cleaner (ours or anyone else’s), a few practical checks:

  • Does the app describe what it actually touches (media via MediaStore? user-picked folders via SAF? its own caches?), or does it speak in vague “boost” language?
  • Does it ask for MANAGE_EXTERNAL_STORAGE? If yes, is file management really its primary purpose?
  • Does it overstate outcomes like “faster phone,” “more battery life,” or “virus removal”?
  • Is it maintained against current Android targets (SDK 34, 35, 36)?

Android itself already shows per-app storage and cache in Settings → Apps, and Settings → Storage exposes the ACTION_MANAGE_STORAGE intent that any app can deep-link into. A cleaner app’s value is in making that easier and safer to walk through, not in doing something Android would not let any app do.

Where this sits in the Fulldive ecosystem

Fulldive has always shipped small, focused apps rather than one mega-app (see Why Fulldive ships small apps, not a mega-app and the Fulldive company story). Full Cleaner was one of the extension-style utilities added in the 2021 extension-family sprint. The same sprint produced the Fulldive launch/permission pattern you can see in bb1523b and 6a42c35, which is still in use across newer Fulldive apps.

If you want the broader context for those extension apps, the Fulldive extensions post covers why they exist and how they are built. The short answer is: take a mature codebase, re-skin and re-permission it to live alongside the main Fulldive app, and ship a narrowly scoped utility.

Summary

Android storage cleaners are more constrained than their marketing has historically implied. Scoped storage, MediaStore, SAF, and MANAGE_EXTERNAL_STORAGE review collectively define a small, user-mediated cleaning surface. Full Cleaner’s 2021-2022 commits (fde533f, 6a42c35, bb1523b) are a small worked example of what that surface costs to target correctly.

We would rather be explicit about those limits than lean on “boost your phone” language. That is also why we keep publishing app-evolution posts like this one: to show the actual engineering behind an app, not a hype version of it.

Last updated: 2026-04-16. Commit hashes and version numbers are drawn from Fulldive repositories inspected on 2026-04-13.