Open source · MIT · v1.0.2

Four screens of apps
nobody ever chose.
Set them free.

Free My Android takes a phone, tablet or TV back from the people who filled it — over ADB, from your computer. Three profiles, three intensities, and one button that puts all of it back.

# nothing to install but adb
git clone https://github.com/manishb27/freemyandroid
cd freemyandroid
./freemyandroid          # terminal
./freemyandroid web      # or a browser

Packages known

209

Never touched

57 +16

Roles guarded

19

Dependencies

0


Instrument / intensity

Decide how free you want to be.

Intensity is a risk ceiling, not an adjective. Turn the dial and watch what it lets through. These are real numbers from the tool, run against a stock Samsung.

Only what nobody misses: ad frameworks, analytics, paid-for preloads and no-icon background services. Nothing you can see disappears.

Composition by risk

Safe Caution Risky  Risky never appears below Ultra, and Ultra asks twice.

Proposed changes

111

Safe

111

Caution

0

Risky

0

Refused by the guards regardless of tier: 7

Scope

Every Android in the drawer deserves to be free.

The same ADB, the same guards, the same undo journal. What differs per device class is curation — which packages are junk and which are load bearing — and that is written by hand, honestly, one device at a time.

Supported

Phone

209 curated packages across Google, Samsung, Xiaomi and ColorOS, plus the third-party preloads brands are paid to ship.

ready

Supported

Tablet

Same Android, same package lists, same guards. A tablet is a phone that cannot call anyone.

ready

Detected

TV

Recognised and warned about today, because the profiles reason about a dialer and a payment app a television does not have. Its own lists are next.

not yet

Planned

Watch

Wear OS speaks ADB over Wi-Fi like everything else. The constraint is curation, not plumbing.

not yet


Field report / SM-M215F

One real phone, seventy-one packages freer.

A Samsung Galaxy M21 somebody uses every day. Android 12, 3.5 GB of RAM, bought in India with the full retail load of preinstalled apps.

Packages off

71

From 1, across four steps.

Failures

0

Calls, messages, keyboard and payments all still working.

Memory freed

110 MB

Paired reading, minutes apart.

Available memory

BEFORE — 1137 MB

AFTER — 1249 MB

Two processes did most of it: Samsung's launcher at 111 MB and Google's search app at 112 MB across two processes. Both only became safe to switch off after a replacement home screen was in place — which the tool sets for you over ADB, without anyone picking up the phone.

Android's free-memory figures drift by hundreds of megabytes on their own, so the only honest reading is a paired before-and-after around a single change. That is what this is. The full report gives the method, what was left alone, and the eight bugs this one phone found in the tool.

Four guards

The best feature is the one that says no.

Every intensity runs through the same four guards, Ultra included. Ultra raises the ceiling; it does not lower the guards. When one refuses, it says why in plain words — these are real refusals from the M21 run.

com.phonepe.app — it is the current payment app. Turning it off is the kind of thing you discover at a shop counter, so it is never done automatically — even though it arrived as a preload.

role occupancy

com.android.chrome — it is the current browser. Links from every other app would go nowhere.

role occupancy

com.google.android.gms — protected. The phone needs it to boot and to make calls. 57 packages and 16 vendor prefixes are on this list, and nothing takes them off it.

hard guard

talkback — a screen reader in use is never disabled automatically. Somebody depends on it to use the device at all.

accessibility

The fourth guard is the quietest: a package you disabled yourself is left alone, so undo never re-enables something you chose.


Measured, not claimed

APK size tells you almost nothing.

Every launcher in the catalogue was installed on the test phone, opened, and its memory read off the device.

LauncherMemoryAPK
YAM Launcher 20 MB 2.9 MB lightest usable
KISS 24 MB 2.2 MB one screen, search-first
Olauncher 47 MB 2.5 MB text only
Neo Launcher 61 MB 23.3 MB Nova-style — the one we kept
µLauncher 71 MB 4.1 MB tiny APK, 3× the memory of KISS
Lawnchair 15 80 MB 17.3 MB Pixel-style
Samsung One UI Home 111 MB — the stock one
Fossify Launcher 159 MB 5.2 MB heavier than stock

Fossify Launcher uses more memory than Samsung's own, from a 5 MB APK. This project had recommended it as the sane default until the number came in, and then withdrew the claim. The catalogue now ships the measurements so nobody has to take our word for anything.

Built to be handed over

Let an assistant do the reading.

“Which of these 371 packages is safe to remove” is exactly what people want help with. Clone the repo, open your coding agent in the folder, and say this.

I want to debloat my Android phone.
This is a phone I own.

Read AGENTS.md first, then walk me
through it.

My phone is a <make and model> running
Android <version>. Developer options
and USB debugging are on, and it is
plugged in.

Every command except the two interfaces is read-only, so an agent can explore freely and change nothing. Applying needs a human click.

What a good agent does

  • Shows you the plan before touching anything
  • Hands you the web interface rather than driving the terminal one
  • Reads out what each guard refused, and why
  • Never runs pm uninstall — this tool only disables
  • Never picks “freshly reset” for a device you are using

If it does any of those, stop it. The repo spells this out in AGENTS.md.


Where this is going · not built yet

A drawer full of dead devices, freed and put back to work.

There are hundreds of millions of Android devices sitting in drawers: too slow for their owners, too functional to throw away. A debloated device on a charger with a network connection is a small, real computer that already exists and already has a battery.

The direction we are building toward is a network of those devices that people can reach and rent — most obviously as real hardware to test on. Old Android devices are valuable precisely because they are old: testing an app on Android 9 with 2 GB of RAM is something developers pay for and struggle to get.

This project already has most of the plumbing for it — ADB control, device profiling, a reversible journal, and a private network path that needs no open ports. What it does not have yet is any of the marketplace.

Being honest about this

Selling raw compute from phones does not pay, and we are not going to pretend otherwise. A phone SoC throttles to roughly half its peak under sustained load, offers a few usable ARM cores, and sits behind residential upload and carrier-grade NAT. Docker cannot run on an unrooted Android at all.

Permanent charging also swells batteries within a year, which is a physical cost nobody mentions in these pitches.

So the goal is not FLOPS. It is access to real, specific, old devices — which is a thing people genuinely buy, and a thing a drawer full of phones is uniquely good at being.

Route

01 — now

Take the device back. Debloat, replace, measure, undo.

02 — next

Keep it alive. Doze off, process killer off, services that survive a reboot.

03 — then

Reach it from anywhere, with no open ports and no router surgery.

04 — the point

A roster of real devices other people can use. Consent and undo at every step.

Your device. Free, finally.

git clone https://github.com/manishb27/freemyandroid
cd freemyandroid && ./freemyandroid web

Python 3.10+ · no dependencies · MIT · works on Linux, macOS and WSL