cleanyourphone 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cleanyourphone-0.2.1/LICENSE +21 -0
- cleanyourphone-0.2.1/MANIFEST.in +3 -0
- cleanyourphone-0.2.1/PKG-INFO +322 -0
- cleanyourphone-0.2.1/README.md +295 -0
- cleanyourphone-0.2.1/cleanyourphone.egg-info/PKG-INFO +322 -0
- cleanyourphone-0.2.1/cleanyourphone.egg-info/SOURCES.txt +178 -0
- cleanyourphone-0.2.1/cleanyourphone.egg-info/dependency_links.txt +1 -0
- cleanyourphone-0.2.1/cleanyourphone.egg-info/entry_points.txt +3 -0
- cleanyourphone-0.2.1/cleanyourphone.egg-info/top_level.txt +1 -0
- cleanyourphone-0.2.1/profiles/generic/android.json +229 -0
- cleanyourphone-0.2.1/profiles/google/pixel-6-pro.json +521 -0
- cleanyourphone-0.2.1/profiles/google/pixel-6.json +516 -0
- cleanyourphone-0.2.1/profiles/google/pixel-7.json +540 -0
- cleanyourphone-0.2.1/profiles/google/pixel-7a.json +540 -0
- cleanyourphone-0.2.1/profiles/google/pixel-8.json +124 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-5t.json +227 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-a6013.json +569 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-ac2003.json +257 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-cph2487.json +459 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-cph2719.json +516 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-hd1925.json +267 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-in2013.json +257 -0
- cleanyourphone-0.2.1/profiles/oneplus/oneplus-nord-ce.json +261 -0
- cleanyourphone-0.2.1/profiles/poco/poco-c31.json +421 -0
- cleanyourphone-0.2.1/profiles/poco/poco-f3.json +337 -0
- cleanyourphone-0.2.1/profiles/poco/poco-f5.json +442 -0
- cleanyourphone-0.2.1/profiles/poco/poco-f6.json +440 -0
- cleanyourphone-0.2.1/profiles/poco/poco-f9-ultra.json +440 -0
- cleanyourphone-0.2.1/profiles/poco/poco-m2-pro.json +390 -0
- cleanyourphone-0.2.1/profiles/poco/poco-m2.json +421 -0
- cleanyourphone-0.2.1/profiles/poco/poco-m3.json +396 -0
- cleanyourphone-0.2.1/profiles/poco/poco-m4-pro-5g.json +454 -0
- cleanyourphone-0.2.1/profiles/poco/poco-x2.json +400 -0
- cleanyourphone-0.2.1/profiles/poco/poco-x3-nfc.json +387 -0
- cleanyourphone-0.2.1/profiles/poco/poco-x3-pro.json +387 -0
- cleanyourphone-0.2.1/profiles/poco/poco-x5-5g.json +396 -0
- cleanyourphone-0.2.1/profiles/poco/poco-x6-pro-5g.json +575 -0
- cleanyourphone-0.2.1/profiles/poco/poco-x7-pro.json +481 -0
- cleanyourphone-0.2.1/profiles/poco/poco-x8-pro.json +570 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-10-5g.json +393 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-10.json +439 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-10a.json +426 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-10c.json +387 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-11-prime.json +467 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-12-5g.json +444 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-12.json +463 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-12c.json +467 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-13c-5g.json +525 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-15c.json +475 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-9-cattail.json +421 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-9.json +332 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-9c-nfc.json +421 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-9t-android-10.json +334 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-9t.json +396 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-a1.json +313 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-a2.json +331 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-k20-pro-india.json +286 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-k20-pro.json +297 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-k20.json +300 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-k30-4g.json +375 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-k40-gaming.json +450 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-k40-pro.json +387 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-k40s.json +363 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-10-lite.json +390 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-10-mojito.json +382 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-10.json +417 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-10s.json +444 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-11-pro-5g.json +355 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-11-pro.json +449 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-11s.json +458 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-11t-5g.json +453 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-12-pro-5g.json +468 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-12-pro-speed.json +368 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-12s.json +526 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-13-5g.json +525 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-13-pro.json +530 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-13.json +440 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-13r.json +488 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-14-4g.json +476 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-15-5g.json +492 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-15-pro.json +480 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-15.json +476 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-17-pro-max-5g.json +492 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-7-pro.json +287 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-8-2021.json +413 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-8-pro.json +337 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-8.json +296 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro-global.json +387 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro-india.json +375 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro-max.json +395 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro.json +200 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-note-9.json +332 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-pad-2.json +570 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-turbo-5-max.json +475 -0
- cleanyourphone-0.2.1/profiles/redmi/redmi-y3.json +282 -0
- cleanyourphone-0.2.1/profiles/samsung/on7xelte.json +249 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a022f.json +254 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a042f.json +373 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a065f.json +449 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a145f.json +424 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a146p.json +428 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a226b.json +394 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a245f.json +456 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a305f.json +384 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a325f.json +455 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a326b.json +465 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a505f.json +458 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a546e.json +348 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a576b.json +523 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a600fn.json +393 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a715f.json +477 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-a725f.json +486 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-e045f.json +394 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-e055f.json +470 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-e225f.json +424 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-e236b.json +451 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-e625f.json +481 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-f707u1.json +501 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-f916u.json +500 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g770f.json +491 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g780f.json +496 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g980f.json +448 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g981n.json +478 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g986b.json +448 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g988b.json +448 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g990b.json +449 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g991b.json +457 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g996b.json +457 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-g998b.json +504 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-j400f.json +313 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-j720f.json +389 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-m015g.json +366 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-m105g.json +366 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-m115f.json +323 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-m136b.json +468 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-m146b.json +438 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-m325f.json +380 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-m526b.json +491 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-n970f.json +473 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-n981b.json +458 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-n986b.json +458 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-p615.json +445 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-s918b.json +149 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-s938b.json +282 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-t227u.json +365 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-t500.json +352 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-t505.json +381 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-t577u.json +449 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-t875.json +483 -0
- cleanyourphone-0.2.1/profiles/samsung/sm-t975.json +483 -0
- cleanyourphone-0.2.1/profiles/schema.json +95 -0
- cleanyourphone-0.2.1/profiles/xiaomi/hyperos.json +165 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-11t-pro.json +363 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-11t.json +468 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-12-lite.json +363 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-12x.json +387 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-15-ultra.json +425 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-15t.json +477 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-17-ultra.json +440 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-civi.json +370 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-10.json +370 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-11-ultra.json +387 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-9-se.json +277 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-note-10.json +297 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-pad-6-pro.json +355 -0
- cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-pad-6.json +355 -0
- cleanyourphone-0.2.1/pyproject.toml +48 -0
- cleanyourphone-0.2.1/setup.cfg +4 -0
- cleanyourphone-0.2.1/tests/test_dump_inventory.py +72 -0
- cleanyourphone-0.2.1/tests/test_phone.py +1043 -0
- cleanyourphone-0.2.1/tests/test_simulation.py +410 -0
- cleanyourphone-0.2.1/tools/__init__.py +5 -0
- cleanyourphone-0.2.1/tools/__main__.py +6 -0
- cleanyourphone-0.2.1/tools/adb.py +641 -0
- cleanyourphone-0.2.1/tools/checks.py +137 -0
- cleanyourphone-0.2.1/tools/extra.py +324 -0
- cleanyourphone-0.2.1/tools/phone.py +1124 -0
- cleanyourphone-0.2.1/tools/profiles.py +423 -0
- cleanyourphone-0.2.1/tools/protected.py +166 -0
- cleanyourphone-0.2.1/tools/ui.py +36 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 CleanYourPhone contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cleanyourphone
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Safe, reversible Android debloat over ADB. Disable, never uninstall.
|
|
5
|
+
Author-email: Jose Paredes <jparedescolmenarejo@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://jparedesds.github.io/cleanyourphone-web/
|
|
8
|
+
Project-URL: Repository, https://github.com/jparedesDS/cleanyourphone
|
|
9
|
+
Project-URL: Changelog, https://github.com/jparedesDS/cleanyourphone/blob/main/CHANGELOG.md
|
|
10
|
+
Project-URL: Issues, https://github.com/jparedesDS/cleanyourphone/issues
|
|
11
|
+
Keywords: android,adb,debloat,cli,privacy
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Utilities
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Dynamic: license-file
|
|
27
|
+
|
|
28
|
+
<p align="center">
|
|
29
|
+
<a href="https://jparedesds.github.io/cleanyourphone-web/">
|
|
30
|
+
<img src="assets/banner.png" alt="CleanYourPhone — your phone, minus the bloat" width="100%">
|
|
31
|
+
</a>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<b>English</b> ·
|
|
36
|
+
<a href="README.es.md">Español</a> ·
|
|
37
|
+
<a href="README.pt-BR.md">Português (BR)</a> ·
|
|
38
|
+
<a href="README.fr.md">Français</a> ·
|
|
39
|
+
<a href="README.de.md">Deutsch</a> ·
|
|
40
|
+
<a href="README.it.md">Italiano</a> ·
|
|
41
|
+
<a href="README.ja.md">日本語</a> ·
|
|
42
|
+
<a href="README.zh-CN.md">简体中文</a> ·
|
|
43
|
+
<a href="README.zh-TW.md">繁體中文</a> ·
|
|
44
|
+
<a href="README.ko.md">한국어</a>
|
|
45
|
+
</p>
|
|
46
|
+
|
|
47
|
+
<p align="center">
|
|
48
|
+
<a href="https://github.com/jparedesDS/cleanyourphone/actions/workflows/ci.yml"><img src="https://github.com/jparedesDS/cleanyourphone/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
49
|
+
<img src="https://img.shields.io/badge/license-MIT-64f4c4?labelColor=061014" alt="MIT">
|
|
50
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-64f4c4?labelColor=061014" alt="Python 3.10+">
|
|
51
|
+
<img src="https://img.shields.io/badge/telemetry-none-64f4c4?labelColor=061014" alt="No telemetry">
|
|
52
|
+
<img src="https://img.shields.io/badge/profiles-156-5ec8ff?labelColor=061014" alt="156 profiles">
|
|
53
|
+
<a href="https://github.com/jparedesDS/cleanyourphone/releases"><img src="https://img.shields.io/github/v/release/jparedesDS/cleanyourphone?color=64f4c4&labelColor=061014" alt="release"></a>
|
|
54
|
+
</p>
|
|
55
|
+
|
|
56
|
+
# CleanYourPhone
|
|
57
|
+
|
|
58
|
+
**Your phone, minus the bloat.** An open-source, reversible debloat skill for Android, built for
|
|
59
|
+
coding agents. It disables preinstalled apps and services over ADB: no root, no custom ROM, nothing
|
|
60
|
+
uninstalled, and one command to undo every change.
|
|
61
|
+
|
|
62
|
+
Read the story and the safety model at
|
|
63
|
+
**[jparedesds.github.io/cleanyourphone-web](https://jparedesds.github.io/cleanyourphone-web/)**.
|
|
64
|
+
|
|
65
|
+
It is the phone version of [cleanyour.tv](https://cleanyour.tv), built the same way: one prompt, one
|
|
66
|
+
command, reversible, open source, and the person stays in control.
|
|
67
|
+
|
|
68
|
+
[SKILL.md](SKILL.md) · [PROMPT.md](PROMPT.md) · [Safety](docs/SAFETY.md) · [156 profiles](docs/PROFILES.md) · [Changelog](CHANGELOG.md)
|
|
69
|
+
|
|
70
|
+
<p align="center">
|
|
71
|
+
<img src="assets/demo.gif" alt="Before and after: WhatsApp, banking and user apps stay; Samsung Free, TV Plus, Bixby, Tips, Themes, Games and Cloud leave" width="520">
|
|
72
|
+
</p>
|
|
73
|
+
|
|
74
|
+
## Start here
|
|
75
|
+
|
|
76
|
+
| You have | Start with |
|
|
77
|
+
|---|---|
|
|
78
|
+
| A phone and a coding agent | The quick start below. |
|
|
79
|
+
| Want to see it first | [The website](https://jparedesds.github.io/cleanyourphone-web/). |
|
|
80
|
+
| Need the safety rules | [docs/SAFETY.md](docs/SAFETY.md). |
|
|
81
|
+
| Need a model profile | [Browse the 156 profiles](profiles/README.md). |
|
|
82
|
+
| Prefer a terminal | [Install the CLI](docs/CLI.md). |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Why a skill and not an app
|
|
87
|
+
|
|
88
|
+
An app that disables other apps needs root, Shizuku or device-owner privileges. That is a lot of
|
|
89
|
+
power and a lot of risk for something a shell command can do. A skill is just text: the person's
|
|
90
|
+
agent reads it, runs `adb`, shows a plan, and asks before touching anything. There is nothing to
|
|
91
|
+
install on the phone, nothing running in the background, and nothing that phones home.
|
|
92
|
+
|
|
93
|
+
The phone is a daily driver, so the skill is deliberately conservative:
|
|
94
|
+
|
|
95
|
+
- **Disable, never uninstall.** `pm disable-user --user 0` only. `pm enable` is the undo.
|
|
96
|
+
- **Back up first.** Package lists, settings, roles, IMEs and `getprop` before the first change.
|
|
97
|
+
- **Protected list.** Core Android, telephony, Play Services, WebView, permission controller,
|
|
98
|
+
emergency alerts, IME/telecom, NFC/SE and OEM security packages are refused by the CLI.
|
|
99
|
+
- **Role checks.** It will not leave you without a dialer, SMS app, Home app or keyboard.
|
|
100
|
+
- **Small batches.** Five packages at a time, verify, then continue.
|
|
101
|
+
- **Ask first.** Banking, payments, WhatsApp, camera, alarm, VPN, authenticator, smartwatch, eSIM,
|
|
102
|
+
VoLTE/Wi-Fi calling and work apps are a checklist, not a default.
|
|
103
|
+
|
|
104
|
+
## How it works
|
|
105
|
+
|
|
106
|
+
1. **On the phone:** enable Developer options and USB debugging. Connect it by USB.
|
|
107
|
+
2. **On the computer:** give your agent `SKILL.md` (or paste `PROMPT.md`).
|
|
108
|
+
3. **Follow along:** the agent identifies the phone, backs up, shows a table of packages, asks what
|
|
109
|
+
you use, disables in batches, reboots and verifies. `python tools/phone.py restore` undoes it.
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
$ python tools/phone.py doctor
|
|
113
|
+
ADB ......... C:\platform-tools\adb.exe
|
|
114
|
+
ADB version . Android Debug Bridge version 1.0.41
|
|
115
|
+
Devices ..... <serial> (device)
|
|
116
|
+
|
|
117
|
+
Device ...... Google Pixel 8 (shiba)
|
|
118
|
+
Android ..... 16 (SDK 36)
|
|
119
|
+
Managed ..... no
|
|
120
|
+
Users ....... 1
|
|
121
|
+
Battery ..... 82%
|
|
122
|
+
Backup ...... none (run: python tools/phone.py backup)
|
|
123
|
+
Profiles .... google-pixel-8
|
|
124
|
+
Auto-apply .. google-pixel-8
|
|
125
|
+
|
|
126
|
+
$ python tools/phone.py plan --profile google-pixel-8
|
|
127
|
+
Profile: google-pixel-8 (Google Pixel 8)
|
|
128
|
+
Phone: Google Pixel 8 (shiba), Android 16
|
|
129
|
+
Match: yes
|
|
130
|
+
Auto-apply: yes
|
|
131
|
+
|
|
132
|
+
DISABLE com.google.android.apps.wellbeing
|
|
133
|
+
why: Digital Wellbeing: screen-time tracking and telemetry
|
|
134
|
+
breaks: Screen-time dashboard and app timers
|
|
135
|
+
ASK com.google.android.apps.turbo
|
|
136
|
+
why: Adaptive Battery and Device Health
|
|
137
|
+
breaks: Adaptive Battery, battery diagnostics
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Quick start
|
|
141
|
+
|
|
142
|
+
### 1. Install ADB
|
|
143
|
+
|
|
144
|
+
Download [Android SDK Platform-Tools](https://developer.android.com/tools/releases/platform-tools)
|
|
145
|
+
for Windows, macOS or Linux, unzip it, and add it to `PATH`. Check with:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
adb version
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### 2. Prepare the phone
|
|
152
|
+
|
|
153
|
+
Settings → About phone → tap **Build number** 7 times → back → **Developer options** → turn on
|
|
154
|
+
**USB debugging**. Connect the phone by USB and accept the **Allow USB debugging?** prompt. Keep the
|
|
155
|
+
phone unlocked and above 30% battery.
|
|
156
|
+
|
|
157
|
+
### 3. Clone and check
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
git clone https://github.com/jparedesDS/cleanyourphone
|
|
161
|
+
cd cleanyourphone
|
|
162
|
+
python tools/phone.py doctor
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
The CLI is optional. `SKILL.md` contains the raw `adb` commands too, so an agent can work without
|
|
166
|
+
Python. The CLI exists so the agent does not improvise the guardrails.
|
|
167
|
+
|
|
168
|
+
Prefer a terminal? Install the command with [pipx](https://pipx.pypa.io/):
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
pipx install git+https://github.com/jparedesDS/cleanyourphone.git
|
|
172
|
+
cleanyourphone doctor
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
This adds `cleanyourphone` and the short alias `cyp`. [docs/CLI.md](docs/CLI.md) covers the wizard,
|
|
176
|
+
the installed file locations and the safety rules. `python tools/phone.py` keeps working.
|
|
177
|
+
|
|
178
|
+
### 4. Give the skill to your agent
|
|
179
|
+
|
|
180
|
+
| Agent | Where to put it |
|
|
181
|
+
|---|---|
|
|
182
|
+
| **Claude Code** | `~/.claude/skills/cleanyourphone/SKILL.md` (personal) or `.claude/skills/cleanyourphone/SKILL.md` (project) |
|
|
183
|
+
| **OpenCode** | `~/.config/opencode/skills/cleanyourphone/SKILL.md` (global) or `.opencode/skills/cleanyourphone/SKILL.md` (project) |
|
|
184
|
+
| **Codex** | `AGENTS.md` in the project, or `~/.codex/AGENTS.md`; paste `PROMPT.md` if your build does not load skills |
|
|
185
|
+
| **Cursor** | `.cursor/rules/cleanyourphone.mdc` with the contents of `SKILL.md` |
|
|
186
|
+
| **Gemini CLI** | `GEMINI.md` in the project |
|
|
187
|
+
| **Any chat agent** | Paste `PROMPT.md`, then paste `SKILL.md` when it asks |
|
|
188
|
+
|
|
189
|
+
Spanish prompt: [PROMPT.es.md](PROMPT.es.md). The skill answers in the language the person writes in.
|
|
190
|
+
|
|
191
|
+
The simplest setup is to clone the repo and open your agent in that folder: `SKILL.md` is already at
|
|
192
|
+
the root, so `python tools/phone.py` works. If your agent loads skills from a global folder, copy
|
|
193
|
+
`SKILL.md` there; install the CLI with pipx (above) and you do not need to keep the repo cloned:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
mkdir -p ~/.claude/skills/cleanyourphone
|
|
197
|
+
cp SKILL.md ~/.claude/skills/cleanyourphone/SKILL.md
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Without the repo, the skill still works: it includes the raw `adb` commands and tells the agent to
|
|
201
|
+
use them.
|
|
202
|
+
|
|
203
|
+
Then ask: **"Clean my phone"** or **"Use cleanyourphone on my Pixel"**.
|
|
204
|
+
|
|
205
|
+
## What it does
|
|
206
|
+
|
|
207
|
+
- Disables OEM telemetry, ad surfaces, recommendation rows, duplicate browsers/stores and unused
|
|
208
|
+
preloads.
|
|
209
|
+
- Optionally sets Private DNS (`dns.adguard-dns.com`, NextDNS or your own resolver).
|
|
210
|
+
- Produces a report: what changed, why, what was kept, the backup path and the undo command.
|
|
211
|
+
- Measures a battery baseline before/after (`docs/BATTERY.md`), without promising miracles.
|
|
212
|
+
|
|
213
|
+
## What it does not do
|
|
214
|
+
|
|
215
|
+
- **No app.** Nothing is installed on the phone.
|
|
216
|
+
- **No root, no Magisk, no Shizuku requirement.**
|
|
217
|
+
- **No custom ROM, no bootloader unlock, no flashing.**
|
|
218
|
+
- **No uninstall.** `pm disable-user` is reversible; `pm uninstall` is not.
|
|
219
|
+
- **No work profile or MDM changes.** If the phone is managed, it stops.
|
|
220
|
+
- **No YouTube ad blocking.** Private DNS does not touch same-domain ads. `docs/FAQ.md` explains.
|
|
221
|
+
- **No "double battery" claims.** Realistic standby gain from debloat is 0–10%; the big wins are
|
|
222
|
+
background restrictions, brightness/refresh rate and DNS.
|
|
223
|
+
- **No cloud requirement for the CLI.** It is local-only; a hosted agent still receives the session
|
|
224
|
+
(model, package names, fingerprint), so use a local model if that matters.
|
|
225
|
+
|
|
226
|
+
## Safety
|
|
227
|
+
|
|
228
|
+
Read [docs/SAFETY.md](docs/SAFETY.md) before your first run. The short version:
|
|
229
|
+
|
|
230
|
+
- The CLI refuses packages on the protected list, packages that hold a role, and any change without
|
|
231
|
+
a backup.
|
|
232
|
+
- Every disable is recorded. `python tools/phone.py restore` re-enables exactly what the tool
|
|
233
|
+
disabled, and leaves alone anything you had already disabled.
|
|
234
|
+
- If the phone boot-loops, [docs/RESTORE.md](docs/RESTORE.md) has the recovery path. Do not factory
|
|
235
|
+
reset as a first move.
|
|
236
|
+
- Debloating is reversible, but your OEM may see it differently. It does not void a legal warranty
|
|
237
|
+
by itself in the EU, but a repair centre can refuse to work on modified software. Be honest with
|
|
238
|
+
the person.
|
|
239
|
+
|
|
240
|
+
## Profiles
|
|
241
|
+
|
|
242
|
+
A profile is either a package list tested on a real phone (`device`) or a list built from a primary
|
|
243
|
+
firmware dump (`documented`). Documented profiles never auto-apply and have no `disable` list; use
|
|
244
|
+
them to ask per package. `apply` only runs for a `device` profile on a build listed in `tested`.
|
|
245
|
+
Tablet profiles set `form_factor: tablet`; a missing dialer/SMS role is a warning, not a failure.
|
|
246
|
+
|
|
247
|
+
The full, model-by-model catalog is in [docs/PROFILES.md](docs/PROFILES.md).
|
|
248
|
+
|
|
249
|
+
| Brand | Profiles | Device-tested | Tablets |
|
|
250
|
+
|---|---|---|---|
|
|
251
|
+
| **Google** | 5 | 1 | 0 |
|
|
252
|
+
| **Samsung** | 55 | 1 | 7 |
|
|
253
|
+
| **Xiaomi** | 15 | 1 | 2 |
|
|
254
|
+
| **Redmi** | 56 | 0 | 1 |
|
|
255
|
+
| **POCO** | 16 | 0 | 0 |
|
|
256
|
+
| **OnePlus** | 8 | 1 | 0 |
|
|
257
|
+
| **Generic** | 1 | 0 | 0 |
|
|
258
|
+
|
|
259
|
+
Want to add yours? Read [profiles/README.md](profiles/README.md). A `device` profile needs a real
|
|
260
|
+
test; a `documented` profile needs a primary firmware dump or an owner-collected device inventory,
|
|
261
|
+
plus at least one source URL.
|
|
262
|
+
|
|
263
|
+
## The open-source OS question
|
|
264
|
+
|
|
265
|
+
Yes, it exists. No, it is not the first thing to do. [docs/ROMS.md](docs/ROMS.md) explains the real
|
|
266
|
+
trade-offs:
|
|
267
|
+
|
|
268
|
+
- **GrapheneOS** is excellent, but only on Pixel 6–10 (October 2026). Best security and privacy;
|
|
269
|
+
sandboxed Play Services; locked bootloader.
|
|
270
|
+
- **/e/OS** has the widest easy-install list, with microG instead of Google.
|
|
271
|
+
- **LineageOS** is broad but higher-maintenance; official builds vary by device.
|
|
272
|
+
- **CalyxOS** covers Pixel, Fairphone and some Motorola models.
|
|
273
|
+
|
|
274
|
+
The costs are real: bootloader unlock wipes the phone, Play Integrity can break banking/Wallet and
|
|
275
|
+
drop Netflix to SD, some carriers lose VoLTE/Wi-Fi calling, and you become the maintainer of the
|
|
276
|
+
security patches. On Samsung, unlocking trips Knox permanently. That is why the skill stays on the
|
|
277
|
+
stock ROM: it removes the ad and telemetry surface most people notice, without those costs. It is not
|
|
278
|
+
a hardened OS and it is not a substitute for GrapheneOS on a Pixel.
|
|
279
|
+
|
|
280
|
+
## FAQ
|
|
281
|
+
|
|
282
|
+
**Does it void my warranty?**
|
|
283
|
+
Debloating is software configuration, not hardware modification, and it is reversible. In the EU a
|
|
284
|
+
legal guarantee is not automatically voided, but a repair centre may refuse modified software. The
|
|
285
|
+
skill does not unlock the bootloader.
|
|
286
|
+
|
|
287
|
+
**Can I brick my phone?**
|
|
288
|
+
Disabling the wrong core package can cause a boot loop. That is why the CLI refuses a protected list,
|
|
289
|
+
checks roles, backs up first and verifies in batches. `restore` undoes exactly what the tool disabled;
|
|
290
|
+
if its journal is lost, `restore --from-backup` reconstructs the change from the backup. The full
|
|
291
|
+
recovery path, including safe mode, is in [docs/RESTORE.md](docs/RESTORE.md).
|
|
292
|
+
|
|
293
|
+
**Does it remove ads from YouTube?**
|
|
294
|
+
No. An ad-blocking resolver over Private DNS blocks many in-app ads and trackers, but YouTube serves
|
|
295
|
+
ads from the same domain as the video. The skill does not install patched apps.
|
|
296
|
+
|
|
297
|
+
**Does it work on a work phone?**
|
|
298
|
+
No. If `dumpsys device_policy` shows a device or profile owner, or `pm list users` shows more than one
|
|
299
|
+
user, the skill stops.
|
|
300
|
+
|
|
301
|
+
**Does it work on Samsung/Xiaomi/Huawei?**
|
|
302
|
+
The method works on any Android 8+ phone. The package names and the safe list differ. Use a profile
|
|
303
|
+
for your exact model, or let the agent classify manually and ask before each package. On Huawei/Honor
|
|
304
|
+
without Google services, many `com.google.*` packages do not exist.
|
|
305
|
+
|
|
306
|
+
**Do I need Python?**
|
|
307
|
+
No. The skill includes the raw `adb` commands. The CLI is a guardrail and a convenience; it is
|
|
308
|
+
stdlib-only and has no dependencies.
|
|
309
|
+
|
|
310
|
+
## Contributing
|
|
311
|
+
|
|
312
|
+
- A tested (`device`) profile for a new model: open a PR with `profiles/<brand>/<model>.json` and
|
|
313
|
+
the test details.
|
|
314
|
+
- A `documented` profile: use `scripts/dump_inventory.py`, cite the primary dump in `sources`, and
|
|
315
|
+
keep `disable` empty.
|
|
316
|
+
- A guard, parser or CLI fix: add a test in `tests/`.
|
|
317
|
+
- A safety rule change: open an issue first. Those rules are the product.
|
|
318
|
+
- Read [AGENTS.md](AGENTS.md) before changing the repo.
|
|
319
|
+
|
|
320
|
+
## License
|
|
321
|
+
|
|
322
|
+
MIT. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://jparedesds.github.io/cleanyourphone-web/">
|
|
3
|
+
<img src="assets/banner.png" alt="CleanYourPhone — your phone, minus the bloat" width="100%">
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<b>English</b> ·
|
|
9
|
+
<a href="README.es.md">Español</a> ·
|
|
10
|
+
<a href="README.pt-BR.md">Português (BR)</a> ·
|
|
11
|
+
<a href="README.fr.md">Français</a> ·
|
|
12
|
+
<a href="README.de.md">Deutsch</a> ·
|
|
13
|
+
<a href="README.it.md">Italiano</a> ·
|
|
14
|
+
<a href="README.ja.md">日本語</a> ·
|
|
15
|
+
<a href="README.zh-CN.md">简体中文</a> ·
|
|
16
|
+
<a href="README.zh-TW.md">繁體中文</a> ·
|
|
17
|
+
<a href="README.ko.md">한국어</a>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
<p align="center">
|
|
21
|
+
<a href="https://github.com/jparedesDS/cleanyourphone/actions/workflows/ci.yml"><img src="https://github.com/jparedesDS/cleanyourphone/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
22
|
+
<img src="https://img.shields.io/badge/license-MIT-64f4c4?labelColor=061014" alt="MIT">
|
|
23
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-64f4c4?labelColor=061014" alt="Python 3.10+">
|
|
24
|
+
<img src="https://img.shields.io/badge/telemetry-none-64f4c4?labelColor=061014" alt="No telemetry">
|
|
25
|
+
<img src="https://img.shields.io/badge/profiles-156-5ec8ff?labelColor=061014" alt="156 profiles">
|
|
26
|
+
<a href="https://github.com/jparedesDS/cleanyourphone/releases"><img src="https://img.shields.io/github/v/release/jparedesDS/cleanyourphone?color=64f4c4&labelColor=061014" alt="release"></a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
# CleanYourPhone
|
|
30
|
+
|
|
31
|
+
**Your phone, minus the bloat.** An open-source, reversible debloat skill for Android, built for
|
|
32
|
+
coding agents. It disables preinstalled apps and services over ADB: no root, no custom ROM, nothing
|
|
33
|
+
uninstalled, and one command to undo every change.
|
|
34
|
+
|
|
35
|
+
Read the story and the safety model at
|
|
36
|
+
**[jparedesds.github.io/cleanyourphone-web](https://jparedesds.github.io/cleanyourphone-web/)**.
|
|
37
|
+
|
|
38
|
+
It is the phone version of [cleanyour.tv](https://cleanyour.tv), built the same way: one prompt, one
|
|
39
|
+
command, reversible, open source, and the person stays in control.
|
|
40
|
+
|
|
41
|
+
[SKILL.md](SKILL.md) · [PROMPT.md](PROMPT.md) · [Safety](docs/SAFETY.md) · [156 profiles](docs/PROFILES.md) · [Changelog](CHANGELOG.md)
|
|
42
|
+
|
|
43
|
+
<p align="center">
|
|
44
|
+
<img src="assets/demo.gif" alt="Before and after: WhatsApp, banking and user apps stay; Samsung Free, TV Plus, Bixby, Tips, Themes, Games and Cloud leave" width="520">
|
|
45
|
+
</p>
|
|
46
|
+
|
|
47
|
+
## Start here
|
|
48
|
+
|
|
49
|
+
| You have | Start with |
|
|
50
|
+
|---|---|
|
|
51
|
+
| A phone and a coding agent | The quick start below. |
|
|
52
|
+
| Want to see it first | [The website](https://jparedesds.github.io/cleanyourphone-web/). |
|
|
53
|
+
| Need the safety rules | [docs/SAFETY.md](docs/SAFETY.md). |
|
|
54
|
+
| Need a model profile | [Browse the 156 profiles](profiles/README.md). |
|
|
55
|
+
| Prefer a terminal | [Install the CLI](docs/CLI.md). |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Why a skill and not an app
|
|
60
|
+
|
|
61
|
+
An app that disables other apps needs root, Shizuku or device-owner privileges. That is a lot of
|
|
62
|
+
power and a lot of risk for something a shell command can do. A skill is just text: the person's
|
|
63
|
+
agent reads it, runs `adb`, shows a plan, and asks before touching anything. There is nothing to
|
|
64
|
+
install on the phone, nothing running in the background, and nothing that phones home.
|
|
65
|
+
|
|
66
|
+
The phone is a daily driver, so the skill is deliberately conservative:
|
|
67
|
+
|
|
68
|
+
- **Disable, never uninstall.** `pm disable-user --user 0` only. `pm enable` is the undo.
|
|
69
|
+
- **Back up first.** Package lists, settings, roles, IMEs and `getprop` before the first change.
|
|
70
|
+
- **Protected list.** Core Android, telephony, Play Services, WebView, permission controller,
|
|
71
|
+
emergency alerts, IME/telecom, NFC/SE and OEM security packages are refused by the CLI.
|
|
72
|
+
- **Role checks.** It will not leave you without a dialer, SMS app, Home app or keyboard.
|
|
73
|
+
- **Small batches.** Five packages at a time, verify, then continue.
|
|
74
|
+
- **Ask first.** Banking, payments, WhatsApp, camera, alarm, VPN, authenticator, smartwatch, eSIM,
|
|
75
|
+
VoLTE/Wi-Fi calling and work apps are a checklist, not a default.
|
|
76
|
+
|
|
77
|
+
## How it works
|
|
78
|
+
|
|
79
|
+
1. **On the phone:** enable Developer options and USB debugging. Connect it by USB.
|
|
80
|
+
2. **On the computer:** give your agent `SKILL.md` (or paste `PROMPT.md`).
|
|
81
|
+
3. **Follow along:** the agent identifies the phone, backs up, shows a table of packages, asks what
|
|
82
|
+
you use, disables in batches, reboots and verifies. `python tools/phone.py restore` undoes it.
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
$ python tools/phone.py doctor
|
|
86
|
+
ADB ......... C:\platform-tools\adb.exe
|
|
87
|
+
ADB version . Android Debug Bridge version 1.0.41
|
|
88
|
+
Devices ..... <serial> (device)
|
|
89
|
+
|
|
90
|
+
Device ...... Google Pixel 8 (shiba)
|
|
91
|
+
Android ..... 16 (SDK 36)
|
|
92
|
+
Managed ..... no
|
|
93
|
+
Users ....... 1
|
|
94
|
+
Battery ..... 82%
|
|
95
|
+
Backup ...... none (run: python tools/phone.py backup)
|
|
96
|
+
Profiles .... google-pixel-8
|
|
97
|
+
Auto-apply .. google-pixel-8
|
|
98
|
+
|
|
99
|
+
$ python tools/phone.py plan --profile google-pixel-8
|
|
100
|
+
Profile: google-pixel-8 (Google Pixel 8)
|
|
101
|
+
Phone: Google Pixel 8 (shiba), Android 16
|
|
102
|
+
Match: yes
|
|
103
|
+
Auto-apply: yes
|
|
104
|
+
|
|
105
|
+
DISABLE com.google.android.apps.wellbeing
|
|
106
|
+
why: Digital Wellbeing: screen-time tracking and telemetry
|
|
107
|
+
breaks: Screen-time dashboard and app timers
|
|
108
|
+
ASK com.google.android.apps.turbo
|
|
109
|
+
why: Adaptive Battery and Device Health
|
|
110
|
+
breaks: Adaptive Battery, battery diagnostics
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Quick start
|
|
114
|
+
|
|
115
|
+
### 1. Install ADB
|
|
116
|
+
|
|
117
|
+
Download [Android SDK Platform-Tools](https://developer.android.com/tools/releases/platform-tools)
|
|
118
|
+
for Windows, macOS or Linux, unzip it, and add it to `PATH`. Check with:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
adb version
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 2. Prepare the phone
|
|
125
|
+
|
|
126
|
+
Settings → About phone → tap **Build number** 7 times → back → **Developer options** → turn on
|
|
127
|
+
**USB debugging**. Connect the phone by USB and accept the **Allow USB debugging?** prompt. Keep the
|
|
128
|
+
phone unlocked and above 30% battery.
|
|
129
|
+
|
|
130
|
+
### 3. Clone and check
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
git clone https://github.com/jparedesDS/cleanyourphone
|
|
134
|
+
cd cleanyourphone
|
|
135
|
+
python tools/phone.py doctor
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The CLI is optional. `SKILL.md` contains the raw `adb` commands too, so an agent can work without
|
|
139
|
+
Python. The CLI exists so the agent does not improvise the guardrails.
|
|
140
|
+
|
|
141
|
+
Prefer a terminal? Install the command with [pipx](https://pipx.pypa.io/):
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
pipx install git+https://github.com/jparedesDS/cleanyourphone.git
|
|
145
|
+
cleanyourphone doctor
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
This adds `cleanyourphone` and the short alias `cyp`. [docs/CLI.md](docs/CLI.md) covers the wizard,
|
|
149
|
+
the installed file locations and the safety rules. `python tools/phone.py` keeps working.
|
|
150
|
+
|
|
151
|
+
### 4. Give the skill to your agent
|
|
152
|
+
|
|
153
|
+
| Agent | Where to put it |
|
|
154
|
+
|---|---|
|
|
155
|
+
| **Claude Code** | `~/.claude/skills/cleanyourphone/SKILL.md` (personal) or `.claude/skills/cleanyourphone/SKILL.md` (project) |
|
|
156
|
+
| **OpenCode** | `~/.config/opencode/skills/cleanyourphone/SKILL.md` (global) or `.opencode/skills/cleanyourphone/SKILL.md` (project) |
|
|
157
|
+
| **Codex** | `AGENTS.md` in the project, or `~/.codex/AGENTS.md`; paste `PROMPT.md` if your build does not load skills |
|
|
158
|
+
| **Cursor** | `.cursor/rules/cleanyourphone.mdc` with the contents of `SKILL.md` |
|
|
159
|
+
| **Gemini CLI** | `GEMINI.md` in the project |
|
|
160
|
+
| **Any chat agent** | Paste `PROMPT.md`, then paste `SKILL.md` when it asks |
|
|
161
|
+
|
|
162
|
+
Spanish prompt: [PROMPT.es.md](PROMPT.es.md). The skill answers in the language the person writes in.
|
|
163
|
+
|
|
164
|
+
The simplest setup is to clone the repo and open your agent in that folder: `SKILL.md` is already at
|
|
165
|
+
the root, so `python tools/phone.py` works. If your agent loads skills from a global folder, copy
|
|
166
|
+
`SKILL.md` there; install the CLI with pipx (above) and you do not need to keep the repo cloned:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
mkdir -p ~/.claude/skills/cleanyourphone
|
|
170
|
+
cp SKILL.md ~/.claude/skills/cleanyourphone/SKILL.md
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Without the repo, the skill still works: it includes the raw `adb` commands and tells the agent to
|
|
174
|
+
use them.
|
|
175
|
+
|
|
176
|
+
Then ask: **"Clean my phone"** or **"Use cleanyourphone on my Pixel"**.
|
|
177
|
+
|
|
178
|
+
## What it does
|
|
179
|
+
|
|
180
|
+
- Disables OEM telemetry, ad surfaces, recommendation rows, duplicate browsers/stores and unused
|
|
181
|
+
preloads.
|
|
182
|
+
- Optionally sets Private DNS (`dns.adguard-dns.com`, NextDNS or your own resolver).
|
|
183
|
+
- Produces a report: what changed, why, what was kept, the backup path and the undo command.
|
|
184
|
+
- Measures a battery baseline before/after (`docs/BATTERY.md`), without promising miracles.
|
|
185
|
+
|
|
186
|
+
## What it does not do
|
|
187
|
+
|
|
188
|
+
- **No app.** Nothing is installed on the phone.
|
|
189
|
+
- **No root, no Magisk, no Shizuku requirement.**
|
|
190
|
+
- **No custom ROM, no bootloader unlock, no flashing.**
|
|
191
|
+
- **No uninstall.** `pm disable-user` is reversible; `pm uninstall` is not.
|
|
192
|
+
- **No work profile or MDM changes.** If the phone is managed, it stops.
|
|
193
|
+
- **No YouTube ad blocking.** Private DNS does not touch same-domain ads. `docs/FAQ.md` explains.
|
|
194
|
+
- **No "double battery" claims.** Realistic standby gain from debloat is 0–10%; the big wins are
|
|
195
|
+
background restrictions, brightness/refresh rate and DNS.
|
|
196
|
+
- **No cloud requirement for the CLI.** It is local-only; a hosted agent still receives the session
|
|
197
|
+
(model, package names, fingerprint), so use a local model if that matters.
|
|
198
|
+
|
|
199
|
+
## Safety
|
|
200
|
+
|
|
201
|
+
Read [docs/SAFETY.md](docs/SAFETY.md) before your first run. The short version:
|
|
202
|
+
|
|
203
|
+
- The CLI refuses packages on the protected list, packages that hold a role, and any change without
|
|
204
|
+
a backup.
|
|
205
|
+
- Every disable is recorded. `python tools/phone.py restore` re-enables exactly what the tool
|
|
206
|
+
disabled, and leaves alone anything you had already disabled.
|
|
207
|
+
- If the phone boot-loops, [docs/RESTORE.md](docs/RESTORE.md) has the recovery path. Do not factory
|
|
208
|
+
reset as a first move.
|
|
209
|
+
- Debloating is reversible, but your OEM may see it differently. It does not void a legal warranty
|
|
210
|
+
by itself in the EU, but a repair centre can refuse to work on modified software. Be honest with
|
|
211
|
+
the person.
|
|
212
|
+
|
|
213
|
+
## Profiles
|
|
214
|
+
|
|
215
|
+
A profile is either a package list tested on a real phone (`device`) or a list built from a primary
|
|
216
|
+
firmware dump (`documented`). Documented profiles never auto-apply and have no `disable` list; use
|
|
217
|
+
them to ask per package. `apply` only runs for a `device` profile on a build listed in `tested`.
|
|
218
|
+
Tablet profiles set `form_factor: tablet`; a missing dialer/SMS role is a warning, not a failure.
|
|
219
|
+
|
|
220
|
+
The full, model-by-model catalog is in [docs/PROFILES.md](docs/PROFILES.md).
|
|
221
|
+
|
|
222
|
+
| Brand | Profiles | Device-tested | Tablets |
|
|
223
|
+
|---|---|---|---|
|
|
224
|
+
| **Google** | 5 | 1 | 0 |
|
|
225
|
+
| **Samsung** | 55 | 1 | 7 |
|
|
226
|
+
| **Xiaomi** | 15 | 1 | 2 |
|
|
227
|
+
| **Redmi** | 56 | 0 | 1 |
|
|
228
|
+
| **POCO** | 16 | 0 | 0 |
|
|
229
|
+
| **OnePlus** | 8 | 1 | 0 |
|
|
230
|
+
| **Generic** | 1 | 0 | 0 |
|
|
231
|
+
|
|
232
|
+
Want to add yours? Read [profiles/README.md](profiles/README.md). A `device` profile needs a real
|
|
233
|
+
test; a `documented` profile needs a primary firmware dump or an owner-collected device inventory,
|
|
234
|
+
plus at least one source URL.
|
|
235
|
+
|
|
236
|
+
## The open-source OS question
|
|
237
|
+
|
|
238
|
+
Yes, it exists. No, it is not the first thing to do. [docs/ROMS.md](docs/ROMS.md) explains the real
|
|
239
|
+
trade-offs:
|
|
240
|
+
|
|
241
|
+
- **GrapheneOS** is excellent, but only on Pixel 6–10 (October 2026). Best security and privacy;
|
|
242
|
+
sandboxed Play Services; locked bootloader.
|
|
243
|
+
- **/e/OS** has the widest easy-install list, with microG instead of Google.
|
|
244
|
+
- **LineageOS** is broad but higher-maintenance; official builds vary by device.
|
|
245
|
+
- **CalyxOS** covers Pixel, Fairphone and some Motorola models.
|
|
246
|
+
|
|
247
|
+
The costs are real: bootloader unlock wipes the phone, Play Integrity can break banking/Wallet and
|
|
248
|
+
drop Netflix to SD, some carriers lose VoLTE/Wi-Fi calling, and you become the maintainer of the
|
|
249
|
+
security patches. On Samsung, unlocking trips Knox permanently. That is why the skill stays on the
|
|
250
|
+
stock ROM: it removes the ad and telemetry surface most people notice, without those costs. It is not
|
|
251
|
+
a hardened OS and it is not a substitute for GrapheneOS on a Pixel.
|
|
252
|
+
|
|
253
|
+
## FAQ
|
|
254
|
+
|
|
255
|
+
**Does it void my warranty?**
|
|
256
|
+
Debloating is software configuration, not hardware modification, and it is reversible. In the EU a
|
|
257
|
+
legal guarantee is not automatically voided, but a repair centre may refuse modified software. The
|
|
258
|
+
skill does not unlock the bootloader.
|
|
259
|
+
|
|
260
|
+
**Can I brick my phone?**
|
|
261
|
+
Disabling the wrong core package can cause a boot loop. That is why the CLI refuses a protected list,
|
|
262
|
+
checks roles, backs up first and verifies in batches. `restore` undoes exactly what the tool disabled;
|
|
263
|
+
if its journal is lost, `restore --from-backup` reconstructs the change from the backup. The full
|
|
264
|
+
recovery path, including safe mode, is in [docs/RESTORE.md](docs/RESTORE.md).
|
|
265
|
+
|
|
266
|
+
**Does it remove ads from YouTube?**
|
|
267
|
+
No. An ad-blocking resolver over Private DNS blocks many in-app ads and trackers, but YouTube serves
|
|
268
|
+
ads from the same domain as the video. The skill does not install patched apps.
|
|
269
|
+
|
|
270
|
+
**Does it work on a work phone?**
|
|
271
|
+
No. If `dumpsys device_policy` shows a device or profile owner, or `pm list users` shows more than one
|
|
272
|
+
user, the skill stops.
|
|
273
|
+
|
|
274
|
+
**Does it work on Samsung/Xiaomi/Huawei?**
|
|
275
|
+
The method works on any Android 8+ phone. The package names and the safe list differ. Use a profile
|
|
276
|
+
for your exact model, or let the agent classify manually and ask before each package. On Huawei/Honor
|
|
277
|
+
without Google services, many `com.google.*` packages do not exist.
|
|
278
|
+
|
|
279
|
+
**Do I need Python?**
|
|
280
|
+
No. The skill includes the raw `adb` commands. The CLI is a guardrail and a convenience; it is
|
|
281
|
+
stdlib-only and has no dependencies.
|
|
282
|
+
|
|
283
|
+
## Contributing
|
|
284
|
+
|
|
285
|
+
- A tested (`device`) profile for a new model: open a PR with `profiles/<brand>/<model>.json` and
|
|
286
|
+
the test details.
|
|
287
|
+
- A `documented` profile: use `scripts/dump_inventory.py`, cite the primary dump in `sources`, and
|
|
288
|
+
keep `disable` empty.
|
|
289
|
+
- A guard, parser or CLI fix: add a test in `tests/`.
|
|
290
|
+
- A safety rule change: open an issue first. Those rules are the product.
|
|
291
|
+
- Read [AGENTS.md](AGENTS.md) before changing the repo.
|
|
292
|
+
|
|
293
|
+
## License
|
|
294
|
+
|
|
295
|
+
MIT. See [LICENSE](LICENSE).
|