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.
Files changed (180) hide show
  1. cleanyourphone-0.2.1/LICENSE +21 -0
  2. cleanyourphone-0.2.1/MANIFEST.in +3 -0
  3. cleanyourphone-0.2.1/PKG-INFO +322 -0
  4. cleanyourphone-0.2.1/README.md +295 -0
  5. cleanyourphone-0.2.1/cleanyourphone.egg-info/PKG-INFO +322 -0
  6. cleanyourphone-0.2.1/cleanyourphone.egg-info/SOURCES.txt +178 -0
  7. cleanyourphone-0.2.1/cleanyourphone.egg-info/dependency_links.txt +1 -0
  8. cleanyourphone-0.2.1/cleanyourphone.egg-info/entry_points.txt +3 -0
  9. cleanyourphone-0.2.1/cleanyourphone.egg-info/top_level.txt +1 -0
  10. cleanyourphone-0.2.1/profiles/generic/android.json +229 -0
  11. cleanyourphone-0.2.1/profiles/google/pixel-6-pro.json +521 -0
  12. cleanyourphone-0.2.1/profiles/google/pixel-6.json +516 -0
  13. cleanyourphone-0.2.1/profiles/google/pixel-7.json +540 -0
  14. cleanyourphone-0.2.1/profiles/google/pixel-7a.json +540 -0
  15. cleanyourphone-0.2.1/profiles/google/pixel-8.json +124 -0
  16. cleanyourphone-0.2.1/profiles/oneplus/oneplus-5t.json +227 -0
  17. cleanyourphone-0.2.1/profiles/oneplus/oneplus-a6013.json +569 -0
  18. cleanyourphone-0.2.1/profiles/oneplus/oneplus-ac2003.json +257 -0
  19. cleanyourphone-0.2.1/profiles/oneplus/oneplus-cph2487.json +459 -0
  20. cleanyourphone-0.2.1/profiles/oneplus/oneplus-cph2719.json +516 -0
  21. cleanyourphone-0.2.1/profiles/oneplus/oneplus-hd1925.json +267 -0
  22. cleanyourphone-0.2.1/profiles/oneplus/oneplus-in2013.json +257 -0
  23. cleanyourphone-0.2.1/profiles/oneplus/oneplus-nord-ce.json +261 -0
  24. cleanyourphone-0.2.1/profiles/poco/poco-c31.json +421 -0
  25. cleanyourphone-0.2.1/profiles/poco/poco-f3.json +337 -0
  26. cleanyourphone-0.2.1/profiles/poco/poco-f5.json +442 -0
  27. cleanyourphone-0.2.1/profiles/poco/poco-f6.json +440 -0
  28. cleanyourphone-0.2.1/profiles/poco/poco-f9-ultra.json +440 -0
  29. cleanyourphone-0.2.1/profiles/poco/poco-m2-pro.json +390 -0
  30. cleanyourphone-0.2.1/profiles/poco/poco-m2.json +421 -0
  31. cleanyourphone-0.2.1/profiles/poco/poco-m3.json +396 -0
  32. cleanyourphone-0.2.1/profiles/poco/poco-m4-pro-5g.json +454 -0
  33. cleanyourphone-0.2.1/profiles/poco/poco-x2.json +400 -0
  34. cleanyourphone-0.2.1/profiles/poco/poco-x3-nfc.json +387 -0
  35. cleanyourphone-0.2.1/profiles/poco/poco-x3-pro.json +387 -0
  36. cleanyourphone-0.2.1/profiles/poco/poco-x5-5g.json +396 -0
  37. cleanyourphone-0.2.1/profiles/poco/poco-x6-pro-5g.json +575 -0
  38. cleanyourphone-0.2.1/profiles/poco/poco-x7-pro.json +481 -0
  39. cleanyourphone-0.2.1/profiles/poco/poco-x8-pro.json +570 -0
  40. cleanyourphone-0.2.1/profiles/redmi/redmi-10-5g.json +393 -0
  41. cleanyourphone-0.2.1/profiles/redmi/redmi-10.json +439 -0
  42. cleanyourphone-0.2.1/profiles/redmi/redmi-10a.json +426 -0
  43. cleanyourphone-0.2.1/profiles/redmi/redmi-10c.json +387 -0
  44. cleanyourphone-0.2.1/profiles/redmi/redmi-11-prime.json +467 -0
  45. cleanyourphone-0.2.1/profiles/redmi/redmi-12-5g.json +444 -0
  46. cleanyourphone-0.2.1/profiles/redmi/redmi-12.json +463 -0
  47. cleanyourphone-0.2.1/profiles/redmi/redmi-12c.json +467 -0
  48. cleanyourphone-0.2.1/profiles/redmi/redmi-13c-5g.json +525 -0
  49. cleanyourphone-0.2.1/profiles/redmi/redmi-15c.json +475 -0
  50. cleanyourphone-0.2.1/profiles/redmi/redmi-9-cattail.json +421 -0
  51. cleanyourphone-0.2.1/profiles/redmi/redmi-9.json +332 -0
  52. cleanyourphone-0.2.1/profiles/redmi/redmi-9c-nfc.json +421 -0
  53. cleanyourphone-0.2.1/profiles/redmi/redmi-9t-android-10.json +334 -0
  54. cleanyourphone-0.2.1/profiles/redmi/redmi-9t.json +396 -0
  55. cleanyourphone-0.2.1/profiles/redmi/redmi-a1.json +313 -0
  56. cleanyourphone-0.2.1/profiles/redmi/redmi-a2.json +331 -0
  57. cleanyourphone-0.2.1/profiles/redmi/redmi-k20-pro-india.json +286 -0
  58. cleanyourphone-0.2.1/profiles/redmi/redmi-k20-pro.json +297 -0
  59. cleanyourphone-0.2.1/profiles/redmi/redmi-k20.json +300 -0
  60. cleanyourphone-0.2.1/profiles/redmi/redmi-k30-4g.json +375 -0
  61. cleanyourphone-0.2.1/profiles/redmi/redmi-k40-gaming.json +450 -0
  62. cleanyourphone-0.2.1/profiles/redmi/redmi-k40-pro.json +387 -0
  63. cleanyourphone-0.2.1/profiles/redmi/redmi-k40s.json +363 -0
  64. cleanyourphone-0.2.1/profiles/redmi/redmi-note-10-lite.json +390 -0
  65. cleanyourphone-0.2.1/profiles/redmi/redmi-note-10-mojito.json +382 -0
  66. cleanyourphone-0.2.1/profiles/redmi/redmi-note-10.json +417 -0
  67. cleanyourphone-0.2.1/profiles/redmi/redmi-note-10s.json +444 -0
  68. cleanyourphone-0.2.1/profiles/redmi/redmi-note-11-pro-5g.json +355 -0
  69. cleanyourphone-0.2.1/profiles/redmi/redmi-note-11-pro.json +449 -0
  70. cleanyourphone-0.2.1/profiles/redmi/redmi-note-11s.json +458 -0
  71. cleanyourphone-0.2.1/profiles/redmi/redmi-note-11t-5g.json +453 -0
  72. cleanyourphone-0.2.1/profiles/redmi/redmi-note-12-pro-5g.json +468 -0
  73. cleanyourphone-0.2.1/profiles/redmi/redmi-note-12-pro-speed.json +368 -0
  74. cleanyourphone-0.2.1/profiles/redmi/redmi-note-12s.json +526 -0
  75. cleanyourphone-0.2.1/profiles/redmi/redmi-note-13-5g.json +525 -0
  76. cleanyourphone-0.2.1/profiles/redmi/redmi-note-13-pro.json +530 -0
  77. cleanyourphone-0.2.1/profiles/redmi/redmi-note-13.json +440 -0
  78. cleanyourphone-0.2.1/profiles/redmi/redmi-note-13r.json +488 -0
  79. cleanyourphone-0.2.1/profiles/redmi/redmi-note-14-4g.json +476 -0
  80. cleanyourphone-0.2.1/profiles/redmi/redmi-note-15-5g.json +492 -0
  81. cleanyourphone-0.2.1/profiles/redmi/redmi-note-15-pro.json +480 -0
  82. cleanyourphone-0.2.1/profiles/redmi/redmi-note-15.json +476 -0
  83. cleanyourphone-0.2.1/profiles/redmi/redmi-note-17-pro-max-5g.json +492 -0
  84. cleanyourphone-0.2.1/profiles/redmi/redmi-note-7-pro.json +287 -0
  85. cleanyourphone-0.2.1/profiles/redmi/redmi-note-8-2021.json +413 -0
  86. cleanyourphone-0.2.1/profiles/redmi/redmi-note-8-pro.json +337 -0
  87. cleanyourphone-0.2.1/profiles/redmi/redmi-note-8.json +296 -0
  88. cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro-global.json +387 -0
  89. cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro-india.json +375 -0
  90. cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro-max.json +395 -0
  91. cleanyourphone-0.2.1/profiles/redmi/redmi-note-9-pro.json +200 -0
  92. cleanyourphone-0.2.1/profiles/redmi/redmi-note-9.json +332 -0
  93. cleanyourphone-0.2.1/profiles/redmi/redmi-pad-2.json +570 -0
  94. cleanyourphone-0.2.1/profiles/redmi/redmi-turbo-5-max.json +475 -0
  95. cleanyourphone-0.2.1/profiles/redmi/redmi-y3.json +282 -0
  96. cleanyourphone-0.2.1/profiles/samsung/on7xelte.json +249 -0
  97. cleanyourphone-0.2.1/profiles/samsung/sm-a022f.json +254 -0
  98. cleanyourphone-0.2.1/profiles/samsung/sm-a042f.json +373 -0
  99. cleanyourphone-0.2.1/profiles/samsung/sm-a065f.json +449 -0
  100. cleanyourphone-0.2.1/profiles/samsung/sm-a145f.json +424 -0
  101. cleanyourphone-0.2.1/profiles/samsung/sm-a146p.json +428 -0
  102. cleanyourphone-0.2.1/profiles/samsung/sm-a226b.json +394 -0
  103. cleanyourphone-0.2.1/profiles/samsung/sm-a245f.json +456 -0
  104. cleanyourphone-0.2.1/profiles/samsung/sm-a305f.json +384 -0
  105. cleanyourphone-0.2.1/profiles/samsung/sm-a325f.json +455 -0
  106. cleanyourphone-0.2.1/profiles/samsung/sm-a326b.json +465 -0
  107. cleanyourphone-0.2.1/profiles/samsung/sm-a505f.json +458 -0
  108. cleanyourphone-0.2.1/profiles/samsung/sm-a546e.json +348 -0
  109. cleanyourphone-0.2.1/profiles/samsung/sm-a576b.json +523 -0
  110. cleanyourphone-0.2.1/profiles/samsung/sm-a600fn.json +393 -0
  111. cleanyourphone-0.2.1/profiles/samsung/sm-a715f.json +477 -0
  112. cleanyourphone-0.2.1/profiles/samsung/sm-a725f.json +486 -0
  113. cleanyourphone-0.2.1/profiles/samsung/sm-e045f.json +394 -0
  114. cleanyourphone-0.2.1/profiles/samsung/sm-e055f.json +470 -0
  115. cleanyourphone-0.2.1/profiles/samsung/sm-e225f.json +424 -0
  116. cleanyourphone-0.2.1/profiles/samsung/sm-e236b.json +451 -0
  117. cleanyourphone-0.2.1/profiles/samsung/sm-e625f.json +481 -0
  118. cleanyourphone-0.2.1/profiles/samsung/sm-f707u1.json +501 -0
  119. cleanyourphone-0.2.1/profiles/samsung/sm-f916u.json +500 -0
  120. cleanyourphone-0.2.1/profiles/samsung/sm-g770f.json +491 -0
  121. cleanyourphone-0.2.1/profiles/samsung/sm-g780f.json +496 -0
  122. cleanyourphone-0.2.1/profiles/samsung/sm-g980f.json +448 -0
  123. cleanyourphone-0.2.1/profiles/samsung/sm-g981n.json +478 -0
  124. cleanyourphone-0.2.1/profiles/samsung/sm-g986b.json +448 -0
  125. cleanyourphone-0.2.1/profiles/samsung/sm-g988b.json +448 -0
  126. cleanyourphone-0.2.1/profiles/samsung/sm-g990b.json +449 -0
  127. cleanyourphone-0.2.1/profiles/samsung/sm-g991b.json +457 -0
  128. cleanyourphone-0.2.1/profiles/samsung/sm-g996b.json +457 -0
  129. cleanyourphone-0.2.1/profiles/samsung/sm-g998b.json +504 -0
  130. cleanyourphone-0.2.1/profiles/samsung/sm-j400f.json +313 -0
  131. cleanyourphone-0.2.1/profiles/samsung/sm-j720f.json +389 -0
  132. cleanyourphone-0.2.1/profiles/samsung/sm-m015g.json +366 -0
  133. cleanyourphone-0.2.1/profiles/samsung/sm-m105g.json +366 -0
  134. cleanyourphone-0.2.1/profiles/samsung/sm-m115f.json +323 -0
  135. cleanyourphone-0.2.1/profiles/samsung/sm-m136b.json +468 -0
  136. cleanyourphone-0.2.1/profiles/samsung/sm-m146b.json +438 -0
  137. cleanyourphone-0.2.1/profiles/samsung/sm-m325f.json +380 -0
  138. cleanyourphone-0.2.1/profiles/samsung/sm-m526b.json +491 -0
  139. cleanyourphone-0.2.1/profiles/samsung/sm-n970f.json +473 -0
  140. cleanyourphone-0.2.1/profiles/samsung/sm-n981b.json +458 -0
  141. cleanyourphone-0.2.1/profiles/samsung/sm-n986b.json +458 -0
  142. cleanyourphone-0.2.1/profiles/samsung/sm-p615.json +445 -0
  143. cleanyourphone-0.2.1/profiles/samsung/sm-s918b.json +149 -0
  144. cleanyourphone-0.2.1/profiles/samsung/sm-s938b.json +282 -0
  145. cleanyourphone-0.2.1/profiles/samsung/sm-t227u.json +365 -0
  146. cleanyourphone-0.2.1/profiles/samsung/sm-t500.json +352 -0
  147. cleanyourphone-0.2.1/profiles/samsung/sm-t505.json +381 -0
  148. cleanyourphone-0.2.1/profiles/samsung/sm-t577u.json +449 -0
  149. cleanyourphone-0.2.1/profiles/samsung/sm-t875.json +483 -0
  150. cleanyourphone-0.2.1/profiles/samsung/sm-t975.json +483 -0
  151. cleanyourphone-0.2.1/profiles/schema.json +95 -0
  152. cleanyourphone-0.2.1/profiles/xiaomi/hyperos.json +165 -0
  153. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-11t-pro.json +363 -0
  154. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-11t.json +468 -0
  155. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-12-lite.json +363 -0
  156. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-12x.json +387 -0
  157. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-15-ultra.json +425 -0
  158. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-15t.json +477 -0
  159. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-17-ultra.json +440 -0
  160. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-civi.json +370 -0
  161. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-10.json +370 -0
  162. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-11-ultra.json +387 -0
  163. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-9-se.json +277 -0
  164. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-mi-note-10.json +297 -0
  165. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-pad-6-pro.json +355 -0
  166. cleanyourphone-0.2.1/profiles/xiaomi/xiaomi-pad-6.json +355 -0
  167. cleanyourphone-0.2.1/pyproject.toml +48 -0
  168. cleanyourphone-0.2.1/setup.cfg +4 -0
  169. cleanyourphone-0.2.1/tests/test_dump_inventory.py +72 -0
  170. cleanyourphone-0.2.1/tests/test_phone.py +1043 -0
  171. cleanyourphone-0.2.1/tests/test_simulation.py +410 -0
  172. cleanyourphone-0.2.1/tools/__init__.py +5 -0
  173. cleanyourphone-0.2.1/tools/__main__.py +6 -0
  174. cleanyourphone-0.2.1/tools/adb.py +641 -0
  175. cleanyourphone-0.2.1/tools/checks.py +137 -0
  176. cleanyourphone-0.2.1/tools/extra.py +324 -0
  177. cleanyourphone-0.2.1/tools/phone.py +1124 -0
  178. cleanyourphone-0.2.1/tools/profiles.py +423 -0
  179. cleanyourphone-0.2.1/tools/protected.py +166 -0
  180. 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,3 @@
1
+ include README.md
2
+ include LICENSE
3
+ recursive-include profiles *.json
@@ -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).