+
+
+ {initError && (
+
+ ⚠
+ {initError}
+
+ )}
+ {renderView()}
+
diff --git a/frontend/src/assets/fonts/DotGothic16-Regular.ttf b/frontend/src/assets/fonts/DotGothic16-Regular.ttf
deleted file mode 100644
index 6634bc1..0000000
Binary files a/frontend/src/assets/fonts/DotGothic16-Regular.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/GeistPixel-Regular-VariableFont_ELSH.ttf b/frontend/src/assets/fonts/GeistPixel-Regular-VariableFont_ELSH.ttf
deleted file mode 100644
index 017376d..0000000
Binary files a/frontend/src/assets/fonts/GeistPixel-Regular-VariableFont_ELSH.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/Gugi-Regular.ttf b/frontend/src/assets/fonts/Gugi-Regular.ttf
deleted file mode 100644
index b500dbf..0000000
Binary files a/frontend/src/assets/fonts/Gugi-Regular.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/Orbitron-VariableFont_wght.ttf b/frontend/src/assets/fonts/Orbitron-VariableFont_wght.ttf
deleted file mode 100644
index 7d0d5e0..0000000
Binary files a/frontend/src/assets/fonts/Orbitron-VariableFont_wght.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/PlayfairDisplay-VariableFont_wght.ttf b/frontend/src/assets/fonts/PlayfairDisplay-VariableFont_wght.ttf
deleted file mode 100644
index b8d2d2c..0000000
Binary files a/frontend/src/assets/fonts/PlayfairDisplay-VariableFont_wght.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/PressStart2P-Regular.ttf b/frontend/src/assets/fonts/PressStart2P-Regular.ttf
deleted file mode 100644
index 2442aff..0000000
Binary files a/frontend/src/assets/fonts/PressStart2P-Regular.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/SpaceGrotesk-VariableFont_wght.ttf b/frontend/src/assets/fonts/SpaceGrotesk-VariableFont_wght.ttf
deleted file mode 100644
index 2c6cc59..0000000
Binary files a/frontend/src/assets/fonts/SpaceGrotesk-VariableFont_wght.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/VT323-Regular.ttf b/frontend/src/assets/fonts/VT323-Regular.ttf
deleted file mode 100644
index 6aec599..0000000
Binary files a/frontend/src/assets/fonts/VT323-Regular.ttf and /dev/null differ
diff --git a/frontend/src/assets/fonts/licenses/DotGothic16-OFL.txt b/frontend/src/assets/fonts/licenses/DotGothic16-OFL.txt
deleted file mode 100644
index 7c6649c..0000000
--- a/frontend/src/assets/fonts/licenses/DotGothic16-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2020 The DotGothic16 Project Authors (https://github.com/fontworks-fonts/DotGothic16)
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/assets/fonts/licenses/Geist_Pixel-OFL.txt b/frontend/src/assets/fonts/licenses/Geist_Pixel-OFL.txt
deleted file mode 100644
index eb4e73e..0000000
--- a/frontend/src/assets/fonts/licenses/Geist_Pixel-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2026 The Geist Project Authors (https://github.com/vercel/geist-font)
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/assets/fonts/licenses/Gugi-OFL.txt b/frontend/src/assets/fonts/licenses/Gugi-OFL.txt
deleted file mode 100644
index e1a5e7a..0000000
--- a/frontend/src/assets/fonts/licenses/Gugi-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright (c) 2017 by TAE System & Typefaces Co.. All rights reserved.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/assets/fonts/licenses/Orbitron-OFL.txt b/frontend/src/assets/fonts/licenses/Orbitron-OFL.txt
deleted file mode 100644
index 01f6fab..0000000
--- a/frontend/src/assets/fonts/licenses/Orbitron-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2018 The Orbitron Project Authors (https://github.com/theleagueof/orbitron), with Reserved Font Name: "Orbitron"
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/assets/fonts/licenses/Playfair_Display-OFL.txt b/frontend/src/assets/fonts/licenses/Playfair_Display-OFL.txt
deleted file mode 100644
index 3f1f22a..0000000
--- a/frontend/src/assets/fonts/licenses/Playfair_Display-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2017 The Playfair Display Project Authors (https://github.com/clauseggers/Playfair-Display), with Reserved Font Name "Playfair Display"
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/assets/fonts/licenses/Press_Start_2P-OFL.txt b/frontend/src/assets/fonts/licenses/Press_Start_2P-OFL.txt
deleted file mode 100644
index 70041e1..0000000
--- a/frontend/src/assets/fonts/licenses/Press_Start_2P-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2012 The Press Start 2P Project Authors (cody@zone38.net), with Reserved Font Name "Press Start 2P".
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/assets/fonts/licenses/Space_Grotesk-OFL.txt b/frontend/src/assets/fonts/licenses/Space_Grotesk-OFL.txt
deleted file mode 100644
index 014b75d..0000000
--- a/frontend/src/assets/fonts/licenses/Space_Grotesk-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2020 The Space Grotesk Project Authors (https://github.com/floriankarsten/space-grotesk)
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/assets/fonts/licenses/VT323-OFL.txt b/frontend/src/assets/fonts/licenses/VT323-OFL.txt
deleted file mode 100644
index e229272..0000000
--- a/frontend/src/assets/fonts/licenses/VT323-OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2011, The VT323 Project Authors (peter.hull@oikoi.com)
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/frontend/src/components/DangerGate.tsx b/frontend/src/components/DangerGate.tsx
deleted file mode 100644
index 58169e3..0000000
--- a/frontend/src/components/DangerGate.tsx
+++ /dev/null
@@ -1,76 +0,0 @@
-import { useEffect, useState } from 'react'
-import { ShieldAlert } from 'lucide-react'
-import { _registerDangerHost, tryUnlockDanger, type DangerRequest } from '../lib/applock'
-
-// Modal host for the destructive-action re-auth prompt. Mounted once in App.tsx.
-// ensureDangerUnlocked() (lib/applock) drives it: when a destructive action
-// needs re-auth, it hands us a request whose `resolve` we call with the outcome.
-export default function DangerGate() {
- const [req, setReq] = useState
(null)
- const [password, setPassword] = useState('')
- const [error, setError] = useState('')
- const [busy, setBusy] = useState(false)
-
- useEffect(() => _registerDangerHost(r => {
- setPassword('')
- setError('')
- setReq(r)
- }), [])
-
- if (!req) return null
-
- const close = (ok: boolean) => {
- req.resolve(ok)
- setReq(null)
- }
-
- const submit = async (e: React.FormEvent) => {
- e.preventDefault()
- if (!password || busy) return
- setBusy(true)
- setError('')
- try {
- const ok = await tryUnlockDanger(password)
- if (ok) { close(true); return }
- setError('Incorrect password')
- setPassword('')
- } catch (err: any) {
- setError(String(err))
- } finally {
- setBusy(false)
- }
- }
-
- return (
- { if (e.target === e.currentTarget) close(false) }}
- >
-
-
- )
-}
diff --git a/frontend/src/components/DismissibleBanner.tsx b/frontend/src/components/DismissibleBanner.tsx
deleted file mode 100644
index 5b32c64..0000000
--- a/frontend/src/components/DismissibleBanner.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { useState, type ReactNode } from 'react'
-import { X } from 'lucide-react'
-import { isDismissed, dismiss } from '../lib/dismissible'
-
-interface Props {
- /** Stable unique id - dismissal is remembered against this. */
- id: string
- /** Container classes (background, border, padding, text colour). */
- className?: string
- children: ReactNode
-}
-
-/**
- * A banner the user can permanently hide with the ✕ button. The dismissal is
- * remembered across restarts (keyed by `id`). Renders nothing once dismissed.
- */
-export default function DismissibleBanner({ id, className = '', children }: Props) {
- const [hidden, setHidden] = useState(() => isDismissed(id))
- if (hidden) return null
- return (
-
-
{children}
-
{ dismiss(id); setHidden(true) }}
- title="Hide this message"
- className="shrink-0 -my-0.5 -mr-1 p-1 rounded opacity-50 hover:opacity-100 transition-opacity"
- >
-
-
-
- )
-}
diff --git a/frontend/src/components/LockGate.tsx b/frontend/src/components/LockGate.tsx
deleted file mode 100644
index 78dab31..0000000
--- a/frontend/src/components/LockGate.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import { useState } from 'react'
-import { Lock } from 'lucide-react'
-import { VerifyAppPassword } from '../lib/wails'
-
-// Full-window launch gate. Rendered in place of the app when the lock is
-// enabled and the session hasn't been unlocked yet. The backend stores only a
-// salted scrypt hash; this just verifies and reveals the UI.
-export default function LockGate({ onUnlock }: { onUnlock: () => void }) {
- const [password, setPassword] = useState('')
- const [error, setError] = useState('')
- const [busy, setBusy] = useState(false)
-
- const submit = async (e: React.FormEvent) => {
- e.preventDefault()
- if (!password || busy) return
- setBusy(true)
- setError('')
- try {
- const ok = await VerifyAppPassword(password)
- if (ok) { onUnlock(); return }
- setError('Incorrect password')
- setPassword('')
- } catch (err: any) {
- setError(String(err))
- } finally {
- setBusy(false)
- }
- }
-
- return (
-
- )
-}
diff --git a/frontend/src/components/QuitGate.tsx b/frontend/src/components/QuitGate.tsx
deleted file mode 100644
index 5f220ee..0000000
--- a/frontend/src/components/QuitGate.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import { useEffect, useState } from 'react'
-import { LogOut, Minus, X } from 'lucide-react'
-import { HideWindow, QuitApp, TrayAvailable } from '../lib/wails'
-import { _registerQuitHost } from '../lib/quitgate'
-
-// Modal shown when the title bar's close button is clicked. Mirrors
-// Frequency's close dialog: offer Minimize-to-tray (default) alongside Quit,
-// rather than one silently winning. "Minimize to tray" only shows up if a
-// tray icon actually registered (TrayAvailable) - otherwise there'd be no way
-// back to the window.
-export default function QuitGate() {
- const [open, setOpen] = useState(false)
- const [trayOk, setTrayOk] = useState(false)
-
- useEffect(() => _registerQuitHost(() => {
- TrayAvailable().then(setTrayOk).catch(() => setTrayOk(false))
- setOpen(true)
- }), [])
-
- if (!open) return null
-
- const close = () => setOpen(false)
- const minimize = () => { close(); HideWindow() }
- const quit = () => { close(); QuitApp() }
-
- return (
- { if (e.target === e.currentTarget) close() }}
- >
-
-
-
- {trayOk
- ? 'ATK can keep running in the background and stay reachable from the tray, or quit completely.'
- : 'No tray icon is available on this system, so closing quits ATK completely.'}
-
-
- Cancel
- {trayOk && (
-
- Minimize to tray
-
- )}
-
- Quit
-
-
-
-
- )
-}
diff --git a/frontend/src/components/layout/Sidebar.tsx b/frontend/src/components/layout/Sidebar.tsx
index 6063507..68b50a2 100644
--- a/frontend/src/components/layout/Sidebar.tsx
+++ b/frontend/src/components/layout/Sidebar.tsx
@@ -1,227 +1,77 @@
import {
- LayoutDashboard, FolderOpen, Package, PackagePlus, Terminal,
- Zap, Wrench, Settings, Shield,
- ScrollText, Search, Lock, Archive, SlidersHorizontal, ScanSearch, MonitorSmartphone, Rocket, HardDriveDownload
+ LayoutDashboard, FolderOpen, Package, Terminal,
+ Zap, Wrench, Settings, Radio, Shield, Smartphone,
+ ScrollText, Search, Lock, Archive, SlidersHorizontal
} from 'lucide-react'
-import { useState, useEffect, useMemo, useRef } from 'react'
import type { View } from '../../lib/types'
-import type { SidebarPosition } from '../../lib/layout'
-import { getHiddenViews, onHiddenViewsChange, getNavOrder, setNavOrder } from '../../lib/featureflags'
interface Props {
activeView: View
onViewChange: (v: View) => void
- position: SidebarPosition
- showLabels: boolean
}
-interface NavItem { view: View; icon: React.ReactNode; label: string; dividerBefore?: boolean }
-
-const navItems: NavItem[] = [
+const navItems: { view: View; icon: React.ReactNode; label: string; dividerBefore?: boolean }[] = [
{ view: 'dashboard', icon: , label: 'Dashboard' },
{ view: 'files', icon: , label: 'Files' },
- { view: 'mirror', icon: , label: 'Screen Mirror' },
{ view: 'packages', icon: , label: 'Packages' },
- { view: 'apkinstaller', icon: , label: 'APK Installer' },
{ view: 'debloater', icon: , label: 'Debloater' },
{ view: 'shell', icon: , label: 'Shell' },
{ view: 'logcat', icon: , label: 'Logcat', dividerBefore: true },
{ view: 'appinspect', icon: , label: 'App Inspector' },
- { view: 'intentlab', icon: , label: 'Intent Lab' },
- { view: 'apkaudit', icon: , label: 'APK Audit' },
{ view: 'certs', icon: , label: 'Certificates' },
{ view: 'backup', icon: , label: 'Backup' },
{ view: 'props', icon: , label: 'Prop Editor' },
{ view: 'utilities', icon: , label: 'Utilities', dividerBefore: true },
{ view: 'flasher', icon: , label: 'Flasher' },
- { view: 'gsiloader', icon: , label: 'GSI Loader' },
+ { view: 'pixelflasher', icon: , label: 'Pixel Flash' },
]
-// Floor for progressive label shrinking in the horizontal sidebar - below
-// this, text becomes illegible, so labels hide outright instead.
-const MIN_LABEL_SCALE = 0.65
-
-interface DragProps {
- onDragStart: (e: React.DragEvent) => void
- onDragOver: (e: React.DragEvent) => void
- onDragLeave: () => void
- onDrop: (e: React.DragEvent) => void
- onDragEnd: () => void
- over: boolean
-}
-
-export default function Sidebar({ activeView, onViewChange, position, showLabels }: Props) {
- const horizontal = position !== 'left'
-
- const [hidden, setHidden] = useState(getHiddenViews())
- useEffect(() => onHiddenViewsChange(setHidden), [])
-
- // When horizontal (top/bottom sidebar), labels can make the row wider than
- // the window - rather than forcing a horizontal scrollbar, shrink label text
- // progressively as space gets tight (labelScale 1 -> MIN_LABEL_SCALE), and
- // only hide labels outright once even minimum-size text wouldn't fit.
- // `measureRef` is an offscreen clone always rendered WITH full-size labels
- // at natural width; comparing its scrollWidth against the real nav's
- // clientWidth (which itself doesn't change as labelScale changes) avoids
- // the flip-flop you'd get measuring the visible, already-shrunk row.
- const navRef = useRef(null)
- const measureRef = useRef(null)
- const [labelScale, setLabelScale] = useState(1)
- const effectiveShowLabels = showLabels && (!horizontal || labelScale > 0)
-
- // Drag-to-reorder (dock style). Saved order first, then any new defaults.
- const [order, setOrder] = useState(getNavOrder())
- const dragRef = useRef(null)
- const [overView, setOverView] = useState(null)
-
- const ordered = useMemo(() => {
- const map = new Map(navItems.map(i => [i.view as string, i]))
- const seen = new Set()
- const res: NavItem[] = []
- for (const v of order) {
- const it = map.get(v)
- if (it) { res.push(it); seen.add(v) }
- }
- for (const it of navItems) if (!seen.has(it.view)) res.push(it)
- return res
- }, [order])
-
- const visibleItems = ordered.filter(i => !hidden.includes(i.view))
-
- useEffect(() => {
- if (!horizontal || !showLabels) { setLabelScale(1); return }
- const nav = navRef.current
- const measure = measureRef.current
- if (!nav || !measure) return
- const check = () => {
- const ratio = measure.scrollWidth > 0 ? nav.clientWidth / measure.scrollWidth : 1
- setLabelScale(ratio >= 1 ? 1 : ratio >= MIN_LABEL_SCALE ? ratio : 0)
- }
- check()
- const ro = new ResizeObserver(check)
- ro.observe(nav)
- return () => ro.disconnect()
- }, [horizontal, showLabels, visibleItems])
-
- const handleDrop = (target: string) => {
- const from = dragRef.current
- dragRef.current = null
- setOverView(null)
- if (!from || from === target) return
- const base = ordered.map(i => i.view as string)
- const fi = base.indexOf(from)
- const ti = base.indexOf(target)
- if (fi < 0 || ti < 0) return
- base.splice(fi, 1)
- base.splice(ti, 0, from)
- setOrder(base)
- setNavOrder(base)
- }
-
- const edgeBorder =
- position === 'left' ? 'border-r' : position === 'top' ? 'border-b' : 'border-t'
-
- const asideCls = horizontal
- ? `${effectiveShowLabels ? 'h-[68px]' : 'h-[52px]'} w-full flex flex-row items-center bg-bg-surface ${edgeBorder} border-bg-border shrink-0`
- : `${effectiveShowLabels ? 'w-[84px]' : 'w-[52px]'} flex flex-col bg-bg-surface ${edgeBorder} border-bg-border shrink-0`
-
- const navCls = horizontal
- ? 'flex-1 flex flex-row items-center justify-center gap-0.5 px-1 overflow-x-auto'
- : 'flex-1 flex flex-col gap-0.5 p-1 pt-1.5 overflow-auto'
-
- const dividerCls = horizontal ? 'h-7 w-px bg-bg-border mx-1' : 'w-full h-px bg-bg-border my-1'
-
- const settingsWrapCls = horizontal
- ? 'px-1 h-full flex items-center border-l border-bg-border shrink-0'
- : 'p-1 pb-1.5 border-t border-bg-border shrink-0'
-
- const btnSizing = !effectiveShowLabels
- ? 'w-8 h-8'
- : horizontal
- ? 'flex-col gap-1 px-2 py-1.5 h-full justify-center'
- : 'flex-col gap-1 px-1 py-1.5 w-full'
-
- const labelCls = `leading-tight text-center ${horizontal ? 'whitespace-nowrap' : ''}`
-
- // Horizontal-only: button width and label font-size both track labelScale,
- // so shrinking text actually reclaims row space instead of just looking smaller.
- const btnStyle: React.CSSProperties | undefined =
- horizontal && effectiveShowLabels ? { minWidth: `${3.25 * labelScale}rem` } : undefined
- const labelStyle: React.CSSProperties = { fontSize: `${10 * labelScale}px` }
-
- const renderButton = (view: View | 'settings', icon: React.ReactNode, label: string, drag?: DragProps) => {
- const active = activeView === view
- return (
- onViewChange(view as View)}
- title={label}
- style={btnStyle}
- className={`
- flex items-center justify-center rounded transition-all duration-150 relative
- ${btnSizing}
- ${drag ? 'cursor-grab active:cursor-grabbing' : ''}
- ${drag?.over ? 'ring-1 ring-accent-green ring-inset' : ''}
- ${active
- ? 'bg-accent-green/10 text-accent-green'
- : 'text-text-muted hover:text-text-secondary hover:bg-bg-raised'
- }
- `}
- >
- {icon}
- {effectiveShowLabels && {label} }
- {active && (
- horizontal
- ?
- :
- )}
-
- )
- }
-
+export default function Sidebar({ activeView, onViewChange }: Props) {
return (
-
- {horizontal && showLabels && (
-
- {visibleItems.map(({ view, icon, label, dividerBefore }, idx) => (
-
- {dividerBefore && idx > 0 &&
}
-
- {icon}
- {label}
-
-
- ))}
-
-
-
- Settings
-
-
- )}
-
- {visibleItems.map(({ view, icon, label, dividerBefore }, idx) => (
-
- {dividerBefore && idx > 0 &&
}
- {renderButton(view, icon, label, {
- onDragStart: e => { dragRef.current = view; e.dataTransfer.setData('text/plain', view); e.dataTransfer.effectAllowed = 'move' },
- onDragOver: e => { e.preventDefault(); if (overView !== view) setOverView(view) },
- onDragLeave: () => setOverView(s => (s === view ? null : s)),
- onDrop: e => { e.preventDefault(); handleDrop(view) },
- onDragEnd: () => { dragRef.current = null; setOverView(null) },
- over: overView === view && dragRef.current !== view,
- })}
+
+
+
+
+
+
+ {navItems.map(({ view, icon, label, dividerBefore }) => (
+
+ {dividerBefore &&
}
+
onViewChange(view)}
+ title={label}
+ className={`
+ w-full flex items-center justify-center h-8 rounded
+ transition-all duration-150 relative
+ ${activeView === view
+ ? 'bg-accent-green/10 text-accent-green'
+ : 'text-text-muted hover:text-text-secondary hover:bg-bg-raised'
+ }
+ `}
+ >
+ {icon}
+ {activeView === view && (
+
+ )}
+
))}
-
- {renderButton('settings',
, 'Settings')}
+
+ onViewChange('settings')}
+ title="Settings"
+ className={`
+ w-full flex items-center justify-center h-8 rounded transition-all duration-150
+ ${activeView === 'settings'
+ ? 'bg-accent-green/10 text-accent-green'
+ : 'text-text-muted hover:text-text-secondary hover:bg-bg-raised'
+ }
+ `}
+ >
+
+
)
diff --git a/frontend/src/components/layout/TitleBar.tsx b/frontend/src/components/layout/TitleBar.tsx
deleted file mode 100644
index 77f2258..0000000
--- a/frontend/src/components/layout/TitleBar.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-// Custom frameless title bar. The window is Frameless (main.go), which on GTK
-// also removes the native title (so no app name shows). This thin bar provides
-// the drag region via Wails' `--wails-draggable:drag` CSS hint, plus macOS-style
-// traffic-light controls tinted in Catppuccin pastels. No app name by design.
-
-import { requestQuitConfirm } from '../../lib/quitgate'
-
-// Runtime is injected by Wails on window['runtime'] (same access pattern as
-// ViewLogcat.tsx); guarded with ?. so a browser dev session won't crash.
-const rt = () => (window as any)['runtime']
-
-function TrafficLight({ color, hover, title, onClick }: {
- color: string; hover: string; title: string; onClick: () => void
-}) {
- return (
-
- )
-}
-
-export default function TitleBar() {
- return (
-
- {/* Catppuccin Frappé: green #a6d189, peach/yellow #e5c890, red #e78284.
- Right-aligned (ml-auto), close at the far edge. */}
-
- rt()?.WindowMinimise?.()} />
- rt()?.WindowToggleMaximise?.()} />
-
-
-
- )
-}
diff --git a/frontend/src/components/views/LogcatMap.tsx b/frontend/src/components/views/LogcatMap.tsx
deleted file mode 100644
index 276b22e..0000000
--- a/frontend/src/components/views/LogcatMap.tsx
+++ /dev/null
@@ -1,2004 +0,0 @@
-import { useEffect, useRef, useState, useCallback } from 'react'
-import {
- Settings2, Snowflake, Trash2, Crosshair, X, ArrowRight, ArrowLeft, Activity, Zap,
- Square, Sparkles, Pause, Play, ZoomIn, ZoomOut, Maximize, Gauge, LayoutGrid, Waves,
- Spline, Focus, Clock, Expand, Shrink, Shapes, Box, Scaling, Info, Keyboard, Hexagon, Circle,
- AlertTriangle, Filter, Star, Table, Copy, Maximize2, Minimize2, Flag, Frame,
-} from 'lucide-react'
-import { Application, Container, Graphics, Sprite, Texture, Text, BlurFilter } from 'pixi.js'
-import * as THREE from 'three'
-import { LogGraph, DEFAULT_CONFIG, PRESETS, LEVELS, levelNum, nodeRadius, type GraphConfig, type GNode, type GEdge, type BoxRect, type GeometryShape } from '../../lib/logcatgraph'
-import { LogcatProcessNames } from '../../lib/wails'
-import type { LogcatLine } from '../../lib/types'
-
-type RenderStyle = 'canvas' | 'pixi' | 'three'
-
-// ---- persistence (settings + custom presets survive across sessions) -----
-const LS_CFG = 'atk.map.cfg', LS_STYLE = 'atk.map.style', LS_PRESETS = 'atk.map.presets'
-function loadCfg(): GraphConfig {
- try { const s = localStorage.getItem(LS_CFG); if (s) return { ...DEFAULT_CONFIG, ...JSON.parse(s) } } catch { /* */ }
- return { ...DEFAULT_CONFIG }
-}
-function loadStyle(): RenderStyle {
- try { const s = localStorage.getItem(LS_STYLE); if (s === 'pixi' || s === 'canvas' || s === 'three') return s } catch { /* */ }
- return 'canvas'
-}
-type UserPreset = Partial
& { _style?: RenderStyle }
-function loadUserPresets(): Record {
- try { const s = localStorage.getItem(LS_PRESETS); if (s) return JSON.parse(s) } catch { /* */ }
- return {}
-}
-
-// ---- cyberpunk palette ----------------------------------------------------
-const LEVEL_COLOR = ['#6b7280', '#38bdf8', '#34d399', '#fbbf24', '#f43f5e', '#ff3b3b']
-const KIND_COLOR: Record = {
- cooccur: '#3b82f6', activity: '#22d3ee', spawn: '#34d399', death: '#fb7185',
- crash: '#e879f9', anr: '#fb923c', signal: '#f87171', gfx: '#a78bfa', mention: '#64748b',
-}
-const KIND_LABEL: Record = {
- cooccur: 'active together', activity: 'launch', spawn: 'start', death: 'death/kill',
- crash: 'crash', anr: 'ANR', signal: 'signal', gfx: 'surface', mention: 'mention',
-}
-
-function shortLabel(s: string): string {
- if (s.length <= 22) return s
- const parts = s.split('.')
- if (parts.length > 2) return '…' + parts.slice(-2).join('.')
- return s.slice(0, 21) + '…'
-}
-
-// the live map as a plain-text table (nodes ranked by activity + connections) —
-// for the toggleable Data view (readable / greppable / copyable)
-function mapDataText(eng: LogGraph): string {
- const deg = new Map()
- for (const e of eng.edges.values()) { deg.set(e.a, (deg.get(e.a) || 0) + 1); deg.set(e.b, (deg.get(e.b) || 0) + 1) }
- const nodes = [...eng.nodes.values()].sort((a, b) => b.count - a.count)
- const lines = [`# ${eng.nodes.size} nodes · ${eng.edges.size} edges · ${eng.alerts.length} alerts · ${eng.totalLines} lines`, '', 'EVENTS LVL KIND CONNS NODE']
- for (const n of nodes) {
- const lv = LEVELS[Math.min(5, Math.round(n.worst))]
- lines.push(`${String(n.count).padStart(6)} ${lv.padEnd(3)} ${n.kind.padEnd(9)} ${String(deg.get(n.id) || 0).padStart(4)} ${n.label}`)
- }
- lines.push('', 'CONNECTIONS (source → target · kind · count)')
- for (const e of [...eng.edges.values()].sort((a, b) => b.weight - a.weight).slice(0, 250)) {
- const a = eng.nodes.get(e.a)?.label || e.a.slice(2), b = eng.nodes.get(e.b)?.label || e.b.slice(2)
- lines.push(`${a} → ${b} [${e.kind}] ×${e.count}`)
- }
- return lines.join('\n')
-}
-
-// semantic relationships keep their meaningful color even in per-source mode —
-// a crash should always read red, a kill pink, regardless of which hub emitted it.
-const SEMANTIC_KINDS = new Set(['crash', 'anr', 'death', 'signal', 'activity', 'spawn', 'gfx'])
-function hueFromId(id: string): string {
- let h = 0
- for (let i = 0; i < id.length; i++) h = (h * 31 + id.charCodeAt(i)) >>> 0
- return hslToHex(h % 360, 42, 58) // muted, not neon
-}
-function hslToHex(h: number, s: number, l: number): string {
- s /= 100; l /= 100
- const a = s * Math.min(l, 1 - l)
- const f = (n: number) => {
- const k = (n + h / 30) % 12
- const c = l - a * Math.max(-1, Math.min(k - 3, Math.min(9 - k, 1)))
- return Math.round(255 * c).toString(16).padStart(2, '0')
- }
- return '#' + f(0) + f(8) + f(4)
-}
-// edge color: by relationship kind, source-hub hue (ambient edges only), or severity.
-function edgeColor(e: GEdge, mode: 'kind' | 'source' | 'severity'): string {
- if (mode === 'severity') return LEVEL_COLOR[Math.min(5, Math.round(e.worst))]
- if (mode === 'source' && !SEMANTIC_KINDS.has(e.kind)) return hueFromId(e.a)
- return KIND_COLOR[e.kind] || '#3b82f6'
-}
-// node color: 'auto' = severity when warn+ else kind; or force kind / severity / hub hue.
-function nodeColor(n: GNode, mode: 'auto' | 'kind' | 'severity' | 'hub'): string {
- const sev = Math.min(5, Math.round(n.worst))
- if (mode === 'kind') return kindBase(n.kind)
- if (mode === 'severity') return LEVEL_COLOR[sev]
- if (mode === 'hub') return hueFromId(n.id)
- return sev >= 3 ? LEVEL_COLOR[sev] : kindBase(n.kind)
-}
-
-interface Props {
- running: boolean
- registerSink: (fn: ((l: LogcatLine) => void) | null) => void
- onInspectEntity?: (e: { kind: 'pid' | 'tag'; value: string; label: string }) => void
- hidden?: boolean
- search?: string
-}
-
-export default function LogcatMap({ running, registerSink, onInspectEntity, hidden, search }: Props) {
- const canvasRef = useRef(null)
- const pixiCanvasRef = useRef(null)
- const wrapRef = useRef(null)
- const engineRef = useRef(new LogGraph())
- const sizeRef = useRef({ w: 800, h: 600 })
- const camRef = useRef({ scale: 1, ox: 0, oy: 0 })
- const dragRef = useRef<{ kind: 'node' | 'pan'; id?: string; group?: string[]; lastX: number; lastY: number; moved: number } | null>(null)
- const selRef = useRef(null)
- const hovRef = useRef(null)
- const pausedRef = useRef(false)
- const pulseRef = useRef<{ id: string; until: number } | null>(null)
- const cfgRef = useRef(loadCfg())
- const styleRef = useRef(loadStyle())
- const pixiRef = useRef(null)
- const pixiInitRef = useRef(false) // guards the one-time async Pixi init
- const threeCanvasRef = useRef(null)
- const threeLabelsRef = useRef(null)
- const threeRef = useRef(null)
- const threeInitRef = useRef(false)
- const orbitRef = useRef({ az: 0.6, el: 0.35, dist: 1500 }) // 3D orbit camera
-
- const [renderStyle, setRenderStyle] = useState(loadStyle)
- const [pixiErr, setPixiErr] = useState(null)
- const [paused, setPaused] = useState(false)
- const [cfg, setCfg] = useState(loadCfg)
- const [userPresets, setUserPresets] = useState>(loadUserPresets)
- const [showSettings, setShowSettings] = useState(false)
- const [showFeed, setShowFeed] = useState(false) // live packet feed
- const [showTimeline, setShowTimeline] = useState(false) // bottom severity timeline
- const [feedWindow, setFeedWindow] = useState<{ start: number; end: number; label: string } | null>(null)
- const [showLegend, setShowLegend] = useState(false)
- const [showHelp, setShowHelp] = useState(false)
- const [recording, setRecording] = useState(false) // capture packets to a buffer
- const [feedSource, setFeedSource] = useState<'live' | 'captured'>('live')
- const [showAlerts, setShowAlerts] = useState(false) // critical-events panel
- const [alertSeen, setAlertSeen] = useState(0) // alerts count already seen (for the badge)
- const lastAlertLenRef = useRef(0)
- const [watch, setWatch] = useState([]) // watchlist of node ids
- const [showWatch, setShowWatch] = useState(false)
- const watchRef = useRef>(new Set())
- const [alertRules, setAlertRules] = useState(() => { try { return JSON.parse(localStorage.getItem('atk.map.alertrules') || '[]') } catch { return [] } })
- const [ruleInput, setRuleInput] = useState('')
- const [bigPanel, setBigPanel] = useState(null) // fullscreen/expanded panel
- const [showData, setShowData] = useState(false) // map data as a text table
- const [mapFull, setMapFull] = useState(false) // detach: map fills the whole window
- const pendingFitRef = useRef(false) // request: stretch layout to fill the screen
- const [hiddenKinds, setHiddenKinds] = useState(() => { try { return JSON.parse(localStorage.getItem('atk.map.hidekinds') || '[]') } catch { return [] } })
- const hiddenKindsRef = useRef>(new Set())
- const [matchIdx, setMatchIdx] = useState(0) // search-result cursor
- const [baselineOn, setBaselineOn] = useState(false) // diff-since-baseline mode
- const [showEdges, setShowEdges] = useState(() => { try { return localStorage.getItem('atk.map.edges') !== '0' } catch { return true } })
- const [isolate, setIsolate] = useState(false) // show only selected node + neighbours
- const [feedSize, setFeedSize] = useState(() => { // resizable packet feed
- try { const v = JSON.parse(localStorage.getItem('atk.map.feed') || ''); if (v?.w && v?.h) return v } catch { /* */ }
- return { w: 400, h: 256 }
- })
- const showEdgesRef = useRef(showEdges)
- const isolateRef = useRef(isolate)
- const searchRef = useRef('')
- const [inspectorW, setInspectorW] = useState(() => { // resizable inspector width (px)
- try { const v = Number(localStorage.getItem('atk.map.iw')); if (v >= 260 && v <= 760) return v } catch { /* */ }
- return 320
- })
- useEffect(() => { try { localStorage.setItem('atk.map.iw', String(inspectorW)) } catch { /* */ } }, [inspectorW])
- useEffect(() => { showEdgesRef.current = showEdges; try { localStorage.setItem('atk.map.edges', showEdges ? '1' : '0') } catch { /* */ } }, [showEdges])
- useEffect(() => { isolateRef.current = isolate }, [isolate])
- useEffect(() => { searchRef.current = (search || '').trim().toLowerCase() }, [search])
- useEffect(() => { engineRef.current.capturing = recording }, [recording])
- // keep the watchlist set in sync (also tells the engine never to evict these)
- useEffect(() => { const s = new Set(watch); watchRef.current = s; engineRef.current.watchedIds = s }, [watch])
- const toggleWatch = useCallback((id: string) => setWatch(w => w.includes(id) ? w.filter(x => x !== id) : [...w, id]), [])
- // keyword/tag alert rules → ping when matching text/tag streams in
- useEffect(() => { engineRef.current.alertRules = alertRules.map(r => r.toLowerCase()); try { localStorage.setItem('atk.map.alertrules', JSON.stringify(alertRules)) } catch { /* */ } }, [alertRules])
- const addRule = () => { const r = ruleInput.trim(); if (r && !alertRules.includes(r)) setAlertRules(a => [...a, r]); setRuleInput('') }
- // by-kind visibility filter
- useEffect(() => { hiddenKindsRef.current = new Set(hiddenKinds); try { localStorage.setItem('atk.map.hidekinds', JSON.stringify(hiddenKinds)) } catch { /* */ } }, [hiddenKinds])
- const toggleKind = (k: string) => setHiddenKinds(h => h.includes(k) ? h.filter(x => x !== k) : [...h, k])
- // step through search matches (stable order by activity), jumping the camera to each
- const searchMatches = (): GNode[] => {
- const q = (search || '').trim().toLowerCase()
- if (!q) return []
- return [...engineRef.current.nodes.values()].filter(n => n.label.toLowerCase().includes(q) || n.id.toLowerCase().includes(q)).sort((a, b) => b.count - a.count)
- }
- const stepMatch = (dir: number) => {
- const m = searchMatches(); if (!m.length) return
- const idx = ((matchIdx + dir) % m.length + m.length) % m.length
- setMatchIdx(idx); focusNode(m[idx].id)
- }
- useEffect(() => { setMatchIdx(0) }, [search])
- // copy the captured packets (with resolved node names) to the clipboard as JSON
- const exportCaptured = () => {
- const eng = engineRef.current
- const rows = eng.captured.map(f => ({
- from: eng.nodes.get(f.a)?.label || f.a, to: eng.nodes.get(f.b)?.label || f.b,
- kind: f.kind, level: LEVELS[Math.min(5, Math.round(f.level))], tag: f.tag, msg: f.msg,
- }))
- try { navigator.clipboard?.writeText(JSON.stringify(rows, null, 2)) } catch { /* */ }
- }
- useEffect(() => { try { localStorage.setItem('atk.map.feed', JSON.stringify(feedSize)) } catch { /* */ } }, [feedSize])
- const [selected, setSelected] = useState(null)
- const [hover, setHover] = useState<{ id: string; x: number; y: number } | null>(null)
- const [pktHover, setPktHover] = useState<{ x: number; y: number; line: LogcatLine } | null>(null)
- const [, setTick] = useState(0) // forces inspector/HUD refresh
- const [stats, setStats] = useState({ nodes: 0, edges: 0, particles: 0, lines: 0 })
-
- // keep engine config in sync
- useEffect(() => { engineRef.current.setConfig(cfg); cfgRef.current = cfg }, [cfg])
- useEffect(() => { styleRef.current = renderStyle }, [renderStyle])
- useEffect(() => { pausedRef.current = paused }, [paused])
- // persist across sessions
- useEffect(() => { try { localStorage.setItem(LS_CFG, JSON.stringify(cfg)) } catch { /* */ } }, [cfg])
- useEffect(() => { try { localStorage.setItem(LS_STYLE, renderStyle) } catch { /* */ } }, [renderStyle])
- useEffect(() => { try { localStorage.setItem(LS_PRESETS, JSON.stringify(userPresets)) } catch { /* */ } }, [userPresets])
- const patch = (p: Partial) => setCfg(c => ({ ...c, ...p }))
- const applyPreset = (name: string) => {
- const p = (PRESETS[name] || userPresets[name]) as UserPreset | undefined
- if (!p) return
- if (p._style) setRenderStyle(p._style)
- const { _style, ...rest } = p
- camRef.current = { scale: 1, ox: 0, oy: 0 } // restored layout may differ → reframe
- setCfg(c => ({ ...c, ...rest }))
- }
- // save the FULL current state as a named preset — layout mode, geometry, scale,
- // colour coding, glow, fades AND the render style (so it restores exactly).
- const saveUserPreset = (name: string) => {
- const n = name.trim(); if (!n) return
- setUserPresets(p => ({ ...p, [n]: { ...cfgRef.current, _style: styleRef.current } }))
- }
- const deleteUserPreset = (name: string) => setUserPresets(p => { const c = { ...p }; delete c[name]; return c })
-
- // feed the engine from the shared logcat stream
- useEffect(() => {
- const eng = engineRef.current
- registerSink((line) => { if (!pausedRef.current) eng.ingest(line, sizeRef.current.w, sizeRef.current.h) })
- return () => registerSink(null)
- }, [registerSink])
-
- // resolve PID -> package names periodically while running
- useEffect(() => {
- let stop = false
- const pull = () => LogcatProcessNames().then(m => { if (!stop) engineRef.current.setProcessNames(m) }).catch(() => {})
- pull()
- const id = setInterval(() => { if (running) pull() }, 4000)
- return () => { stop = true; clearInterval(id) }
- }, [running])
-
- const selectNode = useCallback((id: string | null) => { selRef.current = id; setSelected(id) }, [])
-
- // Esc clears the selection; Space pauses/resumes (so you can click a frozen
- // particle). Space is ignored while typing in any input so it never breaks
- // the search/filter boxes, and only when the map is actually visible.
- useEffect(() => {
- const isTyping = (el: EventTarget | null) => {
- const t = el as HTMLElement | null
- return !!t && (t.tagName === 'INPUT' || t.tagName === 'TEXTAREA' || t.isContentEditable)
- }
- const onKey = (e: KeyboardEvent) => {
- if (e.key === 'Escape') { selectNode(null); setMapFull(false) }
- else if ((e.key === ' ' || e.code === 'Space') && !hidden && !isTyping(e.target)) {
- e.preventDefault()
- setPaused(p => !p)
- }
- }
- window.addEventListener('keydown', onKey)
- return () => window.removeEventListener('keydown', onKey)
- }, [selectNode, hidden])
-
- // auto-dismiss the WebGL-fallback note so it can't get stuck on screen
- useEffect(() => {
- if (!pixiErr) return
- const id = setTimeout(() => setPixiErr(null), 9000)
- return () => clearTimeout(id)
- }, [pixiErr])
-
- // select a node AND pan it to centre + pulse it — so "trace"/connection hops
- // visibly take you there instead of silently selecting something off-screen.
- const focusNode = useCallback((id: string | null) => {
- selectNode(id)
- if (!id) return
- const n = engineRef.current.nodes.get(id)
- if (!n) return
- const { w, h } = sizeRef.current
- const cam = camRef.current
- cam.ox = w / 2 - n.x * cam.scale
- cam.oy = h / 2 - n.y * cam.scale
- pulseRef.current = { id, until: performance.now() + 1300 }
- }, [selectNode])
-
- // ---- main render loop --------------------------------------------------
- useEffect(() => {
- const canvas = canvasRef.current!
- const ctx = canvas.getContext('2d')!
- const eng = engineRef.current
- let raf = 0
- let prev = performance.now()
- let uiAcc = 0
-
- const resize = () => {
- const r = wrapRef.current!.getBoundingClientRect()
- const dpr = Math.min(window.devicePixelRatio || 1, 2)
- sizeRef.current = { w: r.width, h: r.height }
- canvas.width = Math.floor(r.width * dpr)
- canvas.height = Math.floor(r.height * dpr)
- canvas.style.width = r.width + 'px'
- canvas.style.height = r.height + 'px'
- ctx.setTransform(dpr, 0, 0, dpr, 0, 0)
- if (pixiRef.current && r.width > 0) pixiRef.current.app.renderer.resize(r.width, r.height)
- if (threeRef.current && r.width > 0) {
- threeRef.current.renderer.setSize(r.width, r.height, false)
- threeRef.current.camera.aspect = r.width / r.height
- threeRef.current.camera.updateProjectionMatrix()
- }
- }
- resize()
- const ro = new ResizeObserver(resize)
- ro.observe(wrapRef.current!)
-
- const frame = (t: number) => {
- const dt = t - prev; prev = t
- const { w, h } = sizeRef.current
- const cam = camRef.current
-
- // stretch the current arrangement to fill the viewport (one-shot, any mode)
- if (pendingFitRef.current) {
- pendingFitRef.current = false
- const arr = [...eng.nodes.values()]
- if (arr.length) {
- let mnX = Infinity, mnY = Infinity, mxX = -Infinity, mxY = -Infinity
- for (const n of arr) { if (n.x < mnX) mnX = n.x; if (n.y < mnY) mnY = n.y; if (n.x > mxX) mxX = n.x; if (n.y > mxY) mxY = n.y }
- const pad = 70, bw = Math.max(1, mxX - mnX), bh = Math.max(1, mxY - mnY)
- const sx = (w - pad * 2) / bw, sy = (h - pad * 2) / bh
- const bcx = (mnX + mxX) / 2, bcy = (mnY + mxY) / 2
- for (const n of arr) { n.x = w / 2 + (n.x - bcx) * sx; n.y = h / 2 + (n.y - bcy) * sy; n.vx = 0; n.vy = 0 }
- camRef.current.scale = 1; camRef.current.ox = 0; camRef.current.oy = 0
- }
- }
-
- const ts = cfgRef.current.timeScale
- if (!pausedRef.current) {
- eng.decay(ts)
- eng.stepForces(w, h, dt * ts)
- eng.advanceParticles(dt * ts)
- }
-
- // ---- draw ----
- if (styleRef.current === 'canvas') {
- ctx.save()
- // background
- ctx.fillStyle = '#0a0c12'
- ctx.fillRect(0, 0, w, h)
- ctx.translate(cam.ox, cam.oy); ctx.scale(cam.scale, cam.scale)
-
- drawGrid(ctx, w, h, cam, cfg.showGrid)
- if (cfgRef.current.boxLayout) drawBoxesCanvas(ctx, eng.boxes, cam)
-
- // focus = whatever the user is looking at (hover) or has pinned (click).
- // Hovering instantly lights up that node's connections — the key to
- // reading "what talks to what".
- const sel = selRef.current
- const focus = sel || hovRef.current
- const neighborIds = new Set()
- if (focus) for (const n of eng.neighbors(focus)) neighborIds.add(n.node.id)
- // isolate: when on + a node selected, only that node + its neighbours show
- const iso = (isolateRef.current && sel) ? sel : null
- const isoVisible = (id: string) => !iso || id === iso || neighborIds.has(id)
- const q = searchRef.current
- const matchNode = (n: GNode) => !q || n.label.toLowerCase().includes(q) || n.id.toLowerCase().includes(q)
- const hk = hiddenKindsRef.current
- const kindHidden = (id: string) => { const nn = eng.nodes.get(id); return !!nn && hk.has(nn.kind) }
-
- // edges (overlay toggle hides them so the moving particles read cleanly)
- if (showEdgesRef.current) {
- ctx.lineCap = 'round'
- for (const e of eng.edges.values()) {
- if (iso && e.a !== iso && e.b !== iso) continue
- if (hk.size && (kindHidden(e.a) || kindHidden(e.b))) continue
- const a = eng.nodes.get(e.a), b = eng.nodes.get(e.b)
- if (!a || !b) continue
- const rel = e.a === focus || e.b === focus
- let alpha: number, width: number
- if (!focus) { alpha = Math.min(0.55, e.weight * 0.06 + 0.16); width = Math.min(3, 0.9 + e.weight * 0.18) / cam.scale + 0.25 }
- else if (rel) { alpha = Math.min(0.95, 0.5 + e.weight * 0.06); width = Math.min(5, 1.6 + e.weight * 0.26) / cam.scale + 0.35 }
- else { alpha = 0.04; width = 0.5 / cam.scale }
- const col = edgeColor(e, cfgRef.current.edgeColorMode)
- ctx.strokeStyle = hexA(col, alpha); ctx.lineWidth = width
- ctx.beginPath(); ctx.moveTo(a.x, a.y); ctx.lineTo(b.x, b.y); ctx.stroke()
- if (focus && rel) drawArrowCanvas(ctx, a, b, col, cam.scale)
- }
- }
-
- // particles (additive)
- ctx.globalCompositeOperation = 'lighter'
- for (const p of eng.particles) {
- if (iso && p.a !== iso && p.b !== iso) continue
- if (hk.size && (kindHidden(p.a) || kindHidden(p.b))) continue
- const a = eng.nodes.get(p.a), b = eng.nodes.get(p.b)
- if (!a || !b) continue
- const x = a.x + (b.x - a.x) * p.t, y = a.y + (b.y - a.y) * p.t
- const tt = Math.max(0, p.t - 0.16)
- const tx = a.x + (b.x - a.x) * tt, ty = a.y + (b.y - a.y) * tt
- const col = p.level >= 3 ? LEVEL_COLOR[Math.min(5, Math.round(p.level))] : (KIND_COLOR[p.kind] || '#22d3ee')
- // brightness NOT tied to the glow slider — particles stay readable
- ctx.strokeStyle = hexA(col, (1 - p.t) * 0.9)
- ctx.lineWidth = (p.level >= 4 ? 3 : 2) / cam.scale + 0.4
- ctx.beginPath(); ctx.moveTo(tx, ty); ctx.lineTo(x, y); ctx.stroke()
- ctx.fillStyle = hexA(col, 0.98)
- ctx.beginPath(); ctx.arc(x, y, (p.level >= 4 ? 2.8 : 2.1) / cam.scale + 0.5, 0, 7); ctx.fill()
- }
- ctx.globalCompositeOperation = 'source-over'
-
- // nodes
- for (const n of eng.nodes.values()) {
- if (iso && !isoVisible(n.id)) continue
- if (hk.has(n.kind)) continue
- const r = nodeRadius(n)
- const col = nodeColor(n, cfgRef.current.nodeColorMode)
- const dim = (focus && n.id !== focus && !neighborIds.has(n.id)) || !matchNode(n)
- if (cfgRef.current.wireframe) {
- // schematic: hollow ring, no halo/fill
- ctx.strokeStyle = hexA(col, dim ? 0.3 : 0.95); ctx.lineWidth = 1.5 / cam.scale
- ctx.beginPath(); ctx.arc(n.x, n.y, r, 0, 7); ctx.stroke()
- } else {
- const aGlow = (dim ? 0.08 : 0.26) * (0.5 + Math.min(1, n.heat / 4)) * cfg.glow
- // halo
- const g = ctx.createRadialGradient(n.x, n.y, 0, n.x, n.y, r * 2.2)
- g.addColorStop(0, hexA(col, aGlow)); g.addColorStop(1, hexA(col, 0))
- ctx.fillStyle = g
- ctx.beginPath(); ctx.arc(n.x, n.y, r * 2.2, 0, 7); ctx.fill()
- // core
- ctx.fillStyle = dim ? hexA(col, 0.35) : col
- ctx.beginPath(); ctx.arc(n.x, n.y, r, 0, 7); ctx.fill()
- }
- // ring for selection / hover (or a green ring for a search match)
- if (n.id === sel || n.id === hovRef.current) {
- ctx.strokeStyle = '#ffffff'; ctx.lineWidth = 1.5 / cam.scale
- ctx.beginPath(); ctx.arc(n.x, n.y, r + 3 / cam.scale, 0, 7); ctx.stroke()
- } else if (q && matchNode(n)) {
- ctx.strokeStyle = 'rgba(52,211,153,0.95)'; ctx.lineWidth = 2 / cam.scale
- ctx.beginPath(); ctx.arc(n.x, n.y, r + 3 / cam.scale, 0, 7); ctx.stroke()
- }
- if (watchRef.current.has(n.id)) { // watchlist marker
- ctx.strokeStyle = 'rgba(250,204,21,0.9)'; ctx.lineWidth = 2 / cam.scale
- ctx.beginPath(); ctx.arc(n.x, n.y, r + 6 / cam.scale, 0, 7); ctx.stroke()
- }
- if (eng.baselineActive && !n.baseline) { // appeared since baseline
- ctx.strokeStyle = 'rgba(34,211,238,0.95)'; ctx.lineWidth = 2.5 / cam.scale
- ctx.beginPath(); ctx.arc(n.x, n.y, r + 9 / cam.scale, 0, 7); ctx.stroke()
- }
- // label
- const big = n.heat > 1.2 || n.id === sel || n.id === hovRef.current || neighborIds.has(n.id)
- if (big && cam.scale > 0.5) {
- ctx.font = `${11 / cam.scale}px 'JetBrains Mono', monospace`
- ctx.fillStyle = dim ? 'rgba(200,210,230,0.3)' : 'rgba(220,228,245,0.92)'
- ctx.textAlign = 'center'
- ctx.fillText(shortLabel(n.label), n.x, n.y + r + 12 / cam.scale)
- }
- }
- // trace pulse — expanding ring on a just-focused node
- const pulse = pulseRef.current
- if (pulse && performance.now() < pulse.until) {
- const pn = eng.nodes.get(pulse.id)
- if (pn) {
- const k = 1 - (pulse.until - performance.now()) / 1300
- ctx.strokeStyle = hexA('#ffffff', (1 - k) * 0.85)
- ctx.lineWidth = 2 / cam.scale
- ctx.beginPath(); ctx.arc(pn.x, pn.y, nodeRadius(pn) + k * 44 / cam.scale, 0, 7); ctx.stroke()
- }
- } else if (pulse) pulseRef.current = null
- if (cfgRef.current.boxLayout) drawTetractysCanvas(ctx, eng.boxes, cam.scale)
- ctx.restore()
- } else if (styleRef.current === 'pixi') {
- if (pixiRef.current) renderPixi(pixiRef.current, eng, cam, cfgRef.current, selRef.current, hovRef.current, pulseRef.current, dt * ts, pausedRef.current, showEdgesRef.current, isolateRef.current, searchRef.current, watchRef.current, hiddenKindsRef.current)
- } else if (threeRef.current) {
- renderThree(threeRef.current, eng, orbitRef.current, sizeRef.current, selRef.current, hovRef.current, showEdgesRef.current, isolateRef.current, searchRef.current, threeLabelsRef.current, watchRef.current, hiddenKindsRef.current, dt * ts, pausedRef.current)
- }
-
- // periodic UI refresh (inspector + HUD)
- uiAcc += dt
- if (uiAcc > 350) {
- uiAcc = 0
- const flowCount = styleRef.current === 'pixi' && pixiRef.current ? pixiRef.current.flows.length
- : styleRef.current === 'three' && threeRef.current ? threeRef.current.flowGeo.drawRange.count
- : eng.particles.length
- setStats({ nodes: eng.nodes.size, edges: eng.edges.size, particles: flowCount, lines: eng.totalLines })
- // a new critical event arrived → ping its node on the map + refresh badge
- if (eng.alerts.length > lastAlertLenRef.current) {
- const latest = eng.alerts[eng.alerts.length - 1]
- if (latest && eng.nodes.has(latest.id) && !pausedRef.current) pulseRef.current = { id: latest.id, until: performance.now() + 1400 }
- lastAlertLenRef.current = eng.alerts.length
- setTick(v => v + 1)
- }
- if (selRef.current) setTick(v => v + 1)
- }
- raf = requestAnimationFrame(frame)
- }
- raf = requestAnimationFrame(frame)
- return () => { cancelAnimationFrame(raf); ro.disconnect() }
- }, [cfg.showGrid, cfg.glow])
-
- // Create the Pixi scene ONCE, lazily, the first time Neon is selected — and
- // KEEP it for the life of the view. Destroying + recreating it on every
- // Canvas<->Neon toggle is what threw "shaderSource must be a WebGLShader":
- // under WebKitGTK, re-initing a renderer on the same canvas reuses stale GL
- // shader programs from the torn-down context. So we never destroy on toggle;
- // only on unmount. When Canvas is active the pixi is just hidden.
- useEffect(() => {
- if (renderStyle !== 'pixi' || pixiRef.current || pixiInitRef.current) return
- pixiInitRef.current = true
- const r = wrapRef.current!.getBoundingClientRect()
- createPixiScene(pixiCanvasRef.current!, r.width || 800, r.height || 600)
- .then(scene => { pixiRef.current = scene; setPixiErr(null) })
- .catch((err) => {
- pixiInitRef.current = false
- setPixiErr('Neon failed: ' + (err?.message || String(err)))
- setRenderStyle('canvas')
- })
- }, [renderStyle])
-
- // lazily create the Three.js scene the first time 3D is selected; keep it for
- // the view's life (isolated from Canvas/Neon — falls back to Canvas on failure)
- useEffect(() => {
- if (renderStyle !== 'three' || threeRef.current || threeInitRef.current) return
- threeInitRef.current = true
- try {
- const r = wrapRef.current!.getBoundingClientRect()
- threeRef.current = makeThreeScene(threeCanvasRef.current!, r.width || 800, r.height || 600)
- setPixiErr(null)
- } catch (err: any) {
- threeInitRef.current = false
- setPixiErr('3D failed: ' + (err?.message || String(err)))
- setRenderStyle('canvas')
- }
- }, [renderStyle])
-
- // tear scenes down only when the component unmounts
- useEffect(() => () => {
- if (pixiRef.current) { destroyPixiScene(pixiRef.current); pixiRef.current = null }
- pixiInitRef.current = false
- if (threeRef.current) { destroyThreeScene(threeRef.current); threeRef.current = null }
- threeInitRef.current = false
- }, [])
-
- // ---- pointer interaction ----------------------------------------------
- const toWorld = (clientX: number, clientY: number) => {
- const r = wrapRef.current!.getBoundingClientRect()
- const cam = camRef.current
- return { x: (clientX - r.left - cam.ox) / cam.scale, y: (clientY - r.top - cam.oy) / cam.scale }
- }
-
- // nearest moving particle to a world point (active renderer's particles) →
- // its source node id + the log line it carries. Used by hover + click-to-follow.
- const nearestParticle = (wpt: { x: number; y: number }): { a: string; line?: LogcatLine } | null => {
- const eng = engineRef.current, cam = camRef.current
- let best: { a: string; line?: LogcatLine } | null = null, bestD = 13 / cam.scale
- if (styleRef.current === 'pixi' && pixiRef.current) {
- for (const p of pixiRef.current.flows) {
- const ed = eng.edges.get(p.ek); if (!ed) continue
- const a = eng.nodes.get(ed.a), b = eng.nodes.get(ed.b); if (!a || !b) continue
- const { cx, cy } = edgeCurve(a.x, a.y, b.x, b.y, ed.id)
- const dd = Math.hypot(bezier(a.x, cx, b.x, p.t) - wpt.x, bezier(a.y, cy, b.y, p.t) - wpt.y)
- if (dd < bestD) { bestD = dd; best = { a: ed.a, line: p.line } }
- }
- } else {
- for (const p of eng.particles) {
- const a = eng.nodes.get(p.a), b = eng.nodes.get(p.b); if (!a || !b) continue
- const dd = Math.hypot(a.x + (b.x - a.x) * p.t - wpt.x, a.y + (b.y - a.y) * p.t - wpt.y)
- if (dd < bestD) { bestD = dd; best = { a: p.a, line: p.line } }
- }
- }
- return best
- }
-
- const onPointerDown = (e: React.PointerEvent) => {
- if (styleRef.current === 'three') {
- dragRef.current = { kind: 'pan', lastX: e.clientX, lastY: e.clientY, moved: 0 }
- setPktHover(null)
- ;(e.target as HTMLElement).setPointerCapture(e.pointerId)
- return
- }
- const wpt = toWorld(e.clientX, e.clientY)
- const hit = engineRef.current.nodeAt(wpt.x, wpt.y, nodeRadius)
- // Shift+drag a node = move it AND its directly-connected nodes as a cluster.
- // Pin the neighbours for the duration so the force sim doesn't fight the drag;
- // they're released (relax back) on pointer-up, while the dragged node stays pinned.
- let group: string[] | undefined
- if (hit && e.shiftKey) {
- group = engineRef.current.neighbors(hit.id).map(nb => nb.node.id)
- for (const id of group) { const n = engineRef.current.nodes.get(id); if (n) n.pinned = true }
- }
- dragRef.current = { kind: hit ? 'node' : 'pan', id: hit?.id, group, lastX: e.clientX, lastY: e.clientY, moved: 0 }
- setPktHover(null)
- ;(e.target as HTMLElement).setPointerCapture(e.pointerId)
- }
- const onPointerMove = (e: React.PointerEvent) => {
- if (styleRef.current === 'three') {
- const dd = dragRef.current
- if (dd) {
- const dx = e.clientX - dd.lastX, dy = e.clientY - dd.lastY
- dd.lastX = e.clientX; dd.lastY = e.clientY; dd.moved += Math.abs(dx) + Math.abs(dy)
- const o = orbitRef.current
- o.az -= dx * 0.01
- o.el = Math.max(-1.45, Math.min(1.45, o.el + dy * 0.01))
- }
- return
- }
- const d = dragRef.current
- if (!d) {
- const wpt = toWorld(e.clientX, e.clientY)
- const eng = engineRef.current
- const hit = eng.nodeAt(wpt.x, wpt.y, nodeRadius)
- hovRef.current = hit?.id || null
- if (hit) { setHover({ id: hit.id, x: e.clientX, y: e.clientY }); setPktHover(null); return }
- setHover(null)
- // no node under the cursor → grab the nearest MOVING particle and show the
- // event it carries (track what a packet is)
- const np = nearestParticle(wpt)
- setPktHover(np?.line ? { x: e.clientX, y: e.clientY, line: np.line } : null)
- return
- }
- const dx = e.clientX - d.lastX, dy = e.clientY - d.lastY
- d.lastX = e.clientX; d.lastY = e.clientY; d.moved += Math.abs(dx) + Math.abs(dy)
- if (d.kind === 'pan') { camRef.current.ox += dx; camRef.current.oy += dy }
- else if (d.id) {
- const eng = engineRef.current
- const sx = dx / camRef.current.scale, sy = dy / camRef.current.scale
- const n = eng.nodes.get(d.id)
- if (n) { n.pinned = true; n.x += sx; n.y += sy; n.vx = 0; n.vy = 0 }
- if (d.group) for (const id of d.group) {
- const m = eng.nodes.get(id); if (m) { m.x += sx; m.y += sy; m.vx = 0; m.vy = 0 }
- }
- }
- }
- const onPointerUp = (e: React.PointerEvent) => {
- if (styleRef.current === 'three') {
- const dd = dragRef.current; dragRef.current = null
- ;(e.target as HTMLElement).releasePointerCapture?.(e.pointerId)
- if (dd && dd.moved < 4 && threeRef.current) {
- const rect = wrapRef.current!.getBoundingClientRect()
- const id = pick3D(threeRef.current, engineRef.current, e.clientX, e.clientY, rect)
- selectNode(id ? (selRef.current === id ? null : id) : null)
- }
- return
- }
- const d = dragRef.current; dragRef.current = null
- // release the shift-dragged cluster's neighbours so they relax back naturally
- // (the node you grabbed stays pinned, matching plain single-node drag)
- if (d?.group) for (const id of d.group) { const m = engineRef.current.nodes.get(id); if (m) m.pinned = false }
- if (d && d.moved < 4) {
- if (d.kind === 'node' && d.id) selectNode(selRef.current === d.id ? null : d.id)
- else {
- // clicked empty space — if it's near a moving packet, FOLLOW it (select
- // its source + isolate that flow); otherwise clear the selection
- const np = nearestParticle(toWorld(e.clientX, e.clientY))
- if (np) { selectNode(np.a); setIsolate(true) }
- else selectNode(null)
- }
- }
- ;(e.target as HTMLElement).releasePointerCapture?.(e.pointerId)
- }
- const onDoubleClick = (e: React.PointerEvent) => {
- const wpt = toWorld(e.clientX, e.clientY)
- const hit = engineRef.current.nodeAt(wpt.x, wpt.y, nodeRadius)
- if (hit && onInspectEntity) {
- if (hit.kind === 'process') onInspectEntity({ kind: 'pid', value: hit.id.slice(2), label: hit.label })
- else if (hit.kind === 'tag') onInspectEntity({ kind: 'tag', value: hit.id.slice(2), label: hit.label })
- }
- }
- const onWheel = (e: React.WheelEvent) => {
- if (styleRef.current === 'three') {
- const o = orbitRef.current
- o.dist = Math.max(200, Math.min(7000, o.dist * (e.deltaY < 0 ? 1 / 1.12 : 1.12)))
- return
- }
- const cam = camRef.current
- const r = canvasRef.current!.getBoundingClientRect()
- const mx = e.clientX - r.left, my = e.clientY - r.top
- const factor = e.deltaY < 0 ? 1.12 : 1 / 1.12
- const ns = Math.min(4, Math.max(0.25, cam.scale * factor))
- // zoom around cursor
- cam.ox = mx - (mx - cam.ox) * (ns / cam.scale)
- cam.oy = my - (my - cam.oy) * (ns / cam.scale)
- cam.scale = ns
- }
-
- const resetView = () => { camRef.current = { scale: 1, ox: 0, oy: 0 } }
- const clearMap = () => { engineRef.current.clear(); selectNode(null) }
- // drag the inspector's left edge to resize it (panel is right-anchored, so
- // width grows as you drag left). Listens on window so the drag is smooth.
- const startInspectorResize = (e: React.PointerEvent) => {
- e.preventDefault(); e.stopPropagation()
- const startX = e.clientX, startW = inspectorW
- const onMove = (ev: PointerEvent) => setInspectorW(Math.min(760, Math.max(260, startW - (ev.clientX - startX))))
- const onUp = () => { window.removeEventListener('pointermove', onMove); window.removeEventListener('pointerup', onUp) }
- window.addEventListener('pointermove', onMove); window.addEventListener('pointerup', onUp)
- }
- // resize the live packet feed by dragging its top-right corner (anchored
- // bottom-left, so width grows dragging right, height grows dragging up)
- const startFeedResize = (e: React.PointerEvent) => {
- e.preventDefault(); e.stopPropagation()
- const sx = e.clientX, sy = e.clientY, sw = feedSize.w, sh = feedSize.h
- const onMove = (ev: PointerEvent) => setFeedSize({
- w: Math.min(960, Math.max(300, sw + (ev.clientX - sx))),
- h: Math.min(760, Math.max(150, sh - (ev.clientY - sy))),
- })
- const onUp = () => { window.removeEventListener('pointermove', onMove); window.removeEventListener('pointerup', onUp) }
- window.addEventListener('pointermove', onMove); window.addEventListener('pointerup', onUp)
- }
- // box layout fills the view in screen space, so snap the camera to identity on enable
- const toggleBoxLayout = () => {
- const on = !cfgRef.current.boxLayout
- if (on) camRef.current = { scale: 1, ox: 0, oy: 0 }
- patch({ boxLayout: on, geometry: 'none' }) // box + geometry are mutually exclusive
- }
- // cycle through the geometric layout structures (off → ring → … → metatron)
- const cycleGeometry = () => {
- const order: GeometryShape[] = ['none', 'tree', 'radial', 'ring', 'grid', 'spiral', 'cube', 'metatron']
- const next = order[(order.indexOf(cfgRef.current.geometry) + 1) % order.length]
- if (next !== 'none') camRef.current = { scale: 1, ox: 0, oy: 0 }
- // reset scale to a full-screen fit when switching shape (user tunes from there)
- patch({ geometry: next, boxLayout: false, layoutScale: 1 })
- }
-
- const fitView = () => {
- const ns = [...engineRef.current.nodes.values()]
- if (!ns.length) { resetView(); return }
- let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity
- for (const n of ns) { minX = Math.min(minX, n.x); minY = Math.min(minY, n.y); maxX = Math.max(maxX, n.x); maxY = Math.max(maxY, n.y) }
- const { w, h } = sizeRef.current, pad = 70
- const bw = Math.max(1, maxX - minX), bh = Math.max(1, maxY - minY)
- const scale = Math.min(3, Math.max(0.2, Math.min((w - pad * 2) / bw, (h - pad * 2) / bh)))
- const cx = (minX + maxX) / 2, cy = (minY + maxY) / 2
- camRef.current = { scale, ox: w / 2 - cx * scale, oy: h / 2 - cy * scale }
- }
- const zoomBy = (f: number) => {
- const cam = camRef.current, { w, h } = sizeRef.current
- const ns = Math.min(4, Math.max(0.2, cam.scale * f))
- cam.ox = w / 2 - (w / 2 - cam.ox) * (ns / cam.scale)
- cam.oy = h / 2 - (h / 2 - cam.oy) * (ns / cam.scale)
- cam.scale = ns
- }
-
- // ---- inspector data ----------------------------------------------------
- const eng = engineRef.current
- const selNode = selected ? eng.nodes.get(selected) : null
- const neighbors = selected ? eng.neighbors(selected) : []
- // per-node packet history: every flow event in/out of the selected node
- const nodePackets = selected ? eng.flowLog.filter(f => f.a === selected || f.b === selected).slice(-40).reverse() : []
-
- const jumpToLineTarget = (line: LogcatLine) => {
- const refs = line.refs || []
- for (const r of refs) {
- const id = r.targetKind === 'pid' ? 'p:' + r.target : r.targetKind === 'component' ? 'cmp:' + r.target : 'pkg:' + r.target
- if (eng.nodes.has(id)) { focusNode(id); return true }
- }
- return false
- }
-
- return (
-
-
-
-
-
- {/* shared gesture surface — sits above the canvases, below the HUD/inspector */}
-
-
- {/* top-left HUD + controls */}
-
-
setShowSettings(v => !v)} className={`map-btn ${showSettings ? 'text-accent-green' : ''}`} title="Settings & presets">
-
-
-
setPaused(p => !p)} className={`map-btn ${paused ? 'text-warn' : ''}`} title={paused ? 'Resume' : 'Pause — freeze the whole map to inspect'}>
- {paused ? : }
-
-
patch({ freeze: !cfg.freeze })} className={`map-btn ${cfg.freeze ? 'text-accent-green' : ''}`} title="Freeze positions — stop nodes moving/jumping (flows keep flowing). Works in every layout mode.">
-
-
-
-
-
-
-
-
-
setShowEdges(v => !v)} className={`map-btn ${showEdges ? 'text-accent-green' : 'text-warn'}`} title={showEdges ? 'Hide edge overlay — declutter to watch the moving particles' : 'Show edge overlay'}>
-
-
-
patch({ wireframe: !cfg.wireframe })} className={`map-btn ${cfg.wireframe ? 'text-accent-green' : ''}`} title="Wireframe mode — hollow ring nodes + crisp lines (schematic look)">
-
-
- {/* speed / slow-mo */}
-
-
- patch({ timeScale: Number(e.target.value) })} className="w-16 h-1 accent-accent-green" />
- {cfg.timeScale.toFixed(2)}x
-
- {renderStyle !== 'three' && (
-
-
- patch({ layoutScale: Number(e.target.value) })} className="w-16 h-1 accent-accent-green" />
- {cfg.layoutScale.toFixed(2)}x
-
- )}
-
-
{ pendingFitRef.current = true }} className="map-btn" title="Stretch to fill — spread the layout to use the whole screen">
-
zoomBy(1.2)} className="map-btn" title="Zoom in">
-
zoomBy(1 / 1.2)} className="map-btn" title="Zoom out">
-
-
-
setShowFeed(f => !f)} className={`map-btn ${showFeed ? 'text-accent-green' : ''}`} title="Live packet feed — watch what each moving particle is, in real time">
-
-
-
setShowTimeline(t => !t)} className={`map-btn ${showTimeline ? 'text-accent-green' : ''}`} title="Timeline — event volume by severity over time">
-
-
-
setShowData(v => !v)} className={`map-btn ${showData ? 'text-accent-green' : ''}`} title="Data view — the map's nodes & connections as live, copyable text">
-
-
-
{ const r = !recording; setRecording(r); if (r) { setShowFeed(true); setFeedSource('captured') } }} className={`map-btn ${recording ? 'text-red-500' : ''}`} title={recording ? 'Stop capturing packets' : 'Capture/record packets to a reviewable, exportable buffer'}>
-
-
-
{ setShowAlerts(v => !v); setAlertSeen(eng.alerts.length) }} className={`map-btn relative ${showAlerts ? 'text-accent-green' : eng.alerts.length > alertSeen ? 'text-warn' : ''}`} title="Critical events — crashes, ANRs, kills, errors as they happen (click to jump)">
-
- {eng.alerts.length > alertSeen && {Math.min(99, eng.alerts.length - alertSeen)} }
-
-
patch({ levelFloor: cfg.levelFloor >= 4 ? 0 : 4 })} className={`map-btn ${cfg.levelFloor >= 4 ? 'text-warn' : ''}`} title={cfg.levelFloor >= 4 ? 'Showing errors only — click for all levels' : 'Errors only — drop everything below Error severity'}>
-
-
-
setShowWatch(v => !v)} className={`map-btn relative ${showWatch ? 'text-accent-green' : watch.length ? 'text-yellow-400' : ''}`} title="Watchlist — nodes you're tracking (kept pinned)">
-
- {watch.length > 0 && {watch.length} }
-
-
{ const on = !baselineOn; engineRef.current.setBaseline(on); setBaselineOn(on) }} className={`map-btn relative ${baselineOn ? 'text-cyan-400' : ''}`} title={baselineOn ? 'Diff active — cyan = nodes that appeared since baseline. Click to clear.' : 'Set baseline now — then anything new (after you trigger something) lights up cyan'}>
-
- {baselineOn && (() => { const nw = [...eng.nodes.values()].filter(n => !n.baseline).length; return nw > 0 ? {Math.min(99, nw)} : null })()}
-
- {/* render-style switcher */}
-
- setRenderStyle('canvas')} title="Canvas (light)"
- className={`px-1.5 py-1 ${renderStyle === 'canvas' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}>
-
-
- setRenderStyle('pixi')} title="Neon — GPU (PixiJS)"
- className={`px-1.5 py-1 ${renderStyle === 'pixi' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}>
-
-
- setRenderStyle('three')} title="3D tree — hierarchical hanging tree (drag to orbit, scroll to zoom)"
- className={`px-1.5 py-1 ${renderStyle === 'three' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}>
-
-
-
-
{ const nv = !mapFull; setMapFull(nv); if (nv) pendingFitRef.current = true }} className={`map-btn ml-1 ${mapFull ? 'text-accent-green' : ''}`} title={mapFull ? 'Exit fullscreen map' : 'Fullscreen — fill the whole window and stretch the layout to fit'}>{mapFull ? : }
-
setShowLegend(v => !v)} className={`map-btn ${showLegend ? 'text-accent-green' : ''}`} title="Legend — what the colours & sizes mean">
-
setShowHelp(v => !v)} className={`map-btn ${showHelp ? 'text-accent-green' : ''}`} title="Controls & keyboard shortcuts">
- {!!(search && search.trim()) && (() => {
- const m = searchMatches()
- return (
-
-
{m.length ? (matchIdx % m.length) + 1 : 0}/{m.length}
-
stepMatch(-1)} className="map-btn">
-
stepMatch(1)} className="map-btn">
-
- )
- })()}
-
- {stats.nodes} nodes
- {stats.edges} edges
- {stats.particles} flows
- {stats.lines.toLocaleString()} lines
-
- {pixiErr &&
{pixiErr} — using Canvas }
-
-
- {paused && (
-
- PAUSED — hover a particle to read it · space to resume
-
- )}
-
- {!running && stats.lines === 0 && (
-
-
-
Press Start — events will appear as a live map.
-
Tip: pick the events or all buffer to see system events.
-
- )}
-
- {/* hover tooltip */}
- {hover && (() => {
- const n = eng.nodes.get(hover.id); if (!n) return null
- return (
-
-
{n.label}
-
{n.kind} · {n.count} events · sev {Math.round(n.worst)}
-
- )
- })()}
-
- {/* timeline — rolling per-second event volume, coloured by peak severity */}
- {showTimeline && (
-
- {eng.tl.length === 0
- ?
Timeline — event volume by severity (press Start). Click a bar to inspect that second.
- : (() => {
- const len = eng.tl.length
- const max = Math.max(1, ...eng.tl.map(b => b.reduce((s, c) => s + c, 0)))
- return eng.tl.map((b, i) => {
- const total = b.reduce((s, c) => s + c, 0)
- let sev = 0; for (let k = 5; k >= 0; k--) if (b[k] > 0) { sev = k; break }
- const hh = Math.max(3, (Math.log(1 + total) / Math.log(1 + max)) * 100)
- const ageSec = len - 1 - i
- const onPick = () => {
- const now = performance.now()
- setFeedWindow({ start: now - (ageSec + 1) * 1000, end: now - ageSec * 1000, label: ageSec === 0 ? 'this second' : ageSec + 's ago' })
- setShowFeed(true); setPaused(true)
- }
- return
- })
- })()}
-
- )}
-
- {/* moving-particle hover — the event this packet is carrying */}
- {pktHover && (
-
-
- {pktHover.line.level}
- {pktHover.line.tag}
- {pktHover.line.pid && pid {pktHover.line.pid} }
-
-
{pktHover.line.message || pktHover.line.raw}
-
- )}
-
- {/* live packet feed — what each moving particle actually is, in real time */}
- {showFeed && (
-
- {/* drag the top-right corner to resize (when not expanded) */}
- {bigPanel !== 'feed' &&
}
-
-
- {feedWindow ? `Packets @ ${feedWindow.label}` : 'Live packets'}
- {feedWindow
- ? setFeedWindow(null)} className="text-accent-green font-normal normal-case ml-1 underline">← back to live
- : — click to follow }
-
-
- setBigPanel(bigPanel === 'feed' ? null : 'feed')} className="map-btn" title={bigPanel === 'feed' ? 'Restore' : 'Expand to fullscreen'}>{bigPanel === 'feed' ? : }
- { setShowFeed(false); setBigPanel(p => p === 'feed' ? null : p) }} className="map-btn">
-
-
- {(eng.captured.length > 0 || recording) && (
-
- setFeedSource('live')} className={feedSource === 'live' ? 'text-accent-green' : 'text-text-muted'}>Live
- setFeedSource('captured')} className={feedSource === 'captured' ? 'text-accent-green' : 'text-text-muted'}>Captured ({eng.captured.length})
- {recording && rec }
- copy JSON
-
- )}
-
- {(() => {
- let evs = [...(feedSource === 'captured' ? eng.captured : eng.flowLog)]
- if (feedWindow) evs = evs.filter(f => f.ts >= feedWindow.start && f.ts <= feedWindow.end)
- if (!evs.length) return
{feedWindow ? 'No packets kept for this moment (only the most recent ~160 are buffered).' : 'No flows yet — press Start and pick the all/events buffer.'}
- return evs.slice(-80).reverse().map((f, i) => {
- const aN = eng.nodes.get(f.a), bN = eng.nodes.get(f.b)
- const col = KIND_COLOR[f.kind] || '#3b82f6'
- const lv = Math.min(5, Math.max(0, Math.round(f.level)))
- return (
-
focusNode(f.b)} title="Follow this packet to its destination node"
- className="w-full text-left px-1.5 py-1 rounded hover:bg-bg-raised text-[10px] leading-tight">
-
-
{LEVELS[lv]}
-
{aN?.label || f.a.slice(2)}
-
-
{bN?.label || f.b.slice(2)}
-
{KIND_LABEL[f.kind] || f.kind}
-
- {f.msg && {f.msg}
}
-
- )
- })
- })()}
-
-
- )}
-
- {/* legend — what the colours & sizes mean */}
- {showLegend && (
-
-
Legend
setShowLegend(false)} className="map-btn">
-
-
Severity (node colour at warn+)
-
- {LEVELS.map((l, i) => {['Verbose', 'Debug', 'Info', 'Warn', 'Error', 'Fatal'][i]} )}
-
-
-
-
Node kind — click to show/hide
-
- {([['process', 'Process'], ['tag', 'Tag'], ['package', 'Package'], ['component', 'Component']] as const).map(([k, lbl]) => {
- const off = hiddenKinds.includes(k)
- return toggleKind(k)} title={off ? 'Hidden — click to show' : 'Shown — click to hide'} className={`flex items-center gap-1 ${off ? 'opacity-30 line-through' : 'hover:text-text-primary'}`}> {lbl}
- })}
-
-
-
Node size = recent activity. Node colour: {cfg.nodeColorMode} . Edges: {cfg.edgeColorMode === 'source' ? 'source hub' : cfg.edgeColorMode} . Moving dots = packets (events) flowing source→target. (Change in Settings → Colour coding.)
-
- )}
-
- {/* controls & shortcuts */}
- {showHelp && (
-
-
Controls
setShowHelp(false)} className="map-btn">
- {([['Space', 'Pause / resume (freeze to grab particles)'], ['Esc', 'Clear selection'], ['Drag', 'Pan (2D) · Orbit (3D globe)'], ['Scroll', 'Zoom'], ['Click node', 'Select + inspect'], ['Click packet', 'Follow its flow (isolates it)'], ['Hover packet', 'See the event it carries'], ['Shift+drag', 'Move a node + its connections'], ['❄ button', 'Freeze positions (stop jumping)'], ['◫ button', 'Hide edges to declutter']] as const).map(([k, d]) =>
-
{k} {d}
)}
-
- )}
-
- {/* critical events / alerts — the "something broke, here" panel */}
- {showAlerts && (
-
-
-
Critical events ({eng.alerts.length})
-
setShowAlerts(false)} className="map-btn">
-
-
- {eng.alerts.length === 0 &&
No errors or crashes yet. Errors (E), Fatals (F), crashes, ANRs & kills land here as they happen.
}
- {[...eng.alerts].slice(-120).reverse().map((al, i) => {
- const n = eng.nodes.get(al.id)
- const lv = Math.min(5, Math.max(0, Math.round(al.level)))
- return (
-
focusNode(al.id)} title="Jump to this node on the map" className="w-full text-left px-1.5 py-1 rounded hover:bg-bg-raised leading-tight">
-
- {LEVELS[lv]}
- {al.rule && ⌕ }
- {n?.label || al.id.slice(2)}
- {al.tag}
-
- {al.msg}
-
- )
- })}
-
-
-
- setRuleInput(e.target.value)} onKeyDown={e => { if (e.key === 'Enter') addRule() }} placeholder="Alert when tag/text contains…" className="flex-1 min-w-0 bg-bg-base border border-bg-border rounded px-1.5 py-0.5 text-[10px] outline-none focus:border-warn text-text-primary" />
- Add
-
- {alertRules.length > 0 &&
- {alertRules.map(r =>
- ⌕ {r}
- setAlertRules(a => a.filter(x => x !== r))} className="px-1 text-text-muted hover:text-warn border-l border-bg-border">
- )}
-
}
-
-
- )}
-
- {/* watchlist — nodes the analyst is tracking (kept pinned, easy to revisit) */}
- {showWatch && (
-
-
-
Watchlist ({watch.length})
-
- {watch.length > 0 && setWatch([])} className="text-text-muted hover:text-warn underline normal-case font-normal">clear }
- setShowWatch(false)} className="map-btn">
-
-
-
- {watch.length === 0 &&
Empty. Select a node and hit the ★ to watch it — watched nodes stay pinned and never fade out.
}
- {watch.map(id => {
- const n = eng.nodes.get(id)
- const sev = n ? Math.min(5, Math.round(n.worst)) : 0
- return (
-
- = 3 ? LEVEL_COLOR[sev] : kindBase(n.kind)) : '#555' }} />
- focusNode(id)} className="mono text-text-primary truncate flex-1 min-w-0 text-left" title="Jump to this node">{n?.label || id.slice(2)}
- {n ? n.count : '–'}
- toggleWatch(id)} className="text-text-muted hover:text-warn shrink-0" title="Stop watching">
-
- )
- })}
-
-
- )}
-
- {/* data view — the live map as a plain-text, copyable table */}
- {showData && (
-
-
-
Data (text)
-
- { try { navigator.clipboard?.writeText(mapDataText(eng)) } catch { /* */ } }} className="map-btn" title="Copy all as text">
- setBigPanel(bigPanel === 'data' ? null : 'data')} className="map-btn" title={bigPanel === 'data' ? 'Restore' : 'Expand to fullscreen'}>{bigPanel === 'data' ? : }
- { setShowData(false); setBigPanel(p => p === 'data' ? null : p) }} className="map-btn">
-
-
-
{mapDataText(eng)}
-
- )}
-
- {/* settings drawer */}
- {showSettings &&
setShowSettings(false)} />}
-
- {/* inspector — resizable: drag its left edge */}
- {selNode && (
-
- {bigPanel !== 'inspector' &&
}
-
-
-
{selNode.label}
-
{selNode.kind} · {selNode.count} events
-
-
- selected && toggleWatch(selected)} title="Watch — keep this node on your watchlist (never evicted)" className={`map-btn ${selected && watch.includes(selected) ? 'text-yellow-400' : ''}`}>
- setIsolate(v => !v)} title="Isolate — show only this node and its connections" className={`map-btn ${isolate ? 'text-accent-green' : ''}`}>
- setBigPanel(bigPanel === 'inspector' ? null : 'inspector')} className="map-btn" title={bigPanel === 'inspector' ? 'Restore' : 'Expand to fullscreen'}>{bigPanel === 'inspector' ? : }
- { selectNode(null); setBigPanel(p => p === 'inspector' ? null : p) }} title="Close (Esc, or click empty space)" className="map-btn">
-
-
-
- {/* severity histogram */}
-
-
- {selNode.levels.map((c, i) => {
- const max = Math.max(1, ...selNode.levels)
- return
- })}
-
-
- {LEVELS.map(l =>
{l}
)}
-
- {onInspectEntity && (
-
onInspectEntity(selNode.kind === 'tag'
- ? { kind: 'tag', value: selNode.id.slice(2), label: selNode.label }
- : { kind: 'pid', value: selNode.id.slice(2), label: selNode.label })}
- className="btn-ghost text-[10px] w-full justify-center mt-2">
- Filter text log to this
-
- )}
-
-
- {/* connections */}
-
-
Connections ({neighbors.length})
-
- {neighbors.length === 0 &&
No edges yet.
}
- {neighbors.map(({ node, edge, dir }) => (
-
focusNode(node.id)}
- className="w-full flex items-center gap-1.5 text-left px-1.5 py-1 rounded hover:bg-bg-raised text-[10px]">
- {dir === 'out' ?
- : }
- {shortLabel(node.label)}
-
- {KIND_LABEL[edge.kind]}
-
- {edge.count}
-
- ))}
-
-
-
- {/* packet history — every flow in/out of this node, newest first */}
-
-
Packets in / out ({nodePackets.length})
-
- {nodePackets.length === 0 &&
No packets yet.
}
- {nodePackets.map((f, i) => {
- const out = f.a === selected
- const other = out ? f.b : f.a
- const oN = eng.nodes.get(other)
- const col = KIND_COLOR[f.kind] || '#3b82f6'
- const lv = Math.min(5, Math.max(0, Math.round(f.level)))
- return (
-
focusNode(other)} title="Follow to the other end"
- className="w-full text-left flex items-center gap-1 px-1 py-0.5 rounded hover:bg-bg-raised text-[10px]">
- {out ? : }
- {LEVELS[lv]}
- {shortLabel(oN?.label || other.slice(2))}
- {f.msg}
-
- )
- })}
-
-
-
- {/* recent events — click a line to jump to where it goes */}
-
-
Recent events
-
Lines with a → reference another entity — click to jump there.
-
- {[...selNode.recent].reverse().map((l, i) => {
- const lv = levelNum(l.level)
- const hasTarget = (l.refs || []).length > 0
- const inner = (
- <>
-
{l.level}
-
{l.tag}
-
{l.message || l.raw}
- {hasTarget &&
}
- >
- )
- return hasTarget ? (
-
jumpToLineTarget(l)} title="Jump to the entity this line references"
- className="w-full text-left px-1.5 py-1 rounded hover:bg-accent-green/10 text-[10px] leading-tight flex gap-1.5">
- {inner}
-
- ) : (
-
{inner}
- )
- })}
-
-
-
- )}
-
- )
-}
-
-// ---- helpers --------------------------------------------------------------
-function kindBase(kind: string): string {
- return kind === 'tag' ? '#22d3ee' : kind === 'process' ? '#34d399' : kind === 'component' ? '#a78bfa' : '#60a5fa'
-}
-function hexA(hex: string, a: number): string {
- const c = hex.replace('#', '')
- const r = parseInt(c.slice(0, 2), 16), g = parseInt(c.slice(2, 4), 16), b = parseInt(c.slice(4, 6), 16)
- return `rgba(${r},${g},${b},${Math.max(0, Math.min(1, a))})`
-}
-// directional arrowhead near b — shows which way a flow goes on a focused edge
-function drawArrowCanvas(ctx: CanvasRenderingContext2D, a: GNode, b: GNode, col: string, scale: number) {
- const dx = b.x - a.x, dy = b.y - a.y, d = Math.hypot(dx, dy) || 1
- const ux = dx / d, uy = dy / d
- const tx = b.x - ux * (nodeRadius(b) + 2), ty = b.y - uy * (nodeRadius(b) + 2)
- const s = 6 / scale
- ctx.fillStyle = hexA(col, 0.95)
- ctx.beginPath()
- ctx.moveTo(tx, ty)
- ctx.lineTo(tx - ux * s - uy * s * 0.55, ty - uy * s + ux * s * 0.55)
- ctx.lineTo(tx - ux * s + uy * s * 0.55, ty - uy * s - ux * s * 0.55)
- ctx.closePath(); ctx.fill()
-}
-// Pythagorean tetractys (10 points, rows 1/2/3/4) laid out inside a rect, with
-// the triangular-lattice connecting lines — drawn as an overlay over box mode.
-function tetractysPoints(rect: { x: number; y: number; w: number; h: number }): { x: number; y: number }[] {
- const cx = rect.x + rect.w / 2, top = rect.y + rect.h * 0.08, rowGap = rect.h * 0.84 / 3
- const colGap = Math.min(rect.w, rect.h * 1.1) / 3.4
- const pts: { x: number; y: number }[] = []
- for (let r = 0; r < 4; r++) { const y = top + r * rowGap, sx = cx - (r * colGap) / 2; for (let c = 0; c <= r; c++) pts.push({ x: sx + c * colGap, y }) }
- return pts
-}
-function tetractysLines(): [number, number][] {
- const idx = (r: number, c: number) => r * (r + 1) / 2 + c, out: [number, number][] = []
- for (let r = 0; r < 4; r++) for (let c = 0; c <= r; c++) {
- if (r < 3) { out.push([idx(r, c), idx(r + 1, c)]); out.push([idx(r, c), idx(r + 1, c + 1)]) }
- if (c < r) out.push([idx(r, c), idx(r, c + 1)])
- }
- return out
-}
-function boxesBounds(boxes: BoxRect[]): { x: number; y: number; w: number; h: number } | null {
- if (!boxes.length) return null
- let a = Infinity, b = Infinity, c = -Infinity, d = -Infinity
- for (const x of boxes) { a = Math.min(a, x.x); b = Math.min(b, x.y); c = Math.max(c, x.x + x.w); d = Math.max(d, x.y + x.h) }
- return { x: a, y: b, w: c - a, h: d - b }
-}
-function drawTetractysCanvas(ctx: CanvasRenderingContext2D, boxes: BoxRect[], scale: number) {
- const bb = boxesBounds(boxes); if (!bb) return
- const pts = tetractysPoints(bb), lines = tetractysLines()
- ctx.strokeStyle = 'rgba(214,178,124,0.22)'; ctx.lineWidth = 1.2 / scale
- ctx.beginPath()
- for (const [i, j] of lines) { ctx.moveTo(pts[i].x, pts[i].y); ctx.lineTo(pts[j].x, pts[j].y) }
- ctx.stroke()
- ctx.fillStyle = 'rgba(214,178,124,0.55)'
- for (const p of pts) { ctx.beginPath(); ctx.arc(p.x, p.y, 3.5 / scale, 0, 7); ctx.fill() }
-}
-function drawBoxesCanvas(ctx: CanvasRenderingContext2D, boxes: BoxRect[], cam: { scale: number; ox: number; oy: number }) {
- for (const b of boxes) {
- ctx.fillStyle = 'rgba(120,150,200,0.035)'
- ctx.fillRect(b.x, b.y, b.w, b.h)
- ctx.strokeStyle = 'rgba(130,160,210,0.28)'; ctx.lineWidth = 1.5 / cam.scale
- ctx.strokeRect(b.x, b.y, b.w, b.h)
- ctx.font = `${12 / cam.scale}px 'JetBrains Mono', monospace`
- ctx.fillStyle = 'rgba(205,218,242,0.72)'; ctx.textAlign = 'left'
- ctx.fillText(shortLabel(b.label) + ' ·' + b.count, b.x + 8 / cam.scale, b.y + 16 / cam.scale)
- }
-}
-function drawGrid(ctx: CanvasRenderingContext2D, w: number, h: number, cam: { scale: number; ox: number; oy: number }, on?: boolean) {
- if (!on) return
- const step = 60
- const x0 = -cam.ox / cam.scale, y0 = -cam.oy / cam.scale
- const x1 = x0 + w / cam.scale, y1 = y0 + h / cam.scale
- ctx.strokeStyle = 'rgba(80,110,160,0.06)'; ctx.lineWidth = 1 / cam.scale
- ctx.beginPath()
- for (let x = Math.floor(x0 / step) * step; x < x1; x += step) { ctx.moveTo(x, y0); ctx.lineTo(x, y1) }
- for (let y = Math.floor(y0 / step) * step; y < y1; y += step) { ctx.moveTo(x0, y); ctx.lineTo(x1, y) }
- ctx.stroke()
-}
-
-// ---- PixiJS (Neon GPU) renderer — the "TorFlow" look ---------------------
-// Unlike the Canvas path (a node-link graph with a faint glow), the Neon path
-// is built around FLOW: every active edge is a curved arc that continuously
-// emits a stream of glowing particles travelling a->b, with the emission rate
-// proportional to the edge weight. Many overlapping additive particles form
-// rivers of light (à la unchartedsoftware/torflow). Edges themselves are faint
-// guides; the moving particles are the visualisation. Node halos bloom via a
-// blurred additive container; flow particles ride a crisp additive layer above.
-// This renderer owns its OWN particle system (s.flows) — it does NOT use the
-// engine's eng.particles, so the Canvas renderer is completely unaffected.
-interface FlowP {
- ek: string // edge id (a>b) — positions/curve looked up live each frame
- t: number // 0..1 progress along the arc
- speed: number
- col: number // tint
- size: number // base screen px
- line?: LogcatLine // the event this particle carries (for hover-inspect)
-}
-interface PixiScene {
- app: Application
- stage: Container
- edgeG: Graphics
- glowC: Container // node halos — blurred (soft bloom)
- flowC: Container // flow particles — crisp additive (the streams)
- nodeG: Graphics
- labelC: Container
- glowTex: Texture
- dotTex: Texture
- glowPool: Sprite[] // node-halo sprites
- flowPool: Sprite[] // flow-particle sprites
- flows: FlowP[]
- emitAcc: Map // per-edge fractional emission accumulator
- labels: Map
- boxLabels: Text[] // box-layout labels (pooled)
-}
-
-// Stable curved control point for an edge: midpoint pushed perpendicular, with a
-// deterministic sign per edge id so arcs don't flicker/flip frame to frame.
-function edgeCurve(ax: number, ay: number, bx: number, by: number, id: string) {
- const dx = bx - ax, dy = by - ay
- const len = Math.hypot(dx, dy) || 1
- let h = 0; for (let i = 0; i < id.length; i++) h = (h * 31 + id.charCodeAt(i)) >>> 0
- const sign = (h & 1) ? 1 : -1
- const off = Math.min(60, len * 0.2) * sign
- return { cx: (ax + bx) / 2 + (-dy / len) * off, cy: (ay + by) / 2 + (dx / len) * off }
-}
-function bezier(a: number, c: number, b: number, t: number): number {
- const mt = 1 - t
- return mt * mt * a + 2 * mt * t * c + t * t * b
-}
-
-function hexNum(hex: string): number { return parseInt(hex.replace('#', ''), 16) }
-
-function makeRadialTexture(size: number, coreStop: number): Texture {
- const c = document.createElement('canvas'); c.width = c.height = size
- const g = c.getContext('2d')!
- const grd = g.createRadialGradient(size / 2, size / 2, 0, size / 2, size / 2, size / 2)
- grd.addColorStop(0, 'rgba(255,255,255,1)')
- if (coreStop > 0) grd.addColorStop(coreStop, 'rgba(255,255,255,0.55)')
- grd.addColorStop(1, 'rgba(255,255,255,0)')
- g.fillStyle = grd; g.fillRect(0, 0, size, size)
- return Texture.from(c)
-}
-
-async function createPixiScene(canvas: HTMLCanvasElement, w: number, h: number): Promise {
- const app = new Application()
- await app.init({
- canvas, width: w, height: h,
- backgroundColor: 0x0a0c12, antialias: true, autoStart: false,
- resolution: Math.min(window.devicePixelRatio || 1, 2), autoDensity: true,
- preference: 'webgl',
- })
- const stage = app.stage
- const edgeG = new Graphics() // faint arc guides (bottom)
- const glowC = new Container() // node halos — blurred soft bloom
- glowC.filters = [new BlurFilter({ strength: 12, quality: 2 })]
- const flowC = new Container() // flow particles — crisp additive streams
- const nodeG = new Graphics() // crisp node cores on top
- const labelC = new Container()
- stage.addChild(edgeG, glowC, flowC, nodeG, labelC)
- return {
- app, stage, edgeG, glowC, flowC, nodeG, labelC,
- glowTex: makeRadialTexture(64, 0), dotTex: makeRadialTexture(48, 0.35),
- glowPool: [], flowPool: [], flows: [], emitAcc: new Map(), labels: new Map(), boxLabels: [],
- }
-}
-
-function flowSprite(s: PixiScene, i: number): Sprite {
- let sp = s.flowPool[i]
- if (!sp) { sp = new Sprite(s.dotTex); sp.anchor.set(0.5); sp.blendMode = 'add'; s.flowC.addChild(sp); s.flowPool[i] = sp }
- return sp
-}
-
-// Emit + advance the per-edge particle streams. Rate ∝ edge weight so busy
-// connections become dense rivers and idle ones a trickle. dt is real ms (the
-// caller passes timeScale-adjusted dt); clamped so a frame hitch can't dump a
-// burst or cull the whole stream at once.
-function updateFlows(s: PixiScene, eng: LogGraph, cfg: GraphConfig, dtRaw: number) {
- const dt = Math.min(dtRaw, 64) / 1000
- const cap = cfg.maxParticles
- // emit
- for (const e of eng.edges.values()) {
- if (s.flows.length >= cap) break
- const w = Math.min(8, e.weight)
- if (w < 0.15) continue
- const acc = (s.emitAcc.get(e.id) || 0) + w * cfg.particleIntensity * 7 * dt
- let n = Math.floor(acc)
- s.emitAcc.set(e.id, acc - n)
- const col = hexNum(edgeColor(e, cfg.edgeColorMode))
- const line = eng.nodes.get(e.a)?.recent.slice(-1)[0] // latest event on the source
- while (n-- > 0 && s.flows.length < cap) {
- s.flows.push({
- ek: e.id, t: 0,
- speed: (0.35 + (s.flows.length % 7) * 0.03) * cfg.particleSpeed,
- col, size: e.worst >= 3 ? 14 : 9, line,
- })
- }
- }
- // advance + cull
- const keep: FlowP[] = []
- for (const p of s.flows) {
- p.t += p.speed * dt
- if (p.t < 1 && eng.edges.has(p.ek)) keep.push(p)
- }
- s.flows = keep
- if (s.emitAcc.size > 4000) s.emitAcc.clear()
-}
-
-function glowSprite(s: PixiScene, i: number, tex: Texture): Sprite {
- let sp = s.glowPool[i]
- if (!sp) { sp = new Sprite(tex); sp.anchor.set(0.5); sp.blendMode = 'add'; s.glowC.addChild(sp); s.glowPool[i] = sp }
- else if (sp.texture !== tex) sp.texture = tex
- return sp
-}
-
-function renderPixi(s: PixiScene, eng: LogGraph, cam: { scale: number; ox: number; oy: number }, cfg: GraphConfig, sel: string | null, hov: string | null, pulse: { id: string; until: number } | null, dt: number, paused: boolean, showEdges: boolean, isolateOn: boolean, search: string, watched: Set, hiddenKinds: Set) {
- s.stage.scale.set(cam.scale); s.stage.position.set(cam.ox, cam.oy)
- const focus = sel || hov
- const neighborIds = new Set()
- if (focus) for (const n of eng.neighbors(focus)) neighborIds.add(n.node.id)
- const iso = (isolateOn && sel) ? sel : null
- const isoVisible = (id: string) => !iso || id === iso || neighborIds.has(id)
- const q = search
- const matchNode = (n: GNode) => !q || n.label.toLowerCase().includes(q) || n.id.toLowerCase().includes(q)
- const kindHidden = (id: string) => { const nn = eng.nodes.get(id); return !!nn && hiddenKinds.has(nn.kind) }
-
- // box-layout rectangles + labels (drawn beneath everything)
- s.edgeG.clear()
- let bl = 0
- if (cfg.boxLayout) {
- for (const b of eng.boxes) {
- s.edgeG.rect(b.x, b.y, b.w, b.h).fill({ color: 0x7896c8, alpha: 0.04 }).stroke({ width: 1.5 / cam.scale, color: 0x82a0d2, alpha: 0.28 })
- let t = s.boxLabels[bl]
- if (!t) { t = new Text({ text: '', style: { fontFamily: 'JetBrains Mono, monospace', fontSize: 12, fill: 0xcddaf2 } }); t.anchor.set(0, 0); s.labelC.addChild(t); s.boxLabels[bl] = t }
- t.visible = true
- const lbl = shortLabel(b.label) + ' ·' + b.count
- if (t.text !== lbl) t.text = lbl
- t.position.set(b.x + 8 / cam.scale, b.y + 6 / cam.scale); t.scale.set(1 / cam.scale)
- bl++
- }
- }
- for (let i = bl; i < s.boxLabels.length; i++) s.boxLabels[i].visible = false
-
- // faint curved arc guides — the particles, not these lines, carry the meaning.
- // Overlay toggle hides them entirely so the moving streams read cleanly.
- if (showEdges) for (const e of eng.edges.values()) {
- if (iso && e.a !== iso && e.b !== iso) continue
- if (hiddenKinds.size && (kindHidden(e.a) || kindHidden(e.b))) continue
- const a = eng.nodes.get(e.a), b = eng.nodes.get(e.b)
- if (!a || !b) continue
- const rel = e.a === focus || e.b === focus
- let alpha: number, width: number
- if (!focus) { alpha = Math.min(0.22, e.weight * 0.02 + 0.06); width = Math.min(2, 0.6 + e.weight * 0.1) / cam.scale + 0.2 }
- else if (rel) { alpha = Math.min(0.5, 0.22 + e.weight * 0.04); width = Math.min(3.5, 1 + e.weight * 0.2) / cam.scale + 0.25 }
- else { alpha = 0.03; width = 0.4 / cam.scale }
- const col = hexNum(edgeColor(e, cfg.edgeColorMode))
- const { cx, cy } = edgeCurve(a.x, a.y, b.x, b.y, e.id)
- s.edgeG.moveTo(a.x, a.y).quadraticCurveTo(cx, cy, b.x, b.y).stroke({ width, color: col, alpha })
- }
-
- // node halos → soft bloom (blurred additive container) — skipped in wireframe
- let gi = 0
- if (!cfg.wireframe) for (const n of eng.nodes.values()) {
- if (iso && !isoVisible(n.id)) continue
- if (hiddenKinds.has(n.kind)) continue
- const r = nodeRadius(n)
- const col = nodeColor(n, cfg.nodeColorMode)
- const dim = (focus && n.id !== focus && !neighborIds.has(n.id)) || !matchNode(n)
- const sp = glowSprite(s, gi++, s.glowTex)
- sp.visible = true; sp.tint = hexNum(col)
- sp.alpha = (dim ? 0.1 : 0.6) * (0.5 + Math.min(1, n.heat / 4)) * cfg.glow
- sp.position.set(n.x, n.y); sp.width = sp.height = r * 7
- }
- for (let i = gi; i < s.glowPool.length; i++) s.glowPool[i].visible = false
-
- // ---- the rivers: continuous per-edge particle streams along the arcs -----
- if (!paused) updateFlows(s, eng, cfg, dt)
- let fi = 0
- for (const p of s.flows) {
- const e = eng.edges.get(p.ek); if (!e) continue
- if (iso && e.a !== iso && e.b !== iso) continue
- if (hiddenKinds.size && (kindHidden(e.a) || kindHidden(e.b))) continue
- const a = eng.nodes.get(e.a), b = eng.nodes.get(e.b)
- if (!a || !b) continue
- const dim = focus && e.a !== focus && e.b !== focus && !neighborIds.has(e.a) && !neighborIds.has(e.b)
- const { cx, cy } = edgeCurve(a.x, a.y, b.x, b.y, e.id)
- const x = bezier(a.x, cx, b.x, p.t), y = bezier(a.y, cy, b.y, p.t)
- const sp = flowSprite(s, fi++)
- sp.visible = true; sp.tint = p.col
- // fade in at the source, out at the target → comet-like streaks
- const fade = Math.min(1, p.t * 5) * Math.min(1, (1 - p.t) * 5)
- sp.alpha = (dim ? 0.12 : 0.95) * fade
- sp.position.set(x, y)
- sp.width = sp.height = p.size / cam.scale // constant on-screen size
- }
- for (let i = fi; i < s.flowPool.length; i++) s.flowPool[i].visible = false
-
- // crisp cores + selection rings
- s.nodeG.clear()
- for (const n of eng.nodes.values()) {
- if (iso && !isoVisible(n.id)) continue
- if (hiddenKinds.has(n.kind)) continue
- const r = nodeRadius(n)
- const col = nodeColor(n, cfg.nodeColorMode)
- const dim = (focus && n.id !== focus && !neighborIds.has(n.id)) || !matchNode(n)
- if (cfg.wireframe) s.nodeG.circle(n.x, n.y, r).stroke({ width: 1.5 / cam.scale, color: hexNum(col), alpha: dim ? 0.3 : 0.95 })
- else s.nodeG.circle(n.x, n.y, r).fill({ color: hexNum(col), alpha: dim ? 0.35 : 1 })
- if (n.id === sel || n.id === hov) s.nodeG.circle(n.x, n.y, r + 3 / cam.scale).stroke({ width: 1.5 / cam.scale, color: 0xffffff, alpha: 0.9 })
- else if (q && matchNode(n)) s.nodeG.circle(n.x, n.y, r + 3 / cam.scale).stroke({ width: 2 / cam.scale, color: 0x34d399, alpha: 0.95 })
- if (watched.has(n.id)) s.nodeG.circle(n.x, n.y, r + 6 / cam.scale).stroke({ width: 2 / cam.scale, color: 0xfacc15, alpha: 0.9 })
- if (eng.baselineActive && !n.baseline) s.nodeG.circle(n.x, n.y, r + 9 / cam.scale).stroke({ width: 2.5 / cam.scale, color: 0x22d3ee, alpha: 0.95 })
- }
- if (pulse && performance.now() < pulse.until) {
- const pn = eng.nodes.get(pulse.id)
- if (pn) {
- const k = 1 - (pulse.until - performance.now()) / 1300
- s.nodeG.circle(pn.x, pn.y, nodeRadius(pn) + k * 44 / cam.scale).stroke({ width: 2 / cam.scale, color: 0xffffff, alpha: (1 - k) * 0.85 })
- }
- }
- // tetractys overlay on box mode
- if (cfg.boxLayout) {
- const bb = boxesBounds(eng.boxes)
- if (bb) {
- const pts = tetractysPoints(bb), lines = tetractysLines()
- for (const [i, j] of lines) s.nodeG.moveTo(pts[i].x, pts[i].y).lineTo(pts[j].x, pts[j].y)
- s.nodeG.stroke({ width: 1.2 / cam.scale, color: 0xd6b27c, alpha: 0.22 })
- for (const p of pts) s.nodeG.circle(p.x, p.y, 3.5 / cam.scale).fill({ color: 0xd6b27c, alpha: 0.55 })
- }
- }
-
- // pooled labels for prominent nodes
- const used = new Set()
- if (cam.scale > 0.45) {
- for (const n of eng.nodes.values()) {
- if (used.size >= 50) break
- const big = n.heat > 1.2 || n.id === sel || n.id === hov || neighborIds.has(n.id)
- if (!big) continue
- used.add(n.id)
- let t = s.labels.get(n.id)
- if (!t) {
- t = new Text({ text: '', style: { fontFamily: 'JetBrains Mono, monospace', fontSize: 11, fill: 0xdfe6f5 } })
- t.anchor.set(0.5, 0); s.labelC.addChild(t); s.labels.set(n.id, t)
- }
- t.visible = true
- const lbl = shortLabel(n.label)
- if (t.text !== lbl) t.text = lbl
- t.position.set(n.x, n.y + nodeRadius(n) + 4 / cam.scale)
- t.scale.set(1 / cam.scale)
- }
- }
- for (const [id, t] of s.labels) if (!used.has(id)) t.visible = false
-
- s.app.renderer.render(s.stage)
-}
-
-function destroyPixiScene(s: PixiScene) {
- try { s.app.destroy({ removeView: false }, { children: true, texture: false }) } catch { /* ignore */ }
-}
-
-// ---- Three.js — 3D globe + TorFlow-style flowing arcs --------------------
-// Faithful to unchartedsoftware/torflow's technique: particle motion happens
-// ENTIRELY in the vertex shader from a STATIC per-particle buffer (path start
-// in `position`, end in aEnd, two cubic-bézier control params with perpendicular
-// offsets in aParam) + a `uTime` uniform — so each edge becomes a BUNDLE of
-// curved arcs of looping glowing packets (the signature look), not a CPU lerp.
-// Nodes sit at stable hash-placed lat/lon on a dark wireframe globe; the solid
-// sphere occludes far-side arcs for depth. Orbit: drag = rotate, scroll = zoom.
-const NODE_CAP3 = 600, FLOW_CAP3 = 6000, GLOBE_R = 360, STREAK_CAP = 500
-const ARC_SAMPLES = 18, ARC_CAP_V = 900 * (ARC_SAMPLES - 1) * 2 // line-segment vertices
-const ARC_LIFT = 0.06
-function bez3(t: number, a: number[], b: number[], c: number[], d: number[]): number[] {
- const m = 1 - t, w0 = m * m * m, w1 = 3 * m * m * t, w2 = 3 * m * t * t, w3 = t * t * t
- return [a[0] * w0 + b[0] * w1 + c[0] * w2 + d[0] * w3, a[1] * w0 + b[1] * w1 + c[1] * w2 + d[1] * w3, a[2] * w0 + b[2] * w1 + c[2] * w2 + d[2] * w3]
-}
-function norm3(v: number[]): number[] { const l = Math.hypot(v[0], v[1], v[2]) || 1; return [v[0] / l, v[1] / l, v[2] / l] }
-// 3D position = the node's hanging-tree spot (engine assigns it incrementally).
-function node3D(n: GNode): [number, number, number] {
- return [n.tx ?? 0, n.ty ?? 0, n.tz ?? 0]
-}
-interface ThreeScene {
- renderer: THREE.WebGLRenderer
- scene: THREE.Scene
- camera: THREE.PerspectiveCamera
- globe: THREE.Mesh; wire: THREE.LineSegments
- nodePts: THREE.Points; nodeGeo: THREE.BufferGeometry
- flowPts: THREE.Points; flowGeo: THREE.BufferGeometry; flowMat: THREE.ShaderMaterial
- arcSeg: THREE.LineSegments; arcGeo: THREE.BufferGeometry
- streakSeg: THREE.LineSegments; streakGeo: THREE.BufferGeometry
- streaks: { src: string; dst: string; t: number; speed: number; sev: number }[]
- streakAcc: Map
- labels: HTMLSpanElement[]
- flowKey: string; t0: number
-}
-function pointMaterial(): THREE.ShaderMaterial {
- return new THREE.ShaderMaterial({
- transparent: true, depthWrite: false, vertexColors: true, uniforms: {},
- vertexShader: 'attribute float size; varying vec3 vCol; void main(){ vCol=color; vec4 mv=modelViewMatrix*vec4(position,1.0); gl_PointSize=size*(420.0/max(1.0,-mv.z)); gl_Position=projectionMatrix*mv; }',
- fragmentShader: 'varying vec3 vCol; void main(){ vec2 d=gl_PointCoord-vec2(0.5); float r=dot(d,d); if(r>0.25) discard; float a=smoothstep(0.25,0.16,r); gl_FragColor=vec4(vCol,a); }',
- })
-}
-// TorFlow-style shader: cubic-bézier arc (start, two offset control pts, end),
-// animated by uTime with a per-particle random phase + distance-scaled speed.
-const FLOW_VERT = `
-attribute vec3 aEnd; attribute vec4 aParam;
-uniform float uTime; uniform float uSpeed; uniform float uLift; uniform float uSize;
-varying vec3 vCol; varying float vFade;
-vec3 bez(float t, vec3 a, vec3 b, vec3 c, vec3 d){ float m=1.0-t; return a*m*m*m + b*3.0*m*m*t + c*3.0*m*t*t + d*t*t*t; }
-float rnd(vec2 co){ return fract(sin(dot(co, vec2(12.9898,78.233)))*43758.5453); }
-void main(){
- vCol = color;
- vec3 s1 = position; vec3 s4 = aEnd;
- vec3 diff = s4 - s1; float dist = length(diff);
- vec3 perp = normalize(cross(s1, s4) + vec3(0.00001));
- float R = length(s1);
- vec3 p1 = normalize(s1 + diff*aParam.x + perp*(aParam.y*dist)) * (R + uLift*dist);
- vec3 p2 = normalize(s1 + diff*aParam.z - perp*(aParam.w*dist)) * (R + uLift*dist);
- float r0 = rnd(s1.xy + aParam.xy); float r1 = rnd(s1.yz + aParam.zw);
- float nSpeed = uSpeed + uSpeed*r1;
- float t = mod(uTime + r0*nSpeed, nSpeed) / nSpeed;
- vFade = sin(t*3.14159265);
- vec3 pos = bez(t, s1, p1, p2, s4);
- vec4 mv = modelViewMatrix * vec4(pos, 1.0);
- gl_PointSize = uSize * (420.0/max(1.0,-mv.z)) * (0.5 + 0.7*vFade);
- gl_Position = projectionMatrix * mv;
-}`
-const FLOW_FRAG = `
-precision highp float; varying vec3 vCol; varying float vFade;
-void main(){ vec2 d=gl_PointCoord-vec2(0.5); float r2=dot(d,d); if(r2>0.25) discard; float a=smoothstep(0.25,0.02,r2)*clamp(vFade,0.0,1.0); gl_FragColor=vec4(vCol,a); }`
-function attr(geo: THREE.BufferGeometry, name: string, n: number, itemSize: number) {
- geo.setAttribute(name, new THREE.BufferAttribute(new Float32Array(n * itemSize), itemSize))
-}
-function makeThreeScene(canvas: HTMLCanvasElement, w: number, h: number): ThreeScene {
- const renderer = new THREE.WebGLRenderer({ canvas, antialias: true })
- renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2))
- renderer.setSize(w, h, false)
- renderer.setClearColor(0x070a12, 1)
- const scene = new THREE.Scene()
- const camera = new THREE.PerspectiveCamera(55, w / h, 1, 100000)
- // globe: solid dark sphere (occludes far-side arcs) + faint wireframe grid
- const globe = new THREE.Mesh(new THREE.SphereGeometry(GLOBE_R, 36, 26), new THREE.MeshBasicMaterial({ color: 0x070b16 }))
- const wire = new THREE.LineSegments(new THREE.WireframeGeometry(new THREE.SphereGeometry(GLOBE_R * 1.001, 28, 18)), new THREE.LineBasicMaterial({ color: 0x1d3e63, transparent: true, opacity: 0.28 }))
- const nodeGeo = new THREE.BufferGeometry()
- attr(nodeGeo, 'position', NODE_CAP3, 3); attr(nodeGeo, 'color', NODE_CAP3, 3); attr(nodeGeo, 'size', NODE_CAP3, 1)
- const nodePts = new THREE.Points(nodeGeo, pointMaterial()); nodePts.frustumCulled = false
- const flowGeo = new THREE.BufferGeometry()
- attr(flowGeo, 'position', FLOW_CAP3, 3); attr(flowGeo, 'aEnd', FLOW_CAP3, 3); attr(flowGeo, 'aParam', FLOW_CAP3, 4); attr(flowGeo, 'color', FLOW_CAP3, 3)
- const flowMat = new THREE.ShaderMaterial({
- transparent: true, depthWrite: false, vertexColors: true, blending: THREE.AdditiveBlending,
- uniforms: { uTime: { value: 0 }, uSpeed: { value: 6.0 }, uLift: { value: 0.12 }, uSize: { value: 5.0 } },
- vertexShader: FLOW_VERT, fragmentShader: FLOW_FRAG,
- })
- const flowPts = new THREE.Points(flowGeo, flowMat); flowPts.frustumCulled = false
- // faint static connection arcs (the "wireframe" of who-connects-to-whom)
- const arcGeo = new THREE.BufferGeometry()
- attr(arcGeo, 'position', ARC_CAP_V, 3); attr(arcGeo, 'color', ARC_CAP_V, 3)
- const arcSeg = new THREE.LineSegments(arcGeo, new THREE.LineBasicMaterial({ vertexColors: true, transparent: true, opacity: 0.6, blending: THREE.AdditiveBlending, depthWrite: false })); arcSeg.frustumCulled = false
- // clean moving flow streaks (comets travelling source → destination)
- const streakGeo = new THREE.BufferGeometry()
- attr(streakGeo, 'position', STREAK_CAP * 2, 3); attr(streakGeo, 'color', STREAK_CAP * 2, 3)
- const streakSeg = new THREE.LineSegments(streakGeo, new THREE.LineBasicMaterial({ vertexColors: true, transparent: true, blending: THREE.AdditiveBlending, depthWrite: false })); streakSeg.frustumCulled = false
- scene.add(globe, wire, arcSeg, streakSeg, nodePts) // flowPts (old particle storm) no longer added
- return { renderer, scene, camera, globe, wire, nodePts, nodeGeo, flowPts, flowGeo, flowMat, arcSeg, arcGeo, streakSeg, streakGeo, streaks: [], streakAcc: new Map(), labels: [], flowKey: '', t0: performance.now() }
-}
-// (re)build BOTH the static per-particle flow buffer (each edge → a bundle of
-// particles, count ∝ weight, fanned bézier arcs — always on) AND the faint
-// static connection arcs (the wireframe, toggled by the overlay button).
-function buildFlows(s: ThreeScene, eng: LogGraph, iso: string | null, showArcs: boolean, hiddenKinds: Set) {
- // 3D draws ONLY the tree edges (each node → its parent), not the whole 895-edge
- // web — that's what made it an unreadable storm. ~one edge per node.
- const edges: GEdge[] = []
- for (const n of eng.nodes.values()) {
- if (!n.tparent) continue
- if (iso && n.id !== iso && n.tparent !== iso) continue
- if (hiddenKinds.size) { const p = eng.nodes.get(n.tparent); if (hiddenKinds.has(n.kind) || (p && hiddenKinds.has(p.kind))) continue }
- const e = eng.edges.get(n.tparent + '>' + n.id) || eng.edges.get(n.id + '>' + n.tparent)
- edges.push(e || { id: n.tparent + '>' + n.id, a: n.tparent, b: n.id, kind: 'cooccur', weight: 1, count: 1, worst: 0, lastTs: 0 })
- }
- const c = new THREE.Color()
- s.flowGeo.setDrawRange(0, 0) // old particle storm disabled; flows are streak-lines now (updateStreaks)
-
- // --- connection lines: ALWAYS shown in 3D (the tree IS the structure), drawn
- // STRAIGHT parent→child so the streaks ride exactly along them. ~one per node. ---
- const ap = s.arcGeo.attributes.position.array as Float32Array
- const acol = s.arcGeo.attributes.color.array as Float32Array
- let av = 0
- for (const e of edges) {
- if (av + 2 > ARC_CAP_V) break
- const a = eng.nodes.get(e.a), b = eng.nodes.get(e.b); if (!a || !b) continue
- const pa = node3D(a), pb = node3D(b)
- ap[av * 3] = pa[0]; ap[av * 3 + 1] = pa[1]; ap[av * 3 + 2] = pa[2]
- acol[av * 3] = 0.26; acol[av * 3 + 1] = 0.38; acol[av * 3 + 2] = 0.52; av++
- ap[av * 3] = pb[0]; ap[av * 3 + 1] = pb[1]; ap[av * 3 + 2] = pb[2]
- acol[av * 3] = 0.26; acol[av * 3 + 1] = 0.38; acol[av * 3 + 2] = 0.52; av++
- }
- s.arcGeo.setDrawRange(0, av)
- s.arcGeo.attributes.position.needsUpdate = true; s.arcGeo.attributes.color.needsUpdate = true
-}
-// emit + advance the clean flow streaks (comets travelling src → dst along tree edges)
-function updateStreaks(s: ThreeScene, eng: LogGraph, dtRaw: number, iso: string | null, hiddenKinds: Set) {
- const dt = Math.min(dtRaw, 64) / 1000
- for (const n of eng.nodes.values()) {
- if (s.streaks.length >= STREAK_CAP) break
- if (!n.tparent) continue
- if (iso && n.id !== iso && n.tparent !== iso) continue
- if (hiddenKinds.size) { const p = eng.nodes.get(n.tparent); if (hiddenKinds.has(n.kind) || (p && hiddenKinds.has(p.kind))) continue }
- const fwd = eng.edges.get(n.tparent + '>' + n.id), rev = eng.edges.get(n.id + '>' + n.tparent)
- const e = fwd || rev
- const src = fwd ? n.tparent : rev ? n.id : n.tparent
- const dst = fwd ? n.id : rev ? n.tparent : n.id
- const w = e ? Math.min(8, e.weight) : 0.5
- const key = n.tparent + '>' + n.id
- const acc = (s.streakAcc.get(key) || 0) + w * 1.3 * dt // visible but still trackable
- let cnt = Math.floor(acc); s.streakAcc.set(key, acc - cnt)
- while (cnt-- > 0 && s.streaks.length < STREAK_CAP) s.streaks.push({ src, dst, t: 0, speed: 0.45 + Math.random() * 0.25, sev: e ? e.worst : 0 })
- }
- const keep: ThreeScene['streaks'] = []
- for (const st of s.streaks) { st.t += st.speed * dt; if (st.t < 1) keep.push(st) }
- s.streaks = keep
- if (s.streakAcc.size > 3000) s.streakAcc.clear()
-}
-const _c3 = new THREE.Color(), _pv = new THREE.Vector3()
-function renderThree(s: ThreeScene, eng: LogGraph, orbit: { az: number; el: number; dist: number }, _size: { w: number; h: number }, sel: string | null, hov: string | null, showEdges: boolean, isolateOn: boolean, search: string, host: HTMLDivElement | null, watched: Set, hiddenKinds: Set, dt: number, paused: boolean) {
- eng.placeTree3D() // give any new nodes a stable hanging-tree spot
- s.globe.visible = false; s.wire.visible = false // no globe in tree mode
- // centre the orbit on the tree's vertical centroid (it grows downward)
- let cyAcc = 0, cn = 0
- for (const n of eng.nodes.values()) if (n.ty !== undefined) { cyAcc += n.ty; cn++ }
- const tgtY = cn ? cyAcc / cn : 0
- const ce = Math.cos(orbit.el), se = Math.sin(orbit.el)
- s.camera.position.set(Math.sin(orbit.az) * ce * orbit.dist, tgtY + se * orbit.dist, Math.cos(orbit.az) * ce * orbit.dist)
- s.camera.lookAt(0, tgtY, 0)
- const focus = sel || hov
- const neighborIds = new Set()
- if (focus) for (const n of eng.neighbors(focus)) neighborIds.add(n.node.id)
- const iso = (isolateOn && sel) ? sel : null
- const q = search
- const match = (n: GNode) => !q || n.label.toLowerCase().includes(q) || n.id.toLowerCase().includes(q)
-
- // rebuild the static flow buffer only when the edge set / isolate / toggle changes
- const key = eng.edges.size + '|' + (iso || '') + '|' + (showEdges ? '1' : '0') + '|' + [...hiddenKinds].sort().join(',')
- if (key !== s.flowKey) { buildFlows(s, eng, iso, showEdges, hiddenKinds); s.flowKey = key }
-
- // clean flow streaks: short comets travelling source → destination so you can
- // follow where each packet is going (space/pause freezes them)
- if (!paused) updateStreaks(s, eng, dt, iso, hiddenKinds)
- const stp = s.streakGeo.attributes.position.array as Float32Array, stc = s.streakGeo.attributes.color.array as Float32Array
- let sti = 0
- for (const st of s.streaks) {
- if (sti >= STREAK_CAP) break
- const a = eng.nodes.get(st.src), b = eng.nodes.get(st.dst); if (!a || !b) continue
- const pa = node3D(a), pb = node3D(b)
- const tH = st.t, tT = Math.max(0, st.t - 0.16), o = sti * 6
- _c3.set(st.sev >= 3 ? '#ff5050' : '#7fd4ff')
- stp[o] = pa[0] + (pb[0] - pa[0]) * tT; stp[o + 1] = pa[1] + (pb[1] - pa[1]) * tT; stp[o + 2] = pa[2] + (pb[2] - pa[2]) * tT
- stc[o] = _c3.r * 0.04; stc[o + 1] = _c3.g * 0.04; stc[o + 2] = _c3.b * 0.04 // dark tail (fades on additive)
- stp[o + 3] = pa[0] + (pb[0] - pa[0]) * tH; stp[o + 4] = pa[1] + (pb[1] - pa[1]) * tH; stp[o + 5] = pa[2] + (pb[2] - pa[2]) * tH
- stc[o + 3] = _c3.r; stc[o + 4] = _c3.g; stc[o + 5] = _c3.b // bright head
- sti++
- }
- s.streakGeo.setDrawRange(0, sti * 2)
- s.streakGeo.attributes.position.needsUpdate = true; s.streakGeo.attributes.color.needsUpdate = true
-
- const np = s.nodeGeo.attributes.position.array as Float32Array, nc = s.nodeGeo.attributes.color.array as Float32Array, ns = s.nodeGeo.attributes.size.array as Float32Array
- let ni = 0
- for (const n of eng.nodes.values()) {
- if (ni >= NODE_CAP3) break
- if (iso && n.id !== iso && !neighborIds.has(n.id)) continue
- if (hiddenKinds.has(n.kind)) continue
- const p = node3D(n)
- np[ni * 3] = p[0]; np[ni * 3 + 1] = p[1]; np[ni * 3 + 2] = p[2]
- const dim = (focus && n.id !== focus && !neighborIds.has(n.id)) || !match(n)
- _c3.set(nodeColor(n, eng.cfg.nodeColorMode))
- const f = dim ? 0.3 : 1
- nc[ni * 3] = _c3.r * f; nc[ni * 3 + 1] = _c3.g * f; nc[ni * 3 + 2] = _c3.b * f
- ns[ni] = (n.id === sel ? 1.8 : watched.has(n.id) ? 1.4 : (eng.baselineActive && !n.baseline) ? 1.5 : 1) * (5 + nodeRadius(n) * 0.85)
- ni++
- }
- s.nodeGeo.setDrawRange(0, ni)
- s.nodeGeo.attributes.position.needsUpdate = true; s.nodeGeo.attributes.color.needsUpdate = true; s.nodeGeo.attributes.size.needsUpdate = true
-
- s.renderer.render(s.scene, s.camera)
-
- // DOM label overlay (projected from 3D) so you can read nodes while orbiting
- if (host) {
- let li = 0
- for (const n of eng.nodes.values()) {
- if (li >= 44) break
- if (iso && n.id !== iso && !neighborIds.has(n.id)) continue
- if (hiddenKinds.has(n.kind)) continue
- const big = n.heat > 6 || n.id === sel || n.id === hov || neighborIds.has(n.id) || (q && match(n)) || watched.has(n.id) || (eng.baselineActive && !n.baseline)
- if (!big) continue
- const p = node3D(n)
- _pv.set(p[0], p[1], p[2]).project(s.camera)
- if (_pv.z > 1) continue
- let el = s.labels[li]
- if (!el) {
- el = document.createElement('span')
- el.style.cssText = 'position:absolute;transform:translate(-50%,-160%);font:11px "JetBrains Mono",monospace;color:#dfe6f5;text-shadow:0 1px 3px #000,0 0 2px #000;pointer-events:none;white-space:nowrap'
- host.appendChild(el); s.labels[li] = el
- }
- el.style.display = 'block'
- el.style.left = (_pv.x * 0.5 + 0.5) * 100 + '%'
- el.style.top = (-_pv.y * 0.5 + 0.5) * 100 + '%'
- el.style.color = n.id === sel ? '#ffffff' : '#dfe6f5'
- const txt = shortLabel(n.label)
- if (el.textContent !== txt) el.textContent = txt
- li++
- }
- for (let i = li; i < s.labels.length; i++) s.labels[i].style.display = 'none'
- }
-}
-function pick3D(s: ThreeScene, eng: LogGraph, clientX: number, clientY: number, rect: DOMRect): string | null {
- let best: string | null = null, bestD = 22
- for (const n of eng.nodes.values()) {
- const p = node3D(n)
- _pv.set(p[0], p[1], p[2]).project(s.camera)
- if (_pv.z > 1) continue
- const sx = (_pv.x * 0.5 + 0.5) * rect.width + rect.left
- const sy = (-_pv.y * 0.5 + 0.5) * rect.height + rect.top
- const d = Math.hypot(sx - clientX, sy - clientY)
- if (d < bestD) { bestD = d; best = n.id }
- }
- return best
-}
-function destroyThreeScene(s: ThreeScene) {
- try {
- s.nodeGeo.dispose(); s.flowGeo.dispose(); s.arcGeo.dispose(); s.streakGeo.dispose(); s.globe.geometry.dispose(); s.wire.geometry.dispose()
- ;(s.nodePts.material as THREE.Material).dispose(); s.flowMat.dispose(); (s.arcSeg.material as THREE.Material).dispose(); (s.streakSeg.material as THREE.Material).dispose()
- ;(s.globe.material as THREE.Material).dispose(); (s.wire.material as THREE.Material).dispose()
- s.renderer.dispose()
- } catch { /* ignore */ }
-}
-
-// ---- settings drawer ------------------------------------------------------
-function SettingsDrawer({ cfg, patch, applyPreset, userPresets, saveUserPreset, deleteUserPreset, onClose }: { cfg: GraphConfig; patch: (p: Partial) => void; applyPreset: (name: string) => void; userPresets: Record>; saveUserPreset: (name: string) => void; deleteUserPreset: (name: string) => void; onClose: () => void }) {
- const [presetName, setPresetName] = useState('')
- return (
-
-
-
-
- One-click looks. See everything stops nodes from fading.
-
- {Object.keys(PRESETS).map(name => (
- applyPreset(name)}
- className="px-2 py-0.5 rounded text-[10px] bg-bg-raised hover:bg-accent-green/20 hover:text-accent-green border border-bg-border">
- {name}
-
- ))}
-
- {Object.keys(userPresets).length > 0 && (
- <>
- Your presets
-
- {Object.keys(userPresets).map(name => (
-
- applyPreset(name)} className="px-2 py-0.5 hover:bg-accent-green/20 hover:text-accent-green">{name}
- deleteUserPreset(name)} title="Delete preset" className="px-1 py-0.5 text-text-muted hover:text-warn border-l border-bg-border">
-
- ))}
-
- >
- )}
-
- setPresetName(e.target.value)} placeholder="Save current as…"
- onKeyDown={e => { if (e.key === 'Enter') { saveUserPreset(presetName); setPresetName('') } }}
- className="flex-1 min-w-0 bg-bg-base border border-bg-border rounded px-1.5 py-0.5 text-[10px] outline-none focus:border-accent-green text-text-primary" />
- { saveUserPreset(presetName); setPresetName('') }}
- className="px-2 py-0.5 rounded text-[10px] bg-accent-green/20 text-accent-green border border-accent-green/30">Save
-
-
-
-
- patch({ grouping: v as any })} />
- patch({ cooccur: v })} />
- patch({ cooccurWindowMs: v })} />
- patch({ parsed: v })} />
- patch({ mentions: v })} />
-
-
-
- patch({ nodeColorMode: v as any })} />
- patch({ edgeColorMode: v as any })} />
- patch({ wireframe: v })} />
- patch({ glow: v })} />
-
-
-
- patch({ nodeHalfLifeMs: v })} />
- patch({ edgeHalfLifeMs: v })} />
-
-
-
- patch({ repulsion: v })} />
- patch({ linkDistance: v })} />
- patch({ gravity: v })} />
- patch({ clusterByKind: v })} />
- patch({ freeze: v })} />
-
-
-
- patch({ timeScale: v })} />
- patch({ particleIntensity: v })} />
- patch({ particleSpeed: v })} />
- patch({ glow: v })} />
- patch({ maxParticles: v })} />
-
-
-
- [String(i), l] as [string, string])} onChange={v => patch({ levelFloor: Number(v) })} />
- patch({ maxNodes: v })} />
- patch({ maxEdges: v })} />
- patch({ showGrid: v })} />
-
-
- )
-}
-
-function Section({ title, children }: { title: string; children: React.ReactNode }) {
- return
-}
-function Toggle({ label, v, hint, onChange }: { label: string; v: boolean; hint?: string; onChange: (v: boolean) => void }) {
- return (
-
- {label}
- onChange(!v)}
- className={`relative h-4 w-7 rounded-full shrink-0 transition-colors ${v ? 'bg-accent-green' : 'bg-bg-border'}`}>
-
-
-
- )
-}
-function Slider({ label, v, min, max, step, unit, hint, onChange }: { label: string; v: number; min: number; max: number; step: number; unit?: string; hint?: string; onChange: (v: number) => void }) {
- return (
-
-
{label} {v}{unit || ''}
-
onChange(Number(e.target.value))}
- className="w-full h-1 accent-accent-green" />
-
- )
-}
-function Seg({ label, value, opts, hint, onChange }: { label: string; value: string; opts: [string, string][]; hint?: string; onChange: (v: string) => void }) {
- return (
-
-
{label}
-
- {opts.map(([val, lab]) => (
- onChange(val)}
- className={`px-1.5 py-0.5 text-[10px] ${value === val ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}>
- {lab}
-
- ))}
-
-
- )
-}
diff --git a/frontend/src/components/views/ViewApkAudit.tsx b/frontend/src/components/views/ViewApkAudit.tsx
deleted file mode 100644
index a178f58..0000000
--- a/frontend/src/components/views/ViewApkAudit.tsx
+++ /dev/null
@@ -1,589 +0,0 @@
-import { useState, useMemo } from 'react'
-import {
- ScanSearch, FileUp, Package, Shield, AlertTriangle, FileCode,
- Lock, FolderTree, Search, ChevronRight, Activity, Radar,
- Download, X,
-} from 'lucide-react'
-import {
- SelectAPKForAudit, AuditAPK, AuditInstalledApp, ListPackages,
- ReadAPKEntry, ExportAudit,
-} from '../../lib/wails'
-import { notify } from '../../lib/notify'
-import { CodeView, detectLang } from '../../lib/syntax'
-import type { APKAudit, APKAuditFinding, APKEntryContent, PackageInfo } from '../../lib/types'
-
-type Tab = 'overview' | 'findings' | 'manifest' | 'components' | 'cert' | 'explorer'
-type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info'
-
-const SEV_ORDER: Severity[] = ['critical', 'high', 'medium', 'low', 'info']
-
-function sevText(s: string): string {
- switch (s) {
- case 'critical': return 'text-danger'
- case 'high': return 'text-danger'
- case 'medium': return 'text-warn'
- case 'low': return 'text-text-secondary'
- default: return 'text-text-muted'
- }
-}
-
-function sevBadge(s: string): string {
- switch (s) {
- case 'critical': return 'bg-danger/20 text-danger border border-danger/30'
- case 'high': return 'bg-danger/10 text-danger border border-danger/20'
- case 'medium': return 'bg-warn/15 text-warn border border-warn/25'
- case 'low': return 'bg-bg-raised text-text-secondary border border-bg-border'
- default: return 'bg-bg-raised text-text-muted border border-bg-border'
- }
-}
-
-function scoreColor(score: number): string {
- if (score >= 75) return 'text-accent-green'
- if (score >= 40) return 'text-warn'
- return 'text-danger'
-}
-
-function formatBytes(n: number): string {
- if (!n) return '0 B'
- const u = ['B', 'KB', 'MB', 'GB']
- const i = Math.floor(Math.log(n) / Math.log(1024))
- return `${(n / Math.pow(1024, i)).toFixed(i ? 1 : 0)} ${u[i]}`
-}
-
-export default function ViewApkAudit() {
- const [result, setResult] = useState(null)
- const [loading, setLoading] = useState(false)
- const [tab, setTab] = useState('overview')
-
- // package picker
- const [search, setSearch] = useState('')
- const [packages, setPackages] = useState([])
- const [pkgsLoaded, setPkgsLoaded] = useState(false)
- const [showPicker, setShowPicker] = useState(false)
-
- // findings controls
- const [findFilter, setFindFilter] = useState('all')
- const [findSearch, setFindSearch] = useState('')
- const [openFinding, setOpenFinding] = useState(null)
-
- // explorer
- const [fileSearch, setFileSearch] = useState('')
- const [entry, setEntry] = useState(null)
- const [entryPath, setEntryPath] = useState('')
- const [entryLoading, setEntryLoading] = useState(false)
-
- // export
- const [showExport, setShowExport] = useState(false)
- const [exporting, setExporting] = useState(false)
-
- const loadPackages = async () => {
- if (pkgsLoaded) return
- try {
- const pkgs = await ListPackages('all')
- setPackages(pkgs || [])
- setPkgsLoaded(true)
- } catch { /* device may be offline; ignore */ }
- }
-
- const run = async (fn: () => Promise) => {
- setLoading(true); setResult(null); setTab('overview'); setShowPicker(false)
- setFindFilter('all'); setFindSearch(''); setOpenFinding(null)
- setEntry(null); setEntryPath(''); setFileSearch(''); setShowExport(false)
- try {
- setResult(await fn())
- } catch (e: any) {
- notify.error(e)
- } finally {
- setLoading(false)
- }
- }
-
- const auditFile = async () => {
- const path = await SelectAPKForAudit()
- if (path) run(() => AuditAPK(path))
- }
-
- const openEntry = async (path: string) => {
- if (!result) return
- setEntryPath(path); setEntry(null); setEntryLoading(true)
- try {
- setEntry(await ReadAPKEntry(result.localPath, path))
- } catch (e: any) {
- notify.error(e); setEntryPath('')
- } finally {
- setEntryLoading(false)
- }
- }
-
- const doExport = async (format: 'json' | 'csv' | 'sarif') => {
- if (!result) return
- setShowExport(false); setExporting(true)
- try {
- const path = await ExportAudit(result, format)
- if (path) notify.success(`Exported to ${path}`)
- } catch (e: any) {
- notify.error(e)
- } finally {
- setExporting(false)
- }
- }
-
- const filteredPkgs = packages
- .filter(p => p.packageName.toLowerCase().includes(search.toLowerCase()))
-
- const findings = result?.findings ?? []
- const visibleFindings = useMemo(() => findings.filter(f => {
- if (findFilter !== 'all' && f.severity !== findFilter) return false
- if (findSearch) {
- const q = findSearch.toLowerCase()
- return (f.title + f.category + f.cwe + f.masvs).toLowerCase().includes(q)
- }
- return true
- }), [findings, findFilter, findSearch])
-
- const visibleFiles = useMemo(() => (result?.files ?? []).filter(f =>
- !fileSearch || f.path.toLowerCase().includes(fileSearch.toLowerCase())
- ).slice(0, 2000), [result, fileSearch])
-
- const dangerousPerms = (result?.permissions ?? []).filter(p => p.dangerous)
-
- const tabs: { id: Tab; label: string; icon: React.ReactNode }[] = [
- { id: 'overview', label: 'Overview', icon: },
- { id: 'findings', label: `Findings (${findings.length})`, icon: },
- { id: 'manifest', label: 'Manifest', icon: },
- { id: 'components', label: `Components (${result?.components?.length || 0})`, icon: },
- { id: 'cert', label: 'Cert', icon: },
- { id: 'explorer', label: `Explorer (${result?.files?.length || 0})`, icon: },
- ]
-
- return (
-
- {/* Source bar */}
-
-
-
- APK Audit
-
-
-
- Browse APK…
-
-
-
{ setShowPicker(v => !v); loadPackages() }}
- disabled={loading}
- className="btn-ghost text-xs"
- >
- Installed app…
-
- {showPicker && (
-
-
-
-
- setSearch(e.target.value)}
- />
-
-
-
- {!pkgsLoaded &&
Loading… (device must be connected)
}
- {pkgsLoaded && filteredPkgs.length === 0 && (
-
No matching packages
- )}
- {filteredPkgs.map(p => (
-
run(() => AuditInstalledApp(p.packageName))}
- className="w-full text-left px-3 py-1.5 text-xs text-text-secondary hover:bg-bg-raised hover:text-text-primary border-b border-bg-border/30 truncate mono"
- >
- {p.packageName}
-
- ))}
-
-
- )}
-
-
-
-
- {/* Empty / loading */}
- {!result && !loading && (
-
-
-
Browse for an APK file or pick an installed app to audit
-
Static analysis: manifest, signing, permissions, components, secrets & trackers
-
- )}
- {loading && (
-
-
-
Auditing… (pulling & parsing DEX, this can take a few seconds)
-
- )}
-
- {result && (
- <>
- {/* Header */}
-
-
{result.grade}
-
-
- {result.appLabel || result.fileName} ({result.packageName})
-
-
- v{result.versionName} (code {result.versionCode}) · SDK {result.minSdk}–{result.targetSdk} · {formatBytes(result.fileSize)} · score {result.score}/100
-
-
-
-
- {SEV_ORDER.map(s => (result.counts?.[s] ? (
-
- {result.counts[s]} {s}
-
- ) : null))}
-
-
-
setShowExport(v => !v)} disabled={exporting} className="btn-ghost text-xs">
- {exporting ? 'Exporting…' : 'Export'}
-
- {showExport && (
-
- {(['json', 'csv', 'sarif'] as const).map(f => (
- doExport(f)}
- className="w-full text-left px-3 py-1.5 text-xs text-text-secondary hover:bg-bg-raised hover:text-text-primary uppercase mono border-b border-bg-border/30 last:border-0"
- >
- {f}
-
- ))}
-
- )}
-
-
-
-
- {/* Tabs */}
-
- {tabs.map(t => (
- setTab(t.id)}
- className={`flex items-center gap-1.5 px-3 py-2 text-xs whitespace-nowrap border-b-2 transition-colors ${
- tab === t.id ? 'border-accent-green text-accent-green'
- : 'border-transparent text-text-muted hover:text-text-secondary'
- }`}
- >
- {t.icon} {t.label}
-
- ))}
-
-
-
- {/* OVERVIEW */}
- {tab === 'overview' && (
-
-
- {[
- { label: 'Package', value: result.packageName },
- { label: 'Version', value: `${result.versionName} (${result.versionCode})` },
- { label: 'SDK', value: `min ${result.minSdk} · target ${result.targetSdk} · compile ${result.compileSdk}` },
- { label: 'Source', value: result.source === 'device' ? 'Installed app' : result.path },
- { label: 'SHA-256', value: result.sha256 },
- { label: 'Size', value: formatBytes(result.fileSize) },
- ].map(({ label, value }) => (
-
- {label}
- {value || 'N/A'}
-
- ))}
-
-
- {/* manifest flags */}
-
- {result.debuggable && debuggable }
- {result.allowBackup && allowBackup }
- {result.usesCleartext && cleartext traffic }
- {result.hasNetworkSecurityConfig && network-security-config }
- {result.cert.verified
- ? signature verified
- : unsigned / unverified }
- {result.cert.v3 && v3 sig }
- {result.cert.v2 && v2 sig }
- {result.cert.v1 && v1 sig }
-
-
- {/* dangerous perms */}
-
-
Dangerous permissions ({dangerousPerms.length})
- {dangerousPerms.length === 0 &&
None of the runtime-dangerous permissions are requested.
}
-
- {dangerousPerms.map(p => (
-
- {p.name.replace('android.permission.', '')}
-
- ))}
-
-
-
- {/* trackers */}
-
-
Trackers / SDKs ({result.trackers?.length || 0})
- {(!result.trackers || result.trackers.length === 0) &&
No known tracker SDK signatures detected.
}
-
- {result.trackers?.map(tr => (
-
- {tr.name}
- {tr.category}
- ×{tr.matches}
-
- ))}
-
-
-
- )}
-
- {/* FINDINGS */}
- {tab === 'findings' && (
-
-
- {(['all', ...SEV_ORDER] as const).map(s => (
-
setFindFilter(s)}
- className={`px-2 py-0.5 rounded text-[10px] capitalize ${
- findFilter === s ? 'bg-accent-green/15 text-accent-green border border-accent-green/30'
- : 'bg-bg-raised text-text-muted border border-bg-border'
- }`}
- >
- {s}{s !== 'all' && result.counts?.[s] ? ` ${result.counts[s]}` : ''}
-
- ))}
-
-
- setFindSearch(e.target.value)}
- />
-
-
-
- {visibleFindings.length === 0 && (
-
No findings match.
- )}
- {visibleFindings.map(f => (
-
setOpenFinding(openFinding === f.id ? null : f.id)}
- />
- ))}
-
- )}
-
- {/* MANIFEST */}
- {tab === 'manifest' && (
-
-
-
Permissions ({result.permissions?.length || 0})
-
- {result.permissions?.map(p => (
-
-
- {p.name}
- {p.dangerous && dangerous }
-
- ))}
-
-
-
-
Decoded AndroidManifest.xml
-
- {result.manifestXml || 'Not available'}
-
-
-
- )}
-
- {/* COMPONENTS */}
- {tab === 'components' && (
-
- {['activity', 'service', 'receiver', 'provider'].map(type => {
- const items = result.components.filter(c => c.type === type)
- return (
-
-
{type} ({items.length})
- {items.length === 0 &&
None
}
- {items.map((c, i) => (
-
-
- {c.name}
- {c.exported && exported }
- {!c.exported && c.exportedImplicit && implicit export }
- {c.permission && protected }
-
- {c.intentFilters?.filter(Boolean).length > 0 && (
-
↳ {c.intentFilters.filter(Boolean).join(' · ')}
- )}
-
- ))}
-
- )
- })}
-
- )}
-
- {/* CERT */}
- {tab === 'cert' && (
-
-
- {result.cert.verified ? verified : does not verify }
- {result.cert.v1 && v1 scheme }
- {result.cert.v2 && v2 scheme }
- {result.cert.v3 && v3 scheme }
- {result.cert.isDebug && debug cert }
- {result.cert.expired && expired }
- {result.cert.weakAlgo && weak algorithm }
-
- {result.cert.error && (
-
{result.cert.error}
- )}
- {[
- { label: 'Subject', value: result.cert.subject },
- { label: 'Issuer', value: result.cert.issuer },
- { label: 'Algorithm', value: result.cert.sigAlgo },
- { label: 'Serial', value: result.cert.serial },
- { label: 'Valid from', value: result.cert.validFrom },
- { label: 'Valid to', value: result.cert.validTo },
- { label: 'SHA-256', value: result.cert.sha256 },
- { label: 'SHA-1', value: result.cert.sha1 },
- ].map(({ label, value }) => (
-
-
{label}
-
{value || 'N/A'}
-
- ))}
-
- )}
-
- {/* EXPLORER */}
- {tab === 'explorer' && (
-
- {/* file list */}
-
-
-
- setFileSearch(e.target.value)}
- />
-
-
- {visibleFiles.map(f => (
-
openEntry(f.path)}
- className={`w-full flex items-center gap-2 px-2.5 py-1 text-xs border-b border-bg-border/30 text-left ${
- entryPath === f.path ? 'bg-accent-green/10' : 'hover:bg-bg-raised'
- }`}
- >
-
- {f.path}
- {formatBytes(f.size)}
-
- ))}
- {(result.files?.length || 0) > visibleFiles.length && (
-
Showing {visibleFiles.length} of {result.files.length} — refine the filter.
- )}
-
-
-
- {/* viewer */}
-
- {!entryPath && (
-
Select a file to view its contents
- )}
- {entryPath && (
- <>
-
- {entryPath}
- {entry && {entry.kind} · {formatBytes(entry.size)}{entry.truncated ? ' · truncated' : ''} }
- { setEntry(null); setEntryPath('') }} className="text-text-muted hover:text-text-primary shrink-0">
-
-
- {entryLoading && (
-
- )}
- {entry?.kind === 'image' && (
-
-
-
- )}
- {entry?.kind === 'text' && (
-
- )}
- {entry?.kind === 'binary' && (
-
{entry.hex}
- )}
-
- >
- )}
-
-
- )}
-
- >
- )}
-
- )
-}
-
-function FindingRow({ f, open, onToggle }: { f: APKAuditFinding; open: boolean; onToggle: () => void }) {
- return (
-
-
-
- {f.severity}
- {f.title}
- {f.matches?.length > 0 && {f.matches.length} match{f.matches.length > 1 ? 'es' : ''} }
-
- {open && (
-
-
{f.description}
-
- {f.cwe && {f.cwe} }
- {f.masvs && {f.masvs} }
- {f.category}
- confidence {f.confidence}%
-
- {f.matches?.length > 0 && (
-
- {f.matches.map((m, i) => (
-
- {m.file && {m.file} }
- {m.value}
-
- ))}
-
- )}
-
- )}
-
- )
-}
diff --git a/frontend/src/components/views/ViewApkInstaller.tsx b/frontend/src/components/views/ViewApkInstaller.tsx
deleted file mode 100644
index 42893ae..0000000
--- a/frontend/src/components/views/ViewApkInstaller.tsx
+++ /dev/null
@@ -1,251 +0,0 @@
-import { useState, useEffect, useMemo, useCallback } from 'react'
-import {
- PackagePlus, FolderOpen, FilePlus, Trash2, Search, Download,
- CheckCircle2, XCircle, Loader2, X, Ban
-} from 'lucide-react'
-import {
- SelectApkFolder, SelectMultipleApkFiles, ListApksInFolder, StatApkFiles,
- InstallApksWithProgress, CancelOperation
-} from '../../lib/wails'
-import { notify } from '../../lib/notify'
-import type { ApkFileInfo } from '../../lib/types'
-
-const rt = () => (window as any)['runtime']
-
-type RowStatus = 'idle' | 'pending' | 'installing' | 'success' | 'failed'
-interface Progress { status: RowStatus; message?: string }
-
-function formatSize(bytes: number): string {
- if (bytes >= 1048576) return `${(bytes / 1048576).toFixed(1)} MB`
- if (bytes >= 1024) return `${(bytes / 1024).toFixed(0)} KB`
- return `${bytes} B`
-}
-
-export default function ViewApkInstaller() {
- const [apks, setApks] = useState([])
- const [selected, setSelected] = useState>(new Set())
- const [progress, setProgress] = useState>({})
- const [installing, setInstalling] = useState(false)
- const [search, setSearch] = useState('')
-
- // Live per-file install status, driven by backend apkinstall:* events.
- useEffect(() => {
- const onProgress = (p: { current: number; total: number; path: string; status: RowStatus; message?: string }) => {
- setProgress(prev => ({ ...prev, [p.path]: { status: p.status, message: p.message } }))
- }
- const onDone = () => setInstalling(false)
- const off1 = rt()?.EventsOn?.('apkinstall:progress', onProgress)
- const off2 = rt()?.EventsOn?.('apkinstall:done', onDone)
- return () => { off1?.(); off2?.() }
- }, [])
-
- const mergeApks = useCallback((incoming: ApkFileInfo[]) => {
- if (incoming.length === 0) return
- setApks(prev => {
- const byPath = new Map(prev.map(a => [a.path, a]))
- for (const a of incoming) byPath.set(a.path, a)
- return [...byPath.values()].sort((a, b) => a.name.localeCompare(b.name))
- })
- setSelected(prev => {
- const next = new Set(prev)
- for (const a of incoming) next.add(a.path)
- return next
- })
- }, [])
-
- const addFolder = async () => {
- try {
- const folder = await SelectApkFolder()
- if (!folder) return
- const found = await ListApksInFolder(folder)
- if (!found || found.length === 0) { notify.error('No APKs found in that folder'); return }
- mergeApks(found)
- } catch (e: any) {
- notify.error(e)
- }
- }
-
- const addFiles = async () => {
- try {
- const paths = await SelectMultipleApkFiles()
- if (!paths || paths.length === 0) return
- const found = await StatApkFiles(paths)
- mergeApks(found || [])
- } catch (e: any) {
- notify.error(e)
- }
- }
-
- const removeOne = (path: string) => {
- setApks(prev => prev.filter(a => a.path !== path))
- setSelected(prev => { const next = new Set(prev); next.delete(path); return next })
- setProgress(prev => { const { [path]: _drop, ...rest } = prev; return rest })
- }
-
- const clearAll = () => { setApks([]); setSelected(new Set()); setProgress({}) }
-
- const filtered = useMemo(() =>
- apks.filter(a => a.name.toLowerCase().includes(search.toLowerCase())),
- [apks, search]
- )
-
- const toggleSelect = (path: string) => setSelected(prev => {
- const next = new Set(prev)
- next.has(path) ? next.delete(path) : next.add(path)
- return next
- })
-
- const selectAll = () => {
- if (selected.size === filtered.length) {
- setSelected(new Set())
- } else {
- setSelected(new Set(filtered.map(a => a.path)))
- }
- }
-
- const install = async () => {
- if (selected.size === 0) { notify.error('Select at least one APK'); return }
- const targets = apks.filter(a => selected.has(a.path))
- setInstalling(true)
- const reset: Record = {}
- for (const t of targets) reset[t.path] = { status: 'pending' }
- setProgress(prev => ({ ...prev, ...reset }))
- try {
- const summary = await InstallApksWithProgress(targets.map(t => t.path))
- notify.success(summary)
- } catch (e: any) {
- notify.error(e)
- } finally {
- setInstalling(false)
- }
- }
-
- const cancel = async () => {
- try { await CancelOperation() } catch { /* best effort */ }
- }
-
- const statusIcon = (status: RowStatus | undefined) => {
- switch (status) {
- case 'installing': return
- case 'success': return
- case 'failed': return
- case 'pending': return
- default: return null
- }
- }
-
- return (
-
- {/* Toolbar */}
-
-
-
APK Installer
-
-
- Add Folder
-
-
- Add APKs
-
- {apks.length > 0 && (
-
- Clear
-
- )}
-
-
-
- setSearch(e.target.value)}
- />
-
-
-
-
- {installing ? (
-
- Cancel
-
- ) : (
-
- Install Selected ({selected.size})
-
- )}
-
-
- {/* List header */}
- {apks.length > 0 && (
-
- 0 && selected.size === filtered.length}
- onChange={selectAll}
- disabled={installing}
- className="accent-accent-green"
- />
-
- APK
- Size
-
-
- )}
-
- {/* List */}
-
- {apks.length === 0 && (
-
-
-
Add a folder of APKs, or pick files individually
-
- )}
- {filtered.map(a => {
- const prog = progress[a.path]
- return (
-
-
toggleSelect(a.path)}
- disabled={installing}
- className="accent-accent-green"
- />
-
{statusIcon(prog?.status)}
-
-
{a.name}
- {prog?.status === 'failed' && prog.message && (
-
{prog.message}
- )}
-
-
{formatSize(a.size)}
-
removeOne(a.path)}
- disabled={installing}
- className="btn-ghost text-xs py-0.5 px-1.5 justify-self-start"
- title="Remove from list"
- >
-
-
-
- )
- })}
-
-
- {/* Status bar */}
-
- {filtered.length} APK(s){search ? ` matching "${search}"` : ''}
- {selected.size > 0 && {selected.size} selected }
-
-
- )
-}
diff --git a/frontend/src/components/views/ViewAppInspect.tsx b/frontend/src/components/views/ViewAppInspect.tsx
index 51615cb..d7401a1 100644
--- a/frontend/src/components/views/ViewAppInspect.tsx
+++ b/frontend/src/components/views/ViewAppInspect.tsx
@@ -1,20 +1,11 @@
-import { useState, useEffect } from 'react'
-import { Search, Package, Shield, ShieldCheck, Activity, Server, Database, Cpu, FileCode, AlertTriangle, Radar } from 'lucide-react'
-import { InspectApp, CheckPinning, ListPackages, ScanAppPrivacy } from '../../lib/wails'
+import { useState } from 'react'
+import { Search, Package, Shield, Activity, Server, Database, Cpu, FileCode, AlertTriangle } from 'lucide-react'
+import { InspectApp, CheckPinning, ListPackages } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import { CodeView } from '../../lib/syntax'
-import type { AppInspection, PackageInfo, PrivacyReport } from '../../lib/types'
-
-// Privacy grade -> tailwind text/badge colour.
-const GRADE_COLOR: Record = {
- A: 'text-accent-green', B: 'text-accent-green', C: 'text-warn', D: 'text-warn', F: 'text-danger',
-}
-
-type StateFilter = 'all' | 'enabled' | 'disabled' | 'uninstalled'
+import type { AppInspection, PackageInfo } from '../../lib/types'
export default function ViewAppInspect() {
const [search, setSearch] = useState('')
- const [stateFilter, setStateFilter] = useState('all')
const [packages, setPackages] = useState([])
const [pkgsLoaded, setPkgsLoaded] = useState(false)
const [loading, setLoading] = useState(false)
@@ -22,34 +13,6 @@ export default function ViewAppInspect() {
const [pinning, setPinning] = useState('')
const [activeTab, setActiveTab] = useState('overview')
const [showManifest, setShowManifest] = useState(false)
- const [privacy, setPrivacy] = useState(null)
- const [privacyLoading, setPrivacyLoading] = useState(false)
- // Width of the package picker rail. Draggable so long package names (which
- // truncate at the old fixed 256px) can be read in full. Persisted.
- const [panelW, setPanelW] = useState(() => {
- const v = parseInt(localStorage.getItem('atk-appinspect-w') || '', 10)
- return Number.isFinite(v) ? Math.min(560, Math.max(200, v)) : 256
- })
-
- const startResize = (e: React.MouseEvent) => {
- e.preventDefault()
- const startX = e.clientX
- const startW = panelW
- let latest = startW
- document.body.style.userSelect = 'none'
- const onMove = (ev: MouseEvent) => {
- latest = Math.min(560, Math.max(200, startW + ev.clientX - startX))
- setPanelW(latest)
- }
- const onUp = () => {
- window.removeEventListener('mousemove', onMove)
- window.removeEventListener('mouseup', onUp)
- document.body.style.userSelect = ''
- localStorage.setItem('atk-appinspect-w', String(latest))
- }
- window.addEventListener('mousemove', onMove)
- window.addEventListener('mouseup', onUp)
- }
const loadPackages = async () => {
if (pkgsLoaded) return
@@ -60,16 +23,11 @@ export default function ViewAppInspect() {
} catch {}
}
- // Populate the picker as soon as the view opens (so it isn't empty until the
- // search box is focused). Safe with no device — it just stays empty.
- useEffect(() => { loadPackages() }, [])
-
const inspect = async (pkg: string) => {
if (!pkg.trim()) return
setLoading(true)
setResult(null)
setPinning('')
- setPrivacy(null)
setActiveTab('overview')
try {
const data = await InspectApp(pkg.trim())
@@ -81,19 +39,6 @@ export default function ViewAppInspect() {
}
}
- const scanPrivacy = async () => {
- if (!result) return
- setPrivacyLoading(true)
- try {
- const rep = await ScanAppPrivacy(result.packageName)
- setPrivacy(rep)
- } catch (e: any) {
- notify.error(e)
- } finally {
- setPrivacyLoading(false)
- }
- }
-
const checkPinning = async () => {
if (!result) return
try {
@@ -104,20 +49,12 @@ export default function ViewAppInspect() {
}
}
- const filtered = packages
- .filter(p => p.packageName.toLowerCase().includes(search.toLowerCase()))
- .filter(p => {
- switch (stateFilter) {
- case 'enabled': return p.isInstalled && p.isEnabled
- case 'disabled': return p.isInstalled && !p.isEnabled
- case 'uninstalled': return !p.isInstalled
- default: return true
- }
- })
+ const filtered = packages.filter(p =>
+ p.packageName.toLowerCase().includes(search.toLowerCase())
+ ).slice(0, 20)
const tabs = [
{ id: 'overview', label: 'Overview', icon: },
- { id: 'privacy', label: privacy ? `Privacy (${privacy.grade})` : 'Privacy', icon: },
{ id: 'permissions', label: `Permissions (${result?.permissions?.length || 0})`, icon: },
{ id: 'components', label: 'Components', icon: },
{ id: 'libs', label: 'Native Libs', icon: },
@@ -127,8 +64,8 @@ export default function ViewAppInspect() {
return (
- {/* Left: package picker (resizable) */}
-
+ {/* Left: package picker */}
+
App Inspector
@@ -145,17 +82,6 @@ export default function ViewAppInspect() {
inspect(search)} disabled={!search || loading} className="btn-primary text-xs w-full justify-center">
{loading ? 'Inspecting...' : 'Inspect'}
- setStateFilter(e.target.value as StateFilter)}
- title="Filter by state"
- >
- All states
- Enabled
- Disabled
- Uninstalled
-
@@ -166,21 +92,13 @@ export default function ViewAppInspect() {
className="w-full text-left px-3 py-2 text-xs text-text-secondary hover:bg-bg-raised hover:text-text-primary transition-colors border-b border-bg-border/30"
>
{p.packageName}
-
- {!p.isInstalled ? 'uninstalled' : p.isEnabled ? 'enabled' : 'disabled'}
-
+
{p.isEnabled ? 'enabled' : 'disabled'}
))}
{!pkgsLoaded && (
Type to search or focus to load package list
)}
- {/* Drag handle to widen the rail when package names get cut off */}
-
{/* Right: inspection results */}
@@ -268,100 +186,6 @@ export default function ViewAppInspect() {
)}
- {activeTab === 'privacy' && (
-
- {!privacy && (
-
-
-
- Scans the app's bytecode for known tracker / analytics / ad SDKs and
- cross-references dangerous permissions to compute a privacy score.
- Pulls the APK off the device — may take a few seconds.
-
-
- {privacyLoading
- ? <>
Scanning...>
- : <> Scan privacy>}
-
-
- )}
-
- {privacy && (
- <>
- {/* Score header */}
-
-
- {privacy.grade}
-
-
-
- {privacy.score}
- / 100 privacy score
-
-
- {privacy.trackerCount} tracker{privacy.trackerCount === 1 ? '' : 's'} ·{' '}
- {privacy.dangerousPermissions.length} dangerous permission{privacy.dangerousPermissions.length === 1 ? '' : 's'}
- {privacy.apkSize > 0 && <> · {(privacy.apkSize / 1048576).toFixed(1)} MB APK>}
-
- {/* Score bar */}
-
-
= 70 ? 'bg-accent-green' : privacy.score >= 40 ? 'bg-warn' : 'bg-danger'}`}
- style={{ width: `${privacy.score}%` }}
- />
-
-
-
- {privacyLoading ? 'Scanning...' : 'Rescan'}
-
-
-
- {/* Trackers */}
-
-
Trackers ({privacy.trackerCount})
- {privacy.trackerCount === 0 && (
-
- No known trackers detected in bytecode.
-
- )}
-
- {privacy.trackers.map(t => (
-
-
- {t.name}
- {t.category}
-
- ))}
-
-
-
- {/* Dangerous permissions */}
-
-
Dangerous permissions ({privacy.dangerousPermissions.length})
- {privacy.dangerousPermissions.length === 0 && (
-
None declared.
- )}
-
- {privacy.dangerousPermissions.map(p => (
-
- ))}
-
-
-
-
- Heuristic: matches known SDK package signatures in DEX bytecode (string
- constants aren't decrypted, so obfuscated/encrypted trackers may be missed)
- and counts declared Android "dangerous" permissions. A lower score means more
- trackers / invasive permissions.
-
- >
- )}
-
- )}
-
{activeTab === 'permissions' && (
{result.permissions?.length === 0 && (
@@ -439,11 +263,9 @@ export default function ViewAppInspect() {
{showManifest ? 'Hide' : 'Show'} full package dump ({result.manifestDump?.split('\n').length} lines)
{showManifest && (
-
+
+ {result.manifestDump}
+
)}
)}
diff --git a/frontend/src/components/views/ViewBackup.tsx b/frontend/src/components/views/ViewBackup.tsx
index 1e29bc2..c320fa6 100644
--- a/frontend/src/components/views/ViewBackup.tsx
+++ b/frontend/src/components/views/ViewBackup.tsx
@@ -1,8 +1,7 @@
import { useState } from 'react'
-import { Archive, RotateCcw, AlertTriangle, Check, FolderDown, X, Eye, EyeOff } from 'lucide-react'
-import { StartBackup, RestoreBackup, SelectBackupFile, ListPackages, PullPathsWithProgress } from '../../lib/wails'
+import { Archive, RotateCcw, AlertTriangle, Package, Check } from 'lucide-react'
+import { StartBackup, RestoreBackup, SelectBackupFile, ListPackages } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import DismissibleBanner from '../DismissibleBanner'
import type { PackageInfo } from '../../lib/types'
export default function ViewBackup() {
@@ -15,28 +14,6 @@ export default function ViewBackup() {
const [backing, setBacking] = useState(false)
const [search, setSearch] = useState('')
const [result, setResult] = useState('')
- const [tipsHidden, setTipsHidden] = useState(localStorage.getItem('atk-backup-tips') === 'hidden')
- const [folders, setFolders] = useState
([])
- const [folderInput, setFolderInput] = useState('')
-
- const toggleTips = () => {
- const v = !tipsHidden
- setTipsHidden(v)
- localStorage.setItem('atk-backup-tips', v ? 'hidden' : 'shown')
- }
- const addFolder = (p: string) => {
- const v = p.trim()
- if (v && !folders.includes(v)) setFolders([...folders, v])
- setFolderInput('')
- }
- const backupFolders = async () => {
- if (folders.length === 0) { notify.error('Add at least one folder to back up'); return }
- const id = notify.loading('Folder backup — choose a destination folder…')
- try {
- const out = await PullPathsWithProgress(folders)
- notify.dismiss(id); notify.success(out)
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- }
const loadPackages = async () => {
if (pkgsLoaded) return
@@ -114,21 +91,15 @@ export default function ViewBackup() {
return (
{/* Warning */}
-
+
Android 12+ heavily restricts adb backup
Apps must opt-in via android:allowBackup="true" and the ALLOW_ADB_BACKUP flag. Many modern apps will not be backed up. For full backup, use a rooted device with Titanium Backup or Swift Backup.
-
-
-
-
- {tipsHidden ? <> Show tips> : <> Hide tips>}
-
-
+
{/* Backup config */}
Backup Configuration
@@ -211,44 +182,9 @@ export default function ViewBackup() {
{result}
)}
-
- {/* Folder / file backup (no app-opt-in needed — straight adb pull) */}
-
-
Folder backup
-
Pull device folders/files straight to your computer — works regardless of an app's backup flags.
-
- {['/sdcard/DCIM', '/sdcard/Download', '/sdcard/Pictures', '/sdcard/Documents', '/sdcard'].map(p => (
- addFolder(p)} className="btn-ghost text-xs py-0.5 px-1.5">+ {p.replace('/sdcard/', '') || '/sdcard'}
- ))}
-
-
- setFolderInput(e.target.value)}
- onKeyDown={e => e.key === 'Enter' && addFolder(folderInput)}
- />
- addFolder(folderInput)} className="btn-ghost text-xs shrink-0">Add
-
- {folders.length > 0 && (
-
- {folders.map(f => (
-
- {f}
- setFolders(folders.filter(x => x !== f))} className="text-text-muted hover:text-danger shrink-0">
-
- ))}
-
- )}
-
- Back up {folders.length || ''} folder(s) → computer
-
-
{/* Info panel */}
- {!tipsHidden && (
How adb backup works
@@ -283,7 +219,6 @@ export default function ViewBackup() {
- )}
)
diff --git a/frontend/src/components/views/ViewCerts.tsx b/frontend/src/components/views/ViewCerts.tsx
index bb49e22..892ec4b 100644
--- a/frontend/src/components/views/ViewCerts.tsx
+++ b/frontend/src/components/views/ViewCerts.tsx
@@ -2,7 +2,6 @@ import { useState, useEffect } from 'react'
import { Shield, RefreshCw, Plus, Trash2, AlertTriangle, Check, Lock } from 'lucide-react'
import { ListSystemCerts, ListUserCerts, InstallUserCert, RemoveUserCert, SelectCertFile } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import DismissibleBanner from '../DismissibleBanner'
import type { CertInfo } from '../../lib/types'
export default function ViewCerts() {
@@ -71,13 +70,15 @@ export default function ViewCerts() {
{/* Burp/MITM info banner */}
-
-
-
-
HTTPS Interception Setup (Burp Suite / mitmproxy)
-
1. Export your proxy CA cert as DER/PEM 2. Click "Install User CA" above 3. Set device proxy to your machine IP 4. For Android 7+ apps with pinning — use Magisk TrustUserCerts module or patch the APK
+
+
+
+
+
HTTPS Interception Setup (Burp Suite / mitmproxy)
+
1. Export your proxy CA cert as DER/PEM 2. Click "Install User CA" above 3. Set device proxy to your machine IP 4. For Android 7+ apps with pinning — use Magisk TrustUserCerts module or patch the APK
+
-
+
{/* Tabs */}
@@ -98,13 +99,13 @@ export default function ViewCerts() {
{/* Warning for user certs */}
{activeTab === 'user' && (
-
+
Android 7+ restricts user certs — apps targeting API 24+ won't trust them by default.
Use TrustUserCerts Magisk module or recompile the app's network security config to include user certs.
-
+
)}
{/* Cert list */}
diff --git a/frontend/src/components/views/ViewDashboard.tsx b/frontend/src/components/views/ViewDashboard.tsx
index 9bebf6a..f85b7cd 100644
--- a/frontend/src/components/views/ViewDashboard.tsx
+++ b/frontend/src/components/views/ViewDashboard.tsx
@@ -1,22 +1,15 @@
import { useState, useEffect, useCallback } from 'react'
import { RefreshCw, Wifi, WifiOff, RotateCcw, Shield, Cpu, Battery, HardDrive, Monitor } from 'lucide-react'
import {
- GetDevices, GetDeviceInfo, GetSecurityOverview, EnableWirelessAdb,
+ GetDevices, GetDeviceInfo, EnableWirelessAdb,
ConnectWirelessAdb, DisconnectWirelessAdb, Reboot
} from '../../lib/wails'
import { notify } from '../../lib/notify'
import type { Device, DeviceInfo } from '../../lib/types'
-interface SecurityOverview {
- root: string; selinux: string; verifiedBoot: string; bootloaderLocked: string
- encryption: string; securityPatch: string; dmVerity: string; debuggable: string
- secure: string; buildType: string; buildTags: string; adbEnabled: string; devOptions: string
-}
-
export default function ViewDashboard() {
const [devices, setDevices] = useState([])
const [info, setInfo] = useState(null)
- const [sec, setSec] = useState(null)
const [loading, setLoading] = useState(false)
const [infoLoading, setInfoLoading] = useState(false)
const [wirelessIp, setWirelessIp] = useState('')
@@ -37,11 +30,9 @@ export default function ViewDashboard() {
const loadDeviceInfo = useCallback(async () => {
setInfoLoading(true)
setInfo(null)
- setSec(null)
try {
- const [i, s] = await Promise.all([GetDeviceInfo(), GetSecurityOverview().catch(() => null)])
+ const i = await GetDeviceInfo()
setInfo(i)
- setSec(s)
} catch (e: any) {
notify.error(e)
} finally {
@@ -108,26 +99,6 @@ export default function ViewDashboard() {
const connectedDevices = devices.filter(d => d.status === 'device')
- type Tone = 'good' | 'warn' | 'bad' | 'none'
- const toneCls: Record = {
- good: 'text-accent-green', warn: 'text-warn', bad: 'text-danger', none: 'text-text-primary',
- }
- const secRows: { label: string; value: string; tone: Tone }[] = sec ? [
- { label: 'Bootloader', value: sec.bootloaderLocked, tone: sec.bootloaderLocked === 'Locked' ? 'good' : sec.bootloaderLocked === 'Unlocked' ? 'warn' : 'none' },
- { label: 'Root', value: sec.root, tone: sec.root.includes('su') ? 'warn' : 'good' },
- { label: 'SELinux', value: sec.selinux, tone: /enforc/i.test(sec.selinux) ? 'good' : /permiss/i.test(sec.selinux) ? 'bad' : 'none' },
- { label: 'Verified boot', value: sec.verifiedBoot, tone: sec.verifiedBoot === 'green' ? 'good' : (sec.verifiedBoot === 'orange' || sec.verifiedBoot === 'yellow') ? 'warn' : sec.verifiedBoot === 'red' ? 'bad' : 'none' },
- { label: 'dm-verity', value: sec.dmVerity, tone: /enforc/i.test(sec.dmVerity) ? 'good' : /disabled|logging/i.test(sec.dmVerity) ? 'warn' : 'none' },
- { label: 'Encryption', value: sec.encryption, tone: /^encrypted/i.test(sec.encryption) ? 'good' : /unencrypted/i.test(sec.encryption) ? 'bad' : 'none' },
- { label: 'Security patch', value: sec.securityPatch, tone: 'none' },
- { label: 'Build type', value: sec.buildType, tone: sec.buildType === 'user' ? 'good' : (sec.buildType === 'userdebug' || sec.buildType === 'eng') ? 'warn' : 'none' },
- { label: 'Build tags', value: sec.buildTags, tone: /release-keys/.test(sec.buildTags) ? 'good' : /test-keys/.test(sec.buildTags) ? 'warn' : 'none' },
- { label: 'ro.debuggable', value: sec.debuggable, tone: sec.debuggable === '1' ? 'bad' : sec.debuggable === '0' ? 'good' : 'none' },
- { label: 'ro.secure', value: sec.secure, tone: sec.secure === '0' ? 'bad' : sec.secure === '1' ? 'good' : 'none' },
- { label: 'ADB enabled', value: sec.adbEnabled, tone: sec.adbEnabled === '1' ? 'warn' : 'none' },
- { label: 'Dev options', value: sec.devOptions, tone: sec.devOptions === '1' ? 'warn' : 'none' },
- ] : []
-
return (
{/* Header */}
@@ -218,25 +189,6 @@ export default function ViewDashboard() {
- {/* Security Overview — quick audit */}
- {sec && (
-
-
-
-
Security Overview
-
quick device audit
-
-
- {secRows.map(r => (
-
- {r.label}
- {r.value || 'N/A'}
-
- ))}
-
-
- )}
-
{/* Wireless ADB */}
diff --git a/frontend/src/components/views/ViewDebloater.tsx b/frontend/src/components/views/ViewDebloater.tsx
index 376a1f1..7d72181 100644
--- a/frontend/src/components/views/ViewDebloater.tsx
+++ b/frontend/src/components/views/ViewDebloater.tsx
@@ -1,105 +1,41 @@
import { useState, useEffect, useMemo } from 'react'
-import { Shield, RefreshCw, Search, Trash2, PowerOff, Zap, RotateCcw, AlertTriangle, Check, X, HelpCircle, ChevronDown, ChevronRight } from 'lucide-react'
-import { ListPackages, DisableMultiplePackages, UninstallMultiplePackages, UninstallAndDisableMultiplePackages, RestoreMultiplePackages } from '../../lib/wails'
-import { ensureDangerUnlocked } from '../../lib/applock'
+import { Shield, RefreshCw, Search, Trash2, PowerOff, AlertTriangle, Check, X, ChevronDown, ChevronRight } from 'lucide-react'
+import { ListPackages, DisableMultiplePackages, UninstallMultiplePackages } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import DismissibleBanner from '../DismissibleBanner'
import { DEBLOAT_CATEGORIES } from '../../lib/debloat_db'
import type { Safety } from '../../lib/debloat_db'
import type { PackageInfo } from '../../lib/types'
-// Display safety includes 'unknown' for device packages not in the UAD database.
-type RowSafety = Safety | 'unknown'
-
-const UNCATEGORIZED = 'Uncategorized'
-
-const SAFETY_CONFIG: Record
= {
+const SAFETY_CONFIG: Record = {
safe: { label: 'Safe', cls: 'badge-green', icon: },
caution: { label: 'Caution', cls: 'badge-yellow', icon: },
keep: { label: 'Keep', cls: 'badge-red', icon: },
- unknown: { label: 'Unknown', cls: 'badge-gray', icon: },
-}
-
-// A single package row shown in the list. Device packages are enriched from the
-// UAD database where a match exists; unmatched device packages fall into
-// 'Uncategorized' with 'unknown' safety.
-interface Row {
- pkg: string
- label: string
- description: string
- safety: RowSafety
- category: string
- deps?: string[]
- neededBy?: string[]
- // Physically present on the system image (pm list packages -u), regardless
- // of per-user install state. False only for packages that have never been
- // seen on this device at all (UAD-database-only entries).
- onDevice: boolean
- // onDevice but uninstalled for user 0 - e.g. via Canta/Shizuku, which runs
- // `pm uninstall --user 0`. The APK is still on disk; it just isn't active
- // for this user until restored.
- isUninstalledForUser: boolean
- isDisabled: boolean
-}
-
-// Order categories appear in: the UAD categories in their defined order, then
-// the catch-all Uncategorized group last.
-const CATEGORY_ORDER = [...DEBLOAT_CATEGORIES.map(c => c.name), UNCATEGORIZED]
-
-// Derive a readable label from a bare package name for uncategorized packages,
-// e.g. "com.sec.android.app.launcher" -> "Launcher".
-function shortLabel(pkg: string): string {
- const seg = pkg.split('.').filter(Boolean).pop() || pkg
- return seg.charAt(0).toUpperCase() + seg.slice(1)
}
export default function ViewDebloater() {
const [installed, setInstalled] = useState>(new Set())
- const [disabled, setDisabled] = useState>(new Set())
const [loading, setLoading] = useState(false)
const [selected, setSelected] = useState>(new Set())
const [search, setSearch] = useState('')
- const [safetyFilter, setSafety] = useState('all')
+ const [safetyFilter, setSafety] = useState('all')
const [mfrFilter, setMfrFilter] = useState('all')
const [openCats, setOpenCats] = useState>(new Set())
const [operating, setOperating] = useState(false)
- const [stateFilter, setStateFilter] = useState<'installed' | 'enabled' | 'disabled' | 'uninstalled' | 'notinstalled' | 'all'>('installed')
- const [uninstalledForUser, setUninstalledForUser] = useState>(new Set())
-
- // pkg -> UAD database entry (with its category). Built once; first match wins.
- const dbIndex = useMemo(() => {
- const m = new Map()
- for (const cat of DEBLOAT_CATEGORIES) {
- for (const p of cat.packages) {
- if (!m.has(p.pkg)) {
- m.set(p.pkg, {
- pkg: p.pkg, label: p.label, description: p.description, safety: p.safety,
- category: cat.name, deps: p.deps, neededBy: p.neededBy,
- onDevice: false, isUninstalledForUser: false, isDisabled: false,
- })
- }
- }
- }
- return m
- }, [])
+ const [showNotInstalled, setShowNotInstalled] = useState(false)
const loadInstalled = async () => {
setLoading(true)
setInstalled(new Set())
- setDisabled(new Set())
- setUninstalledForUser(new Set())
setSelected(new Set())
try {
- // 'all' now includes packages uninstalled-for-user (pm list packages -u) -
- // still physically on the device, just not active for user 0.
const pkgs = await ListPackages('all')
const names = new Set((pkgs || []).map((p: PackageInfo) => p.packageName))
setInstalled(names)
- setDisabled(new Set((pkgs || []).filter((p: PackageInfo) => p.isInstalled && !p.isEnabled).map((p: PackageInfo) => p.packageName)))
- setUninstalledForUser(new Set((pkgs || []).filter((p: PackageInfo) => !p.isInstalled).map((p: PackageInfo) => p.packageName)))
- // Auto-open every category that has at least one package on the device.
+ // Auto-open categories that have installed packages
const withInstalled = new Set()
- names.forEach(name => withInstalled.add(dbIndex.get(name)?.category ?? UNCATEGORIZED))
+ DEBLOAT_CATEGORIES.forEach(cat => {
+ if (cat.packages.some(p => names.has(p.pkg))) withInstalled.add(cat.name)
+ })
setOpenCats(withInstalled)
} catch (e: any) {
notify.error(e)
@@ -110,64 +46,30 @@ export default function ViewDebloater() {
useEffect(() => { loadInstalled() }, [])
- const manufacturers = useMemo(() => ['all', ...CATEGORY_ORDER], [])
-
- // The unified row set: every device package (enriched or uncategorized), plus
- // database-only packages so the "Not installed" / "All" filters can browse the
- // full UAD catalogue.
- const allRows = useMemo(() => {
- const rows: Row[] = []
- installed.forEach(name => {
- const e = dbIndex.get(name)
- const isUninstalledForUser = uninstalledForUser.has(name)
- if (e) {
- rows.push({ ...e, onDevice: true, isUninstalledForUser, isDisabled: disabled.has(name) })
- } else {
- rows.push({
- pkg: name, label: shortLabel(name),
- description: 'Not in the debloat database — likely an OEM, carrier, or region-specific package. Safety unknown; research before removing.',
- safety: 'unknown', category: UNCATEGORIZED,
- onDevice: true, isUninstalledForUser, isDisabled: disabled.has(name),
- })
- }
- })
- dbIndex.forEach((e, pkg) => {
- if (!installed.has(pkg)) rows.push({ ...e, onDevice: false, isUninstalledForUser: false, isDisabled: false })
- })
- return rows
- }, [installed, disabled, uninstalledForUser, dbIndex])
+ const manufacturers = useMemo(() => ['all', ...DEBLOAT_CATEGORIES.map(c => c.name)], [])
const visibleCategories = useMemo(() => {
- const q = search.toLowerCase()
- const byCat = new Map()
- for (const r of allRows) {
- if (mfrFilter !== 'all' && r.category !== mfrFilter) continue
- if (safetyFilter !== 'all' && r.safety !== safetyFilter) continue
- switch (stateFilter) {
- case 'installed': if (!r.onDevice) continue; break
- case 'enabled': if (!r.onDevice || r.isUninstalledForUser || r.isDisabled) continue; break
- case 'disabled': if (!r.isDisabled) continue; break
- case 'uninstalled': if (!r.isUninstalledForUser) continue; break
- case 'notinstalled': if (r.onDevice) continue; break
- // 'all' → no state restriction
- }
- if (q && !(r.pkg.toLowerCase().includes(q) || r.label.toLowerCase().includes(q) || r.description.toLowerCase().includes(q))) continue
- if (!byCat.has(r.category)) byCat.set(r.category, [])
- byCat.get(r.category)!.push(r)
- }
- return CATEGORY_ORDER
- .filter(name => byCat.has(name))
- .map(name => ({ name, packages: byCat.get(name)!.sort((a, b) => a.pkg.localeCompare(b.pkg)) }))
- }, [allRows, search, safetyFilter, mfrFilter, stateFilter])
+ return DEBLOAT_CATEGORIES
+ .filter(cat => mfrFilter === 'all' || cat.name === mfrFilter)
+ .map(cat => ({
+ ...cat,
+ packages: cat.packages.filter(p => {
+ if (safetyFilter !== 'all' && p.safety !== safetyFilter) return false
+ if (!showNotInstalled && !installed.has(p.pkg)) return false
+ if (search) {
+ const q = search.toLowerCase()
+ return p.pkg.toLowerCase().includes(q) || p.label.toLowerCase().includes(q) || p.description.toLowerCase().includes(q)
+ }
+ return true
+ })
+ }))
+ .filter(cat => cat.packages.length > 0)
+ }, [search, safetyFilter, mfrFilter, installed, showNotInstalled])
- // Device counts — mirror the Packages tab (deviceCount) and explain the gap.
- const deviceCount = installed.size
- const cataloguedCount = useMemo(() => {
- let n = 0
- installed.forEach(name => { if (dbIndex.has(name)) n++ })
- return n
- }, [installed, dbIndex])
- const uncategorizedCount = deviceCount - cataloguedCount
+ const totalInstalled = useMemo(() =>
+ DEBLOAT_CATEGORIES.reduce((n, cat) => n + cat.packages.filter(p => installed.has(p.pkg)).length, 0),
+ [installed]
+ )
const toggleCat = (name: string) => setOpenCats(prev => {
const next = new Set(prev)
@@ -182,8 +84,11 @@ export default function ViewDebloater() {
})
const selectAllVisible = () => {
- const selectable = visibleCategories.flatMap(c => c.packages).map(p => p.pkg)
- if (selected.size > 0 && selected.size >= selectable.length) {
+ const selectable = visibleCategories
+ .flatMap(c => c.packages)
+ .filter(p => installed.has(p.pkg) && p.safety !== 'keep')
+ .map(p => p.pkg)
+ if (selected.size === selectable.length) {
setSelected(new Set())
} else {
setSelected(new Set(selectable))
@@ -193,7 +98,6 @@ export default function ViewDebloater() {
const batchOp = async (label: string, op: (pkgs: string[]) => Promise, confirm_msg: string) => {
if (selected.size === 0) { notify.error('Select packages first'); return }
if (!confirm(confirm_msg)) return
- if (!(await ensureDangerUnlocked())) return
setOperating(true)
const id = notify.loading(`${label} ${selected.size} package(s)...`)
try {
@@ -216,26 +120,24 @@ export default function ViewDebloater() {
- {loading
- ? 'Scanning device...'
- : `${deviceCount} on device · ${cataloguedCount} catalogued · ${uncategorizedCount} uncategorized`}
+ {loading ? 'Scanning device...' : `${totalInstalled} of ${DEBLOAT_CATEGORIES.reduce((n,c)=>n+c.packages.length,0)} packages found on device`}
- {/* Manufacturer / category filter */}
+ {/* Manufacturer filter */}
setMfrFilter(e.target.value)}
>
{manufacturers.map(m => (
- {m === 'all' ? 'All categories' : m}
+ {m === 'all' ? 'All manufacturers' : m}
))}
{/* Safety filter */}
- {(['all', 'safe', 'caution', 'keep', 'unknown'] as const).map(f => (
+ {(['all', 'safe', 'caution', 'keep'] as const).map(f => (
setSafety(f)}
@@ -248,19 +150,15 @@ export default function ViewDebloater() {
))}
-
setStateFilter(e.target.value as typeof stateFilter)}
- title="Filter by device state"
- >
- On device
- Enabled
- Disabled
- Uninstalled (this user)
- Not on device
- All
-
+
+ setShowNotInstalled(e.target.checked)}
+ className="accent-accent-green"
+ />
+ Show not installed
+
@@ -279,12 +177,12 @@ export default function ViewDebloater() {
{/* Warning */}
-
+
- Always prefer Disable over Uninstall. Packages marked Keep are device-critical — removing them can break your device. Uncategorized packages aren't in the debloat database; research before removing. Safety data: Universal Android Debloater (UAD-ng).
+ Always prefer Disable over Uninstall. Never remove packages marked Keep — they will break your device. Source: Universal Android Debloater (UAD-ng), 2157 packages.
-
+
{/* Action bar */}
{selected.size > 0 && (
@@ -301,28 +199,12 @@ export default function ViewDebloater() {
batchOp('Uninstalling', UninstallMultiplePackages,
- `Uninstall ${selected.size} package(s) for current user?\n\nUses pm uninstall --user 0 (protected system apps fall back to a privileged on-device helper).\nReversible via re-enable or factory reset.`)}
+ `Uninstall ${selected.size} package(s) for current user?\n\nUses pm uninstall -k --user 0. Package stays on system but is removed for your user.\nReversible via re-enable or factory reset.`)}
disabled={operating}
className="btn-danger text-xs"
>
Uninstall for user ({selected.size})
- batchOp('Disabling + uninstalling', UninstallAndDisableMultiplePackages,
- `Disable AND uninstall ${selected.size} package(s)?\n\nForce-stops + disables each app (pm disable-user --user 0), then uninstalls it (privileged fallback for protected system apps).\nIf an app can't be removed it is left disabled.\nReversible via re-enable or factory reset.`)}
- disabled={operating}
- className="btn-danger text-xs"
- >
- Disable + Uninstall ({selected.size})
-
- batchOp('Restoring', RestoreMultiplePackages,
- `Restore ${selected.size} package(s)?\n\nReinstalls for your user (cmd package install-existing --user 0) and re-enables (pm enable --user 0).\nBrings back apps that were disabled or uninstalled-for-user.`)}
- disabled={operating}
- className="btn-ghost text-xs text-accent-green"
- >
- Restore ({selected.size})
-
setSelected(new Set())} className="btn-ghost text-xs">
Clear
@@ -340,14 +222,14 @@ export default function ViewDebloater() {
No packages match current filters
- {stateFilter !== 'notinstalled' && deviceCount === 0 && (
+ {!showNotInstalled && totalInstalled === 0 && (
Try clicking "Scan" to detect installed packages
)}
)}
{!loading && visibleCategories.map(cat => {
- const installedCount = cat.packages.filter(p => p.onDevice).length
+ const installedCount = cat.packages.filter(p => installed.has(p.pkg)).length
const isOpen = openCats.has(cat.name)
return (
@@ -373,9 +255,7 @@ export default function ViewDebloater() {
{/* Packages */}
{isOpen && cat.packages.map(p => {
- const isInst = p.onDevice
- const isUninstalledForUser = p.isUninstalledForUser
- const isDisabled = p.isDisabled
+ const isInst = installed.has(p.pkg)
const isSel = selected.has(p.pkg)
const safety = SAFETY_CONFIG[p.safety]
@@ -384,15 +264,15 @@ export default function ViewDebloater() {
key={p.pkg}
className={`
flex items-start gap-3 px-4 py-2 border-t border-bg-border/30 transition-colors
- hover:bg-bg-raised cursor-pointer
- ${!isInst ? 'opacity-60' : ''}
+ ${isInst ? 'hover:bg-bg-raised cursor-pointer' : 'opacity-40'}
${isSel ? 'bg-accent-green/5' : ''}
`}
- onClick={() => toggleSelect(p.pkg)}
+ onClick={() => isInst && p.safety !== 'keep' && toggleSelect(p.pkg)}
>
toggleSelect(p.pkg)}
className="accent-accent-green mt-0.5 shrink-0"
onClick={e => e.stopPropagation()}
@@ -404,8 +284,6 @@ export default function ViewDebloater() {
{safety.icon} {safety.label}
{!isInst && not on device }
- {isInst && isUninstalledForUser && uninstalled }
- {isInst && !isUninstalledForUser && isDisabled && disabled }
{p.deps && p.deps.length > 0 && (
has deps
)}
@@ -426,9 +304,9 @@ export default function ViewDebloater() {
{/* Status bar */}
- {deviceCount} on device · {cataloguedCount} catalogued · {uncategorizedCount} uncategorized · {DEBLOAT_CATEGORIES.reduce((n,c)=>n+c.packages.length,0)} in database
+ {totalInstalled} debloat candidates on device · {DEBLOAT_CATEGORIES.reduce((n,c)=>n+c.packages.length,0)} total in database
- {selected.size > 0 ? 'Deselect all' : 'Select all visible'}
+ {selected.size > 0 ? 'Deselect all' : 'Select all safe+caution'}
diff --git a/frontend/src/components/views/ViewFiles.tsx b/frontend/src/components/views/ViewFiles.tsx
index c71f30c..3b0a0db 100644
--- a/frontend/src/components/views/ViewFiles.tsx
+++ b/frontend/src/components/views/ViewFiles.tsx
@@ -1,31 +1,18 @@
-import { useState, useEffect, useCallback, useRef } from 'react'
+import { useState, useEffect, useCallback } from 'react'
import {
- FolderOpen, File, ArrowLeft, ArrowRight, ArrowUp, RefreshCw, Upload,
- Download, Trash2, FolderPlus, Edit3, Copy, FolderInput, Smartphone, Monitor,
- Image as ImageIcon, X, ChevronLeft, ChevronRight
+ FolderOpen, File, ArrowLeft, RefreshCw, Upload,
+ Download, Trash2, FolderPlus, Edit3, Copy
} from 'lucide-react'
import {
- ListFiles, ListLocalFiles, HomeDir, PushWithProgress, PushPathsWithProgress,
- PullPathsWithProgress, DeleteMultipleFiles, CreateFolder, RenameFile,
- SelectFileForPush, CancelOperation
+ ListFiles, PushFile, PullMultipleFiles, DeleteMultipleFiles,
+ CreateFolder, RenameFile, CopyFile, SelectFileForPush, CancelOperation
} from '../../lib/wails'
import { notify } from '../../lib/notify'
-import { CodeView, detectLang } from '../../lib/syntax'
import type { FileEntry } from '../../lib/types'
-// Wails runtime is injected on window['runtime'] (same access as ViewLogcat).
-const rt = () => (window as any)['runtime']
-
-type Source = 'device' | 'local'
-interface Transfer { kind: string; label: string; percent: number }
-interface Menu { x: number; y: number; entry: FileEntry }
-interface Nav { stack: string[]; idx: number }
-
export default function ViewFiles() {
- const [source, setSource] = useState('device')
- const [nav, setNav] = useState({ stack: ['/sdcard'], idx: 0 })
- const path = nav.stack[nav.idx]
- const [pathInput, setPathInput] = useState(path)
+ const [path, setPath] = useState('/sdcard')
+ const [pathInput, setPathInput] = useState('/sdcard')
const [files, setFiles] = useState([])
const [loading, setLoading] = useState(false)
const [selected, setSelected] = useState>(new Set())
@@ -33,31 +20,12 @@ export default function ViewFiles() {
const [renameValue, setRenameValue] = useState('')
const [newFolder, setNewFolder] = useState(false)
const [newFolderName, setNewFolderName] = useState('')
- const [menu, setMenu] = useState(null)
- const [moving, setMoving] = useState(null)
- const [moveDest, setMoveDest] = useState('')
- const [pushStaged, setPushStaged] = useState(null)
- const [transfer, setTransfer] = useState(null)
- const [eta, setEta] = useState('')
- const [viewer, setViewer] = useState(null) // image filename being viewed
- const [imgLoading, setImgLoading] = useState(false)
- const [imgError, setImgError] = useState(false)
- const [textView, setTextView] = useState<{ name: string; content: string } | null>(null)
- const [textLoading, setTextLoading] = useState(false)
- const progRef = useRef<{ label: string; t0: number } | null>(null)
- // Remembered path per source + the last device dir (push destination default).
- const remembered = useRef>({ device: '/sdcard', local: '' })
- const fullPath = useCallback(
- (name: string) => (path.endsWith('/') ? path + name : path + '/' + name),
- [path]
- )
-
- const loadFiles = useCallback(async (p: string, src: Source) => {
+ const loadFiles = useCallback(async (p: string) => {
setLoading(true)
setSelected(new Set())
try {
- const result = await (src === 'device' ? ListFiles(p) : ListLocalFiles(p))
+ const result = await ListFiles(p)
setFiles(result || [])
} catch (e: any) {
notify.error(e)
@@ -67,68 +35,29 @@ export default function ViewFiles() {
}
}, [])
- useEffect(() => { loadFiles(path, source) }, [path, source, loadFiles])
- useEffect(() => { setPathInput(path) }, [path])
-
- // Live push/pull progress + ETA, computed from percent over elapsed time.
- useEffect(() => {
- const onProgress = (t: Transfer) => {
- const now = performance.now()
- if (!progRef.current || progRef.current.label !== t.label || t.percent === 0) {
- progRef.current = { label: t.label, t0: now }
- }
- const elapsed = now - progRef.current.t0
- if (t.percent > 0 && t.percent < 100) {
- const total = elapsed / (t.percent / 100)
- setEta(formatEta(Math.max(0, total - elapsed)))
- } else {
- setEta('')
- }
- setTransfer(t)
- }
- const onDone = () => { setTransfer(null); setEta(''); progRef.current = null }
- const off1 = rt()?.EventsOn?.('transfer:progress', onProgress)
- const off2 = rt()?.EventsOn?.('transfer:done', onDone)
- return () => { off1?.(); off2?.() }
- }, [])
-
- // Seed the Computer browser's starting path with the user's home directory.
- useEffect(() => {
- HomeDir().then((h: string) => { if (h) remembered.current.local = h }).catch(() => {})
- }, [])
-
- // Navigate to a new path (pushes onto history, truncating any forward entries).
- const go = (to: string) => {
- setNav(n => {
- if (n.stack[n.idx] === to) return n
- const stack = n.stack.slice(0, n.idx + 1)
- stack.push(to)
- return { stack, idx: stack.length - 1 }
- })
- }
- const back = () => setNav(n => (n.idx > 0 ? { ...n, idx: n.idx - 1 } : n))
- const forward = () => setNav(n => (n.idx < n.stack.length - 1 ? { ...n, idx: n.idx + 1 } : n))
-
- const switchSource = (s: Source) => {
- if (s === source) return
- remembered.current[source] = path
- const target = remembered.current[s] || (s === 'local' ? '/' : '/sdcard')
- setSource(s)
- setNav({ stack: [target], idx: 0 })
- }
+ useEffect(() => { loadFiles(path) }, [path, loadFiles])
const navigate = (entry: FileEntry) => {
- if (entry.type === 'Directory' || entry.type === 'Symlink') go(fullPath(entry.name))
+ if (entry.type === 'Directory') {
+ const next = path.endsWith('/') ? path + entry.name : path + '/' + entry.name
+ setPath(next)
+ setPathInput(next)
+ }
}
const goUp = () => {
const parts = path.split('/').filter(Boolean)
if (parts.length === 0) return
parts.pop()
- go('/' + parts.join('/') || '/')
+ const next = '/' + parts.join('/')
+ setPath(next || '/')
+ setPathInput(next || '/')
}
- const navigatePath = () => go(pathInput)
+ const navigatePath = () => {
+ setPath(pathInput)
+ loadFiles(pathInput)
+ }
const toggleSelect = (name: string) => {
setSelected(prev => {
@@ -139,78 +68,71 @@ export default function ViewFiles() {
}
const selectAll = () => {
- if (selected.size === files.length) setSelected(new Set())
- else setSelected(new Set(files.map(f => f.name)))
+ if (selected.size === files.length) {
+ setSelected(new Set())
+ } else {
+ setSelected(new Set(files.map(f => f.name)))
+ }
}
- // ── Device-mode actions ──
const handlePush = async () => {
const local = await SelectFileForPush()
if (!local) return
+ const id = notify.loading('Pushing file...')
try {
- const out = await PushWithProgress(local, path)
+ const out = await PushFile(local, path)
+ notify.dismiss(id)
notify.success(out || 'File pushed')
- loadFiles(path, source)
+ loadFiles(path)
} catch (e: any) {
+ notify.dismiss(id)
notify.error(e)
}
}
- const pull = async (paths: string[]) => {
- if (paths.length === 0) { notify.error('Select files to pull'); return }
+ const handlePull = async () => {
+ if (selected.size === 0) { notify.error('Select files to pull'); return }
+ const paths = [...selected].map(name =>
+ path.endsWith('/') ? path + name : path + '/' + name
+ )
+ const id = notify.loading(`Pulling ${paths.length} item(s)...`)
try {
- const out = await PullPathsWithProgress(paths)
+ const out = await PullMultipleFiles(paths)
+ notify.dismiss(id)
notify.success(out)
} catch (e: any) {
+ notify.dismiss(id)
notify.error(e)
}
}
- const del = async (paths: string[]) => {
- if (paths.length === 0) { notify.error('Select files to delete'); return }
+ const handleDelete = async () => {
+ if (selected.size === 0) { notify.error('Select files to delete'); return }
+ const paths = [...selected].map(name =>
+ path.endsWith('/') ? path + name : path + '/' + name
+ )
if (!confirm(`Delete ${paths.length} item(s)?`)) return
const id = notify.loading('Deleting...')
try {
const out = await DeleteMultipleFiles(paths)
notify.dismiss(id)
notify.success(out)
- loadFiles(path, source)
+ loadFiles(path)
} catch (e: any) {
notify.dismiss(id)
notify.error(e)
}
}
- // ── Local→device push: stage the files, then flip to the Device browser so
- // the user picks the destination folder visually and clicks "Push here". ──
- const startPush = (localPaths: string[]) => {
- if (localPaths.length === 0) { notify.error('Select files to push'); return }
- setPushStaged(localPaths)
- remembered.current.local = path
- setSource('device')
- setNav({ stack: [remembered.current.device || '/sdcard'], idx: 0 })
- }
- const handlePushHere = async () => {
- if (!pushStaged) return
- const files = pushStaged
- setPushStaged(null)
- try {
- const out = await PushPathsWithProgress(files, path)
- notify.success(out)
- loadFiles(path, source)
- } catch (e: any) {
- notify.error(e)
- }
- }
-
const handleCreateFolder = async () => {
if (!newFolderName.trim()) return
+ const fullPath = path.endsWith('/') ? path + newFolderName : path + '/' + newFolderName
try {
- await CreateFolder(fullPath(newFolderName))
+ await CreateFolder(fullPath)
notify.success('Folder created')
setNewFolder(false)
setNewFolderName('')
- loadFiles(path, source)
+ loadFiles(path)
} catch (e: any) {
notify.error(e)
}
@@ -226,100 +148,18 @@ export default function ViewFiles() {
setRenaming(null)
return
}
+ const oldPath = path.endsWith('/') ? path + renaming : path + '/' + renaming
+ const newPath = path.endsWith('/') ? path + renameValue : path + '/' + renameValue
try {
- await RenameFile(fullPath(renaming), fullPath(renameValue))
+ await RenameFile(oldPath, newPath)
notify.success('Renamed')
setRenaming(null)
- loadFiles(path, source)
+ loadFiles(path)
} catch (e: any) {
notify.error(e)
}
}
- const handleMove = async () => {
- if (!moving) return
- const destDir = moveDest.trim().replace(/\/+$/, '')
- if (!destDir) { setMoving(null); return }
- try {
- await RenameFile(fullPath(moving.name), destDir + '/' + moving.name)
- notify.success(`Moved to ${destDir}`)
- setMoving(null)
- loadFiles(path, source)
- } catch (e: any) {
- notify.error(e)
- }
- }
-
- const copyPath = (entry: FileEntry) => {
- navigator.clipboard?.writeText(fullPath(entry.name))
- notify.success('Path copied')
- }
-
- // ── Image viewer — streams bytes via the /__file asset-server route (no
- // base64 size limits). The loads the URL itself. ──
- const fileURL = useCallback(
- (name: string) => `/__file?src=${source}&p=${encodeURIComponent(fullPath(name))}`,
- [source, fullPath]
- )
- const openViewer = (name: string) => { setViewer(name); setImgLoading(true); setImgError(false) }
-
- // Text preview: fetch the file's bytes via the same /__file route the image
- // viewer uses (works for device and local), cap the size, and show highlighted.
- const openText = async (name: string) => {
- setTextView({ name, content: '' })
- setTextLoading(true)
- try {
- const res = await fetch(fileURL(name))
- let t = await res.text()
- if (t.length > 400000) t = t.slice(0, 400000) + '\n\n… (truncated at 400 KB)'
- setTextView({ name, content: t })
- } catch (e: any) {
- notify.error(e)
- setTextView(null)
- } finally {
- setTextLoading(false)
- }
- }
-
- // Esc closes the text viewer.
- useEffect(() => {
- if (!textView) return
- const onKey = (e: KeyboardEvent) => { if (e.key === 'Escape') setTextView(null) }
- window.addEventListener('keydown', onKey)
- return () => window.removeEventListener('keydown', onKey)
- }, [textView])
-
- const stepViewer = useCallback((delta: number) => {
- setViewer(cur => {
- if (!cur) return cur
- const imgs = files.filter(f => isImage(f.name)).map(f => f.name)
- const i = imgs.indexOf(cur)
- if (i < 0) return cur
- setImgLoading(true)
- setImgError(false)
- return imgs[(i + delta + imgs.length) % imgs.length]
- })
- }, [files])
-
- // Esc to close, arrows to step through images while the viewer is open.
- useEffect(() => {
- if (!viewer) return
- const onKey = (e: KeyboardEvent) => {
- if (e.key === 'Escape') setViewer(null)
- if (e.key === 'ArrowRight') stepViewer(1)
- if (e.key === 'ArrowLeft') stepViewer(-1)
- }
- window.addEventListener('keydown', onKey)
- return () => window.removeEventListener('keydown', onKey)
- }, [viewer, stepViewer])
-
- // Double-click / Open: directories navigate, images open the viewer.
- const open = (entry: FileEntry) => {
- if (entry.type === 'Directory' || entry.type === 'Symlink') navigate(entry)
- else if (isImage(entry.name)) openViewer(entry.name)
- else if (isText(entry.name)) openText(entry.name)
- }
-
const formatSize = (size: string) => {
const n = parseInt(size)
if (isNaN(n)) return size
@@ -328,90 +168,43 @@ export default function ViewFiles() {
return `${(n / 1048576).toFixed(1)} MB`
}
- const isDevice = source === 'device'
-
return (
- menu && setMenu(null)}>
+
{/* Toolbar */}
- {/* Source toggle */}
-
- switchSource('device')}
- className={`px-2 py-0.5 rounded text-xs font-medium flex items-center gap-1 transition-colors ${
- isDevice ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:text-text-secondary'
- }`}
- >
- Device
-
- switchSource('local')}
- className={`px-2 py-0.5 rounded text-xs font-medium flex items-center gap-1 transition-colors ${
- !isDevice ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:text-text-secondary'
- }`}
- >
- Computer
-
-
-
-
+
-
-
-
-
-
-
setPathInput(e.target.value)}
onKeyDown={e => e.key === 'Enter' && navigatePath()}
- placeholder={isDevice ? '/sdcard' : '/home'}
+ placeholder="/sdcard"
/>
- loadFiles(path, source)} disabled={loading} className="btn-ghost p-1.5">
+ loadFiles(path)} disabled={loading} className="btn-ghost p-1.5">
- {isDevice ? (
- <>
-
- Push
-
- pull([...selected].map(fullPath))} disabled={selected.size === 0} className="btn-ghost text-xs">
- Pull {selected.size > 0 ? `(${selected.size})` : ''}
-
- setNewFolder(true)} className="btn-ghost text-xs">
- New Folder
-
- del([...selected].map(fullPath))} disabled={selected.size === 0} className="btn-danger text-xs">
- Delete {selected.size > 0 ? `(${selected.size})` : ''}
-
- >
- ) : (
- startPush([...selected].map(fullPath))} disabled={selected.size === 0} className="btn-ghost text-xs">
- Push to device {selected.size > 0 ? `(${selected.size})` : ''}
-
+
+ Push
+
+
+ Pull {selected.size > 0 ? `(${selected.size})` : ''}
+
+ setNewFolder(true)} className="btn-ghost text-xs">
+ New Folder
+
+
+ Delete {selected.size > 0 ? `(${selected.size})` : ''}
+
+ {loading && (
+ CancelOperation()} className="btn-warn text-xs">Cancel
)}
- {/* Transfer progress bar */}
- {transfer && (
-
- {transfer.kind === 'pull' ?
:
}
-
{transfer.label}
-
-
{transfer.percent}%
- {eta &&
~{eta} left }
-
CancelOperation()} className="btn-warn text-xs">Cancel
-
- )}
-
{/* New folder input */}
{newFolder && (
@@ -432,40 +225,6 @@ export default function ViewFiles() {
)}
- {/* Move dialog (device) */}
- {moving && (
-
-
- Move {moving.name} to:
- setMoveDest(e.target.value)}
- onKeyDown={e => {
- if (e.key === 'Enter') handleMove()
- if (e.key === 'Escape') setMoving(null)
- }}
- />
- Move
- setMoving(null)} className="btn-ghost text-xs">Cancel
-
- )}
-
- {/* Push destination picker — shown after staging local files for push */}
- {pushStaged && isDevice && (
-
-
-
- Pushing {pushStaged.length} item(s) — browse to a destination folder, then push.
-
- → {path}
- Push here
- setPushStaged(null)} className="btn-ghost text-xs">Cancel
-
- )}
-
{/* File list header */}
(
- {/* Right-click context menu */}
- {menu && (
-
e.stopPropagation()}
- >
- {(menu.entry.type === 'Directory' || menu.entry.type === 'Symlink') && (
-
} label="Open" onClick={() => { navigate(menu.entry); setMenu(null) }} />
- )}
- {isImage(menu.entry.name) && (
-
} label="Preview" onClick={() => { openViewer(menu.entry.name); setMenu(null) }} />
- )}
- {isDevice ? (
- <>
-
} label="Pull to folder…" onClick={() => { pull([fullPath(menu.entry.name)]); setMenu(null) }} />
-
} label="Rename" onClick={() => { startRename(menu.entry.name); setMenu(null) }} />
-
} label="Move to…" onClick={() => { setMoving(menu.entry); setMoveDest(path); setMenu(null) }} />
-
} label="Copy path" onClick={() => { copyPath(menu.entry); setMenu(null) }} />
-
-
} label="Delete" danger onClick={() => { del([fullPath(menu.entry.name)]); setMenu(null) }} />
- >
- ) : (
- <>
- {menu.entry.type === 'File' && (
-
} label="Push to device…" onClick={() => { startPush([fullPath(menu.entry.name)]); setMenu(null) }} />
- )}
-
} label="Copy path" onClick={() => { copyPath(menu.entry); setMenu(null) }} />
- >
- )}
-
- )}
-
- {/* Image viewer — click anywhere (except the image or buttons) to close */}
- {viewer && (
-
setViewer(null)}
- >
-
- {viewer}
- { e.stopPropagation(); setViewer(null) }} className="btn-ghost p-1.5" title="Close (Esc)">
-
-
-
-
-
{ e.stopPropagation(); stepViewer(-1) }} className="btn-ghost p-2 shrink-0" title="Previous (←)">
-
-
-
- {imgLoading && !imgError && (
-
- )}
- {imgError ? (
-
Couldn't load this image
- ) : (
-
e.stopPropagation()}
- onLoad={() => setImgLoading(false)}
- onError={() => { setImgLoading(false); setImgError(true) }}
- className="max-h-full max-w-full object-contain rounded"
- />
- )}
-
-
{ e.stopPropagation(); stepViewer(1) }} className="btn-ghost p-2 shrink-0" title="Next (→)">
-
-
-
-
- )}
-
- {/* Text viewer — highlighted preview for text/code/config files */}
- {textView && (
-
setTextView(null)}>
-
- {textView.name}
- { e.stopPropagation(); setTextView(null) }} className="btn-ghost p-1.5" title="Close (Esc)">
-
-
-
-
e.stopPropagation()}>
-
- {textLoading ? (
-
- ) : (
-
- )}
-
-
-
- )}
-
{/* Status bar */}
-
- {isDevice ? : }
- {path}
-
+ {path}
{files.length} items{selected.size > 0 ? `, ${selected.size} selected` : ''}
)
}
-
-function MenuItem({ icon, label, onClick, danger }: {
- icon: React.ReactNode; label: string; onClick: () => void; danger?: boolean
-}) {
- return (
-
- {icon}{label}
-
- )
-}
-
-function formatEta(ms: number): string {
- const s = Math.round(ms / 1000)
- if (s < 60) return `${s}s`
- return `${Math.floor(s / 60)}m ${String(s % 60).padStart(2, '0')}s`
-}
-
-function isImage(name: string): boolean {
- return /\.(png|jpe?g|gif|webp|bmp|ico)$/i.test(name)
-}
-
-function isText(name: string): boolean {
- return /\.(txt|xml|json|prop|conf|cfg|ini|env|log|sh|bash|rc|smali|java|kt|gradle|ya?ml|md|csv|html?|css|js|ts|toml|properties|list)$/i.test(name)
-}
diff --git a/frontend/src/components/views/ViewFirmware.tsx b/frontend/src/components/views/ViewFirmware.tsx
deleted file mode 100644
index 79088c0..0000000
--- a/frontend/src/components/views/ViewFirmware.tsx
+++ /dev/null
@@ -1,309 +0,0 @@
-import { useState, useEffect, useRef } from 'react'
-import { Download, Search, ShieldCheck, X, PackageOpen, FileCheck2 } from 'lucide-react'
-import { ListFirmware, DownloadFirmware, CancelOperation, SelectFileForFlash, ListPayloadPartitions, ExtractPayloadPartition, SelectAnyFile, HashFile } from '../../lib/wails'
-import { notify } from '../../lib/notify'
-
-const rt = () => (window as any)['runtime']
-
-interface Firmware { version: string; url: string; sha256: string }
-interface PayloadPartition { name: string; sizeMB: number }
-interface FileHashes { sha256: string; sha1: string; sizeBytes: number }
-
-// Pixel device codenames (newest first). Value = codename used by Google's images.
-const PIXEL_DEVICES: { name: string; cn: string }[] = [
- { name: 'Pixel 10 Pro Fold', cn: 'rango' },
- { name: 'Pixel 10 Pro XL', cn: 'mustang' },
- { name: 'Pixel 10 Pro', cn: 'blazer' },
- { name: 'Pixel 10', cn: 'frankel' },
- { name: 'Pixel 9a', cn: 'tegu' },
- { name: 'Pixel 9 Pro Fold', cn: 'comet' },
- { name: 'Pixel 9 Pro XL', cn: 'komodo' },
- { name: 'Pixel 9 Pro', cn: 'caiman' },
- { name: 'Pixel 9', cn: 'tokay' },
- { name: 'Pixel 8a', cn: 'akita' },
- { name: 'Pixel 8 Pro', cn: 'husky' },
- { name: 'Pixel 8', cn: 'shiba' },
- { name: 'Pixel Fold', cn: 'felix' },
- { name: 'Pixel Tablet', cn: 'tangorpro' },
- { name: 'Pixel 7a', cn: 'lynx' },
- { name: 'Pixel 7 Pro', cn: 'cheetah' },
- { name: 'Pixel 7', cn: 'panther' },
- { name: 'Pixel 6a', cn: 'bluejay' },
- { name: 'Pixel 6 Pro', cn: 'raven' },
- { name: 'Pixel 6', cn: 'oriole' },
- { name: 'Pixel 5a', cn: 'barbet' },
- { name: 'Pixel 5', cn: 'redfin' },
- { name: 'Pixel 4a 5G', cn: 'bramble' },
- { name: 'Pixel 4a', cn: 'sunfish' },
- { name: 'Pixel 4 XL', cn: 'coral' },
- { name: 'Pixel 4', cn: 'flame' },
- { name: 'Pixel 3a XL', cn: 'bonito' },
- { name: 'Pixel 3a', cn: 'sargo' },
- { name: 'Pixel 3 XL', cn: 'crosshatch' },
- { name: 'Pixel 3', cn: 'blueline' },
-]
-
-export default function ViewFirmware({ codename }: { codename?: string }) {
- const [cn, setCn] = useState(codename || 'husky')
- const [custom, setCustom] = useState(false)
- const [kind, setKind] = useState<'factory' | 'ota'>('factory')
- const [list, setList] = useState
([])
- const [loading, setLoading] = useState(false)
- const [downloading, setDownloading] = useState(false)
- const [percent, setPercent] = useState(0)
- const [eta, setEta] = useState('')
- const t0 = useRef(0)
- // payload.bin extraction
- const [otaZip, setOtaZip] = useState('')
- const [parts, setParts] = useState(null)
- const [partsBusy, setPartsBusy] = useState(false)
- const [extracting, setExtracting] = useState('')
- const [extractPct, setExtractPct] = useState(0)
- // verify a file
- const [vName, setVName] = useState('')
- const [vHashes, setVHashes] = useState(null)
- const [vExpected, setVExpected] = useState('')
- const [vBusy, setVBusy] = useState(false)
-
- useEffect(() => { if (codename) setCn(codename) }, [codename]) // prefill from connected device
-
- // If the detected codename isn't a known Pixel, still offer it in the list.
- const known = PIXEL_DEVICES.some(d => d.cn === cn)
-
- useEffect(() => {
- const onProg = (p: { percent: number }) => {
- setPercent(p.percent)
- const now = performance.now()
- if (p.percent <= 1 || !t0.current) t0.current = now
- const elapsed = now - t0.current
- if (p.percent > 1 && p.percent < 100) {
- const total = elapsed / (p.percent / 100)
- const s = Math.round((total - elapsed) / 1000)
- setEta(s < 60 ? `${s}s` : `${Math.floor(s / 60)}m ${String(s % 60).padStart(2, '0')}s`)
- } else setEta('')
- }
- const onDone = () => { setDownloading(false); setPercent(0); setEta(''); t0.current = 0 }
- const off1 = rt()?.EventsOn?.('firmware:progress', onProg)
- const off2 = rt()?.EventsOn?.('firmware:done', onDone)
- const off3 = rt()?.EventsOn?.('payload:progress', (p: { percent: number }) => setExtractPct(p.percent))
- const off4 = rt()?.EventsOn?.('payload:done', () => { setExtracting(''); setExtractPct(0) })
- return () => { off1?.(); off2?.(); off3?.(); off4?.() }
- }, [])
-
- const pickOta = async () => {
- const z = await SelectFileForFlash()
- if (!z) return
- setOtaZip(z)
- setParts(null)
- setPartsBusy(true)
- try {
- setParts(await ListPayloadPartitions(z) || [])
- } catch (e: any) { notify.error(e); setParts([]) }
- finally { setPartsBusy(false) }
- }
-
- const verifyFile = async () => {
- const f = await SelectAnyFile()
- if (!f) return
- setVName(f.split('/').pop() || f)
- setVHashes(null)
- setVBusy(true)
- try { setVHashes(await HashFile(f)) }
- catch (e: any) { notify.error(e) }
- finally { setVBusy(false) }
- }
-
- const extractPart = async (name: string) => {
- setExtracting(name)
- setExtractPct(0)
- try {
- notify.success(await ExtractPayloadPartition(otaZip, name))
- } catch (e: any) { notify.error(e) }
- finally { setExtracting('') }
- }
-
- const search = async () => {
- setLoading(true)
- setList([])
- try {
- setList(await ListFirmware(cn, kind) || [])
- } catch (e: any) {
- notify.error(e)
- } finally {
- setLoading(false)
- }
- }
-
- const download = async (fw: Firmware) => {
- setDownloading(true)
- setPercent(0)
- t0.current = 0
- try {
- const out = await DownloadFirmware(fw.url, fw.sha256)
- notify.success(out)
- } catch (e: any) {
- notify.error(e)
- } finally {
- setDownloading(false)
- }
- }
-
- return (
-
-
-
Download Firmware
-
- Official Google Pixel images. Pick your device (auto-selected from the connected phone when possible). Files are large (2–3 GB) and verified by SHA-256 automatically after download.
-
-
-
- {(['factory', 'ota'] as const).map(k => (
- setKind(k)}
- className={`px-3 py-0.5 rounded text-xs font-medium transition-colors ${kind === k ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:text-text-secondary'}`}>
- {k === 'factory' ? 'Factory' : 'OTA'}
-
- ))}
-
-
{
- if (e.target.value === '__other__') { setCustom(true); setCn('') }
- else { setCustom(false); setCn(e.target.value) }
- }}>
- {!known && cn && !custom && {cn} (detected) }
- {PIXEL_DEVICES.map(d => (
- {d.name} ({d.cn})
- ))}
- Other (type codename)…
-
- {custom && (
-
setCn(e.target.value.trim())} onKeyDown={e => e.key === 'Enter' && search()} />
- )}
-
- {loading ? 'Searching…' : 'List builds'}
-
-
-
-
- {downloading && (
-
-
-
-
{percent}%
- {eta &&
~{eta} left }
-
CancelOperation()} className="btn-warn text-xs">Cancel
-
- )}
-
- {list.length > 0 && (
-
- {list.map(fw => (
-
-
-
{fw.version}
- {fw.sha256 ? (
- <>
-
- verified on download
-
-
{fw.sha256}
- >
- ) : (
-
no checksum listed
- )}
-
-
download(fw)} disabled={downloading} className="btn-ghost text-xs shrink-0">
- Download
-
-
- ))}
-
- )}
-
- {!loading && list.length === 0 && (
-
-
-
Pick a device and list builds.
-
- )}
-
- {/* Extract from an existing OTA (payload.bin) */}
-
-
-
-
Extract from OTA (payload.bin)
-
-
- Pull individual partition images (e.g. init_boot , boot , system ) out of an A/B OTA zip — for patching, reverting, or analysis. Full OTAs only.
-
-
-
-
- {partsBusy ? 'Reading…' : 'Select OTA zip'}
-
-
-
- {extracting && (
-
-
{extracting}
-
-
{extractPct}%
-
CancelOperation()} className="btn-warn text-xs">Cancel
-
- )}
-
- {parts !== null && parts.length > 0 && (
-
- {parts.map(p => (
- extractPart(p.name)}
- disabled={!!extracting}
- className="flex items-center justify-between gap-2 rounded border border-bg-border px-2 py-1.5 text-xs hover:bg-bg-raised disabled:opacity-50"
- >
- {p.name}
- {p.sizeMB ? `${p.sizeMB}M` : ''}
-
- ))}
-
- )}
- {parts !== null && parts.length === 0 && (
-
No partitions found — not an A/B OTA, or it's an incremental update.
- )}
-
-
- {/* Verify a file (SHA-256) */}
-
-
-
-
Verify a File (SHA-256)
-
-
-
- {vBusy ? 'Hashing…' : 'Select file'}
-
- {vHashes && (
-
-
SHA-256 {vHashes.sha256}
-
SHA-1 {vHashes.sha1}
-
setVExpected(e.target.value)}
- />
- {vExpected.trim() && (
- vHashes.sha256.toLowerCase() === vExpected.trim().toLowerCase()
- ?
Match — file is authentic
- :
Mismatch — checksums differ
- )}
-
- )}
-
-
- )
-}
diff --git a/frontend/src/components/views/ViewFlasher.tsx b/frontend/src/components/views/ViewFlasher.tsx
index 4aa999b..0d0ca05 100644
--- a/frontend/src/components/views/ViewFlasher.tsx
+++ b/frontend/src/components/views/ViewFlasher.tsx
@@ -1,131 +1,15 @@
-import { useState, useCallback, useEffect } from 'react'
-import {
- Zap, RefreshCw, AlertTriangle, Power, Unlock, Lock, Rocket, HardDrive, KeyRound, Download, Boxes, Trash2, FileSearch
-} from 'lucide-react'
-import {
- GetFastbootDevices, FlashPartition, FastbootGetVar, SelectFileForFlash,
- SideloadPackage, SelectFileForInstall, FastbootBoot, FlashBootImage,
- FastbootFlashing, FastbootReboot, FlasherDeviceInfo, Reboot,
- MagiskInstalled, InstallMagisk, ExtractBootImages, PushImageToDevice, OpenMagisk, PullPatchedBoot,
- ListMagiskModules, ToggleMagiskModule, RemoveMagiskModule, AnalyzeBootImage
-} from '../../lib/wails'
+import { useState, useCallback } from 'react'
+import { Zap, RefreshCw, AlertTriangle } from 'lucide-react'
+import { GetFastbootDevices, FlashPartition, FastbootGetVar, SelectFileForFlash, SideloadPackage, SelectFileForInstall } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import { ensureDangerUnlocked } from '../../lib/applock'
-import { getRootTools } from '../../lib/featureflags'
-import DismissibleBanner from '../DismissibleBanner'
-import ViewPixelFlasher from './ViewPixelFlasher'
-import ViewFirmware from './ViewFirmware'
import type { Device } from '../../lib/types'
-interface BootImages { boot: string; initBoot: string; source: string }
-interface MagiskModule { id: string; name: string; version: string; author: string; description: string; enabled: boolean }
-interface BootInfo { valid: boolean; type: string; headerVersion: number; androidVersion: string; securityPatch: string; pageSize: number; kernelKB: number; ramdiskKB: number; sizeMB: number; sha1: string; sha256: string; root: string }
-
const PARTITIONS = [
- 'boot', 'init_boot', 'recovery', 'system', 'vendor', 'userdata',
+ 'boot', 'recovery', 'system', 'vendor', 'userdata',
'dtbo', 'vbmeta', 'super', 'product', 'odm', 'radio'
]
-const BOOT_PARTITIONS = ['boot', 'init_boot', 'vendor_boot', 'recovery', 'dtbo', 'vbmeta']
-interface FlasherInfo {
- connection: string
- serial: string
- slot: string
- bootloader: string
- fingerprint: string
- androidVer: string
- codename: string
- lockState: string
- verifiedBoot: string
- root: string
-}
-
-// Tabbed container: all flash-related tools live here (Manual fastboot/sideload
-// + Pixel factory-image flashing) to keep the sidebar uncluttered.
export default function ViewFlasher() {
- const [tab, setTab] = useState<'manual' | 'pixel' | 'download'>('manual')
- const [info, setInfo] = useState(null)
- const [loadingInfo, setLoadingInfo] = useState(false)
-
- const refreshInfo = useCallback(async () => {
- setLoadingInfo(true)
- try {
- setInfo(await FlasherDeviceInfo())
- } catch {
- setInfo(null)
- } finally {
- setLoadingInfo(false)
- }
- }, [])
-
- useEffect(() => { refreshInfo() }, [refreshInfo])
-
- return (
-
-
-
-
Flasher
-
- {([['manual', 'Manual'], ['pixel', 'Pixel Factory'], ['download', 'Download']] as const).map(([id, label]) => (
- setTab(id)}
- className={`px-3 py-0.5 rounded text-xs font-medium transition-colors ${
- tab === id ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:text-text-secondary'
- }`}
- >
- {label}
-
- ))}
-
-
-
-
-
-
- {tab === 'manual' && }
- {tab === 'pixel' && }
- {tab === 'download' && }
-
-
- )
-}
-
-function Chip({ label, value, tone }: { label: string; value?: string; tone?: 'green' | 'red' | 'amber' }) {
- const color = tone === 'green' ? 'text-accent-green' : tone === 'red' ? 'text-danger' : tone === 'amber' ? 'text-warn' : 'text-text-secondary'
- return (
-
- {label}
- {value || '—'}
-
- )
-}
-
-function DeviceBar({ info, loading, onRefresh }: { info: FlasherInfo | null; loading: boolean; onRefresh: () => void }) {
- const conn = info?.connection ?? 'none'
- const connTone = conn === 'none' ? 'red' : 'green'
- return (
-
-
- {conn !== 'none' && <>
-
-
-
-
- {info?.codename && }
- {info?.androidVer && }
- {info?.root && }
- >}
-
- Refresh
-
-
- )
-}
-
-interface ManualProps { info: FlasherInfo | null; refresh: () => void }
-
-function ManualFlash({ info, refresh }: ManualProps) {
const [devices, setDevices] = useState([])
const [loadingDevices, setLoadingDevices] = useState(false)
const [partition, setPartition] = useState('boot')
@@ -133,24 +17,6 @@ function ManualFlash({ info, refresh }: ManualProps) {
const [flashing, setFlashing] = useState(false)
const [getvarKey, setGetvarKey] = useState('all')
const [getvarResult, setGetvarResult] = useState('')
- // Live-boot / boot-image flashing
- const [bootFile, setBootFile] = useState('')
- const [bootPartition, setBootPartition] = useState('boot')
- const [slot, setSlot] = useState('')
- const [busy, setBusy] = useState('')
- // Magisk rooting flow (gated by Settings → Advanced)
- const rootTools = getRootTools()
- const [magiskBusy, setMagiskBusy] = useState('')
- const [extracted, setExtracted] = useState(null)
- const [patchTarget, setPatchTarget] = useState<'boot' | 'initBoot'>('initBoot')
- const [magiskPkg, setMagiskPkg] = useState('')
- const [modules, setModules] = useState(null)
- const [modulesBusy, setModulesBusy] = useState(false)
- const [dryRun, setDryRun] = useState(false)
- const [force, setForce] = useState(false)
- const [bootInfo, setBootInfo] = useState(null)
-
- const inFastboot = info?.connection === 'fastboot'
const refreshDevices = useCallback(async () => {
setLoadingDevices(true)
@@ -172,420 +38,72 @@ function ManualFlash({ info, refresh }: ManualProps) {
const handleFlash = async () => {
if (!selectedFile) { notify.error('Select an image file first'); return }
- if (dryRun) { notify.info(`[dry run] fastboot ${force ? '--force ' : ''}flash ${partition} ${selectedFile}`); return }
- if (!confirm(`Flash ${selectedFile} to ${partition}?${force ? '\n\n⚠ --force is ON (skips safety checks).' : ''}\n\nThis overwrites the ${partition} partition.`)) return
- if (!(await ensureDangerUnlocked())) return
+ if (!confirm(`Flash ${selectedFile} to ${partition}?\n\nThis will overwrite the ${partition} partition. Make sure you know what you're doing.`)) return
+
setFlashing(true)
const id = notify.loading(`Flashing ${partition}...`)
try {
- const out = await FlashPartition(partition, selectedFile, force)
- notify.dismiss(id); notify.success(out || `${partition} flashed`)
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- finally { setFlashing(false) }
+ const out = await FlashPartition(partition, selectedFile)
+ notify.dismiss(id)
+ notify.success(out || `${partition} flashed successfully`)
+ } catch (e: any) {
+ notify.dismiss(id)
+ notify.error(e)
+ } finally {
+ setFlashing(false)
+ }
}
const handleGetvar = async () => {
- try { setGetvarResult(await FastbootGetVar(getvarKey)) }
- catch (e: any) { setGetvarResult(String(e)) }
+ try {
+ const out = await FastbootGetVar(getvarKey)
+ setGetvarResult(out)
+ } catch (e: any) {
+ setGetvarResult(String(e))
+ }
}
const handleSideload = async () => {
const path = await SelectFileForInstall()
if (!path) return
- if (!confirm('Sideload requires the device in sideload mode (recovery → Apply update from ADB). Continue?')) return
- if (!(await ensureDangerUnlocked())) return
+ if (!confirm('Sideload requires device to be in sideload mode (adb sideload). Continue?')) return
const id = notify.loading('Sideloading...')
try {
const out = await SideloadPackage(path)
- notify.dismiss(id); notify.success(out || 'Sideload complete')
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- }
-
- const reboot = async (target: string) => {
- setBusy('reboot')
- try {
- if (inFastboot) await FastbootReboot(target)
- else await Reboot(target) // adb: '', bootloader, recovery, fastboot, sideload
- notify.success(`Reboot ${target || 'system'} sent`)
- setTimeout(refresh, 3500)
- } catch (e: any) { notify.error(e) }
- finally { setBusy('') }
- }
-
- const flashing2 = async (action: 'unlock' | 'lock') => {
- if (!confirm(`fastboot flashing ${action}\n\n${action === 'unlock'
- ? 'Unlocking ERASES ALL DATA and requires confirmation on the device screen.'
- : 'Locking ERASES ALL DATA. Only lock with fully stock partitions or you may brick the device.'}\n\nContinue?`)) return
- if (!(await ensureDangerUnlocked())) return
- setBusy(action)
- try {
- const out = await FastbootFlashing(action)
- notify.success(out)
- setTimeout(refresh, 1500)
- } catch (e: any) { notify.error(e) }
- finally { setBusy('') }
- }
-
- const selectBootFile = async () => {
- const path = await SelectFileForFlash()
- if (path) setBootFile(path)
- }
-
- const liveBoot = async () => {
- if (!bootFile) { notify.error('Select an image first'); return }
- if (dryRun) { notify.info(`[dry run] fastboot boot ${bootFile}`); return }
- setBusy('liveboot')
- const id = notify.loading('Live-booting image...')
- try {
- await FastbootBoot(bootFile)
- notify.dismiss(id); notify.success('Booting image — watch the device')
- setTimeout(refresh, 4000)
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- finally { setBusy('') }
- }
-
- // ── Magisk assisted patch flow ──
- const checkMagisk = useCallback(async () => {
- try { setMagiskPkg(await MagiskInstalled()) } catch { setMagiskPkg('') }
- }, [])
- useEffect(() => { if (rootTools) checkMagisk() }, [rootTools, checkMagisk])
-
- const installMagisk = async () => {
- if (!(await ensureDangerUnlocked())) return
- setMagiskBusy('install')
- const id = notify.loading('Downloading & installing Magisk (may take a moment)...')
- try {
- const out = await InstallMagisk()
- notify.dismiss(id); notify.success(out)
- checkMagisk()
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- finally { setMagiskBusy('') }
- }
-
- const loadModules = async () => {
- setModulesBusy(true)
- try {
- setModules(await ListMagiskModules() || [])
- } catch (e: any) { notify.error(e); setModules([]) }
- finally { setModulesBusy(false) }
- }
- const toggleModule = async (m: MagiskModule) => {
- try {
- const out = await ToggleMagiskModule(m.id, !m.enabled)
- notify.success(out)
- setModules(mods => mods?.map(x => x.id === m.id ? { ...x, enabled: !x.enabled } : x) || null)
- } catch (e: any) { notify.error(e) }
- }
- const removeModule = async (m: MagiskModule) => {
- if (!confirm(`Flag "${m.name}" for removal on next reboot?`)) return
- try { notify.success(await RemoveMagiskModule(m.id)) }
- catch (e: any) { notify.error(e) }
- }
-
- const magiskExtract = async () => {
- const zip = await SelectFileForFlash()
- if (!zip) return
- setMagiskBusy('extract')
- const id = notify.loading('Extracting boot images from factory zip...')
- try {
- const imgs: BootImages = await ExtractBootImages(zip)
- setExtracted(imgs)
- setPatchTarget(imgs.initBoot ? 'initBoot' : 'boot')
notify.dismiss(id)
- notify.success(`Found ${[imgs.boot && 'boot.img', imgs.initBoot && 'init_boot.img'].filter(Boolean).join(' + ')}`)
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- finally { setMagiskBusy('') }
- }
-
- const magiskPushOpen = async () => {
- if (!extracted) return
- const local = patchTarget === 'initBoot' ? extracted.initBoot : extracted.boot
- if (!local) { notify.error('That image is not present in the zip'); return }
- setMagiskBusy('push')
- const id = notify.loading('Pushing image and opening Magisk...')
- try {
- await MagiskInstalled() // surfaces a clear error if Magisk isn't installed
- await PushImageToDevice(local)
- await OpenMagisk()
+ notify.success(out || 'Sideload complete')
+ } catch (e: any) {
notify.dismiss(id)
- notify.success('Pushed to /sdcard/Download. In Magisk: Install → Select and Patch a File → pick it → Let\'s Go.')
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- finally { setMagiskBusy('') }
- }
-
- const magiskPull = async () => {
- setMagiskBusy('pull')
- const id = notify.loading('Pulling patched image...')
- try {
- const path = await PullPatchedBoot()
- notify.dismiss(id)
- setBootFile(path)
- setBootPartition(patchTarget === 'initBoot' ? 'init_boot' : 'boot')
- notify.success('Patched image loaded into "Boot Image" below — Live boot to test, or Flash to make root permanent.')
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- finally { setMagiskBusy('') }
- }
-
- const flashBoot = async () => {
- if (!bootFile) { notify.error('Select an image first'); return }
- if (dryRun) { notify.info(`[dry run] fastboot ${force ? '--force ' : ''}${slot ? '--slot ' + slot + ' ' : ''}flash ${bootPartition} ${bootFile}`); return }
- const where = slot ? ` (slot ${slot})` : ''
- if (!confirm(`Flash ${bootFile}\n→ ${bootPartition}${where}?${force ? '\n\n⚠ --force is ON.' : ''}`)) return
- if (!(await ensureDangerUnlocked())) return
- setBusy('flashboot')
- const id = notify.loading(`Flashing ${bootPartition}...`)
- try {
- const out = await FlashBootImage(bootPartition, bootFile, slot, force)
- notify.dismiss(id); notify.success(out || `${bootPartition} flashed`)
- } catch (e: any) { notify.dismiss(id); notify.error(e) }
- finally { setBusy('') }
- }
-
- const analyzeBoot = async () => {
- const f = await SelectFileForFlash()
- if (!f) return
- setBootInfo(null)
- try { setBootInfo(await AnalyzeBootImage(f)) }
- catch (e: any) { notify.error(e) }
+ notify.error(e)
+ }
}
return (
-
-
+
+
Flasher
+
+ {/* Warning */}
+
Fastboot operations are destructive and irreversible.
-
Wrong partition or wrong image = bricked device. Make sure the bootloader is unlocked before flashing.
+
Wrong partition or wrong image = bricked device. Only partition names in the safe list are permitted. Make sure your device bootloader is unlocked before flashing.
-
-
-
-
-
Dry run
-
Preview the exact fastboot command instead of running it (flash / live-boot).
-
-
setDryRun(v => !v)}
- role="switch"
- aria-checked={dryRun}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${dryRun ? 'bg-warn' : 'bg-bg-border'}`}
- >
-
-
-
-
-
-
-
Force (--force )
-
Adds --force to flash commands (e.g. bootloader/radio). Skips safety checks — use only when you know it's needed.
-
-
setForce(v => !v)}
- role="switch"
- aria-checked={force}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${force ? 'bg-danger' : 'bg-bg-border'}`}
- >
-
-
- {/* Reboot */}
-
-
Reboot
-
{inFastboot ? 'Device in fastboot — uses fastboot reboot.' : 'Device in adb — uses adb reboot.'}
-
-
reboot('')} disabled={!!busy} className="btn-ghost text-xs"> System
-
reboot('bootloader')} disabled={!!busy} className="btn-ghost text-xs">Bootloader
-
reboot('fastboot')} disabled={!!busy} className="btn-ghost text-xs">Fastbootd
-
reboot('recovery')} disabled={!!busy} className="btn-ghost text-xs">Recovery
-
-
-
- {/* Bootloader */}
-
-
Bootloader Lock
-
- {inFastboot ? `Current: ${info?.lockState ?? 'unknown'}. Both actions wipe the device.` : 'Connect a device in fastboot mode to lock/unlock.'}
-
-
- flashing2('unlock')} disabled={!inFastboot || !!busy} className="btn-warn text-xs flex-1 justify-center"> Unlock
- flashing2('lock')} disabled={!inFastboot || !!busy} className="btn-ghost text-xs flex-1 justify-center"> Lock
-
-
-
- {/* Magisk rooting flow (gated by Settings → Advanced) */}
- {rootTools && (
-
-
-
- Patches the factory boot image with the Magisk app on your phone, then loads it below to Live boot (temporary root) or Flash (permanent). ATK doesn't bundle Magisk — it uses the app on your device (install it below if missing). Requires an unlocked bootloader.
-
-
-
- {magiskPkg ? `Magisk detected: ${magiskPkg}` : 'Magisk not detected on device'}
-
-
- {magiskBusy === 'install' ? 'Installing…' : 'Download & install Magisk'}
-
-
-
-
- 1. {magiskBusy === 'extract' ? 'Extracting…' : 'Extract boot from zip'}
-
-
- 2. {magiskBusy === 'push' ? 'Pushing…' : 'Push + open Magisk'}
-
-
- 3. {magiskBusy === 'pull' ? 'Pulling…' : 'Pull patched image'}
-
-
- {extracted && (
-
- Patch:
- {(['initBoot', 'boot'] as const).map(t => {
- const has = t === 'initBoot' ? extracted.initBoot : extracted.boot
- return (
- setPatchTarget(t)}
- className={`px-2 py-0.5 rounded border text-xs ${
- patchTarget === t ? 'border-accent-green text-accent-green bg-accent-green/10' : 'border-bg-border text-text-muted'
- } ${!has ? 'opacity-40 cursor-not-allowed' : ''}`}
- >
- {t === 'initBoot' ? 'init_boot.img' : 'boot.img'}
-
- )
- })}
- (init_boot for Pixel 7+/8+, boot for older)
-
- )}
-
Step 2 opens Magisk on the phone — tap Install → Select and Patch a File , choose the pushed image in Download, then Let's Go . Then run step 3.
-
- )}
-
- {/* Magisk module management (gated, requires root) */}
- {rootTools && (
-
-
-
-
- {modules === null ? 'Load' : 'Refresh'}
-
-
-
Enable/disable or remove installed modules. Requires root (grant shell root in Magisk if prompted); changes apply on reboot.
- {modules !== null && (
- modules.length === 0 ? (
-
No modules installed (or device not rooted).
- ) : (
-
- {modules.map(m => (
-
-
-
{m.name} {m.version}
-
{m.author || m.id}
-
-
toggleModule(m)}
- role="switch"
- aria-checked={m.enabled}
- title={m.enabled ? 'Enabled' : 'Disabled'}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${m.enabled ? 'bg-accent-green' : 'bg-bg-border'}`}
- >
-
-
-
removeModule(m)} title="Remove on reboot" className="text-text-muted hover:text-danger shrink-0">
-
-
-
- ))}
-
- )
- )}
-
- )}
-
- {/* Live boot + boot image flashing */}
-
-
Boot Image — Live Boot & Flash
-
-
- Browse
-
-
-
- Partition
- setBootPartition(e.target.value)}>
- {BOOT_PARTITIONS.map(p => {p} )}
-
-
-
- Slot
- setSlot(e.target.value)}>
- current
- a
- b
- both
-
-
-
-
- {busy === 'liveboot' ? 'Booting…' : 'Live boot'}
-
-
- {busy === 'flashboot' ? 'Flashing…' : `Flash ${bootPartition}`}
-
-
-
- {!inFastboot &&
Connect a device in fastboot mode to live-boot or flash.
}
-
-
- {/* Boot image analyzer (local file — no device needed) */}
-
-
-
-
-
Boot Image Analyzer
-
-
Analyze a .img…
-
-
Inspect a boot / init_boot image: type, header, Android version + security patch, sizes, hashes, and whether it looks rooted. Local file only — no device needed.
- {bootInfo && (
-
-
-
-
-
-
-
-
-
-
-
SHA-256 {bootInfo.sha256}
-
SHA-1 {bootInfo.sha1}
-
-
- )}
-
-
{/* Fastboot devices */}
Fastboot Devices
- Refresh
+
+ Refresh
{devices.length === 0 ? (
- No fastboot devices. Boot to bootloader:
+ No fastboot devices. Boot device to bootloader with:
adb reboot bootloader
) : (
@@ -606,20 +124,39 @@ function ManualFlash({ info, refresh }: ManualProps) {
Partition
- setPartition(e.target.value)}>
- {PARTITIONS.map(p => {p} )}
+ setPartition(e.target.value)}
+ >
+ {PARTITIONS.map(p => (
+ {p}
+ ))}
-
- {flashing ? 'Flashing...' : `Flash ${partition}`}
+
+
+ {flashing ? 'Flashing...' : `Flash ${partition}`}
+ {devices.length === 0 && (
+ Connect a device in fastboot mode to flash
+ )}
@@ -627,18 +164,27 @@ function ManualFlash({ info, refresh }: ManualProps) {
{/* Sideload */}
ADB Sideload
-
Sideload a ZIP (OTA update) to a device in sideload mode (recovery → Apply update from ADB).
+
+ Sideload a ZIP (OTA update) to a device in sideload mode. Boot to recovery then select "Apply update from ADB".
+
Select ZIP and Sideload
diff --git a/frontend/src/components/views/ViewGsiLoader.tsx b/frontend/src/components/views/ViewGsiLoader.tsx
deleted file mode 100644
index 2964d84..0000000
--- a/frontend/src/components/views/ViewGsiLoader.tsx
+++ /dev/null
@@ -1,256 +0,0 @@
-import { useState, useEffect } from 'react'
-import { HardDriveDownload, Boxes, Zap, RefreshCw, Check, X, AlertTriangle, FileUp, Play, Power, Trash2, RotateCcw } from 'lucide-react'
-import {
- GsiCompat, GsiDsuStatus, InstallDsu, DsuEnable, DsuDisable, DsuWipe,
- FlashGsiSystem, SelectFileForFlash, Reboot,
-} from '../../lib/wails'
-import { notify } from '../../lib/notify'
-import { ensureDangerUnlocked } from '../../lib/applock'
-import type { GsiCompat as GsiCompatT } from '../../lib/types'
-
-const GIB = 1073741824
-
-export default function ViewGsiLoader() {
- const [tab, setTab] = useState<'dsu' | 'flash'>('dsu')
- const [compat, setCompat] = useState
(null)
- const [compatLoading, setCompatLoading] = useState(false)
-
- // DSU
- const [dsuImage, setDsuImage] = useState('')
- const [systemSize, setSystemSize] = useState(0) // bytes; 0 = auto for raw .img
- const [userdataGiB, setUserdataGiB] = useState(8)
- const [installing, setInstalling] = useState(false)
- const [pushPct, setPushPct] = useState(-1)
- const [dsuStatus, setDsuStatus] = useState('')
-
- // Flash
- const [flashImage, setFlashImage] = useState('')
- const [vbmeta, setVbmeta] = useState('')
- const [opts, setOpts] = useState({ fastbootd: true, wipeData: true, disableVerity: false, deleteProduct: false, slot: '' })
- const [dryRun, setDryRun] = useState('')
- const [flashing, setFlashing] = useState(false)
- const [flashOut, setFlashOut] = useState('')
-
- const loadCompat = async () => {
- setCompatLoading(true)
- try { setCompat(await GsiCompat()) } catch (e: any) { notify.error(e) } finally { setCompatLoading(false) }
- }
- useEffect(() => { loadCompat() }, [])
-
- // Push progress for the DSU image upload.
- useEffect(() => {
- const rt = () => (window as any)['runtime']
- const onProg = (t: any) => { if (t?.label?.includes('atk-dsu') || t?.kind === 'push') setPushPct(t.percent) }
- const onDone = () => setPushPct(-1)
- const off1 = rt()?.EventsOn?.('transfer:progress', onProg)
- const off2 = rt()?.EventsOn?.('transfer:done', onDone)
- return () => { rt()?.EventsOff?.('transfer:progress'); rt()?.EventsOff?.('transfer:done'); off1?.(); off2?.() }
- }, [])
-
- const pickImage = async (setter: (p: string) => void) => {
- try { const p = await SelectFileForFlash(); if (p) setter(p) } catch (e: any) { notify.error(e) }
- }
-
- const refreshStatus = async () => {
- try { setDsuStatus((await GsiDsuStatus()) || '(no status)') } catch (e: any) { notify.error(e) }
- }
-
- const install = async () => {
- if (!dsuImage) { notify.error('Select a GSI image first'); return }
- setInstalling(true); setPushPct(0)
- const id = notify.loading('Preparing & pushing GSI (this can take a while)...')
- try {
- const out = await InstallDsu(dsuImage, systemSize, userdataGiB * GIB)
- notify.dismiss(id); notify.success('DSU install launched'); setDsuStatus(out)
- } catch (e: any) { notify.dismiss(id); notify.error(e) } finally { setInstalling(false); setPushPct(-1) }
- }
-
- const gsiTool = async (fn: () => Promise, label: string) => {
- try { const out = await fn(); notify.success(`${label}: ${out || 'ok'}`); refreshStatus() } catch (e: any) { notify.error(e) }
- }
-
- const previewFlash = async () => {
- if (!flashImage) { notify.error('Select a GSI system image first'); return }
- try { setDryRun(await FlashGsiSystem(flashImage, { ...opts, vbmetaPath: vbmeta, dryRun: true })) } catch (e: any) { notify.error(e) }
- }
-
- const doFlash = async () => {
- if (!flashImage) { notify.error('Select a GSI system image first'); return }
- if (!confirm('Permanently flash this GSI to the system partition?\n\nThis ERASES system, wipes userdata, and requires an unlocked bootloader. If the GSI is incompatible the device may not boot. Continue?')) return
- if (!(await ensureDangerUnlocked())) return
- setFlashing(true)
- const id = notify.loading('Flashing GSI via fastboot...')
- try {
- const out = await FlashGsiSystem(flashImage, { ...opts, vbmetaPath: vbmeta, dryRun: false })
- notify.dismiss(id); notify.success('GSI flashed'); setFlashOut(out)
- } catch (e: any) { notify.dismiss(id); notify.error(e); setFlashOut(String(e?.message || e)) } finally { setFlashing(false) }
- }
-
- const trebleOk = compat?.trebleEnabled
- const baseName = (p: string) => p.split('/').pop() || p
-
- return (
-
- {/* Header + tabs */}
-
-
-
GSI Loader
-
- setTab('dsu')} className={`px-3 py-1 text-xs flex items-center gap-1 ${tab === 'dsu' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}>
- DSU (Temporary)
-
- setTab('flash')} className={`px-3 py-1 text-xs flex items-center gap-1 ${tab === 'flash' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}>
- GSI Flasher (Permanent)
-
-
-
-
- Recheck
-
-
-
- {/* Compatibility panel */}
-
-
Compatibility
- {!compat &&
{compatLoading ? 'Checking…' : 'No device / unknown'} }
- {compat && (
- <>
-
- {trebleOk ? : } Treble {trebleOk ? 'enabled' : 'NOT enabled'}
-
-
ABI: {compat.abi || '?'} → use {compat.gsiArch || '?'} GSI
-
Android {compat.androidRelease || '?'} (SDK {compat.sdk || '?'})
-
- {compat.vndkIsolated ? 'VNDK isolated — any newer GSI' : 'not VNDK-isolated — same-version GSI only'}
-
- >
- )}
- {compat && !trebleOk && (
-
Device may not support GSIs
- )}
-
-
-
- {tab === 'dsu' ? (
-
-
- Installs a GSI as a temporary guest OS via Dynamic System Updates — no unlock,
- no data wipe. Pick a raw (unsparsed) GSI system.img or a
- .gz you made from one. After install, tap Restart in the device notification to boot it.
-
-
- {/* Image picker */}
-
- pickImage(setDsuImage)} className="btn-ghost text-xs"> Select GSI image
- {dsuImage ? baseName(dsuImage) : 'no file selected'}
-
-
-
-
-
Userdata size (GiB)
-
setUserdataGiB(Math.max(1, Number(e.target.value)))} />
-
-
-
System size (bytes) — auto for raw .img, required for .gz
-
setSystemSize(Math.max(0, Number(e.target.value)))} placeholder="0 = auto (raw .img)" />
-
-
-
- {pushPct >= 0 && (
-
- )}
-
-
-
- {installing ? 'Installing…' : 'Install DSU'}
-
-
Reboot('')} className="btn-ghost text-xs" title="Cold reboot — boots the GSI if just installed, or back to the host OS"> Reboot
-
-
- {/* gsi_tool management */}
-
-
DSU management (gsi_tool)
-
-
Status
-
gsiTool(DsuEnable, 'enabled (sticky)')} className="btn-ghost text-xs"> Enable sticky
-
gsiTool(DsuDisable, 'disabled')} className="btn-ghost text-xs"> Disable
-
gsiTool(DsuWipe, 'wiped')} className="btn-danger text-xs"> Wipe DSU
-
- {dsuStatus &&
{dsuStatus} }
-
-
- ) : (
-
-
-
-
- Destructive & permanent. Erases the system partition, wipes userdata, and needs an
- unlocked bootloader . An incompatible GSI can leave the device unbootable — keep the stock factory image to recover. GSIs don't support rollback.
-
-
-
-
- pickImage(setFlashImage)} className="btn-ghost text-xs"> Select GSI system.img
- {flashImage ? baseName(flashImage) : 'no file selected'}
-
-
-
- {([
- ['fastbootd', 'Reboot to fastbootd first (dynamic partitions)'],
- ['wipeData', 'Wipe userdata (fastboot -w)'],
- ['disableVerity', 'Disable Verified Boot (flash vbmeta)'],
- ['deleteProduct', 'Delete product partition (free space)'],
- ] as const).map(([key, label]) => (
-
- setOpts(o => ({ ...o, [key]: e.target.checked }))} className="accent-accent-green" />
- {label}
-
- ))}
-
-
- {(opts.disableVerity) && (
-
- pickImage(setVbmeta)} className="btn-ghost text-xs"> Select vbmeta.img
- {vbmeta ? baseName(vbmeta) : 'required for disable-verity'}
-
- )}
-
- {(opts.deleteProduct) && (
-
- Active slot suffix:
- setOpts(o => ({ ...o, slot: e.target.value }))}>
- (none)
- a
- b
-
-
- )}
-
-
- Dry run (preview commands)
- {flashing ? 'Flashing…' : 'Flash GSI'}
-
-
- {dryRun && (
-
-
Command preview
-
{dryRun}
-
- )}
- {flashOut && (
-
- )}
-
- )}
-
-
- )
-}
diff --git a/frontend/src/components/views/ViewIntentLab.tsx b/frontend/src/components/views/ViewIntentLab.tsx
deleted file mode 100644
index 157627e..0000000
--- a/frontend/src/components/views/ViewIntentLab.tsx
+++ /dev/null
@@ -1,216 +0,0 @@
-import { useState, useEffect } from 'react'
-import { Search, Rocket, Play, Terminal, Package } from 'lucide-react'
-import { ListActivities, StartActivity, StartIntentAction, ListPackages } from '../../lib/wails'
-import { notify } from '../../lib/notify'
-import type { IntentActivity, PackageInfo } from '../../lib/types'
-
-export default function ViewIntentLab() {
- const [search, setSearch] = useState('')
- const [packages, setPackages] = useState([])
- const [pkgsLoaded, setPkgsLoaded] = useState(false)
- const [selected, setSelected] = useState('')
- const [activities, setActivities] = useState([])
- const [loading, setLoading] = useState(false)
- const [actFilter, setActFilter] = useState('')
- const [lastResult, setLastResult] = useState('')
-
- // Free-form implicit-intent launcher
- const [action, setAction] = useState('android.intent.action.VIEW')
- const [data, setData] = useState('')
-
- const loadPackages = async () => {
- if (pkgsLoaded) return
- try {
- const pkgs = await ListPackages('all')
- setPackages(pkgs || [])
- setPkgsLoaded(true)
- } catch {}
- }
-
- // Populate the picker on open so it isn't empty until the search box is focused.
- useEffect(() => { loadPackages() }, [])
-
- const loadActivities = async (pkg: string) => {
- if (!pkg.trim()) return
- setSelected(pkg.trim())
- setLoading(true)
- setActivities([])
- setLastResult('')
- try {
- const acts = await ListActivities(pkg.trim())
- setActivities(acts || [])
- } catch (e: any) {
- notify.error(e)
- } finally {
- setLoading(false)
- }
- }
-
- const launch = async (component: string) => {
- const id = notify.loading(`Launching ${component}...`)
- try {
- const out = await StartActivity(component)
- notify.dismiss(id)
- notify.success(out || 'Started')
- setLastResult(`✓ ${component}\n${out}`)
- } catch (e: any) {
- notify.dismiss(id)
- notify.error(e)
- setLastResult(`✗ ${component}\n${e?.message || e}`)
- }
- }
-
- const launchIntent = async () => {
- if (!action.trim()) { notify.error('Enter an action'); return }
- const id = notify.loading('Launching intent...')
- try {
- const out = await StartIntentAction(action.trim(), data.trim())
- notify.dismiss(id)
- notify.success(out || 'Started')
- setLastResult(`✓ ${action}${data ? ' ' + data : ''}\n${out}`)
- } catch (e: any) {
- notify.dismiss(id)
- notify.error(e)
- setLastResult(`✗ ${action}\n${e?.message || e}`)
- }
- }
-
- const filteredPkgs = packages.filter(p => p.packageName.toLowerCase().includes(search.toLowerCase()))
- const filteredActs = activities.filter(a =>
- a.name.toLowerCase().includes(actFilter.toLowerCase()) ||
- a.component.toLowerCase().includes(actFilter.toLowerCase())
- )
-
- return (
-
- {/* Left: package picker */}
-
-
-
Intent Lab
-
-
- setSearch(e.target.value)}
- onFocus={loadPackages}
- onKeyDown={e => e.key === 'Enter' && loadActivities(search)}
- />
-
-
loadActivities(search)} disabled={!search || loading} className="btn-primary text-xs w-full justify-center">
- {loading ? 'Loading...' : 'List activities'}
-
-
-
- {filteredPkgs.map(p => (
-
{ setSearch(p.packageName); loadActivities(p.packageName) }}
- className={`w-full text-left px-3 py-2 text-xs hover:bg-bg-raised transition-colors border-b border-bg-border/30 ${
- selected === p.packageName ? 'bg-accent-green/5 text-text-primary' : 'text-text-secondary'
- }`}
- >
- {p.packageName}
-
- ))}
- {!pkgsLoaded && (
-
Focus the box to load the package list
- )}
-
-
-
- {/* Right: launcher */}
-
- {!selected && !loading && (
-
-
-
Pick an app to see its launchable activities
-
- )}
-
- {(selected || loading) && (
- <>
- {/* Free-form implicit-intent launcher */}
-
-
Implicit intent (action + data)
-
-
-
- {/* Activities */}
-
-
-
{selected}
-
· {activities.length} launchable
-
-
-
- setActFilter(e.target.value)}
- />
-
-
-
-
- {loading && (
-
- )}
- {!loading && filteredActs.length === 0 && (
-
- No launchable activities{activities.length > 0 ? ' match the filter' : ' — this app exports none, or requires root to reach its internal screens'}.
-
- )}
- {!loading && filteredActs.map(act => (
-
-
-
{act.name}
-
{act.component}
-
- {act.exported &&
exported }
-
launch(act.component)}
- className="btn-ghost text-xs shrink-0 opacity-60 group-hover:opacity-100"
- >
- Launch
-
-
- ))}
-
-
- {/* Last result */}
- {lastResult && (
-
- )}
- >
- )}
-
-
- )
-}
diff --git a/frontend/src/components/views/ViewLogcat.tsx b/frontend/src/components/views/ViewLogcat.tsx
index 7749fc9..dc13eb2 100644
--- a/frontend/src/components/views/ViewLogcat.tsx
+++ b/frontend/src/components/views/ViewLogcat.tsx
@@ -1,15 +1,8 @@
-import { useState, useEffect, useRef, useCallback, useMemo } from 'react'
-import { Play, Square, Trash2, Download, Filter, ChevronDown, List, Share2, Highlighter, Plus, X } from 'lucide-react'
-import { StartLogcat, StopLogcat, ClearLogcat, SaveTextFile } from '../../lib/wails'
+import { useState, useEffect, useRef, useCallback } from 'react'
+import { Play, Square, Trash2, Download, Filter, ChevronDown } from 'lucide-react'
+import { StartLogcat, StopLogcat, ClearLogcat } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import LogcatMap from './LogcatMap'
import type { LogcatLine } from '../../lib/types'
-import {
- loadHighlightRules, saveHighlightRules, compileRules, scrubSensitive,
- HI_SWATCH, type HighlightRule, type HiColor,
-} from '../../lib/logcat_tools'
-
-const HI_COLORS: HiColor[] = ['red', 'amber', 'green', 'blue', 'purple', 'pink']
// @ts-ignore
const { EventsOn, EventsOff } = window['runtime'] || {}
@@ -30,9 +23,8 @@ const LEVEL_BG: Record = {
W: 'bg-warn/5',
}
-const BUFFERS = ['main', 'system', 'radio', 'events', 'crash', 'default', 'all']
-const REFRESH_OPTS: [number, string][] = [[0, 'Live'], [250, '250ms'], [500, '500ms'], [1000, '1s'], [2000, '2s']]
-const MAX_LINE_OPTS = [1000, 5000, 20000, 100000]
+const BUFFERS = ['main', 'radio', 'events', 'crash', 'all']
+const MAX_LINES = 5000
export default function ViewLogcat() {
const [lines, setLines] = useState([])
@@ -41,31 +33,12 @@ export default function ViewLogcat() {
const [tagFilter, setTagFilter] = useState('')
const [levelFilter, setLevelFilter] = useState([])
const [buffer, setBuffer] = useState('main')
- const [refreshMs, setRefreshMs] = useState(0)
- const [maxLines, setMaxLines] = useState(5000)
- const pendingRef = useRef([])
const [autoScroll, setAutoScroll] = useState(true)
const [search, setSearch] = useState('')
const [showFilters, setShowFilters] = useState(false)
- const [viewMode, setViewMode] = useState<'text' | 'map'>('text')
- const [showHighlights, setShowHighlights] = useState(false)
- const [hiRules, setHiRules] = useState(() => loadHighlightRules())
- const [newPattern, setNewPattern] = useState('')
- const [newMode, setNewMode] = useState<'contains' | 'regex'>('contains')
- const [newColor, setNewColor] = useState('red')
- const [scrubExport, setScrubExport] = useState(true)
- const mapSinkRef = useRef<((l: LogcatLine) => void) | null>(null)
const bottomRef = useRef(null)
const containerRef = useRef(null)
- // The map subscribes to the same stream via this sink (registered on mount).
- const registerMapSink = useCallback((fn: ((l: LogcatLine) => void) | null) => { mapSinkRef.current = fn }, [])
- const inspectEntity = useCallback((e: { kind: 'pid' | 'tag'; value: string; label: string }) => {
- if (e.kind === 'tag') { setTagFilter(e.value); setSearch('') }
- else { setSearch(e.value); setTagFilter('') }
- setViewMode('text'); setShowFilters(true)
- }, [])
-
// Wails runtime event bridge
const useWailsEvent = (event: string, handler: (data: any) => void) => {
useEffect(() => {
@@ -80,28 +53,11 @@ export default function ViewLogcat() {
}
const handleLine = useCallback((line: LogcatLine) => {
- mapSinkRef.current?.(line) // always feed the visual map at full rate
- if (refreshMs > 0) { pendingRef.current.push(line); return } // batched flush below
setLines(prev => {
const next = [...prev, line]
- return next.length > maxLines ? next.slice(next.length - maxLines) : next
+ return next.length > MAX_LINES ? next.slice(next.length - MAX_LINES) : next
})
- }, [refreshMs, maxLines])
-
- // Batched render: flush queued lines on the chosen interval instead of per-line.
- useEffect(() => {
- if (refreshMs <= 0) return
- const id = setInterval(() => {
- if (pendingRef.current.length === 0) return
- const batch = pendingRef.current
- pendingRef.current = []
- setLines(prev => {
- const next = prev.concat(batch)
- return next.length > maxLines ? next.slice(next.length - maxLines) : next
- })
- }, refreshMs)
- return () => clearInterval(id)
- }, [refreshMs, maxLines])
+ }, [])
const handleStopped = useCallback(() => {
setRunning(false)
@@ -158,40 +114,15 @@ export default function ViewLogcat() {
}
}
- const saveLog = async () => {
- // Export the currently-visible (filtered) lines, optionally scrubbing
- // sensitive identifiers (IMEIs, phone numbers, SIM serials, MACs, emails).
- let text = filteredLines.map(l => l.raw).join('\n')
- if (scrubExport) text = scrubSensitive(text)
- const stamp = new Date().toISOString().slice(0, 19).replace(/[:T]/g, '-')
- const name = `logcat_${stamp}${scrubExport ? '_scrubbed' : ''}.txt`
- try {
- const saved = await SaveTextFile(name, text)
- if (saved) notify.success(`Saved ${scrubExport ? '(scrubbed) ' : ''}to ${saved}`)
- } catch (e: any) {
- notify.error(e)
- }
- }
-
- // Compiled highlight matchers (recompiled only when rules change).
- const compiled = useMemo(() => compileRules(hiRules), [hiRules])
- const highlightFor = useCallback((raw: string): string => {
- for (const c of compiled) if (c.test(raw)) return c.style
- return ''
- }, [compiled])
-
- const addRule = () => {
- if (!newPattern.trim()) return
- const rule: HighlightRule = {
- id: `${Date.now()}-${Math.round(Math.random() * 1e6)}`,
- pattern: newPattern.trim(), mode: newMode, color: newColor,
- }
- const next = [...hiRules, rule]
- setHiRules(next); saveHighlightRules(next); setNewPattern('')
- }
- const removeRule = (id: string) => {
- const next = hiRules.filter(r => r.id !== id)
- setHiRules(next); saveHighlightRules(next)
+ const saveLog = () => {
+ const text = lines.map(l => l.raw).join('\n')
+ const blob = new Blob([text], { type: 'text/plain' })
+ const url = URL.createObjectURL(blob)
+ const a = document.createElement('a')
+ a.href = url
+ a.download = `logcat_${Date.now()}.txt`
+ a.click()
+ URL.revokeObjectURL(url)
}
const filteredLines = lines.filter(line => {
@@ -218,22 +149,11 @@ export default function ViewLogcat() {
value={buffer}
onChange={e => setBuffer(e.target.value)}
disabled={running}
- title="Log buffer"
>
{BUFFERS.map(b => {b} )}
- {/* Refresh rate (UI flush interval) */}
-
setRefreshMs(Number(e.target.value))}
- title="Refresh rate — how often the view updates"
- >
- {REFRESH_OPTS.map(([v, l]) => {l} )}
-
-
{/* Start/Stop */}
{!running ? (
@@ -249,49 +169,9 @@ export default function ViewLogcat() {
Clear
-
- Save .txt
+
+ Save
-
- setScrubExport(e.target.checked)} className="accent-accent-green" />
- Scrub
-
-
- {/* Text / Map view toggle */}
-
- setViewMode('text')}
- className={`px-2 py-1 text-xs flex items-center gap-1 ${viewMode === 'text' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}
- title="Text log"
- >
-
Text
-
- setViewMode('map')}
- className={`px-2 py-1 text-xs flex items-center gap-1 ${viewMode === 'map' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}
- title="Live visual map"
- >
- Map
-
-
-
- {/* Text / Map view toggle */}
-
- setViewMode('text')}
- className={`px-2 py-1 text-xs flex items-center gap-1 ${viewMode === 'text' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}
- title="Text log"
- >
-
Text
-
- setViewMode('map')}
- className={`px-2 py-1 text-xs flex items-center gap-1 ${viewMode === 'map' ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:bg-bg-raised'}`}
- title="Live visual map"
- >
- Map
-
-
@@ -311,15 +191,6 @@ export default function ViewLogcat() {
-
setShowHighlights(v => !v)}
- className={`btn-ghost text-xs ${showHighlights ? 'text-accent-green' : ''}`}
- title="Highlight rules — colour lines that match a pattern"
- >
- Highlight{hiRules.length > 0 ? ` (${hiRules.length})` : ''}
-
-
-
{/* Status */}
@@ -338,12 +209,11 @@ export default function ViewLogcat() {
{/* Level filter */}
- Level:
- {([['V', 'Verbose'], ['D', 'Debug'], ['I', 'Info'], ['W', 'Warning'], ['E', 'Error'], ['F', 'Fatal']] as const).map(([level, name]) => (
+ Level:
+ {['V', 'D', 'I', 'W', 'E', 'F'].map(level => (
toggleLevel(level)}
- title={`${name}${levelFilter.includes(level) ? ' (filtering)' : ''} — click to ${levelFilter.includes(level) ? 'remove' : 'show only'} this level`}
className={`w-6 h-6 rounded text-xs font-mono font-bold transition-colors ${
levelFilter.includes(level)
? 'bg-accent-green/20 text-accent-green'
@@ -366,14 +236,6 @@ export default function ViewLogcat() {
/>
- {/* Max lines kept in memory */}
-
- Max lines:
- setMaxLines(Number(e.target.value))}>
- {MAX_LINE_OPTS.map(n => {n.toLocaleString()} )}
-
-
-
{/* ADB filter string */}
ADB filter:
@@ -397,92 +259,33 @@ export default function ViewLogcat() {
)}
- {/* Highlight rules panel */}
- {showHighlights && (
-
-
-
Add rule:
-
setNewPattern(e.target.value)}
- onKeyDown={e => e.key === 'Enter' && addRule()}
- />
-
setNewMode(e.target.value as 'contains' | 'regex')}>
- contains
- regex
-
-
- {HI_COLORS.map(c => (
- setNewColor(c)}
- title={c}
- className={`w-5 h-5 rounded-full border-2 transition-transform ${newColor === c ? 'border-text-primary scale-110' : 'border-transparent'}`}
- style={{ backgroundColor: HI_SWATCH[c] }}
- />
- ))}
-
-
- Add
-
-
-
- {hiRules.length === 0 ? (
-
- No highlight rules. Add one to colour matching lines (e.g. "FATAL" → red). Rules are saved and applied live.
-
- ) : (
-
- {hiRules.map(r => (
-
-
- {r.pattern}
- {r.mode}
- removeRule(r.id)} className="text-text-muted hover:text-danger" title="Remove rule">
-
-
-
- ))}
-
- )}
-
- )}
-
- {/* Visual map — kept mounted so it keeps ingesting the stream; hidden in text mode */}
-
-
{/* Log output */}
{filteredLines.length === 0 && (
{running ? 'Waiting for log output...' : 'Press Start to begin streaming logcat'}
)}
- {filteredLines.map((line, i) => {
- const hi = highlightFor(line.raw)
- return (
-
- {line.time}
- {line.pid}
-
- {line.level}
-
- {line.tag}
-
- {line.message || line.raw}
-
-
- )
- })}
+ {filteredLines.map((line, i) => (
+
+ {line.time}
+ {line.pid}
+
+ {line.level}
+
+ {line.tag}
+
+ {line.message || line.raw}
+
+
+ ))}
diff --git a/frontend/src/components/views/ViewPackages.tsx b/frontend/src/components/views/ViewPackages.tsx
index aa6957e..83e6ec8 100644
--- a/frontend/src/components/views/ViewPackages.tsx
+++ b/frontend/src/components/views/ViewPackages.tsx
@@ -1,23 +1,19 @@
import { useState, useCallback, useMemo } from 'react'
-import { Package, RefreshCw, Search, Download, Trash2, Power, PowerOff, RotateCcw, X } from 'lucide-react'
+import { Package, RefreshCw, Search, Download, Trash2, Power, PowerOff, X } from 'lucide-react'
import {
ListPackages, UninstallMultiplePackages, DisableMultiplePackages,
- EnableMultiplePackages, RestoreMultiplePackages, PullApk, ClearData, ForceStopPackage,
- SelectFileForInstall, InstallPackage,
- UninstallPackage, DisablePackage, EnablePackage, RestorePackage
+ EnableMultiplePackages, PullApk, ClearData, ForceStopPackage,
+ SelectFileForInstall, InstallPackage
} from '../../lib/wails'
import { notify } from '../../lib/notify'
-import { ensureDangerUnlocked } from '../../lib/applock'
import type { PackageInfo } from '../../lib/types'
type Filter = 'all' | 'user' | 'system'
-type StateFilter = 'all' | 'enabled' | 'disabled' | 'uninstalled'
export default function ViewPackages() {
const [packages, setPackages] = useState
([])
const [loading, setLoading] = useState(false)
const [filter, setFilter] = useState('user')
- const [stateFilter, setStateFilter] = useState('all')
const [search, setSearch] = useState('')
const [selected, setSelected] = useState>(new Set())
const [activeCtx, setActiveCtx] = useState(null)
@@ -39,16 +35,8 @@ export default function ViewPackages() {
const filtered = useMemo(() =>
packages
.filter(p => p.packageName.toLowerCase().includes(search.toLowerCase()))
- .filter(p => {
- switch (stateFilter) {
- case 'enabled': return p.isInstalled && p.isEnabled
- case 'disabled': return p.isInstalled && !p.isEnabled
- case 'uninstalled': return !p.isInstalled
- default: return true
- }
- })
.sort((a, b) => a.packageName.localeCompare(b.packageName)),
- [packages, search, stateFilter]
+ [packages, search]
)
const toggleSelect = (pkg: string) => {
@@ -69,7 +57,6 @@ export default function ViewPackages() {
const batchOp = async (label: string, op: (pkgs: string[]) => Promise) => {
if (selected.size === 0) { notify.error('Select packages first'); return }
- if (!(await ensureDangerUnlocked())) return
const id = notify.loading(`${label} ${selected.size} package(s)...`)
try {
const out = await op([...selected])
@@ -131,67 +118,6 @@ export default function ViewPackages() {
setActiveCtx(null)
}
- // Single-package state changes, mirroring the batch toolbar actions but
- // reachable per-row from the "..." menu without needing to select first.
- const handleUninstall = async (pkg: string) => {
- setActiveCtx(null)
- if (!confirm(`Uninstall ${pkg} for the current user?`)) return
- if (!(await ensureDangerUnlocked())) return
- const id = notify.loading(`Uninstalling ${pkg}...`)
- try {
- const out = await UninstallPackage(pkg)
- notify.dismiss(id)
- notify.success(out)
- load(filter)
- } catch (e: any) {
- notify.dismiss(id)
- notify.error(e)
- }
- }
-
- const handleDisable = async (pkg: string) => {
- setActiveCtx(null)
- if (!(await ensureDangerUnlocked())) return
- const id = notify.loading(`Disabling ${pkg}...`)
- try {
- const out = await DisablePackage(pkg)
- notify.dismiss(id)
- notify.success(out)
- load(filter)
- } catch (e: any) {
- notify.dismiss(id)
- notify.error(e)
- }
- }
-
- const handleEnable = async (pkg: string) => {
- setActiveCtx(null)
- const id = notify.loading(`Enabling ${pkg}...`)
- try {
- const out = await EnablePackage(pkg)
- notify.dismiss(id)
- notify.success(out)
- load(filter)
- } catch (e: any) {
- notify.dismiss(id)
- notify.error(e)
- }
- }
-
- const handleRestore = async (pkg: string) => {
- setActiveCtx(null)
- const id = notify.loading(`Restoring ${pkg}...`)
- try {
- const out = await RestorePackage(pkg)
- notify.dismiss(id)
- notify.success(out)
- load(filter)
- } catch (e: any) {
- notify.dismiss(id)
- notify.error(e)
- }
- }
-
return (
{/* Toolbar */}
@@ -226,18 +152,6 @@ export default function ViewPackages() {
/>
- setStateFilter(e.target.value as StateFilter)}
- title="Filter by state"
- >
- All states
- Enabled
- Disabled
- Uninstalled
-
-
@@ -255,9 +169,6 @@ export default function ViewPackages() {
batchOp('Enabling', EnableMultiplePackages)} className="btn-ghost text-xs">
Enable ({selected.size})
- batchOp('Restoring', RestoreMultiplePackages)} className="btn-ghost text-xs text-accent-green">
- Restore ({selected.size})
-
>
)}
@@ -306,13 +217,9 @@ export default function ViewPackages() {
/>
{pkg.packageName}
- {!pkg.isInstalled ? (
- uninstalled
- ) : (
-
- {pkg.isEnabled ? 'enabled' : 'disabled'}
-
- )}
+
+ {pkg.isEnabled ? 'enabled' : 'disabled'}
+
{activeCtx === pkg.packageName && (
- {!pkg.isInstalled && (
- <>
-
handleRestore(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-accent-green hover:bg-bg-surface">
- Restore
-
-
handleDisable(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-warn hover:bg-bg-surface">
- Disable
-
- >
- )}
- {pkg.isInstalled && (
- <>
-
handlePullApk(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-text-secondary hover:text-text-primary hover:bg-bg-surface">
- Pull APK
-
-
handleClearData(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-warn hover:bg-bg-surface">
- Clear Data
-
-
handleForceStop(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-danger hover:bg-bg-surface">
- Force Stop
-
-
- {pkg.isEnabled ? (
-
handleDisable(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-warn hover:bg-bg-surface">
- Disable
-
- ) : (
-
handleEnable(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-accent-green hover:bg-bg-surface">
- Enable
-
- )}
-
handleUninstall(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-danger hover:bg-bg-surface">
- Uninstall
-
- >
- )}
+
handlePullApk(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-text-secondary hover:text-text-primary hover:bg-bg-surface">
+ Pull APK
+
+
handleClearData(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-warn hover:bg-bg-surface">
+ Clear Data
+
+
handleForceStop(pkg.packageName)} className="flex items-center gap-2 w-full px-3 py-2 text-xs text-danger hover:bg-bg-surface">
+ Force Stop
+
)}
diff --git a/frontend/src/components/views/ViewPixelFlasher.tsx b/frontend/src/components/views/ViewPixelFlasher.tsx
index bdf28f9..8dd80d7 100644
--- a/frontend/src/components/views/ViewPixelFlasher.tsx
+++ b/frontend/src/components/views/ViewPixelFlasher.tsx
@@ -1,8 +1,7 @@
-import { useState, useRef, useEffect } from 'react'
+import { useState, useRef } from 'react'
import { Zap, AlertTriangle, FolderOpen, Check, X, RefreshCw, ChevronDown, ChevronRight } from 'lucide-react'
import { GetFastbootDevices, Reboot } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import DismissibleBanner from '../DismissibleBanner'
import type { Device } from '../../lib/types'
type StepStatus = 'waiting' | 'running' | 'done' | 'error' | 'skipped'
@@ -144,56 +143,36 @@ export default function ViewPixelFlasher() {
}
}
- const loadZip = async (path: string) => {
- if (!path) return
- if (!path.toLowerCase().endsWith('.zip')) {
- notify.error('Please choose a Pixel factory image .zip')
- return
- }
- setFactoryZip(path)
- setSteps([])
- setParsedSteps([])
- setLog([])
- setDone(false)
- // Read flash-all.sh from inside the zip using Go backend
- try {
- // @ts-ignore
- const content: string = await window['go']['main']['App']['ReadFileFromZip'](path, 'flash-all.sh')
- if (content) {
- const parsed = parseFlashAllSh(content)
- setParsedSteps(parsed)
- setSteps(buildSteps(parsed, opts))
- addLog(`Parsed flash-all.sh: ${parsed.length} steps found`)
- } else {
- addLog('Warning: flash-all.sh not found in zip — is this a valid Pixel factory image?')
- }
- } catch {
- addLog('Could not read flash-all.sh from zip. Make sure this is an extracted factory image folder or valid zip.')
- }
- }
-
const handleSelectZip = async () => {
try {
// @ts-ignore
const path: string = await window['go']['main']['App']['SelectFileForFlash']()
- await loadZip(path)
+ if (!path) return
+ setFactoryZip(path)
+ setSteps([])
+ setParsedSteps([])
+ setLog([])
+ setDone(false)
+ // Read flash-all.sh from inside the zip using Go backend
+ try {
+ // @ts-ignore
+ const content: string = await window['go']['main']['App']['ReadFileFromZip'](path, 'flash-all.sh')
+ if (content) {
+ const parsed = parseFlashAllSh(content)
+ setParsedSteps(parsed)
+ setSteps(buildSteps(parsed, opts))
+ addLog(`Parsed flash-all.sh: ${parsed.length} steps found`)
+ } else {
+ addLog('Warning: flash-all.sh not found in zip — is this a valid Pixel factory image?')
+ }
+ } catch {
+ addLog('Could not read flash-all.sh from zip. Make sure this is an extracted factory image folder or valid zip.')
+ }
} catch (e: any) {
notify.error('Could not open file dialog')
}
}
- // Drag-and-drop a factory .zip onto the drop target below to auto-load it.
- useEffect(() => {
- const rt = (window as any)['runtime']
- rt?.OnFileDrop?.((_x: number, _y: number, paths: string[]) => {
- const zip = (paths || []).find(p => p.toLowerCase().endsWith('.zip'))
- if (zip) loadZip(zip)
- else if (paths?.length) notify.error('Drop a Pixel factory image .zip')
- }, true)
- return () => rt?.OnFileDropOff?.()
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [opts])
-
const updateOpts = (newOpts: FlashOptions) => {
setOpts(newOpts)
if (parsedSteps.length > 0) {
@@ -363,7 +342,7 @@ export default function ViewPixelFlasher() {
Pixel Factory Flash
{/* Warning */}
-
+
This will completely overwrite your device firmware.
@@ -375,7 +354,7 @@ export default function ViewPixelFlasher() {
Bootloader must be unlocked.
-
+
{/* Left: config */}
@@ -400,17 +379,17 @@ export default function ViewPixelFlasher() {
{/* Factory image */}
-
+
Factory Image Zip
- Extract the outer zip from Google, then select the inner device-build-factory-*.zip — or drag & drop a .zip anywhere on this panel .
+ Extract the outer zip from Google, then select the inner device-build-factory-*.zip
Browse
diff --git a/frontend/src/components/views/ViewScreenMirror.tsx b/frontend/src/components/views/ViewScreenMirror.tsx
deleted file mode 100644
index dfdcff7..0000000
--- a/frontend/src/components/views/ViewScreenMirror.tsx
+++ /dev/null
@@ -1,281 +0,0 @@
-import { useState, useEffect } from 'react'
-import { MonitorSmartphone, Play, Square, Check, AlertTriangle, Camera } from 'lucide-react'
-import { ScrcpyAvailable, ScrcpyRunning, StartScrcpy, StopScrcpy, CaptureScreenshot } from '../../lib/wails'
-import { notify } from '../../lib/notify'
-
-// Wails runtime is injected on window['runtime'] (same access as ViewLogcat).
-const rt = () => (window as any)['runtime']
-
-interface Options {
- maxSize: number
- bitRateMbps: number
- maxFps: number
- stayAwake: boolean
- turnScreenOff: boolean
- showTouches: boolean
- alwaysOnTop: boolean
- fullscreen: boolean
- borderless: boolean
- record: boolean
- detached: boolean
- noAudio: boolean
- viewOnly: boolean
- videoCodec: string
- orientation: string
-}
-
-const DEFAULTS: Options = {
- maxSize: 0, bitRateMbps: 8, maxFps: 60,
- stayAwake: true, turnScreenOff: false, showTouches: false,
- alwaysOnTop: false, fullscreen: false, borderless: false, record: false, detached: false,
- noAudio: false, viewOnly: false, videoCodec: '', orientation: '',
-}
-
-export default function ViewScreenMirror() {
- const [available, setAvailable] = useState(null)
- const [missing, setMissing] = useState('')
- const [running, setRunning] = useState(false)
- const [starting, setStarting] = useState(false)
- const [opts, setOpts] = useState(DEFAULTS)
-
- useEffect(() => {
- ScrcpyAvailable().then(setAvailable).catch((e: any) => setMissing(String(e)))
- ScrcpyRunning().then(setRunning).catch(() => {})
- const off = rt()?.EventsOn?.('scrcpy:stopped', () => setRunning(false))
- return () => off?.()
- }, [])
-
- const set = (k: K, v: Options[K]) => setOpts(o => ({ ...o, [k]: v }))
-
- const start = async () => {
- setStarting(true)
- try {
- await StartScrcpy(opts)
- setRunning(true)
- notify.success('Mirror started — the window opens separately and can be moved anywhere')
- } catch (e: any) {
- notify.error(e)
- } finally {
- setStarting(false)
- }
- }
-
- const stop = async () => {
- try {
- await StopScrcpy()
- setRunning(false)
- } catch (e: any) {
- notify.error(e)
- }
- }
-
- const screenshot = async () => {
- try {
- const path = await CaptureScreenshot()
- if (path) notify.success(`Saved ${path}`)
- } catch (e: any) {
- notify.error(e)
- }
- }
-
- return (
-
-
-
-
Screen Mirror
-
-
-
- Mirror and control your phone on your computer. The mirror opens in its own
- window you can move, resize, and snap anywhere — drive the phone with your
- mouse and keyboard. Powered by scrcpy.
-
-
- {/* Availability */}
- {available && (
-
-
- {available} detected
-
- )}
- {missing && (
-
-
-
-
scrcpy isn't installed.
-
Install it with sudo apt install scrcpy , then reopen this view.
-
-
- )}
-
- {/* Options */}
-
-
Options
-
-
- set('maxSize', v)}
- options={[[0, 'Original'], [1920, '1920'], [1280, '1280'], [1024, '1024'], [800, '800']]} />
- set('bitRateMbps', v)}
- options={[[2, '2'], [4, '4'], [8, '8'], [16, '16'], [32, '32']]} />
- set('maxFps', v)}
- options={[[0, 'Unlimited'], [30, '30'], [60, '60'], [120, '120']]} />
-
- Video codec
- set('videoCodec', e.target.value)}>
- {[['', 'Auto'], ['h264', 'H.264'], ['h265', 'H.265'], ['av1', 'AV1']].map(([v, l]) => {l} )}
-
-
-
- Orientation
- set('orientation', e.target.value)}>
- {[['', 'Auto'], ['0', '0°'], ['90', '90°'], ['180', '180°'], ['270', '270°']].map(([v, l]) => {l} )}
-
-
-
-
-
- set('stayAwake', v)} />
- set('turnScreenOff', v)} />
- set('showTouches', v)} />
- set('alwaysOnTop', v)} />
- set('borderless', v)} />
- set('fullscreen', v)} />
- set('noAudio', v)} />
- set('viewOnly', v)} />
- set('record', v)} />
-
-
-
-
-
Keep running after ATK closes
-
Detaches the mirror — quitting ATK won't close it. It'll show up here again next time you open ATK.
-
-
set('detached', !opts.detached)}
- role="switch"
- aria-checked={opts.detached}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${opts.detached ? 'bg-accent-green' : 'bg-bg-border'}`}
- >
-
-
-
-
-
- {/* Capture */}
-
-
Capture
-
-
- Screenshot
-
- Saves the phone's current screen as a PNG. Works anytime a device is connected — no mirror needed.
-
-
- Screen recording: enable “Record to file” above, then Start — a save dialog asks where to save the .mp4 (pick any folder/name). It records the whole session and finalizes the file when you Stop the mirror (or close its window). Perfect for repro clips.
-
-
-
- {/* Controls */}
-
- {running ? (
-
- Stop mirror
-
- ) : (
-
- {starting ? 'Starting…' : 'Start mirror'}
-
- )}
- {running &&
● Mirroring — check the separate scrcpy window }
-
-
-
- Borderless hides the window's title bar for a clean look. Move it with
- Super + drag , and close it with
- Stop mirror above (the phone's own
- title bar can't be themed by ATK — it's drawn by your window manager).
-
-
- {/* Shortcut cheat-sheet */}
-
-
Controls & shortcuts
-
- MOD = Left Alt or Super (⊞ / ⌘ key) — use these when a laptop has no middle-click.
-
-
- {SHORTCUTS.map(s => (
-
- {s.action}
-
- {s.keys}
- {s.alt && <>or {s.alt} >}
-
-
- ))}
-
-
-
- )
-}
-
-const SHORTCUTS: { action: string; keys: string; alt?: string }[] = [
- { action: 'Home', keys: 'MOD+H', alt: 'Middle-click' },
- { action: 'Back', keys: 'MOD+B', alt: 'Right-click' },
- { action: 'Tap', keys: 'Left-click' },
- { action: 'Long-press / select', keys: 'Click + hold' },
- { action: 'Recent apps', keys: 'MOD+S' },
- { action: 'App menu', keys: 'MOD+M' },
- { action: 'Notifications', keys: 'MOD+N' },
- { action: 'Power', keys: 'MOD+P' },
- { action: 'Volume up', keys: 'MOD+↑' },
- { action: 'Volume down', keys: 'MOD+↓' },
- { action: 'Rotate screen', keys: 'MOD+← / →' },
- { action: 'Fullscreen', keys: 'MOD+F' },
- { action: 'Phone screen off', keys: 'MOD+O' },
- { action: 'Phone screen on', keys: 'MOD+⇧+O' },
- { action: 'Copy to computer', keys: 'MOD+C' },
- { action: 'Paste to phone', keys: 'MOD+V' },
- { action: 'Swipe / gesture', keys: 'Click + drag' },
- { action: 'Pinch to zoom', keys: 'Ctrl + drag' },
-]
-
-function Kbd({ children }: { children: React.ReactNode }) {
- return (
-
- {children}
-
- )
-}
-
-function Select({ label, value, onChange, options }: {
- label: string; value: number; onChange: (v: number) => void; options: [number, string][]
-}) {
- return (
-
- {label}
- onChange(Number(e.target.value))}
- >
- {options.map(([v, l]) => {l} )}
-
-
- )
-}
-
-function Toggle({ label, on, onChange }: { label: string; on: boolean; onChange: (v: boolean) => void }) {
- return (
-
- {label}
- onChange(!on)}
- role="switch"
- aria-checked={on}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${on ? 'bg-accent-green' : 'bg-bg-border'}`}
- >
-
-
-
- )
-}
diff --git a/frontend/src/components/views/ViewSettings.tsx b/frontend/src/components/views/ViewSettings.tsx
index 9394245..7dcb6fd 100644
--- a/frontend/src/components/views/ViewSettings.tsx
+++ b/frontend/src/components/views/ViewSettings.tsx
@@ -1,98 +1,13 @@
import { useState, useEffect } from 'react'
-import { Shield, RefreshCw, Check, AlertTriangle, Palette, Lock, ChevronDown, ChevronRight } from 'lucide-react'
-import { GetBinaryInfo, SetAdbPath, SetFastbootPath, AppLockStatus, SetAppPassword, DisableAppLock, SetRequireForDanger, OpenURL } from '../../lib/wails'
+import { Shield, RefreshCw, Check, AlertTriangle } from 'lucide-react'
+import { GetBinaryInfo, SetAdbPath, SetFastbootPath } from '../../lib/wails'
import { notify } from '../../lib/notify'
-import { refreshAppLockStatus } from '../../lib/applock'
-import { applyTheme, getTheme, THEMES, type Theme } from '../../lib/theme'
-import {
- getCustomAccent, setCustomAccent, getCustomTextColor, setCustomTextColor,
- getCustomFont, setCustomFont, FONT_OPTIONS,
- getCustomFontSize, setCustomFontSize, FONT_SIZE_MIN, FONT_SIZE_MAX, FONT_SIZE_DEFAULT
-} from '../../lib/appearance'
-import { getSidebarPosition, setSidebarPosition, SIDEBAR_POSITIONS, getSidebarLabels, setSidebarLabels, type SidebarPosition } from '../../lib/layout'
-import { getRootTools, setRootTools, getHiddenViews, setHiddenViews, TOGGLEABLE_VIEWS, getMuteNoDevice, setMuteNoDevice } from '../../lib/featureflags'
-import { resetDismissed } from '../../lib/dismissible'
export default function ViewSettings() {
const [binaryInfo, setBinaryInfo] = useState>({})
const [loading, setLoading] = useState(false)
const [adbPath, setAdbPath] = useState('')
const [fastbootPath, setFastbootPath] = useState('')
- const [theme, setTheme] = useState(getTheme())
- const [sidebarPos, setSidebarPos] = useState(getSidebarPosition())
- const [sidebarLabels, setSidebarLabelsState] = useState(getSidebarLabels())
- const [rootTools, setRootToolsState] = useState(getRootTools())
- const [aboutOpen, setAboutOpen] = useState(false)
-
- const [customAccent, setCustomAccentState] = useState(getCustomAccent())
- const [customTextColor, setCustomTextColorState] = useState(getCustomTextColor())
- const [customFont, setCustomFontState] = useState(getCustomFont())
- const [customFontSize, setCustomFontSizeState] = useState(getCustomFontSize())
-
- const changeTheme = (t: Theme) => { setTheme(t); applyTheme(t) }
- const changeAccent = (hex: string | null) => { setCustomAccentState(hex || ''); setCustomAccent(hex) }
- const changeTextColor = (hex: string | null) => { setCustomTextColorState(hex || ''); setCustomTextColor(hex) }
- const changeFont = (id: string) => { setCustomFontState(id); setCustomFont(id || null) }
- const changeFontSize = (px: number) => { setCustomFontSizeState(px); setCustomFontSize(px) }
- const changeSidebarPos = (p: SidebarPosition) => { setSidebarPos(p); setSidebarPosition(p) }
- const changeSidebarLabels = (on: boolean) => { setSidebarLabelsState(on); setSidebarLabels(on) }
- const changeRootTools = (on: boolean) => { setRootToolsState(on); setRootTools(on) }
-
- // App lock
- const [lock, setLock] = useState({ enabled: false, requireForDanger: false })
- const [pwCurrent, setPwCurrent] = useState('')
- const [pwNew, setPwNew] = useState('')
- const [pwConfirm, setPwConfirm] = useState('')
- const [lockBusy, setLockBusy] = useState(false)
-
- useEffect(() => { AppLockStatus().then(setLock).catch(() => {}) }, [])
-
- const reloadLock = async () => {
- try { setLock(await AppLockStatus()) } catch {}
- await refreshAppLockStatus() // keep the live danger-gate cache in sync
- }
-
- const savePassword = async () => {
- if (pwNew.length < 4) { notify.error('Password must be at least 4 characters'); return }
- if (pwNew !== pwConfirm) { notify.error('Passwords do not match'); return }
- setLockBusy(true)
- try {
- await SetAppPassword(lock.enabled ? pwCurrent : '', pwNew)
- notify.success(lock.enabled ? 'Password changed' : 'App lock enabled')
- setPwCurrent(''); setPwNew(''); setPwConfirm('')
- await reloadLock()
- } catch (e: any) { notify.error(e) } finally { setLockBusy(false) }
- }
-
- const removeLock = async () => {
- if (!confirm('Remove the app password? ATK will open without prompting.')) return
- setLockBusy(true)
- try {
- await DisableAppLock(pwCurrent)
- notify.success('App lock removed')
- setPwCurrent(''); setPwNew(''); setPwConfirm('')
- await reloadLock()
- } catch (e: any) { notify.error(e) } finally { setLockBusy(false) }
- }
-
- const toggleDanger = async (on: boolean) => {
- if (!pwCurrent) { notify.error('Enter your current password above to change this'); return }
- setLockBusy(true)
- try {
- await SetRequireForDanger(pwCurrent, on)
- notify.success(on ? 'Destructive actions now require the password' : 'Re-auth on destructive actions turned off')
- setPwCurrent('')
- await reloadLock()
- } catch (e: any) { notify.error(e) } finally { setLockBusy(false) }
- }
-
- const [hidden, setHiddenState] = useState(getHiddenViews())
- const [muteND, setMuteND] = useState(getMuteNoDevice())
- const changeMuteND = (on: boolean) => { setMuteND(on); setMuteNoDevice(on) }
- const toggleFeature = (view: string) => {
- const next = hidden.includes(view) ? hidden.filter(v => v !== view) : [...hidden, view]
- setHiddenState(next); setHiddenViews(next)
- }
const loadBinaryInfo = async () => {
setLoading(true)
@@ -132,302 +47,6 @@ export default function ViewSettings() {
Settings
- {/* Appearance / theme */}
-
-
-
Choose a colour theme. Applies instantly and is remembered.
-
- {THEMES.map(t => (
-
changeTheme(t.id)}
- className={`text-left rounded border p-3 transition-colors ${
- theme === t.id
- ? 'border-accent-green bg-accent-green/10'
- : 'border-bg-border hover:bg-bg-raised'
- }`}
- >
-
- {t.label}
- {theme === t.id && }
-
- {/* Swatch preview: base · surface · accent · text */}
-
- {t.swatch.map((c, i) => (
-
- ))}
-
- {t.hint}
-
- ))}
-
-
- {/* Custom accent/text colour + font/size — system-wide overrides on top of the theme */}
-
-
-
Custom accent colour (overrides the theme accent everywhere)
-
- changeAccent(e.target.value)}
- className="h-8 w-12 rounded border border-bg-border bg-bg-raised cursor-pointer p-0.5"
- title="Pick a custom accent colour"
- />
- {customAccent || 'theme default'}
- {customAccent && (
- changeAccent(null)} className="btn-ghost text-xs ml-auto">Reset
- )}
-
-
-
-
Custom text colour (overrides the theme's primary text colour)
-
- changeTextColor(e.target.value)}
- className="h-8 w-12 rounded border border-bg-border bg-bg-raised cursor-pointer p-0.5"
- title="Pick a custom text colour"
- />
- {customTextColor || 'theme default'}
- {customTextColor && (
- changeTextColor(null)} className="btn-ghost text-xs ml-auto">Reset
- )}
-
-
-
-
Font (applied app-wide)
-
changeFont(e.target.value)}
- >
- {FONT_OPTIONS.map(f => {f.label} )}
-
-
-
-
Font size ({customFontSize || FONT_SIZE_DEFAULT}px)
-
- changeFontSize(Number(e.target.value))}
- className="flex-1 accent-accent-green"
- title="Adjust the app-wide base font size"
- />
- {customFontSize > 0 && (
- changeFontSize(0)} className="btn-ghost text-xs">Reset
- )}
-
-
-
-
-
Sidebar position. Applies instantly and is remembered.
-
- {SIDEBAR_POSITIONS.map(p => (
-
changeSidebarPos(p.id)}
- className={`text-left rounded border p-3 transition-colors ${
- sidebarPos === p.id
- ? 'border-accent-green bg-accent-green/10'
- : 'border-bg-border hover:bg-bg-raised'
- }`}
- >
-
- {p.label}
- {sidebarPos === p.id && }
-
- {p.hint}
-
- ))}
-
-
-
-
-
Show navigation labels
-
Display the name under each sidebar icon (e.g. Dashboard, Files).
-
-
changeSidebarLabels(!sidebarLabels)}
- role="switch"
- aria-checked={sidebarLabels}
- title="Toggle navigation labels"
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${
- sidebarLabels ? 'bg-accent-green' : 'bg-bg-border'
- }`}
- >
-
-
-
-
-
-
-
Mute "no device" pop-ups
-
Hide error toasts about a missing / offline / unauthorized device while browsing.
-
-
changeMuteND(!muteND)}
- role="switch"
- aria-checked={muteND}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${muteND ? 'bg-accent-green' : 'bg-bg-border'}`}
- >
-
-
-
-
-
-
Restore warnings you've hidden with the ✕ button.
-
{ resetDismissed(); notify.success('Hidden warnings restored — reopen views to see them') }}
- className="btn-ghost text-xs shrink-0"
- >
- Show hidden warnings
-
-
-
-
- {/* Sidebar features kill-switch */}
-
-
-
Turn off the tools you don't use to declutter the sidebar. Settings always stays.
-
- {TOGGLEABLE_VIEWS.map(f => {
- const on = !hidden.includes(f.view)
- return (
-
- {f.label}
- toggleFeature(f.view)}
- role="switch"
- aria-checked={on}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${on ? 'bg-accent-green' : 'bg-bg-border'}`}
- >
-
-
-
- )
- })}
-
-
-
- {/* App lock / security */}
-
-
-
-
App Lock
- {lock.enabled &&
enabled }
-
-
- Require a password to open ATK. Stored only as a salted scrypt hash — never the password itself.
-
- Note: this gates the ATK app so it can't be driven into flashing
- or uninstalling without the password. It can't stop a compromised computer from running{' '}
- adb /fastboot directly, outside ATK — nothing
- running as your user can.
-
-
- {/* Current password (needed to change/remove or toggle re-auth when a lock exists) */}
- {lock.enabled && (
-
setPwCurrent(e.target.value)}
- />
- )}
-
- {/* Set / change password */}
-
- setPwNew(e.target.value)}
- />
- setPwConfirm(e.target.value)}
- />
-
-
-
- {lock.enabled ? 'Change password' : 'Enable app lock'}
-
- {lock.enabled && (
-
- Remove app lock
-
- )}
-
-
- {/* Optional: re-auth before destructive actions */}
- {lock.enabled && (
-
-
-
Require password for destructive actions
-
- Re-prompt before flashing, uninstalling/debloating, and Magisk installs. Enter your current
- password above first. Stays unlocked for a few minutes after each confirmation.
-
-
-
toggleDanger(!lock.requireForDanger)}
- role="switch"
- aria-checked={lock.requireForDanger}
- disabled={lockBusy}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${lock.requireForDanger ? 'bg-accent-green' : 'bg-bg-border'}`}
- >
-
-
-
- )}
-
-
- {/* Advanced / root tools */}
-
-
-
-
-
Enable rooting tools (Magisk patching)
-
Adds a Magisk boot-patching panel to the Flasher for rooting. Off by default — these operations can wipe or brick a device if misused.
-
-
changeRootTools(!rootTools)}
- role="switch"
- aria-checked={rootTools}
- className={`relative h-5 w-9 rounded-full transition-colors shrink-0 ${rootTools ? 'bg-accent-green' : 'bg-bg-border'}`}
- >
-
-
-
-
-
{/* Binary trust section */}
@@ -511,26 +130,12 @@ export default function ViewSettings() {
{/* About */}
-
setAboutOpen(o => !o)}
- className="flex items-center gap-2 w-full text-left"
- >
- {aboutOpen ? : }
- About
-
- {aboutOpen && (
-
-
ATK (Android Toolkit) — an all-in-one ADB GUI for Android power users
-
All commands use discrete argument passing — no shell string building, no injection vectors
-
Built with Wails v2 (Go + React) · github.com/jegly/ATK
-
- Jesse Li-Yates ·{' '}
- OpenURL('https://www.jegly.xyz')} className="text-accent-green hover:underline">
- www.jegly.xyz
-
-
-
- )}
+
About
+
+
ATK (Android Toolkit) — an all-in-one ADB GUI for Android power users and bug hunters
+
All commands use discrete argument passing — no shell string building, no injection vectors
+
Built with Wails v2 (Go + React) · github.com/jegly/ATK
+
)
diff --git a/frontend/src/components/views/ViewShell.tsx b/frontend/src/components/views/ViewShell.tsx
index 5a69d79..ac0dd9c 100644
--- a/frontend/src/components/views/ViewShell.tsx
+++ b/frontend/src/components/views/ViewShell.tsx
@@ -1,9 +1,6 @@
import { useState, useRef, useEffect } from 'react'
-import { Terminal, Trash2, ChevronRight, ChevronDown, Library, Search, Copy, Save } from 'lucide-react'
-import { RunShellCommand, RunAdbHostCommand, SaveTextFile } from '../../lib/wails'
-import { notify } from '../../lib/notify'
-import { CodeView, detectLang } from '../../lib/syntax'
-import { CATEGORIES, type Command } from './ViewUtilities'
+import { Terminal, Trash2, ChevronRight } from 'lucide-react'
+import { RunShellCommand, RunAdbHostCommand } from '../../lib/wails'
interface HistoryEntry {
cmd: string
@@ -14,16 +11,13 @@ interface HistoryEntry {
export default function ViewShell() {
const [history, setHistory] = useState
([
- { cmd: '', output: 'Commands run via adb shell (no pipes/redirects — args are split directly, no shell injection)\nSwitch to "adb" mode to run adb host commands (e.g. adb devices, adb logcat)\nClick "Commands" to browse the command library and drop one into the prompt.', mode: 'shell' }
+ { cmd: '', output: 'ADBKit Shell — commands run via adb shell (no pipes/redirects — args are split directly, no shell injection)\nSwitch to "adb" mode to run adb host commands (e.g. adb devices, adb logcat)', mode: 'shell' }
])
const [input, setInput] = useState('')
const [mode, setMode] = useState<'shell' | 'adb'>('shell')
const [loading, setLoading] = useState(false)
const [cmdHistory, setCmdHistory] = useState([])
const [historyIdx, setHistoryIdx] = useState(-1)
- const [showLib, setShowLib] = useState(false)
- const [libSearch, setLibSearch] = useState('')
- const [openCats, setOpenCats] = useState>(new Set())
const bottomRef = useRef(null)
const inputRef = useRef(null)
@@ -74,206 +68,82 @@ export default function ViewShell() {
}
}
- // Library commands are stored as adb host args (e.g. "shell getprop ..."),
- // so dropping one into the prompt = adb host mode + the full string. That way
- // the user never has to pick shell-vs-host; it's set for them.
- const pickCommand = (cmd: Command) => {
- setMode('adb')
- setInput(cmd.cmd)
- setHistoryIdx(-1)
- inputRef.current?.focus()
- }
-
- const toggleCat = (name: string) => {
- setOpenCats(prev => {
- const next = new Set(prev)
- next.has(name) ? next.delete(name) : next.add(name)
- return next
- })
- }
-
- // Whole-session transcript: each command and its output, blank-line separated.
- const transcript = () =>
- history.map(e => (e.cmd ? `[${e.mode}]$ ${e.cmd}\n` : '') + e.output).join('\n\n').trim()
-
- const hasSession = history.some(e => e.cmd)
-
- const copyAll = async () => {
- await navigator.clipboard?.writeText(transcript())
- notify.success('Session copied to clipboard')
- }
-
- const exportSession = async () => {
- try {
- const path = await SaveTextFile('atk-shell-session.txt', transcript())
- if (path) notify.success(`Saved to ${path}`)
- } catch (e: any) {
- notify.error(e)
- }
- }
-
- const q = libSearch.toLowerCase()
- const filteredCats = CATEGORIES.map(cat => ({
- ...cat,
- commands: q
- ? cat.commands.filter(c => c.label.toLowerCase().includes(q) || c.cmd.toLowerCase().includes(q))
- : cat.commands,
- })).filter(cat => cat.commands.length > 0)
-
return (
-
- {/* Command library panel */}
- {showLib && (
-
-
-
Command Library
-
Click to drop into the prompt (sets adb-host mode). Fill any args tokens, then Enter.
-
-
- { setLibSearch(e.target.value); if (e.target.value) setOpenCats(new Set(CATEGORIES.map(c => c.name))) }}
- />
-
-
-
- {filteredCats.map(cat => (
-
-
toggleCat(cat.name)}
- className="w-full flex items-center justify-between px-3 py-2 hover:bg-bg-raised transition-colors"
- >
-
- {openCats.has(cat.name)
- ?
- : }
- {cat.name}
-
- {cat.commands.length}
-
- {openCats.has(cat.name) && (
-
- {cat.commands.map(cmd => (
-
pickCommand(cmd)}
- className="flex items-start gap-1 mx-2 rounded px-2 py-1.5 hover:bg-bg-raised transition-colors cursor-pointer"
- >
-
-
-
{cmd.label}
- {cmd.needsInput &&
args }
-
-
{cmd.cmd}
-
-
- ))}
-
- )}
-
- ))}
-
-
- )}
-
- {/* Terminal */}
-
- {/* Toolbar */}
-
-
-
Mode:
-
- {(['shell', 'adb'] as const).map(m => (
- setMode(m)}
- className={`px-3 py-0.5 rounded text-xs font-medium transition-colors ${
- mode === m ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:text-text-secondary'
- }`}
- >
- {m === 'shell' ? 'adb shell' : 'adb host'}
-
- ))}
-
-
-
setShowLib(s => !s)}
- className={`btn-ghost text-xs ${showLib ? 'text-accent-green' : ''}`}
- >
- Commands
-
-
- Copy all
-
-
- Export
-
-
setHistory([{ cmd: '', output: 'Terminal cleared.', mode }])}
- className="btn-ghost text-xs"
- >
- Clear
-
-
-
- {/* Output */}
-
{ if (!window.getSelection()?.toString()) inputRef.current?.focus() }}
- >
- {history.map((entry, i) => (
-
- {entry.cmd && (
-
- [{entry.mode}]$
- {entry.cmd}
-
- )}
- {entry.error ? (
-
- {entry.output}
-
- ) : (
-
- )}
-
+
+ {/* Toolbar */}
+
+
+
Mode:
+
+ {(['shell', 'adb'] as const).map(m => (
+
setMode(m)}
+ className={`px-3 py-0.5 rounded text-xs font-medium transition-colors ${
+ mode === m ? 'bg-accent-green/20 text-accent-green' : 'text-text-muted hover:text-text-secondary'
+ }`}
+ >
+ {m === 'shell' ? 'adb shell' : 'adb host'}
+
))}
- {loading && (
-
- ▌
- Running...
-
- )}
-
+
+
setHistory([{ cmd: '', output: 'Terminal cleared.', mode }])}
+ className="btn-ghost text-xs"
+ >
+ Clear
+
+
- {/* Input */}
-
-
[{mode}]$
-
-
setInput(e.target.value)}
- onKeyDown={onKeyDown}
- disabled={loading}
- />
- {loading && (
-
- )}
-
+ {/* Output */}
+
inputRef.current?.focus()}
+ >
+ {history.map((entry, i) => (
+
+ {entry.cmd && (
+
+ [{entry.mode}]$
+ {entry.cmd}
+
+ )}
+
+ {entry.output}
+
+
+ ))}
+ {loading && (
+
+ ▌
+ Running...
+
+ )}
+
+
+
+ {/* Input */}
+
+
[{mode}]$
+
+
setInput(e.target.value)}
+ onKeyDown={onKeyDown}
+ disabled={loading}
+ />
+ {loading && (
+
+ )}
)
diff --git a/frontend/src/components/views/ViewUtilities.tsx b/frontend/src/components/views/ViewUtilities.tsx
index 9bb31d9..5e5d1ad 100644
--- a/frontend/src/components/views/ViewUtilities.tsx
+++ b/frontend/src/components/views/ViewUtilities.tsx
@@ -3,18 +3,18 @@ import { FileText, Wrench, ChevronDown, ChevronRight, Play, Copy, Check } from '
import { Reboot, RunAdbHostCommand } from '../../lib/wails'
import { notify } from '../../lib/notify'
-export interface Command {
+interface Command {
label: string
cmd: string
needsInput?: { placeholder: string; token: string }[]
}
-export interface Category {
+interface Category {
name: string
commands: Command[]
}
-export const CATEGORIES: Category[] = [
+const CATEGORIES: Category[] = [
// ─────────────────────────────────────────────
{
name: 'Device Info',
@@ -796,371 +796,13 @@ export const CATEGORIES: Category[] = [
{ label: 'Remount system (root)', cmd: 'remount' },
],
},
-
- // ════════════════ EXPANDED CATEGORIES ════════════════
- {
- name: 'App Ops & Privacy',
- commands: [
- { label: 'All app-ops for a package', cmd: 'shell appops get
',
- needsInput: [{ placeholder: 'com.example.app', token: '' }] },
- { label: 'Dump full appops service', cmd: 'shell dumpsys appops' },
- { label: 'Apps allowed a given op', cmd: 'shell appops query-op allow',
- needsInput: [{ placeholder: 'CAMERA', token: '' }] },
- { label: 'Set op → allow', cmd: 'shell appops set allow',
- needsInput: [{ placeholder: 'com.example.app', token: '' }, { placeholder: 'CAMERA', token: '' }] },
- { label: 'Set op → deny', cmd: 'shell appops set deny',
- needsInput: [{ placeholder: 'com.example.app', token: '' }, { placeholder: 'CAMERA', token: '' }] },
- { label: 'Set op → ignore', cmd: 'shell appops set ignore',
- needsInput: [{ placeholder: 'com.example.app', token: '' }, { placeholder: 'CAMERA', token: '' }] },
- { label: 'Reset all ops for a package', cmd: 'shell appops reset ',
- needsInput: [{ placeholder: 'com.example.app', token: '' }] },
- { label: 'Background run access', cmd: 'shell appops get RUN_ANY_IN_BACKGROUND',
- needsInput: [{ placeholder: 'com.example.app', token: '' }] },
- ],
- },
- {
- name: 'Display & Screen',
- commands: [
- { label: 'Current resolution', cmd: 'shell wm size' },
- { label: 'Override resolution', cmd: 'shell wm size ',
- needsInput: [{ placeholder: '1080x2400', token: '' }] },
- { label: 'Reset resolution', cmd: 'shell wm size reset' },
- { label: 'Current density (DPI)', cmd: 'shell wm density' },
- { label: 'Override density', cmd: 'shell wm density ',
- needsInput: [{ placeholder: '420', token: '' }] },
- { label: 'Reset density', cmd: 'shell wm density reset' },
- { label: 'Displays (dumpsys display)', cmd: 'shell dumpsys display' },
- { label: 'SurfaceFlinger state', cmd: 'shell dumpsys SurfaceFlinger' },
- { label: 'Force rotation (0-3)', cmd: 'shell settings put system user_rotation <0-3>',
- needsInput: [{ placeholder: '0', token: '<0-3>' }] },
- { label: 'Disable auto-rotate', cmd: 'shell settings put system accelerometer_rotation 0' },
- { label: 'Enable auto-rotate', cmd: 'shell settings put system accelerometer_rotation 1' },
- { label: 'Screen-off timeout (ms)', cmd: 'shell settings put system screen_off_timeout ',
- needsInput: [{ placeholder: '600000', token: '' }] },
- { label: 'Wake screen', cmd: 'shell input keyevent KEYCODE_WAKEUP' },
- { label: 'Sleep screen', cmd: 'shell input keyevent KEYCODE_SLEEP' },
- { label: 'Stay awake while charging', cmd: 'shell settings put global stay_on_while_plugged_in 3' },
- ],
- },
- {
- name: 'Screen Capture & Recording',
- commands: [
- { label: 'Screenshot to /sdcard', cmd: 'shell screencap -p /sdcard/atk_screen.png' },
- { label: 'Record screen 10s to /sdcard', cmd: 'shell screenrecord --time-limit 10 /sdcard/atk_rec.mp4' },
- { label: 'Record with bit-rate', cmd: 'shell screenrecord --bit-rate 8000000 --time-limit 10 /sdcard/atk_rec.mp4' },
- { label: 'Record at size', cmd: 'shell screenrecord --size --time-limit 10 /sdcard/atk_rec.mp4',
- needsInput: [{ placeholder: '720x1280', token: '' }] },
- { label: 'List captured files', cmd: 'shell ls -l /sdcard/atk_screen.png /sdcard/atk_rec.mp4' },
- ],
- },
- {
- name: 'Input & Automation',
- commands: [
- { label: 'Tap at coordinate', cmd: 'shell input tap ',
- needsInput: [{ placeholder: '540', token: '' }, { placeholder: '1200', token: '' }] },
- { label: 'Swipe', cmd: 'shell input swipe 300',
- needsInput: [{ placeholder: '300', token: '' }, { placeholder: '1500', token: '' }, { placeholder: '300', token: '' }, { placeholder: '500', token: '' }] },
- { label: 'Type text', cmd: 'shell input text ',
- needsInput: [{ placeholder: 'hello', token: '' }] },
- { label: 'Key event (code/name)', cmd: 'shell input keyevent ',
- needsInput: [{ placeholder: 'KEYCODE_HOME', token: '' }] },
- { label: 'Home', cmd: 'shell input keyevent KEYCODE_HOME' },
- { label: 'Back', cmd: 'shell input keyevent KEYCODE_BACK' },
- { label: 'App switch (recents)', cmd: 'shell input keyevent KEYCODE_APP_SWITCH' },
- { label: 'Power button', cmd: 'shell input keyevent KEYCODE_POWER' },
- { label: 'Volume up', cmd: 'shell input keyevent KEYCODE_VOLUME_UP' },
- { label: 'Unlock (menu key)', cmd: 'shell input keyevent 82' },
- { label: 'Monkey: random events on app', cmd: 'shell monkey -p -v 200',
- needsInput: [{ placeholder: 'com.example.app', token: '' }] },
- ],
- },
- {
- name: 'WiFi',
- commands: [
- { label: 'WiFi state dump', cmd: 'shell dumpsys wifi' },
- { label: 'Connection status', cmd: 'shell cmd wifi status' },
- { label: 'Trigger scan', cmd: 'shell cmd wifi start-scan' },
- { label: 'Scan results', cmd: 'shell cmd wifi list-scan-results' },
- { label: 'Saved networks', cmd: 'shell cmd wifi list-networks' },
- { label: 'Enable WiFi', cmd: 'shell svc wifi enable' },
- { label: 'Disable WiFi', cmd: 'shell svc wifi disable' },
- { label: 'WiFi MAC (factory)', cmd: 'shell cat /sys/class/net/wlan0/address' },
- ],
- },
- {
- name: 'Bluetooth',
- commands: [
- { label: 'Bluetooth manager dump', cmd: 'shell dumpsys bluetooth_manager' },
- { label: 'Enable Bluetooth', cmd: 'shell cmd bluetooth_manager enable' },
- { label: 'Disable Bluetooth', cmd: 'shell cmd bluetooth_manager disable' },
- { label: 'Adapter on/off state', cmd: 'shell settings get global bluetooth_on' },
- { label: 'Bluetooth MAC address', cmd: 'shell settings get secure bluetooth_address' },
- ],
- },
- {
- name: 'Telephony & SIM',
- commands: [
- { label: 'Telephony registry dump', cmd: 'shell dumpsys telephony.registry' },
- { label: 'IMEI / device id (svc call)', cmd: 'shell service call iphonesubinfo 1' },
- { label: 'SIM operator', cmd: 'shell getprop gsm.sim.operator.alpha' },
- { label: 'Network operator', cmd: 'shell getprop gsm.operator.alpha' },
- { label: 'SIM state', cmd: 'shell getprop gsm.sim.state' },
- { label: 'Data network type', cmd: 'shell getprop gsm.network.type' },
- { label: 'Airplane mode state', cmd: 'shell settings get global airplane_mode_on' },
- { label: 'Airplane mode on', cmd: 'shell cmd connectivity airplane-mode enable' },
- { label: 'Airplane mode off', cmd: 'shell cmd connectivity airplane-mode disable' },
- { label: 'Carrier config dump', cmd: 'shell dumpsys carrier_config' },
- ],
- },
- {
- name: 'Location & GPS',
- commands: [
- { label: 'Location service dump', cmd: 'shell dumpsys location' },
- { label: 'Location mode', cmd: 'shell settings get secure location_mode' },
- { label: 'Enable location', cmd: 'shell settings put secure location_mode 3' },
- { label: 'Disable location', cmd: 'shell settings put secure location_mode 0' },
- { label: 'Providers allowed', cmd: 'shell settings get secure location_providers_allowed' },
- ],
- },
- {
- name: 'NFC & Sensors',
- commands: [
- { label: 'NFC service dump', cmd: 'shell dumpsys nfc' },
- { label: 'NFC enabled state', cmd: 'shell settings get secure nfc_on' },
- { label: 'Sensor service dump', cmd: 'shell dumpsys sensorservice' },
- ],
- },
- {
- name: 'Biometrics & Lock',
- commands: [
- { label: 'Fingerprint service dump', cmd: 'shell dumpsys fingerprint' },
- { label: 'Face service dump', cmd: 'shell dumpsys face' },
- { label: 'Biometric manager dump', cmd: 'shell dumpsys biometric' },
- { label: 'Lock settings / keyguard', cmd: 'shell dumpsys lock_settings' },
- { label: 'Trust agent state', cmd: 'shell dumpsys trust' },
- ],
- },
- {
- name: 'Notifications',
- commands: [
- { label: 'Notification service dump', cmd: 'shell dumpsys notification' },
- { label: 'Notification listeners', cmd: 'shell settings get secure enabled_notification_listeners' },
- { label: 'Do-Not-Disturb state', cmd: 'shell settings get global zen_mode' },
- ],
- },
- {
- name: 'Jobs, Alarms & Doze',
- commands: [
- { label: 'JobScheduler dump', cmd: 'shell dumpsys jobscheduler' },
- { label: 'Alarm manager dump', cmd: 'shell dumpsys alarm' },
- { label: 'Doze / idle state', cmd: 'shell dumpsys deviceidle' },
- { label: 'Force into Doze', cmd: 'shell dumpsys deviceidle force-idle' },
- { label: 'Exit Doze', cmd: 'shell dumpsys deviceidle unforce' },
- { label: 'Doze whitelist', cmd: 'shell dumpsys deviceidle whitelist' },
- { label: 'Standby bucket for app', cmd: 'shell am get-standby-bucket ',
- needsInput: [{ placeholder: 'com.example.app', token: '' }] },
- ],
- },
- {
- name: 'Users & Profiles',
- commands: [
- { label: 'List users', cmd: 'shell pm list users' },
- { label: 'Current user', cmd: 'shell am get-current-user' },
- { label: 'Packages for a user', cmd: 'shell pm list packages --user ',
- needsInput: [{ placeholder: '0', token: '' }] },
- { label: 'Max supported users', cmd: 'shell pm get-max-users' },
- { label: 'Work / managed users dump', cmd: 'shell dumpsys user' },
- ],
- },
- {
- name: 'Device Policy & MDM',
- commands: [
- { label: 'Device policy dump', cmd: 'shell dumpsys device_policy' },
- { label: 'Active device admins', cmd: 'shell dpm list-owners' },
- { label: 'Device owner?', cmd: 'shell dumpsys device_policy | grep -i "Device Owner"' },
- { label: 'Profile owner?', cmd: 'shell dumpsys device_policy | grep -i "Profile Owner"' },
- ],
- },
- {
- name: 'Storage & Disk',
- commands: [
- { label: 'Volume list', cmd: 'shell sm list-volumes' },
- { label: 'Disk list', cmd: 'shell sm list-disks' },
- { label: 'Filesystem usage', cmd: 'shell df -h' },
- { label: 'Storage stats (diskstats)', cmd: 'shell dumpsys diskstats' },
- { label: 'storaged dump', cmd: 'shell dumpsys storaged' },
- { label: 'Mounted filesystems', cmd: 'shell mount' },
- ],
- },
- {
- name: 'Accessibility & IME',
- commands: [
- { label: 'Accessibility service dump', cmd: 'shell dumpsys accessibility' },
- { label: 'Enabled a11y services', cmd: 'shell settings get secure enabled_accessibility_services' },
- { label: 'List input methods', cmd: 'shell ime list -a' },
- { label: 'Enabled IMEs', cmd: 'shell ime list -s' },
- { label: 'Current default IME', cmd: 'shell settings get secure default_input_method' },
- ],
- },
- {
- name: 'Content Providers',
- commands: [
- { label: 'Query secure settings', cmd: 'shell content query --uri content://settings/secure' },
- { label: 'Query global settings', cmd: 'shell content query --uri content://settings/global' },
- { label: 'Query system settings', cmd: 'shell content query --uri content://settings/system' },
- { label: 'Query custom URI', cmd: 'shell content query --uri ',
- needsInput: [{ placeholder: 'content://telephony/carriers', token: '' }] },
- ],
- },
- {
- name: 'Window Manager',
- commands: [
- { label: 'Window manager dump', cmd: 'shell dumpsys window' },
- { label: 'Focused window / app', cmd: 'shell dumpsys window windows | grep -iE "mCurrentFocus|mFocusedApp"' },
- { label: 'Foreground activity', cmd: 'shell dumpsys activity activities | grep -i mResumedActivity' },
- { label: 'Recent tasks', cmd: 'shell dumpsys activity recents | grep -i intent' },
- ],
- },
- {
- name: 'Network — Firewall & Routing',
- commands: [
- { label: 'IP addresses (all ifaces)', cmd: 'shell ip addr' },
- { label: 'Routing table', cmd: 'shell ip route' },
- { label: 'Routing rules', cmd: 'shell ip rule' },
- { label: 'ARP / neighbour table', cmd: 'shell ip neigh' },
- { label: 'Open sockets (ss)', cmd: 'shell ss -tunap' },
- { label: 'Listening sockets', cmd: 'shell ss -ltnp' },
- { label: 'iptables filter (root)', cmd: 'shell iptables -L -n -v' },
- { label: 'DNS resolver props', cmd: 'shell getprop | grep -i "net.dns"' },
- { label: 'Connectivity dump', cmd: 'shell dumpsys connectivity' },
- { label: 'Per-uid net policy', cmd: 'shell dumpsys netpolicy' },
- { label: 'TCP connection states', cmd: 'shell cat /proc/net/tcp' },
- { label: 'Ping a host', cmd: 'shell ping -c 4 ',
- needsInput: [{ placeholder: '8.8.8.8', token: '' }] },
- ],
- },
- {
- name: 'Audio & Camera',
- commands: [
- { label: 'Audio service dump', cmd: 'shell dumpsys audio' },
- { label: 'Audio policy / routing', cmd: 'shell dumpsys media.audio_policy' },
- { label: 'Media sessions', cmd: 'shell dumpsys media_session' },
- { label: 'Play / pause media', cmd: 'shell input keyevent KEYCODE_MEDIA_PLAY_PAUSE' },
- { label: 'Camera service dump', cmd: 'shell dumpsys media.camera' },
- { label: 'Camera characteristics', cmd: 'shell dumpsys media.camera | grep -iE "Camera [0-9]|Facing"' },
- ],
- },
- {
- name: 'Backup Manager (bmgr)',
- commands: [
- { label: 'Backup enabled?', cmd: 'shell bmgr enabled' },
- { label: 'List transports', cmd: 'shell bmgr list transports' },
- { label: 'Backed-up sets', cmd: 'shell bmgr list sets' },
- { label: 'Run backup for app', cmd: 'shell bmgr backupnow ',
- needsInput: [{ placeholder: 'com.example.app', token: '' }] },
- ],
- },
- {
- name: 'Security & Integrity',
- commands: [
- { label: 'SELinux mode', cmd: 'shell getenforce' },
- { label: 'Verified boot state', cmd: 'shell getprop ro.boot.verifiedbootstate' },
- { label: 'Bootloader locked?', cmd: 'shell getprop ro.boot.flash.locked' },
- { label: 'dm-verity mode', cmd: 'shell getprop ro.boot.veritymode' },
- { label: 'Build tags (test-keys?)', cmd: 'shell getprop ro.build.tags' },
- { label: 'Debuggable / secure flags', cmd: 'shell getprop | grep -iE "ro.debuggable|ro.secure"' },
- { label: 'su present?', cmd: 'shell which su' },
- { label: 'Magisk present?', cmd: 'shell ls -l /data/adb/magisk 2>/dev/null' },
- { label: 'Frida ports listening?', cmd: 'shell netstat -tlnp 2>/dev/null | grep -E "27042|27043"' },
- { label: 'Running uid', cmd: 'shell id' },
- { label: 'Writable (rw) mounts', cmd: 'shell mount | grep -iE " rw,| rw "' },
- ],
- },
- {
- name: 'Developer & Debug',
- commands: [
- { label: 'List all global settings', cmd: 'shell settings list global' },
- { label: 'Show touches overlay on', cmd: 'shell settings put system show_touches 1' },
- { label: 'Show touches overlay off', cmd: 'shell settings put system show_touches 0' },
- { label: 'Pointer location overlay on', cmd: 'shell settings put system pointer_location 1' },
- { label: 'Disable animations', cmd: 'shell settings put global window_animation_scale 0' },
- { label: 'Reset animations', cmd: 'shell settings put global window_animation_scale 1' },
- { label: 'GPU overdraw debug', cmd: 'shell setprop debug.hwui.overdraw show' },
- { label: 'USB debugging state', cmd: 'shell settings get global adb_enabled' },
- { label: 'Wireless debugging state', cmd: 'shell settings get global adb_wifi_enabled' },
- ],
- },
- {
- name: 'Fastboot — OEM & Advanced',
- commands: [
- { label: 'All fastboot variables', cmd: 'fastboot getvar all' },
- { label: 'Bootloader lock state', cmd: 'fastboot getvar unlocked' },
- { label: 'Current slot (A/B)', cmd: 'fastboot getvar current-slot' },
- { label: 'Product / device', cmd: 'fastboot getvar product' },
- { label: 'Set active slot A', cmd: 'fastboot --set-active=a' },
- { label: 'Set active slot B', cmd: 'fastboot --set-active=b' },
- { label: 'Erase eSIM (Pixel, oem)', cmd: 'fastboot oem esim_erase' },
- { label: 'eSIM info (Pixel, oem)', cmd: 'fastboot oem esim_id' },
- { label: 'Device info (oem)', cmd: 'fastboot oem device-info' },
- { label: 'Carrier / config (oem)', cmd: 'fastboot oem get_config' },
- { label: 'Unlock bootloader', cmd: 'fastboot flashing unlock' },
- { label: 'Lock bootloader', cmd: 'fastboot flashing lock' },
- { label: 'Unlock critical partitions', cmd: 'fastboot flashing unlock_critical' },
- { label: 'Reboot to bootloader', cmd: 'fastboot reboot bootloader' },
- { label: 'Reboot to fastbootd (userspace)', cmd: 'fastboot reboot fastboot' },
- { label: 'Boot a kernel image (no flash)', cmd: 'fastboot boot ',
- needsInput: [{ placeholder: 'boot.img', token: '' }] },
- { label: 'Wipe userdata', cmd: 'fastboot -w' },
- ],
- },
- {
- name: 'UWB (Ultra-Wideband)',
- commands: [
- { label: 'UWB service dump', cmd: 'shell dumpsys uwb' },
- { label: 'UWB status', cmd: 'shell cmd uwb status' },
- { label: 'UWB device state', cmd: 'shell cmd uwb get-device-state' },
- { label: 'UWB country code', cmd: 'shell cmd uwb get-country-code' },
- { label: 'UWB enabled (setting)', cmd: 'shell settings get global uwb_enabled' },
- { label: 'Enable UWB', cmd: 'shell settings put global uwb_enabled 1' },
- { label: 'Disable UWB', cmd: 'shell settings put global uwb_enabled 0' },
- { label: 'UWB hardware feature', cmd: 'shell pm list features | grep -i uwb' },
- { label: 'UWB related props', cmd: 'shell getprop | grep -i uwb' },
- ],
- },
- {
- name: 'Satellite',
- commands: [
- { label: 'Satellite service dump', cmd: 'shell dumpsys satellite' },
- { label: 'Satellite controller (usage)', cmd: 'shell cmd satellite_controller' },
- { label: 'Satellite in telephony registry', cmd: 'shell dumpsys telephony.registry | grep -i satellite' },
- { label: 'Carrier satellite config', cmd: 'shell dumpsys carrier_config | grep -i satellite' },
- { label: 'Satellite hardware feature', cmd: 'shell pm list features | grep -i satellite' },
- { label: 'Satellite related props', cmd: 'shell getprop | grep -i satellite' },
- { label: 'NTN / non-terrestrial props', cmd: 'shell getprop | grep -iE "ntn|non.terrestrial"' },
- ],
- },
- {
- name: 'Verified Boot / AVB / PQC',
- commands: [
- { label: 'Verified boot state', cmd: 'shell getprop ro.boot.verifiedbootstate' },
- { label: 'vbmeta hash algorithm', cmd: 'shell getprop ro.boot.vbmeta.hash_alg' },
- { label: 'vbmeta digest', cmd: 'shell getprop ro.boot.vbmeta.digest' },
- { label: 'vbmeta size', cmd: 'shell getprop ro.boot.vbmeta.size' },
- { label: 'All vbmeta / AVB props', cmd: 'shell getprop | grep -iE "vbmeta|avb"' },
- { label: 'dm-verity mode', cmd: 'shell getprop ro.boot.veritymode' },
- // Android 17 introduced PQC signatures on system partitions — surfaces any
- // related props if the device exposes them (names may vary by build).
- { label: 'PQC signature props (Android 17)', cmd: 'shell getprop | grep -iE "pqc|dilithium|ml.?dsa|sphincs|falcon"' },
- { label: 'Bootloader lock state', cmd: 'shell getprop ro.boot.flash.locked' },
- ],
- },
]
export default function ViewUtilities() {
const [output, setOutput] = useState('')
const [outputLabel, setOutputLabel] = useState('')
const [running, setRunning] = useState(false)
- const [openCats, setOpenCats] = useState>(new Set())
+ const [openCats, setOpenCats] = useState>(new Set(['Device Info']))
const [inputs, setInputs] = useState>({})
const [copied, setCopied] = useState(false)
const [activeCmd, setActiveCmd] = useState(null)
diff --git a/frontend/src/lib/appearance.ts b/frontend/src/lib/appearance.ts
deleted file mode 100644
index 6ba4b80..0000000
--- a/frontend/src/lib/appearance.ts
+++ /dev/null
@@ -1,115 +0,0 @@
-// System-wide appearance overrides layered ON TOP of the selected theme:
-// - a custom accent colour (overrides --accent-green / --accent-dim)
-// - a custom UI font (overrides the app's sans font)
-//
-// Both are applied as INLINE custom properties on , which beats the
-// per-theme stylesheet rules, and persist in localStorage. Clearing an override
-// removes the inline prop so the theme's own value shows through again.
-
-const ACCENT_KEY = 'atk-custom-accent'
-const TEXT_COLOR_KEY = 'atk-custom-text-color'
-const FONT_KEY = 'atk-custom-font'
-const FONT_SIZE_KEY = 'atk-custom-font-size'
-
-// Base UI font size in px. The slider in Settings ranges over these bounds;
-// FONT_SIZE_DEFAULT matches global.css's hardcoded fallback (var(--app-font-size, 14px)).
-export const FONT_SIZE_MIN = 12
-export const FONT_SIZE_MAX = 18
-export const FONT_SIZE_DEFAULT = 14
-
-// Built-in font choices. '' = use the theme/app default. The @fontsource
-// families and the 8 self-hosted display fonts (styles/fonts.css) are
-// bundled; the "system-*" entries are generics that always resolve.
-export const FONT_OPTIONS: { id: string; label: string; stack: string }[] = [
- { id: '', label: 'Default (IBM Plex Sans)', stack: '' },
- { id: 'jetbrains', label: 'JetBrains Mono', stack: "'JetBrains Mono', monospace" },
- { id: 'system-sans', label: 'System Sans', stack: 'system-ui, sans-serif' },
- { id: 'system-serif', label: 'System Serif', stack: 'Georgia, \'Times New Roman\', serif' },
- { id: 'system-mono', label: 'System Monospace', stack: 'ui-monospace, \'Cascadia Code\', \'Courier New\', monospace' },
- { id: 'dotgothic16', label: 'DotGothic16', stack: "'DotGothic16', sans-serif" },
- { id: 'geist-pixel', label: 'Geist Pixel', stack: "'Geist Pixel', monospace" },
- { id: 'gugi', label: 'Gugi', stack: "'Gugi', sans-serif" },
- { id: 'orbitron', label: 'Orbitron', stack: "'Orbitron', sans-serif" },
- { id: 'playfair-display', label: 'Playfair Display', stack: "'Playfair Display', serif" },
- { id: 'press-start-2p', label: 'Press Start 2P', stack: "'Press Start 2P', monospace" },
- { id: 'space-grotesk', label: 'Space Grotesk', stack: "'Space Grotesk', sans-serif" },
- { id: 'vt323', label: 'VT323', stack: "'VT323', monospace" },
-]
-
-export function hexToChannels(hex: string): string | null {
- const m = /^#?([0-9a-fA-F]{6})$/.exec(hex.trim())
- if (!m) return null
- const n = parseInt(m[1], 16)
- return `${(n >> 16) & 255} ${(n >> 8) & 255} ${n & 255}`
-}
-
-function darkenChannels(ch: string, f: number): string {
- const [r, g, b] = ch.split(' ').map(Number)
- return `${Math.round(r * f)} ${Math.round(g * f)} ${Math.round(b * f)}`
-}
-
-export function getCustomAccent(): string { return localStorage.getItem(ACCENT_KEY) || '' }
-export function getCustomTextColor(): string { return localStorage.getItem(TEXT_COLOR_KEY) || '' }
-export function getCustomFont(): string { return localStorage.getItem(FONT_KEY) || '' }
-
-// Returns 0 when unset (theme default applies via the CSS fallback).
-export function getCustomFontSize(): number {
- const v = parseInt(localStorage.getItem(FONT_SIZE_KEY) || '', 10)
- return Number.isFinite(v) && v >= FONT_SIZE_MIN && v <= FONT_SIZE_MAX ? v : 0
-}
-
-export function setCustomAccent(hex: string | null): void {
- if (hex && hexToChannels(hex)) localStorage.setItem(ACCENT_KEY, hex)
- else localStorage.removeItem(ACCENT_KEY)
- applyAppearance()
-}
-
-export function setCustomTextColor(hex: string | null): void {
- if (hex && hexToChannels(hex)) localStorage.setItem(TEXT_COLOR_KEY, hex)
- else localStorage.removeItem(TEXT_COLOR_KEY)
- applyAppearance()
-}
-
-export function setCustomFont(id: string | null): void {
- if (id) localStorage.setItem(FONT_KEY, id)
- else localStorage.removeItem(FONT_KEY)
- applyAppearance()
-}
-
-export function setCustomFontSize(px: number | null): void {
- if (px && px >= FONT_SIZE_MIN && px <= FONT_SIZE_MAX) localStorage.setItem(FONT_SIZE_KEY, String(px))
- else localStorage.removeItem(FONT_SIZE_KEY)
- applyAppearance()
-}
-
-// applyAppearance (re)applies the stored overrides. Call on boot and after a change.
-export function applyAppearance(): void {
- const root = document.documentElement
-
- const accent = getCustomAccent()
- const ch = accent ? hexToChannels(accent) : null
- if (ch) {
- root.style.setProperty('--accent-green', ch)
- root.style.setProperty('--accent-dim', darkenChannels(ch, 0.82))
- } else {
- root.style.removeProperty('--accent-green')
- root.style.removeProperty('--accent-dim')
- }
-
- const textColor = getCustomTextColor()
- const tch = textColor ? hexToChannels(textColor) : null
- if (tch) {
- root.style.setProperty('--text-primary', tch)
- } else {
- root.style.removeProperty('--text-primary')
- }
-
- const fontId = getCustomFont()
- const stack = FONT_OPTIONS.find(f => f.id === fontId)?.stack
- if (stack) root.style.setProperty('--app-font', stack)
- else root.style.removeProperty('--app-font')
-
- const fontSize = getCustomFontSize()
- if (fontSize) root.style.setProperty('--app-font-size', `${fontSize}px`)
- else root.style.removeProperty('--app-font-size')
-}
diff --git a/frontend/src/lib/applock.ts b/frontend/src/lib/applock.ts
deleted file mode 100644
index a0eef5f..0000000
--- a/frontend/src/lib/applock.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-// App-lock frontend orchestration.
-//
-// Two things live here:
-// 1. A cached copy of the backend lock status (enabled / requireForDanger) so
-// destructive handlers can decide whether to prompt without an await round-
-// trip every time.
-// 2. ensureDangerUnlocked() — call this at the top of any destructive action.
-// When "require password for destructive actions" is on and the backend
-// session window has lapsed, it pops a re-auth modal (hosted by
-// in App.tsx) and resolves true only once UnlockDanger succeeds.
-//
-// The backend enforces the gate for real (see backend_applock.go); this is the
-// UX layer that collects the password and keeps the window warm.
-
-import { AppLockStatus, UnlockDanger } from './wails'
-
-export type AppLockState = { enabled: boolean; requireForDanger: boolean }
-
-let cached: AppLockState = { enabled: false, requireForDanger: false }
-
-export function appLockState(): AppLockState {
- return cached
-}
-
-export async function refreshAppLockStatus(): Promise {
- try {
- cached = await AppLockStatus()
- } catch {
- // backend not reachable yet — keep last known (defaults to unlocked)
- }
- return cached
-}
-
-// ----- danger re-auth modal host wiring -----
-
-export type DangerRequest = { resolve: (ok: boolean) => void }
-let host: ((req: DangerRequest | null) => void) | null = null
-
-// Called once by to register itself as the modal host.
-export function _registerDangerHost(fn: (req: DangerRequest | null) => void): () => void {
- host = fn
- return () => { if (host === fn) host = null }
-}
-
-// Local mirror of the backend's unlock window. Kept slightly shorter so we
-// re-prompt a touch before the server window actually lapses.
-const DANGER_WINDOW_MS = 4.5 * 60 * 1000
-let unlockedUntil = 0
-
-// Call the backend with the entered password; on success arm the local window.
-export async function tryUnlockDanger(password: string): Promise {
- const ok = await UnlockDanger(password)
- if (ok) unlockedUntil = Date.now() + DANGER_WINDOW_MS
- return ok
-}
-
-// Guard for destructive handlers: `if (!(await ensureDangerUnlocked())) return`.
-export async function ensureDangerUnlocked(): Promise {
- if (!cached.enabled || !cached.requireForDanger) return true
- if (Date.now() < unlockedUntil) return true
- if (!host) return true // modal not mounted (shouldn't happen) — backend still gates
- return new Promise(resolve => host!({ resolve }))
-}
-
-// Recognise the backend sentinel so callers can surface a friendlier message.
-export function isDangerLocked(err: unknown): boolean {
- return String(err).includes('DANGER_LOCKED')
-}
diff --git a/frontend/src/lib/debloat_db.ts b/frontend/src/lib/debloat_db.ts
index 3296313..13290f4 100644
--- a/frontend/src/lib/debloat_db.ts
+++ b/frontend/src/lib/debloat_db.ts
@@ -1,7 +1,6 @@
// Auto-generated from UAD package list (Universal Android Debloater)
// Source: github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation
-// Generated by scripts/gen_debloat_db.py - 5362 packages across 14 categories
-// Do not edit by hand; re-run the generator against a fresh uad_lists.json instead.
+// 2157 packages across 14 manufacturers and categories
export type Safety = 'safe' | 'caution' | 'keep'
@@ -23,24 +22,22 @@ export const DEBLOAT_CATEGORIES: Category[] = [
{
name: "Google",
packages: [
- { pkg: "com.android.chrome", label: "Chrome", description: "Google Chrome (https://play.google.com/store/apps/details?id=com.android.chrome) Occasionally runs in the background. NOTE: Disabling or uninstalling Chrome may break functionality for creating and storing passkeys (https://fidoalliance.org/passkeys/) on your phone, so keep this enabled if you want to use that form of authentication. G Play Services can provide this functionality on some devices. When Chrome is updated via the Play Store, the Trichrome Library is also updated automatically. If Chrome is disabled or removed, it may impact WebView functionality. This is because Chrome, WebView, and the Trichrome Library work together as a bundle starting from Android 10 (API 29) and above.", safety: "caution" },
- { pkg: "com.android.partnerbrowsercustomizations.chromeHomepage", label: "ChromeHomepage", description: "Horrible stuff for Google Chrome. This package bypass your DNS settings (for letting pass Google ads)", safety: "safe" },
- { pkg: "com.android.soundpicker", label: "Soundpicker", description: "Google Sounds. Needed to pick up a phone ringtone. No weird permissions. Pithus analysis: https://beta.pithus.org/report/f5f7c265c6d98666c78267b91643bbfb635021d5d4f85c93407079ba4aad88ee", safety: "caution" },
- { pkg: "com.android.systemui.plugin.globalactions.wallet", label: "Wallet", description: "Apk file name: QuickAccessWallet This is the Google Pay widget in the power menu(hold power button for 1sec to show this menu), below the Emergency, Power off and Reboot buttons.", safety: "caution" },
- { pkg: "com.android.vending", label: "Vending", description: "Google Play Store", safety: "caution" },
+ { pkg: "com.android.systemui.plugin.globalactions.wallet", label: "Wallet", description: "Apk file name: QuickAccessWallet", safety: "safe" },
+ { pkg: "com.google.android.apps.assistant", label: "Assistant", description: "Google Assistant Go (https://play.google.com/store/apps/details?id=com.google.android.apps.assistant)", safety: "safe" },
+ { pkg: "com.google.android.apps.searchlite", label: "Searchlite", description: "Google Go (https://play.google.com/store/apps/details?id=com.google.android.apps.searchlite)", safety: "safe" },
+ { pkg: "com.google.android.as", label: "As", description: "Android System Intelligence (previously Device Personalization Services) (https://play.google.com/store/app...", safety: "safe" },
+ { pkg: "com.google.mainline.telemetry", label: "Telemetry", description: "Contains data on which versions of modules are installed. Google Play uses this data to determine if update...", safety: "keep" },
+ { pkg: "com.android.hotwordenrollment.xgoogle", label: "Xgoogle", description: "\"OK Google\" detection service.", safety: "safe" },
+ { pkg: "com.android.partnerbrowsercustomizations.chromeHomepage", label: "Chromehomepage", description: "Horrible stuff for Google Chrome. This package bypass your DNS settings (for letting pass Google ads)", safety: "safe" },
+ { pkg: "com.android.chrome", label: "Chrome", description: "Google Chrome (https://play.google.com/store/apps/details?id=com.android.chrome)", safety: "safe" },
{ pkg: "com.chrome.beta", label: "Beta", description: "Google Chrome Beta (https://play.google.com/store/apps/details?id=com.chrome.beta)", safety: "safe" },
{ pkg: "com.chrome.canary", label: "Canary", description: "Google Chrome Canary (Nightly build) (https://play.google.com/store/apps/details?id=com.chrome.canary)", safety: "safe" },
- { pkg: "com.chrome.dev", label: "Dev", description: "Google Chrome (developer) (https://play.google.com/store/apps/details?id=com.chrome.dev)", safety: "safe" },
- { pkg: "com.google.android.GoogleCamera", label: "GoogleCamera", description: "Google Camera (https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera)", safety: "caution" },
- { pkg: "com.google.android.accessibility.soundamplifier", label: "Soundamplifier", description: "Accessibility sound amplifier (https://play.google.com/store/apps/details?id=com.google.android.accessibility.soundamplifier)", safety: "safe" },
+ { pkg: "com.chrome.dev", label: "Dev", description: "Google Chrome (developer)\t(https://play.google.com/store/apps/details?id=com.chrome.dev)", safety: "safe" },
{ pkg: "com.google.android.apps.access.wifi.consumer", label: "Consumer", description: "Google Wifi app (https://play.google.com/store/apps/details?id=com.google.android.apps.access.wifi.consumer)", safety: "safe" },
{ pkg: "com.google.android.apps.adm", label: "Adm", description: "Google Find my device app (https://play.google.com/store/apps/details?id=com.google.android.apps.adm)", safety: "safe" },
{ pkg: "com.google.android.apps.ads.publisher", label: "Publisher", description: "Google Adsense app (https://play.google.com/store/apps/details?id=com.google.android.apps.ads.publisher)", safety: "safe" },
{ pkg: "com.google.android.apps.adwords", label: "Adwords", description: "Google Ads app (https://play.google.com/store/apps/details?id=com.google.android.apps.adwords)", safety: "safe" },
- { pkg: "com.google.android.apps.aiwallpapers", label: "Aiwallpapers", description: "Provides the ability to create wallpapers by using AI and several presets. Not sure how this can be useful to the average user + collects device info.", safety: "safe" },
- { pkg: "com.google.android.apps.assistant", label: "Assistant", description: "Google Assistant Go (https://play.google.com/store/apps/details?id=com.google.android.apps.assistant) Go apps are lite-versions of their normal counterparts, made for low-RAM devices.", safety: "safe" },
- { pkg: "com.google.android.apps.authenticator2", label: "Authenticator2", description: "Google Authenticator app (https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2)", safety: "safe" },
- { pkg: "com.google.android.apps.bard", label: "Bard", description: "Google Gemini, safe to remove", safety: "safe" },
+ { pkg: "com.google.android.apps.authenticator2", label: "Authenticator2", description: "Google authentificator app (https://play.google.com/store/apps/details?id=com.google.android.apps.authentic...", safety: "safe" },
{ pkg: "com.google.android.apps.blogger", label: "Blogger", description: "Google blogger app (https://play.google.com/store/apps/details?id=com.google.android.apps.blogger)", safety: "safe" },
{ pkg: "com.google.android.apps.books", label: "Books", description: "Google Play Books (https://play.google.com/store/apps/details?id=com.google.android.apps.books)", safety: "safe" },
{ pkg: "com.google.android.apps.chromecast.app", label: "App", description: "Google Home (https://play.google.com/store/apps/details?id=com.google.android.apps.chromecast.app)", safety: "safe" },
@@ -53,552 +50,547 @@ export const DEBLOAT_CATEGORIES: Category[] = [
{ pkg: "com.google.android.apps.docs.editors.slides", label: "Slides", description: "Google Slides (https://play.google.com/store/apps/details?id=com.google.android.apps.docs.editors.slides)", safety: "safe" },
{ pkg: "com.google.android.apps.dynamite", label: "Dynamite", description: "Hangout chat (discontinued) (https://play.google.com/store/apps/details?id=com.google.android.apps.dynamite)", safety: "safe" },
{ pkg: "com.google.android.apps.enterprise.cpanel", label: "Cpanel", description: "Google Admin (https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.cpanel)", safety: "safe" },
- { pkg: "com.google.android.apps.enterprise.dmagent", label: "Dmagent", description: "Google apps device policy (https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent)", safety: "safe" },
+ { pkg: "com.google.android.apps.enterprise.dmagent", label: "Dmagent", description: "Google apps device policy (https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise...", safety: "safe" },
{ pkg: "com.google.android.apps.fireball", label: "Fireball", description: "Google Allo (discontinued)", safety: "safe" },
{ pkg: "com.google.android.apps.fitness", label: "Fitness", description: "Google Fit (https://play.google.com/store/apps/details?id=com.google.android.apps.fitness)", safety: "safe" },
{ pkg: "com.google.android.apps.freighter", label: "Freighter", description: "Google Datally (discontinued)", safety: "safe" },
- { pkg: "com.google.android.apps.gcs", label: "Gcs", description: "Internet services for Pixel and Nexus devices, including Wi-Fi/Mobile data switching, enabling a Google VPN on public networks, and Call Casting for Chromebooks. https://play.google.com/store/apps/details?id=com.google.android.apps.gcs", safety: "caution" },
- { pkg: "com.google.android.apps.genie.geniewidget", label: "Geniewidget", description: "News and weather widget. App was discontinued in 2018 and no longer works, therefore there is no point to have it anymore.", safety: "safe" },
{ pkg: "com.google.android.apps.giant", label: "Giant", description: "Google Analytics (https://play.google.com/store/apps/details?id=com.google.android.apps.giant)", safety: "safe" },
{ pkg: "com.google.android.apps.googleassistant", label: "Googleassistant", description: "Google Assistant (https://play.google.com/store/apps/details?id=com.google.android.apps.googleassistant)", safety: "safe" },
- { pkg: "com.google.android.apps.handwriting.ime", label: "Ime", description: "Google Handwriting Input (https://play.google.com/store/apps/details?id=com.google.android.apps.handwriting.ime)", safety: "safe" },
+ { pkg: "com.google.android.apps.handwriting.ime", label: "Ime", description: "Google Handwriting Input (https://play.google.com/store/apps/details?id=com.google.android.apps.handwriting...", safety: "safe" },
{ pkg: "com.google.android.apps.hangoutsdialer", label: "Hangoutsdialer", description: "Google Hangout Dialer (https://play.google.com/store/apps/details?id=com.google.android.apps.hangoutsdialer)", safety: "safe" },
- { pkg: "com.google.android.apps.inbox", label: "Inbox", description: "Inbox by Gmail (Discontinued)", safety: "safe" },
- { pkg: "com.google.android.apps.inputmethod.hindi", label: "Hindi", description: "Google Keyboard + Hinndi characters (https://play.google.com/store/apps/details?id=com.google.android.apps.inputmethod.hindi)", safety: "caution" },
{ pkg: "com.google.android.apps.kids.familylink", label: "Familylink", description: "Google Family Link (https://play.google.com/store/apps/details?id=com.google.android.apps.kids.familylink)", safety: "safe" },
- { pkg: "com.google.android.apps.kids.familylinkhelper", label: "Familylinkhelper", description: "Google Family Link for children & teens (https://play.google.com/store/apps/details?id=com.google.android.apps.kids.familylinkhelper)", safety: "safe" },
- { pkg: "com.google.android.apps.m4b", label: "M4b", description: "Google My Maps (https://play.google.com/store/apps/details?id=com.google.android.apps.m4b) It is NOT Google Maps", safety: "safe" },
+ { pkg: "com.google.android.apps.kids.familylinkhelper", label: "Familylinkhelper", description: "Google Family Link for children & teens (https://play.google.com/store/apps/details?id=com.google.android.a...", safety: "safe" },
+ { pkg: "com.google.android.apps.m4b", label: "M4B", description: "Google My Maps (https://play.google.com/store/apps/details?id=com.google.android.apps.m4b)", safety: "safe" },
{ pkg: "com.google.android.apps.magazines", label: "Magazines", description: "Google News (https://play.google.com/store/apps/details?id=com.google.android.apps.magazines)", safety: "safe" },
- { pkg: "com.google.android.apps.maps", label: "Maps", description: "Google Maps (https://play.google.com/store/apps/details?id=com.google.android.apps.maps)", safety: "safe" },
- { pkg: "com.google.android.apps.mapslite", label: "Mapslite", description: "Google Maps Go (lite web app of Maps) (https://play.google.com/store/apps/details?id=com.google.android.apps.mapslite)", safety: "safe" },
- { pkg: "com.google.android.apps.mediahome.launcher", label: "Launcher", description: "Entertainment Space All-in-one application for entertainment purposes like movies, games, books etc.", safety: "safe" },
+ { pkg: "com.google.android.apps.mapslite", label: "Mapslite", description: "Google Maps Go (lite web app of Maps) (https://play.google.com/store/apps/details?id=com.google.android.app...", safety: "safe" },
{ pkg: "com.google.android.apps.meetings", label: "Meetings", description: "Hangout Meet (discontinued) (https://play.google.com/store/apps/details?id=com.google.android.apps.meetings)", safety: "safe" },
- { pkg: "com.google.android.apps.messaging", label: "Messaging", description: "Google Messages (https://play.google.com/store/apps/details?id=com.google.android.apps.messaging) SMS and RCS app. NOTE: possibly a global dependency for SMS, MMS, RCS, OTP, and other services/verifications. WARNING: once disabled/uninstalled, even if reinstalled, a factory reset may be required to re-obtain full functionality.", safety: "caution" },
- { pkg: "com.google.android.apps.navlite", label: "Navlite", description: "Google Maps GPS (https://play.google.com/store/apps/details?id=com.google.android.apps.navlite)", safety: "safe" },
- { pkg: "com.google.android.apps.nbu.files", label: "Files", description: "Files by Google (https://play.google.com/store/apps/details?id=com.google.android.apps.nbu.files) Runs in the background.", safety: "safe" },
- { pkg: "com.google.android.apps.nbu.paisa.user", label: "User", description: "Google Pay (https://play.google.com/store/apps/details?id=com.google.android.apps.nbu.paisa.user) Digital wallet and payment system List of all the information collected and associated to your Google account : https://support.google.com/googlepay/answer/10223752?hl=en&co=GENIE.Platform%3DAndroid#zippy=%2Cinfo-that-google-may-collect You really should not trust Google not to sell your data (even if they claim the contrary): https://venturebeat.com/2020/11/20/probeat-google-will-eventually-sell-ads-against-your-financial-data/ The app itself has a LOT of permissions. See the Pithus analysis: https://beta.pithus.org/report/36b22c539b5f25c27a7699516c906351a25ba2daa2894eed08ae22f7a2a72c0e", safety: "safe" },
- { pkg: "com.google.android.apps.nexuslauncher", label: "Nexuslauncher", description: "Pixel Launcher (https://play.google.com/store/apps/details?id=com.google.android.apps.nexuslauncher) Used to be called Nexus Launcher(back when Google's phones were called Nexus, not Pixel). A launcher is basically your homescreen. DON'T REMOVE IF YOU HAVEN'T INSTALLED ANOTHER LAUNCHER! REMOVING CAUSES GESTURES/THREE BUTTON NAVIGATION TO DISAPPEAR ENTIRELY! https://vikrant.is-a.dev/Android-Launcher-Comparison-Table/ has a comprehensive comparison of many alternative launchers", safety: "caution" },
+ { pkg: "com.google.android.apps.messaging", label: "Messaging", description: "Google Messages (SMS+RCS) (https://play.google.com/store/apps/details?id=com.google.android.apps.messaging)", safety: "safe" },
+ { pkg: "com.google.android.apps.nbu.files", label: "Files", description: "Files by Google (https://play.google.com/store/apps/details?id=com.google.android.apps.nbu.files)", safety: "safe" },
{ pkg: "com.google.android.apps.paidtasks", label: "Paidtasks", description: "Google Opinion Rewards (https://play.google.com/store/apps/details?id=com.google.android.apps.paidtasks)", safety: "safe" },
- { pkg: "com.google.android.apps.pdfviewer", label: "Pdfviewer", description: "Google PDF Viewer Shouldn't run in the background, so no reason to disable. Discontinued, but still works perfectly on Android 11. In fact, this is the best standalone PDF-viewer I've found. The default PDF-viewer in recent Android releases is now integrated into Google Drive.", safety: "caution" },
+ { pkg: "com.google.android.apps.pdfviewer", label: "Pdfviewer", description: "Google PDF Viewer", safety: "caution" },
{ pkg: "com.google.android.apps.photos", label: "Photos", description: "Google Photos (https://play.google.com/store/apps/details?id=com.google.android.apps.photos)", safety: "safe" },
{ pkg: "com.google.android.apps.photos.scanner", label: "Scanner", description: "Google PhotoScan (https://play.google.com/store/apps/details?id=com.google.android.apps.photos.scanner)", safety: "safe" },
- { pkg: "com.google.android.apps.photosgo", label: "Photosgo", description: "Google Gallery (https://play.google.com/store/apps/details?id=com.google.android.apps.photosgo)", safety: "safe" },
- { pkg: "com.google.android.apps.pixel.subzero", label: "Subzero", description: "Daily Hub - useless a general-purpose news app", safety: "safe" },
{ pkg: "com.google.android.apps.plus", label: "Plus", description: "Google+ (discontinued)", safety: "safe" },
{ pkg: "com.google.android.apps.podcasts", label: "Podcasts", description: "Google Podcasts (https://play.google.com/store/apps/details?id=com.google.android.apps.podcasts)", safety: "safe" },
- { pkg: "com.google.android.apps.privacy.wildlife", label: "Wildlife", description: "VPN by Google One. Discontinued. Succeeded by VPN by Google and Google Fi VPN.", safety: "safe" },
+ { pkg: "com.google.android.apps.restore", label: "Restore", description: "The backup restore wizard used for pulling Android system backups from your Google account.", safety: "safe" },
{ pkg: "com.google.android.apps.recorder", label: "Recorder", description: "Google (audio)Recorder (https://play.google.com/store/apps/details?id=com.google.android.apps.recorder)", safety: "safe" },
- { pkg: "com.google.android.apps.restore", label: "Restore", description: "The backup restore wizard used for pulling Android system backups from your Google account. Runs on boot. You only need this if you factory restore, in which case it’s automatically re-enabled for you.", safety: "safe" },
- { pkg: "com.google.android.apps.safetyhub", label: "Safetyhub", description: "Personal Safety (https://play.google.com/store/apps/details?id=com.google.android.apps.safetyhub) Personal Safety is a Pixel app that helps you prepare and react in an emergency by quickly calling emergency services (e.g if your phone detects that you've been in a car crash, it can call for help automatically, but only with a google account) Most features require a Google account to work except for medical information and emergency contacts. Emergency SOS (ie. pressing the power button 5 times to call emergency services) still works without this app. This app has obviously a lot of dangerous permissions due to its operation. Pithus analysis: https://beta.pithus.org/report/e207f7d0f59d9df268154b90fc10cd861d0483465e30bbac8f68a7b12340c67f", safety: "caution" },
+ { pkg: "com.google.android.apps.setupwizard.searchselector", label: "Searchselector", description: "Search engine selector", safety: "safe" },
{ pkg: "com.google.android.apps.santatracker", label: "Santatracker", description: "Google Santa Tracker (discontinued)", safety: "safe" },
- { pkg: "com.google.android.apps.scone", label: "Scone", description: "Automatically switches basebands between LTE and 5G on demand", safety: "safe" },
- { pkg: "com.google.android.apps.searchlite", label: "Searchlite", description: "Google Go (https://play.google.com/store/apps/details?id=com.google.android.apps.searchlite) Go apps are lite-versions of their normal counterparts, made for low-RAM devices.", safety: "safe" },
- { pkg: "com.google.android.apps.security.securityhub", label: "Securityhub", description: "Checks security your phone(you can find it in settings). Not very useful. https://play.google.com/store/apps/details?id=com.google.android.apps.security.securityhub", safety: "safe" },
- { pkg: "com.google.android.apps.setupwizard.searchselector", label: "Searchselector", description: "Search engine selector The search selection screen in the setupwizard you see on new/factory reset phones. Runs on boot, but doesn't seem to run in the background beyond that.", safety: "safe" },
- { pkg: "com.google.android.apps.speechservices", label: "Speechservices", description: "Google Speech Services Absolute garbage. There is already another speech recognition app (Speech Recognition and Synthesis from Google), so this app is just spyware, judging by the URLs it connects to. https://www.virustotal.com/gui/file/9340b2aa1cb6f3fab3481a4bd5c0dacae2441bbb0849691b08a6e8bcedae2662/details", safety: "safe" },
- { pkg: "com.google.android.apps.subscriptions.red", label: "Red", description: "Google One (https://play.google.com/store/apps/details?id=com.google.android.apps.subscriptions.red) Lets you manage your Google cloud storage. Occasionally runs in the background.", safety: "safe" },
+ { pkg: "com.google.android.apps.subscriptions.red", label: "Red", description: "Google One (https://play.google.com/store/apps/details?id=com.google.android.apps.subscriptions.red)", safety: "safe" },
{ pkg: "com.google.android.apps.tachyon", label: "Tachyon", description: "Google Duo (Video Calls) (https://play.google.com/store/apps/details?id=com.google.android.apps.tachyon)", safety: "safe" },
{ pkg: "com.google.android.apps.tasks", label: "Tasks", description: "Google Task (TODO list) (https://play.google.com/store/apps/details?id=com.google.android.apps.tasks)", safety: "safe" },
{ pkg: "com.google.android.apps.translate", label: "Translate", description: "Google Translate (https://play.google.com/store/apps/details?id=com.google.android.apps.translate)", safety: "safe" },
{ pkg: "com.google.android.apps.travel.onthego", label: "Onthego", description: "Google Trip (discontinued)", safety: "safe" },
- { pkg: "com.google.android.apps.turbo", label: "Turbo", description: "Device Health Services. Breaks battery settings.", safety: "caution" },
- { pkg: "com.google.android.apps.tycho", label: "Tycho", description: "Google Fi Wireless https://play.google.com/store/apps/details?id=com.google.android.apps.tycho", safety: "safe" },
{ pkg: "com.google.android.apps.uploader", label: "Uploader", description: "Picasa Uploader (discontinued)", safety: "safe" },
{ pkg: "com.google.android.apps.vega", label: "Vega", description: "Google My Business (https://play.google.com/store/apps/details?id=com.google.android.apps.vega)", safety: "safe" },
{ pkg: "com.google.android.apps.walletnfcrel", label: "Walletnfcrel", description: "Google Pay (https://play.google.com/store/apps/details?id=com.google.android.apps.walletnfcrel)", safety: "safe" },
- { pkg: "com.google.android.apps.wallpaper", label: "Wallpaper", description: "Google Wallpapers (https://play.google.com/store/apps/details?id=com.google.android.apps.wallpaper) Removes the wallpaper section in the settings app when removed, but keeps current wallpapers.", safety: "caution" },
- { pkg: "com.google.android.apps.weather", label: "Weather", description: "The new Weather app by Google. If removed,\"At a Glance\" and the lock screen will still redirect to the Google app (like before). https://play.google.com/store/apps/details?id=com.google.android.apps.weather", safety: "safe" },
- { pkg: "com.google.android.apps.wellbeing", label: "Wellbeing", description: "Digital Wellbeing (https://play.google.com/store/apps/details?id=com.google.android.apps.wellbeing) Lets you track device and app usage and set usage limits. WARNING: It is now a hard dependency for the Settings app on Android 12+ for Pixel phones. After uninstalling, there will be an empty entry on Settings. Rebooting should make it disappear..", safety: "caution" },
- { pkg: "com.google.android.apps.work.oobconfig", label: "Oobconfig", description: "Device Setup Sets up device to be managed by EMM (Enterprise Mobility Management), which\"allows organizations to securely enable employee use of mobile devices\". Might also be what does the actual management on your device, if you set it up as a work device. Only seems to run on boot(not in the background after boot) if you haven't set up your device as a work device. I tried to disable it through UAD-ng, but nothing happens? Seems immune to disabling? https://bayton.org/2020/11/google-announce-big-changes-to-zero-touch/ https://bayton.org/docs/enterprise-mobility/android/what-is-android-zero-touch-enrolment/ Contains 4 services: GcmJobService, GservicesChangedObserverService, AppMeasurementService and FirebaseInstanceIdService. GCM(Google Cloud Messaging) was the backend for Android's push messaging system 2012-2019, after which it was replaced by FCM(Firebase Cloud Messaging). I assume the GCM/Firebase connection is for Push notification functionality. The MANAGE_CARRIER_OEM_UNLOCK_STATE permission hints at doing something with carrier locks? Needs Google Play Services to function?", safety: "caution" },
+ { pkg: "com.google.android.apps.wallpaper", label: "Wallpaper", description: "Google Wallpapers (https://play.google.com/store/apps/details?id=com.google.android.apps.wallpaper)", safety: "safe" },
+ { pkg: "com.google.android.apps.wellbeing", label: "Wellbeing", description: "Digital Wellbeing (https://play.google.com/store/apps/details?id=com.google.android.apps.wellbeing)", safety: "safe" },
{ pkg: "com.google.android.apps.youtube.creator", label: "Creator", description: "YouTube Studio (https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.creator)", safety: "safe" },
{ pkg: "com.google.android.apps.youtube.gaming", label: "Gaming", description: "YouTube Gaming -(discontinued in March 2019, features integrated in main youtube app)", safety: "safe" },
{ pkg: "com.google.android.apps.youtube.kids", label: "Kids", description: "YouTube Kids (https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.kids)", safety: "safe" },
- { pkg: "com.google.android.apps.youtube.mango", label: "Mango", description: "YouTube Go (https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.mango) Lite version of the YouTube app. Shutdown by Google in august 2022. https://support.google.com/youtube/thread/162222567/youtube-go-is-going-away-in-august-of-this-year", safety: "safe" },
{ pkg: "com.google.android.apps.youtube.music", label: "Music", description: "YouTube Music (https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.music)", safety: "safe" },
{ pkg: "com.google.android.apps.youtube.vr", label: "Vr", description: "YouTube VR (https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.vr)", safety: "safe" },
- { pkg: "com.google.android.as", label: "As", description: "Android System Intelligence (previously Device Personalization Services) (https://play.google.com/store/apps/details?id=com.google.android.as) Runs in the background. \"Enables intelligent features across Android\", like: Live Caption, Screen Attention, Improved Copy-Paste, App Predictions in the launcher, Notification Smart Actions, Smart Text Selection and Linkifying text in apps. Also known as device learning, e.g. enhanced keyboard auto suggestions, keeps the screen on when looking at it (with help of the camera), smart replies. https://milaq.net/android-bloatware", safety: "safe" },
- { pkg: "com.google.android.as.oss", label: "Oss", description: "Private Compute Services. On-device behavior analysis Enables live caption, music recognition and smart replies. Seems to be a dependency of System Intelligence. https://play.google.com/store/apps/details?id=com.google.android.as.oss https://milaq.net/android-bloatware", safety: "safe" },
- { pkg: "com.google.android.backup", label: "Backup", description: "Allows Android apps to back up their data on Google servers. (On Android 4.2)", safety: "safe" },
{ pkg: "com.google.android.backuptransport", label: "Backuptransport", description: "Allows Android apps to back up their data on Google servers.", safety: "caution" },
{ pkg: "com.google.android.calculator", label: "Calculator", description: "Google Calculator (https://play.google.com/store/apps/details?id=com.google.android.calculator)", safety: "safe" },
{ pkg: "com.google.android.calendar", label: "Calendar", description: "Google Calendar (https://play.google.com/store/apps/details?id=com.google.android.calendar)", safety: "safe" },
- { pkg: "com.google.android.configupdater", label: "Configupdater", description: "Config Update Intents used to provide unbundled updates of system data. All require the UPDATE_CONFIG permission. Updates: - system wide certificate pins for TLS connections. - System wide Intent firewall. - List of permium SMS short codes. - List of carrier provisioning URLs. - Set of trusted logs used for Certificate Transparency support for TLS connections language detection model file - Smart selection model file - Conversation actions model file - Network watchlist config file - Intent action indicating that the updated carrier id config is available - The emergency number database into the devices - An integer to indicate the numeric version of the new data -- devices should only install if the update version is newer than the current one - Hash of the database, which is encoded by base-16 SHA512. https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/ConfigUpdate.java", safety: "caution" },
- { pkg: "com.google.android.contactkeys", label: "Contactkeys", description: "Android System Key Verifier is a system service for verifying interlocutors using messengers with end-to-end encryption. Its job is to verify end-to-end encryption keys across chat apps. It has no internet permissions and performs local key comparisons only. It doesn’t access your chats, contacts, or files. It doesn’t run in the background unless called by another apps https://grouphowto.com/com-google-android-contactkeys/ https://developers.google.com/android/binary_transparency/google1p/overview", safety: "caution" },
- { pkg: "com.google.android.contacts", label: "Contacts", description: "Google Contacts (https://play.google.com/store/apps/details?id=com.google.android.contacts) Occasionally runs in the background.", safety: "caution" },
- { pkg: "com.google.android.deskclock", label: "Deskclock", description: "Google clock app (https://play.google.com/store/apps/details?id=com.google.android.deskclock) WARNING: on some phones, removing this makes it so alarms and notifications only vibrate and don't make any sound (via any installed app), and makes the 'Alarm' section unavailable in 'Settings > Sound & Vibration'.", safety: "caution" },
- { pkg: "com.google.android.dialer", label: "Dialer", description: "Google Dialer (https://play.google.com/store/apps/details?id=com.google.android.dialer) Default dialer on some phones. Google Analytics are embedded in the app, assume everything is datamined. https://www.virustotal.com/gui/file/a978d90f27d5947dca33ed59b73bd8efbac67253f9ef7a343beb9197c8913d1a/details", safety: "caution" },
- { pkg: "com.google.android.email", label: "Email", description: "AOSP Mail client Newer versions of AOSP Mail are renamed to com.android.email and Gmail was migrated to com.google.android.gm", safety: "safe" },
- { pkg: "com.google.android.feedback", label: "Feedback", description: "This is the package that sends crash-report feedback to the Play Store? The crash pop-up still happens with this disabled. Doesn't seem to run on its own. Has permission to access system logs and package usage stats. Only connects to 4 Google domains. App developers likely have to go through the Play Store to access any sent data. https://beta.pithus.org/report/7041823ff880c207ed2ddacdc92e5ed803b1eb105e4483696d2152bea44903aa", safety: "safe" },
- { pkg: "com.google.android.gm", label: "Gm", description: "Gmail (https://play.google.com/store/apps/details?id=com.google.android.gm)", safety: "safe" },
- { pkg: "com.google.android.gm.exchange", label: "Exchange", description: "Microsoft Exchange ActiveSync support for Gmail. Now part of the Gmail (com.google.android.gm) app.", safety: "safe" },
- { pkg: "com.google.android.gm.lite", label: "Lite", description: "Gmail Go (https://play.google.com/store/apps/details?id=com.google.android.gm.lite) Lite version of the Gmail app (hah! Because the base one is too bloated?). Don't use this app", safety: "safe" },
- { pkg: "com.google.android.gms", label: "Gms", description: "Google Play Services GMS = Google Mobile Services. It is a layer that sits on top of the OS and provides a lot of proprietary Google APIs, giving apps access to various Google Services, such as:\"fused\"-location (internet and GPS chip), QR Code scanner, 2FA, G-Drive storage, Firebase API, Cloud Messaging, etc... If you remove it, all the apps relying on it will either: - detect the lack of Play-Services and refuse to run - detect the lack of Play-Services but allow you to run (improperly) by dismissing an annoying popup Removing Google Play Services can boot-loop some devices, so be careful. Disabling this package will improve battery life significantly, as it always runs in the background. IMPORTANT: You need to uncheck\"Find My Device\" from the\"Device admin apps\" settings panel to be able to disable this package. Search\"admin\" in the Settings-app search bar, or go to the Security category.", safety: "caution" },
- { pkg: "com.google.android.gms.location.history", label: "History", description: "Google Location History This app has nothing in the code. Only png logo google and name.", safety: "safe" },
- { pkg: "com.google.android.gms.policy_sidecar_aps", label: "Policy_sidecar_aps", description: "Not sure what purpose it has, but it gets some network and phone data and connects to some Google domains, but never on its own; it has no permissions and never runs on its own, it likely exists as a helper package for other Google services. Doesn't seem to exist in newer versions of Android; it's not in Android 11, but it is in 9. Needs a Google Account and Google Play Services to work. Given its name it could be related to Android auto? Seems safe to remove, noticed no breakage (didn't test Android Auto tho). https://beta.pithus.org/report/60835b97f38d9e64d4f554a73dab71c892153486a8e0fd81461c3d85359d9fae", safety: "caution" },
- { pkg: "com.google.android.gms.supervision", label: "Supervision", description: "Family Link parental controls It has something to Family Link parental controls. Introduced in android 13. https://play.google.com/store/apps/details?id=com.google.android.gms.supervision", safety: "safe" },
- { pkg: "com.google.android.googlequicksearchbox", label: "Googlequicksearchbox", description: "Google Search box (https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox) Runs in the background. Pointless. If you need a shortcut to Google on your homescreen just use a web-browser shortcut. Does also remove the Google Sound Search widget, but you can get that functionality from an app like Shazam, that additionally doesn't run in the background constantly like this package does. This app also powers the Google Discover page (the news 'widget' when you go to the left of the home screen) and the app symbol called 'Google'. WARNING: disabling this package also breaks the Ok Google Search functionality as well as Circle to Search functionality.", safety: "caution" },
- { pkg: "com.google.android.gsf", label: "Gsf", description: "Google Services Framework Supports the Play Services application in application updates, user authentication, location services, user searches & more. https://android.stackexchange.com/questions/216176/what-is-the-exact-functionality-of-google-play-services-google-services-framew https://stackoverflow.com/questions/37337448/what-is-the-difference-between-google-service-frameworkgsfgoogle-mobile-servi Same recommendation as com.google.android.gms except I've never seen a bootloop because of deleting this package.", safety: "caution" },
- { pkg: "com.google.android.gsf.login", label: "Login", description: "Support for managing Google accounts. Safe to remove if you don't use a Google account.", safety: "caution" },
- { pkg: "com.google.android.health.connect.backuprestore", label: "Backuprestore", description: "Health Connect for Android backup/restore.", safety: "caution" },
- { pkg: "com.google.android.healthconnect.controller", label: "Controller", description: "Health Connect by Android gives you a simple way to share data between your health, fitness, and wellbeing apps without compromising on privacy. Once you've downloaded Health Connect, you can access it through your settings by going to Settings > Apps > Health Connect, or from your Quick Settings menu. https://play.google.com/store/apps/details?id=com.google.android.apps.healthdata", safety: "caution" },
- { pkg: "com.google.android.ims", label: "Ims", description: "Carrier Services (https://play.google.com/store/apps/details?id=com.google.android.ims) Runs in the background. Play store description claims power savings in addition to the features, but I don't see how that could be the case. IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling). Safe to remove.", safety: "caution" },
- { pkg: "com.google.android.inputmethod.japanese", label: "Japanese", description: "Google Keyboard + Japanese characters (https://play.google.com/store/apps/details?id=com.google.android.inputmethod.japanese)", safety: "caution" },
- { pkg: "com.google.android.inputmethod.korean", label: "Korean", description: "Google Keyboard + Korean characters (https://play.google.com/store/apps/details?id=com.google.android.inputmethod.korean)", safety: "caution" },
- { pkg: "com.google.android.inputmethod.latin", label: "Latin", description: "Gboard – the Google Keyboard (https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin) Sometimes the only keyboard app on a phone; Make sure you have another installed before you disable.", safety: "caution" },
- { pkg: "com.google.android.inputmethod.pinyin", label: "Pinyin", description: "Google Keyboard + Pinyin (Chinese) characters (https://play.google.com/store/apps/details?id=com.google.android.inputmethod.pinyin)", safety: "caution" },
- { pkg: "com.google.android.instantapps.supervisor", label: "Supervisor", description: "Lets you try new games directly on Google Play. https://www.zdnet.com/article/googles-instant-apps-goes-live-now-you-can-try-android-apps-before-installing-them/", safety: "safe" },
+ { pkg: "com.google.android.configupdater", label: "Configupdater", description: "ConfigUpdater", safety: "caution" },
+ { pkg: "com.google.android.deskclock", label: "Deskclock", description: "Google clock app (https://play.google.com/store/apps/details?id=com.google.android.deskclock)", safety: "safe" },
+ { pkg: "com.google.android.feedback", label: "Feedback", description: "This is the package that sends crash-report feedback to the Play Store? The crash pop-up still happens with...", safety: "safe" },
+ { pkg: "com.google.android.googlequicksearchbox", label: "Googlequicksearchbox", description: "Google Search box (https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox)", safety: "safe" },
+ { pkg: "com.google.android.instantapps.supervisor", label: "Supervisor", description: "Lets you try new games directly on Google Play.", safety: "safe" },
{ pkg: "com.google.android.keep", label: "Keep", description: "Google Keep (https://play.google.com/store/apps/details?id=com.google.android.keep)", safety: "safe" },
- { pkg: "com.google.android.launcher", label: "Launcher", description: "Google Now Launcher (https://play.google.com/store/apps/details?id=com.google.android.launcher) DO NOT REMOVE THIS IF YOU DON'T HAVE ANOTHER LAUNCHER INSTALLED.", safety: "caution" },
- { pkg: "com.google.android.location", label: "Location", description: "Handles location services on older devices. On newer ones Google location services is part of Google Play Services and Android location service is provided by com.android.location.fused or com.android.location.", safety: "caution" },
- { pkg: "com.google.android.markup", label: "Markup", description: "Google Markup app made for modifying pictures, shipped by default on every Pie+ device. Removes the button to quickly edit screenshots once taken.", safety: "caution" },
- { pkg: "com.google.android.marvin.talkback", label: "Talkback", description: "Android Accessibility Suite (https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback) Helps blind and visually impaired users. WARNING: Causes com.motorola.dynamicvolume to not display individual apps and their respective volumes when volume button pressed. Seems to revert to an older (maybe testing) version of the dynamicvolume pkg?", safety: "caution" },
+ { pkg: "com.google.android.markup", label: "Markup", description: "Google Markup app made for modifying pictures, shipped by default on every Pie+ device.", safety: "safe" },
+ { pkg: "com.google.android.marvin.talkback", label: "Talkback", description: "Android Accessibility Suite (https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback)", safety: "safe" },
{ pkg: "com.google.android.music", label: "Music", description: "Google Play Music (discontinued) (https://play.google.com/store/apps/details?id=com.google.android.music)", safety: "safe" },
{ pkg: "com.google.android.onetimeinitializer", label: "Onetimeinitializer", description: "Provides first time setup, safe to remove.", safety: "safe" },
- { pkg: "com.google.android.overlay.gmsconfig", label: "Gmsconfig", description: "Useless configurations about webview, wifi and bluetooth to scan for better location. Everything works without it. WARNING: causes the Galaxy App to force-close after a few seconds on a Samsung N960F running Android Q.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.asi", label: "Asi", description: "it's another component of Android System Intelligence (previously Device Personalization Services)", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.common", label: "Common", description: "If you delete this package, you won't be able to log in to your Google account on a Google app. But if you don't need to log in to a Google account, you can safely remove this.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.comms", label: "Comms", description: "Useless configurations dialer, sms, contacts Google(GApps) It may break PackageInstaller.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.geotz", label: "Geotz", description: "Provides Geolocation Time Zone detection. and it's used by (com.google.android.overlay.gmsconfig.common)? No effects after remove.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.gsa", label: "Gsa", description: "configures default assistant? And have config to allow disabling assist disclosure? I think it doesn't affect anything. Safe to remove if you removed (com.google.android.googlequicksearchbox).", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.personalsafety", label: "Personalsafety", description: "Not needed for (com.google.android.apps.safetyhub).", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.photos", label: "Photos", description: "WARNING: Uninstalling it makes it impossible to unlock Android 15, Blackview Tab 60 WiFi!", safety: "keep" },
- { pkg: "com.google.android.overlay.gmsconfig.searchlauncherqs", label: "Searchlauncherqs", description: "WARNING: Uninstalling it breaks the Settings app for Android 15, Blackview Tab 60 WiFi!", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.searchselector", label: "Searchselector", description: "Removal will crash most apps like settings, clock, firefox, github, termux etc.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.ww", label: "Ww", description: "useless unused overlay gmsconfig to family link.", safety: "caution" },
- { pkg: "com.google.android.overlay.modules.cellbroadcastreceiver", label: "Cellbroadcastreceiver", description: "Overlay (theme/notification) module for com.google.android.cellbroadcastreceiver", safety: "caution", deps: ["com.google.android.cellbroadcastreceiver"] },
- { pkg: "com.google.android.partnersetup", label: "Partnersetup", description: "Google Partner Setup Occasionally runs in the background. Based on an unclear explanation online:\"Enables applications to interact with your Google account/apps, for example: adding a Google Calendar event from a To-Do app.\" Probably safe to disable; haven't noticed any consequences of disabling from weeks of use.", safety: "caution" },
- { pkg: "com.google.android.pixel.setupwizard", label: "Setupwizard", description: "It's the basic configuration setup guides you through the basics of setting up Google features on your device. The second package is only present on Pixel phones. Breaks the Google Play System update page found on\"Security & privacy\", for whatever reason...", safety: "caution" },
{ pkg: "com.google.android.play.games", label: "Games", description: "Google Play Games (https://play.google.com/store/apps/details?id=com.google.android.play.games)", safety: "safe" },
- { pkg: "com.google.android.projection.gearhead", label: "Gearhead", description: "Android Auto (https://play.google.com/store/apps/details?id=com.google.android.projection.gearhead) No direct replacement appears to exist.", safety: "caution" },
- { pkg: "com.google.android.setupwizard", label: "Setupwizard", description: "Android Setup The factory reset device basic configuration setup guides you through the basics of setting up your device. WARNING: Oddly enough, disabling/uninstalling this package will break mobile identity management which could be used by apps (for example your bank) to authenticate you. Also breaks syncing of Google accounts setup after this package is removed. See https://en.wikipedia.org/wiki/Mobile_identity_management for Mobile Identity Management.", safety: "caution" },
- { pkg: "com.google.android.setupwizard.a_overlay", label: "A_overlay", description: "Overlay for setupwizard?", safety: "caution" },
- { pkg: "com.google.android.soundpicker", label: "Soundpicker", description: "Google Sounds. Provides notification, alarm, and ringtone sounds, will be set to default sounds (and cannot be changed) if removed, unless you already have another media select service.", safety: "caution" },
+ { pkg: "com.google.android.printservice.recommendation", label: "Recommendation", description: "I think this has to do with recommending a printservice app you can get from the Play store.", safety: "safe" },
+ { pkg: "com.google.android.projection.gearhead", label: "Gearhead", description: "Android Auto (https://play.google.com/store/apps/details?id=com.google.android.projection.gearhead)", safety: "safe" },
+ { pkg: "com.google.android.pixel.setupwizard", label: "Setupwizard", description: "It's the basic configuration setup guides you through the basics of setting up Google features on your device.", safety: "safe" },
+ { pkg: "com.google.android.soundpicker", label: "Soundpicker", description: "Google Sounds. Removable if you already have another media select service.", safety: "safe" },
{ pkg: "com.google.android.street", label: "Street", description: "Google Street View (https://play.google.com/store/apps/details?id=com.google.android.street)", safety: "safe" },
{ pkg: "com.google.android.syncadapters.bookmarks", label: "Bookmarks", description: "Synchronisation for Google Chrome bookmarks", safety: "safe" },
{ pkg: "com.google.android.syncadapters.calendar", label: "Calendar", description: "Synchronisation for Google Calendar.", safety: "caution" },
{ pkg: "com.google.android.syncadapters.contacts", label: "Contacts", description: "Synchronisation for Google Contacts.", safety: "caution" },
- { pkg: "com.google.android.tag", label: "Tag", description: "Support for NFC tags interactions (5 permissions : Contacts/Phone On by default). NFC Tags are for instance used in bus to let you validate your transport card with your phone Other example: https://en.wikipedia.org/wiki/TecTile You will still be able to connect to an NFC device (e.g a speaker) if removed.", safety: "safe" },
{ pkg: "com.google.android.talk", label: "Talk", description: "Google Hangouts (https://play.google.com/store/apps/details?id=com.google.android.talk)", safety: "safe" },
- { pkg: "com.google.android.tts", label: "Tts", description: "Speech Recognition and Synthesis from Google (https://play.google.com/store/apps/details?id=com.google.android.tts) Default Text To Speech (TTS) engine on most of Android devices. It enables apps to convert text into voice. Pithus analysis (2024-03-03): https://beta.pithus.org/report/f0a2303e1c1bd049bf1cdc5a3454dfe19b2aaf26008662c7a307aaec2538558b Note: Many navigation and health/sports apps rely on a TTS engine to provide speech services. Open-source TTS engines available on Android exists but, as of the end of 2022, there is only RHVoice (https://f-droid.org/en/packages/com.github.olga_yakovleva.rhvoice.android/) and it doesn't support a lot of languages. Mimic3 (https://mycroft.ai/mimic-3/) is probably the future of IoT open-source TTS engine but there is no Android support yet", safety: "caution" },
- { pkg: "com.google.android.turboadapter", label: "Turboadapter", description: "Device Health Services Adapter Another app for Device Health Services(discontinued)", safety: "safe" },
+ { pkg: "com.google.android.tts", label: "Tts", description: "Speech Services by Google (https://play.google.com/store/apps/details?id=com.google.android.tts)", safety: "caution" },
{ pkg: "com.google.android.tv.remote", label: "Remote", description: "Android TV remote control (https://play.google.com/store/apps/details?id=com.google.android.tv.remote)", safety: "safe" },
- { pkg: "com.google.android.tvlauncher", label: "Tvlauncher", description: "Android TV Home, on some devices, removing this causes the device to restore default settings on the next power on. https://play.google.com/store/apps/details?id=com.google.android.tvlauncher&hl=en&gl=US https://www.clrn.org/how-to-disable-google-tv-on-android/", safety: "caution" },
{ pkg: "com.google.android.videoeditor", label: "Videoeditor", description: "Google Movie Studio (discontinued)", safety: "safe" },
- { pkg: "com.google.android.videos", label: "Videos", description: "Google TV (previously Google Play Movies & TV) (https://play.google.com/store/apps/details?id=com.google.android.videos)", safety: "safe" },
+ { pkg: "com.google.android.videos", label: "Videos", description: "Google TV (previously Google Play Movies & TV) (https://play.google.com/store/apps/details?id=com.google.an...", safety: "safe" },
{ pkg: "com.google.android.voicesearch", label: "Voicesearch", description: "Google Voice Search (Speech-To-Text)", safety: "safe" },
{ pkg: "com.google.android.vr.home", label: "Home", description: "Daydream (VR stuff) (https://play.google.com/store/apps/details?id=com.google.android.vr.home)", safety: "safe" },
- { pkg: "com.google.android.vr.inputmethod", label: "Inputmethod", description: "Daydream virtual keyboard (VR stuff) (https://play.google.com/store/apps/details?id=com.google.android.vr.inputmethod)", safety: "safe" },
+ { pkg: "com.google.android.vr.inputmethod", label: "Inputmethod", description: "Daydream virtual keyboard (VR stuff) (https://play.google.com/store/apps/details?id=com.google.android.vr.i...", safety: "safe" },
{ pkg: "com.google.android.wearable.app", label: "App", description: "Wear OS Smartwatch (https://play.google.com/store/apps/details?id=com.google.android.wearable.app)", safety: "safe" },
- { pkg: "com.google.android.webview", label: "Webview", description: "Android System WebView (https://play.google.com/store/apps/details?id=com.google.android.webview) enables Android apps to display web content within the app itself, based on Chrome. If you delete WebView, make sure to install a replacement. Many third-party apps, such as banks, VPNs, GitHub, Discord and Reddit use web-based content and will crash without it. It can cause notifications problems", safety: "caution" },
- { pkg: "com.google.android.wifi.dialog", label: "Dialog", description: "Wi-Fi dialog. App to launch user dialogs requested by the Wi-Fi service is stored here. Contains the Activity the dialogs are launched from. https://source.android.com/docs/core/ota/modular-system/wifi https://android.googlesource.com/platform/packages/apps/Settings/+/refs/heads/main/src/com/android/settings/wifi/WifiDialog.java https://android.googlesource.com/platform/packages/apps/Settings/+/refs/heads/main/src/com/android/settings/wifi/WifiDialog2.kt", safety: "caution" },
- { pkg: "com.google.android.wifi.resources", label: "Resources", description: "Wi-Fi Service Resources. Overlay APK manifest is stored here. Extracts Wi-Fi configs. https://source.android.com/docs/core/ota/modular-system/wifi", safety: "keep" },
- { pkg: "com.google.android.youtube", label: "Youtube", description: "YouTube (https://play.google.com/store/apps/details?id=com.google.android.youtube)", safety: "safe" },
- { pkg: "com.google.ar.core", label: "Core", description: "Google Play Services for AR (Augmented Reality) (https://play.google.com/store/apps/details?id=com.google.ar.core) Note: Disabling it can mess with apps that use it, like Pokemon GO. https://beta.pithus.org/report/99ea324529f950fe351d22724f8b894cce19c16607fcc9c2855bc906b1f8e644", safety: "safe" },
+ { pkg: "com.google.ar.core", label: "Core", description: "Google Play Services for AR (Augmented Reality) (https://play.google.com/store/apps/details?id=com.google.a...", safety: "safe" },
{ pkg: "com.google.ar.lens", label: "Lens", description: "Google Lens (for AR too) (https://play.google.com/store/apps/details?id=com.google.ar.lens)", safety: "safe" },
- { pkg: "com.google.audio.hearing.visualization.accessibility.scribe", label: "Scribe", description: "Live Transcribe & Sound Notifications (https://play.google.com/store/apps/details?id=com.google.audio.hearing.visualization.accessibility.scribe) Provides push notifications for critical sounds around you. This feature can be helpful for people with hearing loss. https://blog.google/products/android/new-sound-notifications-on-android/ Works offline Provides text-to-speech for most apps, find a replacement before uninstalling", safety: "caution" },
{ pkg: "com.google.chromeremotedesktop", label: "Chromeremotedesktop", description: "Chrome Remote Desktop (https://play.google.com/store/apps/details?id=com.google.chromeremotedesktop)", safety: "safe" },
{ pkg: "com.google.earth", label: "Earth", description: "Google Earth (https://play.google.com/store/apps/details?id=com.google.earth)", safety: "safe" },
- { pkg: "com.google.mainline.telemetry", label: "Telemetry", description: "Contains data on which versions of modules are installed. Google Play uses this data to determine if updates are available for the modules, and to show which security patch is installed. This module doesn’t contain active code and has no functionality on its own. Anyway I wont trust it when adservices are also in mainline. https://www.xda-developers.com/android-project-mainline-modules-explanation/ https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/27#note_410012436", safety: "caution" },
{ pkg: "com.google.marvin.talkback", label: "Talkback", description: "Android Accessibility Suite (https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback)", safety: "safe" },
- { pkg: "com.google.samples.apps.cardboarddemo", label: "Cardboarddemo", description: "Google Cardboard (VR stuff) (https://play.google.com/store/apps/details?id=com.google.samples.apps.cardboarddemo)", safety: "safe" },
+ { pkg: "com.google.samples.apps.cardboarddemo", label: "Cardboarddemo", description: "Google Cardboard (VR stuff) (https://play.google.com/store/apps/details?id=com.google.samples.apps.cardboar...", safety: "safe" },
{ pkg: "com.google.tango.measure", label: "Measure", description: "Google Measure (https://play.google.com/store/apps/details?id=com.google.tango.measure)", safety: "safe" },
{ pkg: "com.google.vr.cyclops", label: "Cyclops", description: "Google Cardboard Camera (VR stuff) (https://play.google.com/store/apps/details?id=com.google.vr.cyclops)", safety: "safe" },
{ pkg: "com.google.vr.expeditions", label: "Expeditions", description: "Google Expedition (VR stuff) (https://play.google.com/store/apps/details?id=com.google.vr.expeditions)", safety: "safe" },
{ pkg: "com.google.vr.vrcore", label: "Vrcore", description: "Google VR services (https://play.google.com/store/apps/details?id=com.google.vr.vrcore)", safety: "caution" },
- { pkg: "com.google.zxing.client.android", label: "Android", description: "Google Barcode Scanner (discontinued) (https://play.google.com/store/apps/details?id=com.google.zxing.client.android)", safety: "safe" },
+ { pkg: "com.google.zxing.client.android", label: "Android", description: "Google Barcode Scanner (discontinued) (https://play.google.com/store/apps/details?id=com.google.zxing.clien...", safety: "safe" },
+ { pkg: "com.google.android.apps.maps", label: "Maps", description: "Google Maps (https://play.google.com/store/apps/details?id=com.google.android.apps.maps)", safety: "safe" },
+ { pkg: "com.google.android.apps.nexuslauncher", label: "Nexuslauncher", description: "Pixel Launcher (https://play.google.com/store/apps/details?id=com.google.android.apps.nexuslauncher)", safety: "caution" },
+ { pkg: "com.google.android.apps.turbo", label: "Turbo", description: "Device Health Services (discontinued?)", safety: "caution" },
+ { pkg: "com.google.android.apps.work.oobconfig", label: "Oobconfig", description: "Device Setup", safety: "caution" },
+ { pkg: "com.google.android.carrierconfig", label: "Carrierconfig", description: "Same as com.android.carrierconfig? Here's that description:", safety: "caution" },
+ { pkg: "com.google.android.contacts", label: "Contacts", description: "Google Contacts (https://play.google.com/store/apps/details?id=com.google.android.contacts)", safety: "caution" },
+ { pkg: "com.google.android.dialer", label: "Dialer", description: "Google Dialer (https://play.google.com/store/apps/details?id=com.google.android.dialer)", safety: "caution" },
+ { pkg: "com.google.android.documentsui", label: "Documentsui", description: "Files", safety: "caution" },
+ { pkg: "com.google.android.ext.shared", label: "Shared", description: "Google shared library (used to share common code between apps)", safety: "caution" },
+ { pkg: "com.google.android.GoogleCamera", label: "Googlecamera", description: "Google Camera (https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera)", safety: "caution" },
+ { pkg: "com.google.android.gms", label: "Gms", description: "Google Play Services", safety: "caution" },
+ { pkg: "com.google.android.gms.location.history", label: "History", description: "Google Location history", safety: "safe" },
+ { pkg: "com.google.android.gms.policy_sidecar_aps", label: "Policy Sidecar Aps", description: "Not sure what purpose it has, but it gets some network and phone data and connects to some Google domains, ...", safety: "caution" },
+ { pkg: "com.google.android.gsf", label: "Gsf", description: "Google Services Framework", safety: "caution" },
+ { pkg: "com.google.android.gsf.login", label: "Login", description: "Support for managing Google accounts.", safety: "caution" },
+ { pkg: "com.google.android.location", label: "Location", description: "Handles location services on older devices. On newer ones Google location services is part of Google Play S...", safety: "caution" },
+ { pkg: "com.google.android.partnersetup", label: "Partnersetup", description: "Google Partner Setup", safety: "safe" },
+ { pkg: "com.google.android.webview", label: "Webview", description: "Android System WebView (https://play.google.com/store/apps/details?id=com.google.android.webview)", safety: "caution" },
+ { pkg: "com.google.android.launcher", label: "Launcher", description: "Google Now Launcher (https://play.google.com/store/apps/details?id=com.google.android.launcher)", safety: "caution" },
+ { pkg: "com.google.android.gm", label: "Gm", description: "Gmail (https://play.google.com/store/apps/details?id=com.google.android.gm)", safety: "safe" },
+ { pkg: "com.google.android.gm.lite", label: "Lite", description: "Gmail Go (https://play.google.com/store/apps/details?id=com.google.android.gm.lite)", safety: "safe" },
+ { pkg: "com.google.android.ims", label: "Ims", description: "Carrier Services (https://play.google.com/store/apps/details?id=com.google.android.ims)", safety: "caution" },
+ { pkg: "com.google.audio.hearing.visualization.accessibility.scribe", label: "Scribe", description: "Live Transcribe & Sound Notifications (https://play.google.com/store/apps/details?id=com.google.audio.heari...", safety: "safe" },
+ { pkg: "com.android.vending", label: "Vending", description: "Google Play Store", safety: "caution" },
+ { pkg: "com.google.android.inputmethod.latin", label: "Latin", description: "Gboard \u2013 the Google Keyboard (https://play.google.com/store/apps/details?id=com.google.android.inputmethod....", safety: "caution" },
+ { pkg: "com.google.android.apps.inputmethod.hindi", label: "Hindi", description: "Google Keyboard + Hinndi characters (https://play.google.com/store/apps/details?id=com.google.android.apps....", safety: "caution" },
+ { pkg: "com.google.android.inputmethod.japanese", label: "Japanese", description: "Google Keyboard + Japanese characters (https://play.google.com/store/apps/details?id=com.google.android.inp...", safety: "caution" },
+ { pkg: "com.google.android.inputmethod.korean", label: "Korean", description: "Google Keyboard + Korean characters (https://play.google.com/store/apps/details?id=com.google.android.input...", safety: "caution" },
+ { pkg: "com.google.android.inputmethod.pinyin", label: "Pinyin", description: "Google Keyboard + Pinyin (chinese) characters (https://play.google.com/store/apps/details?id=com.google.and...", safety: "caution" },
+ { pkg: "com.google.android.captiveportallogin", label: "Captiveportallogin", description: "Support for captive portal : https://en.wikipedia.org/wiki/Captive_portal", safety: "keep" },
+ { pkg: "com.google.android.modulemetadata", label: "Modulemetadata", description: "Module that contains metadata about the list of modules on the device. And that\u2019s about it.", safety: "keep" },
+ { pkg: "com.google.android.ext.services", label: "Services", description: "The ExtServices module updates framework components for core OS functionality such as notification ranking,...", safety: "keep" },
+ { pkg: "com.google.android.overlay.modules.ext.services", label: "Services", description: "Android System Theme pack", safety: "caution" },
+ { pkg: "com.google.android.networkstack", label: "Networkstack", description: "Network Stack Components", safety: "keep" },
+ { pkg: "com.google.android.networkstack.permissionconfig", label: "Permissionconfig", description: "Network Stack Permission Configuration", safety: "keep" },
+ { pkg: "com.google.android.packageinstaller", label: "Packageinstaller", description: "Google package installer. Seems to replace com.android.packageinstaller on newer phones. It is strangely no...", safety: "keep" },
+ { pkg: "com.google.android.packageinstaller.a_overlay", label: "A Overlay", description: "Gives ability to install, update or remove applications on the device.", safety: "keep" },
+ { pkg: "com.google.android.permissioncontroller", label: "Permissioncontroller", description: "Permission controller", safety: "keep" },
+ { pkg: "com.google.android.overlay.modules.permissioncontroller", label: "Permissioncontroller", description: "Permission controller Theme pack", safety: "caution" },
+ { pkg: "com.google.android.overlay.modules.permissioncontroller.forframework", label: "Forframework", description: "Android System Theme pack", safety: "caution" },
+ { pkg: "com.android.hotwordenrollment.okgoogle", label: "Okgoogle", description: "\"OK Google\" detection service.", safety: "safe" },
+ { pkg: "com.google.android.apps.inbox", label: "Inbox", description: "Inbox by Gmail (Discontinued)", safety: "safe" },
+ { pkg: "com.google.android.apps.navlite", label: "Navlite", description: "Google Maps GPS (https://play.google.com/store/apps/details?id=com.google.android.apps.navlite)", safety: "safe" },
+ { pkg: "com.google.android.backup", label: "Backup", description: "Allows Android apps to back up their data on Google servers. (On Android 4.2)", safety: "safe" },
+ { pkg: "com.google.android.setupwizard", label: "Setupwizard", description: "Android Setup", safety: "caution" },
+ { pkg: "com.google.android.setupwizard.a_overlay", label: "A Overlay", description: "Overlay for setupwizard?", safety: "safe" },
+ { pkg: "com.google.android.youtube", label: "Youtube", description: "YouTube (https://play.google.com/store/apps/details?id=com.google.android.youtube)", safety: "safe" },
+ { pkg: "com.google.android.apps.youtube.mango", label: "Mango", description: "YouTube Go (https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.mango)", safety: "safe" },
+ { pkg: "com.google.android.email", label: "Email", description: "AOSP Mail client", safety: "safe" },
+ { pkg: "com.google.android.tag", label: "Tag", description: "Support for NFC tags interactions (5 permissions : Contacts/Phone On by default).", safety: "safe" },
+ { pkg: "com.google.android.apps.nbu.paisa.user", label: "User", description: "Google Pay (https://play.google.com/store/apps/details?id=com.google.android.apps.nbu.paisa.user)", safety: "safe" },
+ { pkg: "com.android.soundpicker", label: "Soundpicker", description: "Google Sounds. Needed to pick up a phone ringtone. No weird permissions.", safety: "caution" },
+ { pkg: "com.google.android.overlay.modules.cellbroadcastreceiver", label: "Cellbroadcastreceiver", description: "Overlay (theme/notification) module for com.google.android.cellbroadcastreceiver", safety: "caution", deps: ["com.google.android.cellbroadcastreceiver"] },
+ { pkg: "com.google.android.apps.safetyhub", label: "Safetyhub", description: "Personal Safety (https://play.google.com/store/apps/details?id=com.google.android.apps.safetyhub)", safety: "caution" },
],
},
{
name: "Samsung",
packages: [
- { pkg: "com.samsung.InputEventApp", label: "InputEventApp", description: "Hidden testing things also no activities", safety: "safe" },
- { pkg: "com.samsung.SMT", label: "SMT", description: "Samsung TTS (Text-to-speech) Works with applications such as S Voice; translation apps, GPS that require Text-To-Speech (TTS) functionality and reads back text https://galaxystore.samsung.com/detail/com.samsung.SMT. WARNING: SOME VERSIONS OF THIS APP ARE VULNERABLE TO PRIVILEGE ESCALATION ATTACKS! It can allow arbitrary RCE as system (UID 1000). Identifier: CVE-2019-16253. Source: https://github.com/flankerhqd/vendor-android-cves/tree/master/SMT-CVE-2019-16253", safety: "caution" },
- { pkg: "com.samsung.SMT.lang_en_us_f00", label: "Lang_en_us_f00", description: "Voice pack for Samsung TTS in English (United States).", safety: "caution" },
- { pkg: "com.samsung.SMT.lang_es_mx_f00", label: "Lang_es_mx_f00", description: "Voice pack for Samsung TTS in Spanish (Mexico).", safety: "caution" },
- { pkg: "com.samsung.SMT.lang_pt_br_f00", label: "Lang_pt_br_f00", description: "Voice pack for Samsung TTS in Portuguese (Brazil).", safety: "caution" },
- { pkg: "com.samsung.aasaservice", label: "Aasaservice", description: "Sometimes, eat a LOT of battery (according to some reddit users) Security policy apps (kind of things which prevents installation of applications)", safety: "safe" },
- { pkg: "com.samsung.accessibility", label: "Accessibility", description: "Accessibility settings (useful for apps creating virtual buttons such as a pie-menu) Weirdly, removing this package can cause a bootloop if you set a lock code on your phone. Also used for clearing system cache from apps such as SD-Maid.", safety: "caution" },
- { pkg: "com.samsung.accessory", label: "Accessory", description: "Samsung Accessory Service (https://play.google.com/store/apps/details?id=com.samsung.accessory) Lets you transfer data between your Samsung phone and Samsung accessories (GALAXY Gear/Watch...)", safety: "safe" },
- { pkg: "com.samsung.accessory.beansmgr", label: "Beansmgr", description: "Gear IconX Plugin (https://play.google.com/store/apps/details?id=com.samsung.accessory.beansmgr) Allows you to use features such as device settings and status view when connected to a Samsung Gear IconX (2018) device.", safety: "safe" },
- { pkg: "com.samsung.accessory.budsunitemgr", label: "Budsunitemgr", description: "Provides the system component that manages Galaxy Buds features and configuration. It handles firmware updates, noise control modes (ANC / Ambient sound), touch controls, and all device‑specific settings. On my device, uninstalling it removed the ability to update the Buds or use any of the features mentioned above. According to the Galaxy Store description, it also requires the Galaxy Wearable package (com.samsung.android.app.watchmanagerstub) to function. https://apps.samsung.com/appquery/appDetail.as?appId=com.samsung.accessory.budsunitemgr https://play.google.com/store/apps/details?id=com.samsung.accessory.budsunitemgr", safety: "caution" },
- { pkg: "com.samsung.accessory.safiletransfer", label: "Safiletransfer", description: "SASystemProviders Needed for Samsung Accessory Service", safety: "safe" },
- { pkg: "com.samsung.adaptivebrightnessgo", label: "Adaptivebrightnessgo", description: "CameraLightSensor App to test Adaptive Brightness.", safety: "safe" },
- { pkg: "com.samsung.advancedcallservice", label: "Advancedcallservice", description: "Advanced Calling feature on an Android is a feature that allows you to make calls while using other applications with the use of CELLULAR DATA. In order for this feature to work, HD Voice must be enabled in settings.", safety: "caution" },
- { pkg: "com.samsung.advp.imssettings", label: "Imssettings", description: "Needed for VoLTE (Voice over LTE) https://en.wikipedia.org/wiki/Voice_over_LTE IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling). NOTE: This package could be needed for messaging apps that send SMS/RCS code to verify your phone number.", safety: "caution" },
- { pkg: "com.samsung.android.A10s.d01.wallpapermulti", label: "Wallpapermulti", description: "App with wallpapers to Samsung A10s.", safety: "caution" },
- { pkg: "com.samsung.android.A12.d01.wallpapermulti", label: "Wallpapermulti", description: "Default Multiple Wallpaper Resource A 0 bytes overlay app for Samsung Galaxy A12, you can tell by its package name. Uninstalling it doesn't break the wallpaper slide show on the lock screen. Can be disabled via Settings. https://www.virustotal.com/gui/file/c5c5e173ccd3b515ec8684cc1c0d3d625ff57fe97a381b691596747225f2403d/details", safety: "caution" },
- { pkg: "com.samsung.android.A21.d01.wallpapermulti", label: "Wallpapermulti", description: "Dynamic lock screen wallpaper feature for the Samsung Galaxy A21. Why is this device specific? I have no idea!", safety: "caution" },
- { pkg: "com.samsung.android.ConnectivityOverlay", label: "ConnectivityOverlay", description: "Needed for wifi", safety: "keep" },
- { pkg: "com.samsung.android.ConnectivityUxOverlay", label: "ConnectivityUxOverlay", description: "Overlay to wifi icon", safety: "keep" },
- { pkg: "com.samsung.android.MtpApplication", label: "MtpApplication", description: "Samsung overlay for MTP Talks to com.android.mtp. Needed to access your phone from a computer for file transfer.", safety: "caution" },
- { pkg: "com.samsung.android.SettingsReceiver", label: "SettingsReceiver", description: "Samsung overlay of AOSP Settings. It has 39 permissions. Handles interactions with features controlled by the settings.", safety: "keep" },
- { pkg: "com.samsung.android.a20.d01.wallpapermulti", label: "Wallpapermulti", description: "Seems like a completely useless empty package, but the default lock screen wallpaper slideshow stops working if you uninstall this. Wallpapers can still be set fine, so it's still pretty useless.", safety: "safe" },
- { pkg: "com.samsung.android.a50.d01.wallpapermulti", label: "Wallpapermulti", description: "Provides the wallpapers used by the lockscreen multi-pack feature", safety: "safe" },
- { pkg: "com.samsung.android.accessibility.talkback", label: "Talkback", description: "Samsung TalkBack in accessibility. https://galaxystore.samsung.com/prepost/000005296612?appId=com.samsung.android.accessibility.talkback", safety: "caution" },
- { pkg: "com.samsung.android.activation", label: "Activation", description: "Activation phone in china.", safety: "safe" },
- { pkg: "com.samsung.android.adaptivebrightnessgo", label: "Adaptivebrightnessgo", description: "Samsung Adaptive Brightness Feature of Samsung devices that, as the name suggests, automatically adjusts the brightness level of display based on environmental lighting. This feature is available even after uninstalling.", safety: "safe" },
- { pkg: "com.samsung.android.aircommandmanager", label: "Aircommandmanager", description: "AirCommandManager (FACM) Gives you access to signature S Pen features. You can access Air-command anytime you are using your phone by simply taking out the S Pen. https://www.samsung.com/global/galaxy/what-is/air-command/", safety: "safe" },
- { pkg: "com.samsung.android.airtel.stubapp", label: "Stubapp", description: "My Airtel Stub app My Airtel is a customer service app designed for Airtel subscribers in Sri Lanka This package isn't the app itself but only a stub It's basically a non-functional empty shell which often only redirect you to the PlayStore to download the full app", safety: "safe" },
- { pkg: "com.samsung.android.alive.service", label: "Service", description: "Content suggestions service", safety: "caution" },
- { pkg: "com.samsung.android.aliveprivacy", label: "Aliveprivacy", description: "Content Suggestions is an AI-based app inside the Secure Folder, and its on-device AI-powered engine automatically suggests users to move private images of pre-selected categories to the Secure Folder. For this to happen users have to simply select specific faces or a type of image they want to tag as private and keep them secured in the private gallery of the Secure Folder. Once the initial setup is complete, the AI engine kicks in and identifies relevant images from the entire gallery. As this is an on-device AI solution, no information or image ever leaves the smartphone.", safety: "caution" },
- { pkg: "com.samsung.android.allshare.service.fileshare", label: "Fileshare", description: "Wi-Fi Direct Allows two devices to establish a direct Wi-Fi connection without requiring a wireless router. https://www.samsung.com/au/support/mobile-devices/connecting-devices-via-wifi-direct/ https://en.wikipedia.org/wiki/Wi-Fi_Direct", safety: "caution" },
- { pkg: "com.samsung.android.allshare.service.mediashare", label: "Mediashare", description: "Samsung AllShare service (now called SmartView and/or Nearby Service). Used to stream content from your phone to a Samsung smart TV. https://www.samsung.com/us/apps/smart-view-2/. On devices where the display-name is 'Nearby Service', 'Smart View' will continue to work properly (it doesn't depend on Nearby Service).", safety: "safe" },
- { pkg: "com.samsung.android.app.accesscontrol", label: "Accesscontrol", description: "Samsung Interaction control Settings > Accessibility > Dexterity and interaction (or vol. down + home key) Allows you to restrict some functions of your phone (stop the phone from interacting with touch commands for instance)", safety: "safe" },
- { pkg: "com.samsung.android.app.advsounddetector", label: "Advsounddetector", description: "Samsung Sound detectors Uses microphone to identify recognizable sounds. For example, if it recognizes a baby's cry, it can alert you with flashing lights so you know to check on your baby. Or it can notify you if it hears the doorbell ring so you know to open the door. # adv maybe refers to 'Samsung Advanced Institute of Technology' (or simply means 'advanced')", safety: "safe" },
- { pkg: "com.samsung.android.app.amcagent", label: "Amcagent", description: "Advanced Management Console Agent Entreprise feature I guess.", safety: "caution" },
- { pkg: "com.samsung.android.app.aodservice", label: "Aodservice", description: "Always On Display NOTE: This package handles the clock on the lockscreen, in addition to the AOD functionality. When enabled in settings it shows clock and notifications when you raise the phone or touch the screen. This is basically a lower-power lock-screen. It could in theory reduce power draw if you check notifications/clock often as OLED screens draw minimal power showing a mostly black screen(black = pixel off), but in practice the number of times you'll unintentionally trigger it will likely eat up any potential power savings and more. And if your device doesn't have an OLED screen this will draw way more power. Most of these power savings could be applied to your standard lock-screen simply by making your background image completely black.", safety: "caution" },
- { pkg: "com.samsung.android.app.appsedge", label: "Appsedge", description: "Samsung apps edge (https://www.samsung.com/global/galaxy/what-is/apps-edge/) Displays your five most frequently used apps for you to access at a moment’s notice. Breaks Split-Screen/Multi-Window according to issue#124.", safety: "caution" },
- { pkg: "com.samsung.android.app.appupdater", label: "Appupdater", description: "Discontinued app to update Samsung's proprietary apps.", safety: "safe" },
- { pkg: "com.samsung.android.app.assistantmenu", label: "Assistantmenu", description: "Assistant menu Designed for individuals with motor control or other physical impairments. By using Assistant menu, you can access hardware buttons and all parts of the screen by simply tapping or swiping. https://www.samsung.com/uk/accessibility/mobile-assistant-menu/", safety: "safe" },
- { pkg: "com.samsung.android.app.camera.sticker.facear.preload", label: "Preload", description: "Annoying Stickers/stamps of the Samsung camera app. C'mon it feels like Snapshat. https://developer.samsung.com/galaxy/stickers", safety: "safe" },
- { pkg: "com.samsung.android.app.camera.sticker.facear3d.preload", label: "Preload", description: "Default 3D live stickers Annoying Stickers/stamps of the Samsung camera app. C'mon it feels like Snapshat. https://developer.samsung.com/galaxy/stickers", safety: "safe" },
- { pkg: "com.samsung.android.app.camera.sticker.facearavatar.preload", label: "Preload", description: "Annoying Stickers/stamps of the Samsung camera app. C'mon it feels like Snapshat. https://developer.samsung.com/galaxy/stickers", safety: "safe" },
- { pkg: "com.samsung.android.app.camera.sticker.facearframe.preload", label: "Preload", description: "Frames sticker? I don't know what this sticker is and I don't have this package.", safety: "safe" },
- { pkg: "com.samsung.android.app.camera.sticker.stamp.preload", label: "Preload", description: "Annoying Stickers/stamps of the Samsung camera app. C'mon it feels like Snapshat. https://developer.samsung.com/galaxy/stickers Safe to remove", safety: "safe" },
+ { pkg: "com.samsung.android.galaxycontinuity", label: "Galaxycontinuity", description: "Samsung Flow (https://play.google.com/store/apps/details?id=com.samsung.android.galaxycontinuity)", safety: "safe" },
+ { pkg: "com.knox.vpn.proxyhandler", label: "Proxyhandler", description: "Third-party package that provides caller profile information to help consumers identify incoming calls and ...", safety: "safe" },
+ { pkg: "com.samsung.app.jansky", label: "Jansky", description: "Multi-lines settings", safety: "safe" },
+ { pkg: "com.samsung.aasaservice", label: "Aasaservice", description: "Sometimes, eat a LOT of battery (according to some reddit users)", safety: "safe" },
+ { pkg: "com.samsung.accessory", label: "Accessory", description: "Samsung Accessory Service (https://play.google.com/store/apps/details?id=com.samsung.accessory)", safety: "safe" },
+ { pkg: "com.samsung.accessory.beansmgr", label: "Beansmgr", description: "Gear IconX Plugin (https://play.google.com/store/apps/details?id=com.samsung.accessory.beansmgr)", safety: "safe" },
+ { pkg: "com.samsung.accessory.safiletransfer", label: "Safiletransfer", description: "SASystemProviders", safety: "safe" },
+ { pkg: "com.samsung.android.aircommandmanager", label: "Aircommandmanager", description: "AirCommandManager manager", safety: "safe" },
+ { pkg: "com.samsung.android.allshare.service.mediashare", label: "Mediashare", description: "Samsung Allshare service (now called SmartView).", safety: "safe" },
+ { pkg: "com.samsung.android.app.accesscontrol", label: "Accesscontrol", description: "Samsung Interaction control", safety: "safe" },
+ { pkg: "com.samsung.android.app.advsounddetector", label: "Advsounddetector", description: "Samsung Sound detectors", safety: "safe" },
+ { pkg: "com.samsung.android.app.appsedge", label: "Appsedge", description: "Samsung apps edge (https://www.samsung.com/global/galaxy/what-is/apps-edge/)", safety: "caution" },
+ { pkg: "com.samsung.android.app.assistantmenu", label: "Assistantmenu", description: "Assistant menu", safety: "safe" },
+ { pkg: "com.samsung.android.app.camera.sticker.stamp.preload", label: "Preload", description: "Annoying Stickers/stamps of the Samsung camera app. C'mon it feels like Snapshat.", safety: "safe" },
+ { pkg: "com.samsung.android.app.camera.sticker.facearframe.preload", label: "Preload", description: "Frames sticker?", safety: "safe" },
{ pkg: "com.samsung.android.app.clipboardedge", label: "Clipboardedge", description: "Clipboard edge panel", safety: "safe" },
- { pkg: "com.samsung.android.app.clockpack", label: "Clockpack", description: "Samsung Clock style Affects video playback in full-screen mode, breaks it", safety: "caution" },
- { pkg: "com.samsung.android.app.cocktailbarservice", label: "Cocktailbarservice", description: "Edge screen/panels Enables you to open your five most used apps by simply swiping the edge of the screen. Swipe one of the edges of the screen to bring up information even when your device is locked (with the screen off). You can also set it up to display the news or weather, for example.", safety: "safe" },
- { pkg: "com.samsung.android.app.color", label: "Color", description: "Color adjustment Samsung's adaptive super AMOLED screen optimizes the color range, saturation, and sharpness of the picture depending on what you're watching or doing. This package lets you to manually customize the color settings to match your preferences.", safety: "safe" },
- { pkg: "com.samsung.android.app.colorblind", label: "Colorblind", description: "This app provides colorblind accessibility features for Samsung devices, helping users with color vision deficiencies by adjusting display colors and improving visibility.", safety: "caution" },
- { pkg: "com.samsung.android.app.contacts", label: "Contacts", description: "Samsung Contacts Safe to debloat if you use another contacts app. NOTE: if you do, you will no longer be able to access Contacts from the Samsung dialer app. Removing the contacts app will disable the user from being able to modify the Safety and emergency tab within the Samsung Android native settings app. Specifically the Medical info & Emergency contacts. This information is pulled on the lockscreen by first responders or in emergency sharing mode for emergency contacts.", safety: "caution" },
- { pkg: "com.samsung.android.app.dofviewer", label: "Dofviewer", description: "Live focus Allows you to adjust the level of background blur in the camera app. From the Samsung Gallery, you can also select from a range of background blur shapes to add characters and shapes to a photo. https://www.samsung.com/global/galaxy/what-is/live-focus/", safety: "caution" },
- { pkg: "com.samsung.android.app.dressroom", label: "Dressroom", description: "Samsung Wallpapers Wallpaper manager. Needed to pick up a wallpaper on Android 10+. Has INTERNET permission and ACCESS_MEDIA_LOCATION Before Android 10, you should still be able to set a wallpaper from the Samsung gallery without this package. WARNING: Removing this app will prevent you to set a new wallpaper on Android 10+ (even from the Gallery) or changing the Material You palette on Android 12+.", safety: "caution" },
- { pkg: "com.samsung.android.app.dtv.dmb", label: "Dmb", description: "TV app on Samsung phones and it's only available on Japanese or Korean variants.", safety: "safe" },
- { pkg: "com.samsung.android.app.earphonetypec", label: "Earphonetypec", description: "Samsung USB-C headset not required unless you have a Samsung DAC or Samsung Type-C earphones (for firmware updates)", safety: "safe" },
- { pkg: "com.samsung.android.app.episodes", label: "Episodes", description: "Samsung story album (https://www.samsung.com/in/support/mobile-devices/what-is-story-album-application-in-samsung-galaxy-s4/)", safety: "safe" },
- { pkg: "com.samsung.android.app.filterinstaller", label: "Filterinstaller", description: "Filter installer I have no clue about the usefulness of this package. Maybe it filters apps that are not compatible with the phone. This package is only triggered when you install an app (private class PackageIntentReceiver)", safety: "safe" },
- { pkg: "com.samsung.android.app.galaxyfinder", label: "Galaxyfinder", description: "Samsung Finder is a search application that allows you to find what you want in an instant by searching the content on your Galaxy smartphone and on the web as well. (https://www.samsung.com/global/galaxy/what-is/s-finder/) NOTE: Removing this will remove the search in the app drawer.", safety: "caution" },
- { pkg: "com.samsung.android.app.headlines", label: "Headlines", description: "Flipboard app for Samsung devices.", safety: "safe" },
- { pkg: "com.samsung.android.app.interactivepanoramaviewer", label: "Interactivepanoramaviewer", description: "Visual. photo virt. Samsung Virtual Shot Viewer enable sharing virtual shot Safe to remove if you don't want virtual photos.", safety: "safe" },
- { pkg: "com.samsung.android.app.interpreter", label: "Interpreter", description: "Samsung Interpreter app, enables Live translation of foreign languages", safety: "caution" },
- { pkg: "com.samsung.android.app.kfa", label: "Kfa", description: "KFA Another app from knox, has something to decrypt. Name apk this app is: KnoxAIFrameworkApp.", safety: "safe" },
- { pkg: "com.samsung.android.app.ledbackcover", label: "Ledbackcover", description: "I think it enables doing things with LEDs on the cover https://www.samsung.com/hk_en/mobile-accessories/led-cover-for-galaxy-s10/EF-KG973CBEGWW/ HOW IT WORKS : https://forum.xda-developers.com/galaxy-note-8/accessories/how-led-cover-t3686694", safety: "safe" },
- { pkg: "com.samsung.android.app.ledcoverdream", label: "Ledcoverdream", description: "I think it enable doing things with LEDs on the cover https://www.samsung.com/hk_en/mobile-accessories/led-cover-for-galaxy-s10/EF-KG973CBEGWW/ HOW IT WORKS : https://forum.xda-developers.com/galaxy-note-8/accessories/how-led-cover-t3686694", safety: "safe" },
- { pkg: "com.samsung.android.app.memo", label: "Memo", description: "Samsung Memo (was replaced by Samsung Notes app : com.samsung.android.app.notes)", safety: "safe" },
- { pkg: "com.samsung.android.app.mhswrappertmo", label: "Mhswrappertmo", description: "Mobile Hotspot Is it linked to T-Mobile ? (\"tmo\" at the end of the package) You can debloat this and still create hotspot.", safety: "safe" },
- { pkg: "com.samsung.android.app.mirrorlink", label: "Mirrorlink", description: "Used to connect your phone to a car (with https://mirrorlink.com/ support) in order to provide audio streaming, GPS navigation... https://www.samsung.com/us/support/answer/ANS00048972/", safety: "safe" },
- { pkg: "com.samsung.android.app.motionpanoramaviewer", label: "Motionpanoramaviewer", description: "Motion panorama viewer Lets you see the result of a motion panorama https://www.samsung.com/global/galaxy/what-is/motion-panorama/", safety: "caution" },
- { pkg: "com.samsung.android.app.multiwindow", label: "Multiwindow", description: "Provides manifestly the ability to display multiple apps on the screen (at the same time) Can someone test?", safety: "caution" },
- { pkg: "com.samsung.android.app.news", label: "News", description: "News Samsung app Doesn't exist anymore?", safety: "safe" },
+ { pkg: "com.samsung.android.app.cocktailbarservice", label: "Cocktailbarservice", description: "Edge screen", safety: "safe" },
+ { pkg: "com.samsung.android.app.color", label: "Color", description: "Color adjustment", safety: "safe" },
+ { pkg: "com.samsung.android.app.dressroom", label: "Dressroom", description: "Samsung Wallpapers", safety: "caution" },
+ { pkg: "com.samsung.android.app.episodes", label: "Episodes", description: "Samsung story album (https://www.samsung.com/in/support/mobile-devices/what-is-story-album-application-in-s...", safety: "safe" },
+ { pkg: "com.samsung.android.app.filterinstaller", label: "Filterinstaller", description: "Filter installer", safety: "safe" },
+ { pkg: "com.samsung.app.highlightplayer", label: "Highlightplayer", description: "Samsung Story Video Editor", safety: "safe" },
+ { pkg: "com.samsung.android.app.interactivepanoramaviewer", label: "Interactivepanoramaviewer", description: "Visual. photo virt.", safety: "safe" },
+ { pkg: "com.samsung.android.app.ledcoverdream", label: "Ledcoverdream", description: "I think it enable doing things with LEDs on the cover", safety: "safe" },
+ { pkg: "com.samsung.android.app.omcagent", label: "Omcagent", description: "Open Market Customization Agent", safety: "safe" },
+ { pkg: "com.samsung.android.app.memo", label: "Memo", description: "Samsung Memo (was replaced by Samsung Notes app :\tcom.samsung.android.app.notes)", safety: "safe" },
+ { pkg: "com.samsung.android.app.mhswrappertmo", label: "Mhswrappertmo", description: "Mobile Hotspot", safety: "safe" },
+ { pkg: "com.samsung.android.app.mirrorlink", label: "Mirrorlink", description: "Used to connect your phone to a car (with https://mirrorlink.com/ support) in order to provide audio stream...", safety: "safe" },
+ { pkg: "com.samsung.android.app.news", label: "News", description: "News Samsung app", safety: "safe" },
{ pkg: "com.samsung.android.app.notes", label: "Notes", description: "Samsung Notes app (https://play.google.com/store/apps/details?id=com.samsung.android.app.notes)", safety: "safe" },
- { pkg: "com.samsung.android.app.notes.addons", label: "Addons", description: "Allows for marking up/drawing on notes in the Samsung Notes app (designed for use with S Pen). Removal likely breaks com.samsung.android.app.notes. Safe to remove otherwise. May reinstall itself automatically (removal has persisted for me this time around, and through multiple reboots). https://galaxystore.samsung.com/prepost/000005769652?appId=com.samsung.android.app.notes.addons", safety: "caution" },
- { pkg: "com.samsung.android.app.omcagent", label: "Omcagent", description: "Open Market Customization Agent (AKA 'Recommended Apps') Installs more Samsung\"Recommended Apps\" after device setup. Similar to com.samsung.android.mapsagent", safety: "safe" },
- { pkg: "com.samsung.android.app.panel.naver.v", label: "V", description: "Naver V Panel Special samsung panel for the very useless V LIVE (formerly Naver V) app (https://play.google.com/store/apps/details?id=com.naver.vapp) V LIVE is an app that features personal video broadcasts of South Korean celebrities This panel also includes Naver Shopping (https://shopping.naver.com/)", safety: "safe" },
- { pkg: "com.samsung.android.app.parentalcare", label: "Parentalcare", description: "Parental control to block apps on new samsung phones", safety: "safe" },
- { pkg: "com.samsung.android.app.pinboard", label: "Pinboard", description: "Samsung Scrapbook (discontinued) https://www.samsung.com/za/support/mobile-devices/how-do-i-use-the-scrapbook-memo-feature-on-my-samsung-galaxy-note3/", safety: "safe" },
- { pkg: "com.samsung.android.app.reminder", label: "Reminder", description: "Samsung bixby reminder (https://www.samsung.com/global/galaxy/apps/bixby/reminder/) Set up smart reminders to get notified when and where you need to. You can even link websites, videos, photos and more. Uses wifi/data regularly.", safety: "safe" },
- { pkg: "com.samsung.android.app.routines", label: "Routines", description: "Samsung Modes and Routines (previously aka Bixby Routines) (https://www.samsung.com/global/galaxy/what-is/bixby-routines/) Automating actions triggered by context clues: location, time, or event", safety: "caution" },
+ { pkg: "com.samsung.android.app.panel.naver.v", label: "V", description: "Naver V Panel", safety: "safe" },
+ { pkg: "com.samsung.android.app.pinboard", label: "Pinboard", description: "Samsung Scrapbook (discontinued)", safety: "safe" },
+ { pkg: "com.samsung.android.app.reminder", label: "Reminder", description: "Samsung bixby reminder (https://www.samsung.com/global/galaxy/apps/bixby/reminder/)", safety: "safe" },
+ { pkg: "com.samsung.android.app.routines", label: "Routines", description: "Samsung bixby routines (https://www.samsung.com/global/galaxy/what-is/bixby-routines/)", safety: "safe" },
{ pkg: "com.samsung.android.app.sbrowseredge", label: "Sbrowseredge", description: "Related to internet browser. For Galaxy Edge?", safety: "safe" },
- { pkg: "com.samsung.android.app.scrollcapture", label: "Scrollcapture", description: "Samsung's app for taking screenshots.", safety: "caution" },
- { pkg: "com.samsung.android.app.selfmotionpanoramaviewer", label: "Selfmotionpanoramaviewer", description: "Selfie panorama viewer Lets you see the result of a selfie motion panorama https://www.samsung.com/global/galaxy/what-is/motion-panorama/", safety: "caution" },
{ pkg: "com.samsung.android.app.settings.bixby", label: "Bixby", description: "Bixby settings (Bixby = Samsung intelligence assistant)", safety: "safe" },
- { pkg: "com.samsung.android.app.shareaccessibilitysettings", label: "Shareaccessibilitysettings", description: "Seems to be like a package for saving your accessibility settings, likely to transfer them to another phone.", safety: "caution" },
- { pkg: "com.samsung.android.app.sharelive", label: "Sharelive", description: "Samsung Quick Share (from the Galaxy Store) Breaks Quick Share if you remove it.", safety: "safe" },
- { pkg: "com.samsung.android.app.simplesharing", label: "Simplesharing", description: "Samsung Link Sharing Lets you share large size files by using the Samsung Cloud. https://www.samsung.com/au/support/mobile-devices/what-is-link-sharing/", safety: "safe" },
- { pkg: "com.samsung.android.app.siofviewer", label: "Siofviewer", description: "Live focus Needed for Live Focus in camera app.", safety: "caution" },
- { pkg: "com.samsung.android.app.sketchbook", label: "Sketchbook", description: "Drawing Assistant This is an useless AI extension for Samsung Keyboard. It keeps a notification dot on the emoji button.", safety: "safe" },
- { pkg: "com.samsung.android.app.smartcapture", label: "Smartcapture", description: "Samsung Capture Samsung's implementation of screenshot. Show the bottom toolbar after taking a screenshot Lets you group widgets on OneUI 4 (?)", safety: "caution" },
- { pkg: "com.samsung.android.app.smartwidget", label: "Smartwidget", description: "Samsung screenshot You will still be able to take screenshots without this package.", safety: "caution" },
- { pkg: "com.samsung.android.app.social", label: "Social", description: "I know this has been discontinued by Samsung but that it. Surely a social app like Samsung Members (com.samsung.oh)", safety: "safe" },
- { pkg: "com.samsung.android.app.soundpicker", label: "Soundpicker", description: "Lets you select a sound for alarm/ringtone", safety: "keep" },
- { pkg: "com.samsung.android.app.spage", label: "Spage", description: "Samsung Free (previously known as 'Bixby Home') is a vertically scrolling list of information that Bixby can interact with for example weather, fitness activity and buttons for controlling their smart home gadgets. https://galaxystore.samsung.com/prepost/000005445489?appId=com.samsung.android.app.spage", safety: "safe" },
- { pkg: "com.samsung.android.app.storyalbumwidget", label: "Storyalbumwidget", description: "The Story Album widget enables you to access the Story Album app and create digital picture albums that you can view and acess directly from the widget on a Home screen. Old feature (from Galaxy S4)", safety: "safe" },
- { pkg: "com.samsung.android.app.talkback", label: "Talkback", description: "Voice assistant. Accessibility feature Screen Reader to provide audible feedback to assist blind and low-vision users.", safety: "safe" },
- { pkg: "com.samsung.android.app.taskedge", label: "Taskedge", description: "Handle task edge panel Through Tasks edge, you can quickly perform frequently used tasks, such as composing messages and creating events. https://www.samsung.com/levant/support/mobile-devices/galaxy-s7-edge-how-do-i-add-tasks-edge/", safety: "safe" },
- { pkg: "com.samsung.android.app.telephonyui", label: "Telephonyui", description: "Samsung Dialer UI. Disabling breaks Phone app settings and SIM Manager.", safety: "caution" },
- { pkg: "com.samsung.android.app.telephonyui.esimclient", label: "Esimclient", description: "only has ESimClient Webview Activity", safety: "safe" },
+ { pkg: "com.samsung.android.app.simplesharing", label: "Simplesharing", description: "Samsung Link Sharing", safety: "safe" },
+ { pkg: "com.samsung.android.app.social", label: "Social", description: "I know this has been discontinued by Samsung but that it.", safety: "safe" },
+ { pkg: "com.samsung.android.app.spage", label: "Spage", description: "Samsung Free (previously known as 'Bixby Home') is a vertically scrolling list of information that Bixby ca...", safety: "safe" },
+ { pkg: "com.samsung.android.app.storyalbumwidget", label: "Storyalbumwidget", description: "The Story Album widget enables you to access the Story Album app and create digital picture albums that you...", safety: "safe" },
+ { pkg: "com.samsung.android.app.talkback", label: "Talkback", description: "Voice assistant. Accessibility feature", safety: "safe" },
+ { pkg: "com.samsung.android.app.taskedge", label: "Taskedge", description: "Handle task edge panel", safety: "safe" },
{ pkg: "com.samsung.android.app.tips", label: "Tips", description: "Tips on how to use your phone\"", safety: "safe" },
- { pkg: "com.samsung.android.app.updatecenter", label: "Updatecenter", description: "App update Installs app updates", safety: "safe" },
- { pkg: "com.samsung.android.app.vex.scanner", label: "Scanner", description: "Document Scanner. Samsung's VEX document scanning component used by Camera/Gallery/Office features.", safety: "caution" },
- { pkg: "com.samsung.android.app.vrsetupwizards", label: "Vrsetupwizards", description: "Samsung Gear VR (Virtual Reality) setup wizard (https://en.wikipedia.org/wiki/Samsung_Gear_VR) https://360samsungvr.com/portal/content/about_samsung_vr Stub = https://stackoverflow.com/questions/10648280/what-is-stub-and-aidl-for-in-java Setup wizard : The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device. It's the setup for Samsung VR services.", safety: "safe" },
- { pkg: "com.samsung.android.app.vrsetupwizardstub", label: "Vrsetupwizardstub", description: "Samsung Gear VR (Virtual Reality) setup wizard (https://en.wikipedia.org/wiki/Samsung_Gear_VR) https://360samsungvr.com/portal/content/about_samsung_vr Stub = https://stackoverflow.com/questions/10648280/what-is-stub-and-aidl-for-in-java Setup wizard : The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device. It's the setup for Samsung VR services.", safety: "safe" },
- { pkg: "com.samsung.android.app.watchmanager", label: "Watchmanager", description: "Samsung Galaxy Wearable (Samsung Gear) (https://play.google.com/store/apps/details?id=com.samsung.android.app.watchmanager)", safety: "safe" },
- { pkg: "com.samsung.android.app.watchmanagerstub", label: "Watchmanagerstub", description: "Stub for the Galaxy Wearable app. Stub = https://stackoverflow.com/questions/10648280/what-is-stub-and-aidl-for-in-java", safety: "safe" },
- { pkg: "com.samsung.android.app.withtv", label: "Withtv", description: "WitTV (replaced by com.sec.android.app.withtv) Used to stream content from your phone to a Samsung smart TV. https://www.samsung.com/us/apps/smart-view-2/", safety: "safe" },
- { pkg: "com.samsung.android.applock", label: "Applock", description: "Samsung App Lock Lets you lock your app (Settings > Advanced functions > App lock) You should lock your apps storing private data (provides data at rest encryption when your phone is locked)", safety: "keep" },
- { pkg: "com.samsung.android.appseparation", label: "Appseparation", description: "Separated apps Separated Apps isolates third-party apps in a sandboxed folder. The third-party apps cannot intercommunicate with work apps or access confidential work data. Keep in mind that Separated Apps does not provide the same privacy guarantees as the new work profile on company-owned devices. As such, it is not intended for personal apps and data. https://docs.samsungknox.com/admin/knox-platform-for-enterprise/separated-apps.htm Pithus analysis: https://beta.pithus.org/report/cae5798a835dc434037400436fba27f5eed960c6f476a7b7d17d85a1425530c0", safety: "caution" },
- { pkg: "com.samsung.android.ardrawing", label: "Ardrawing", description: "AR Doodles (accessible through AR Zone) Lets you draw on your face using the front camera and uses AR Core for drawing on the environment with the rear camera. Only Samsung AR app (afaik) that requests location access, and it refuses to run without it", safety: "safe" },
- { pkg: "com.samsung.android.aremoji", label: "Aremoji", description: "AR Emoji mode for Samsung camera https://www.samsung.com/global/galaxy/what-is/ar-emoji/", safety: "safe" },
- { pkg: "com.samsung.android.aremojieditor", label: "Aremojieditor", description: "AR Emoji Editor Edits those AR people emoji things", safety: "safe" },
- { pkg: "com.samsung.android.arzone", label: "Arzone", description: "AR Zone https://www.samsung.com/levant/support/mobile-devices/which-features-are-available-in-the-ar-zone-in-the-galaxy-z-flip/ Lets you access other AR apps.", safety: "safe" },
- { pkg: "com.samsung.android.asksmanager", label: "Asksmanager", description: "Samsung device protection manager. It's anti-theft feature. I couldn't find exactly what does the samsung layer to the already existing android device protection : https://www.greenbot.com/article/2904397/everything-you-need-to-know-about-device-protection-in-android-51.html", safety: "safe" },
- { pkg: "com.samsung.android.audiomirroring", label: "Audiomirroring", description: "AudioMirroring Audio Mirroring to Cast other devices will not work after remove. Also this app running in the background.", safety: "caution" },
- { pkg: "com.samsung.android.authfw", label: "Authfw", description: "Used by Samsung Pass Biometric authentication service that can be used to sign in to websites and apps in your mobile. https://www.samsung.com/global/galaxy/apps/samsung-pass/", safety: "safe" },
- { pkg: "com.samsung.android.authservice", label: "Authservice", description: "Runs in the background on Galaxy S7 and earlier, can't seem to find a purpose for this app. No issues when removing it.", safety: "safe" },
- { pkg: "com.samsung.android.aware.service", label: "Service", description: "Samsung Quick Share Agent Use Wifi direct to share files between 2 Samsung Galaxy phones (it's only for Samsung Galaxy users)", safety: "caution" },
- { pkg: "com.samsung.android.bbc.bbcagent", label: "Bbcagent", description: "BBCAgent (B. B. Container Agent?) Collects device information and manages installation/uninstallation of trusted apps in KNOX containers", safety: "safe" },
- { pkg: "com.samsung.android.bbc.fileprovider", label: "Fileprovider", description: "KNOX BBC Provider. Provider for KNOX BBC Content providers encapsulate data, providing centralized management of data shared between apps.", safety: "safe" },
- { pkg: "com.samsung.android.beaconmanager", label: "Beaconmanager", description: "Replaced by Samsung Smart Things (com.samsung.android.ststub) Allows users to control, automate, and monitor their home environment via mobile device. https://en.wikipedia.org/wiki/SmartThings", safety: "safe" },
- { pkg: "com.samsung.android.bio.face.service", label: "Service", description: "Handles Face recognition unlock https://kp-cdn.samsungknox.com/b60a7f0f59df8f466e8054f783fbbfe2.pdf NOTE: removing this package causes biometric prompts in apps to be delayed by 5-8 seconds before appearing. Selecting 'Biometrics and security' in the settings app also locks up the Settings app for about 5-8 seconds but eventually loads and functions as normal.", safety: "caution" },
+ { pkg: "com.samsung.android.app.vrsetupwizardstub", label: "Vrsetupwizardstub", description: "Samsung Gear VR (Virtual Reality) setup wizard (https://en.wikipedia.org/wiki/Samsung_Gear_VR)", safety: "safe" },
+ { pkg: "com.samsung.android.app.watchmanager", label: "Watchmanager", description: "Samsung Galaxy Wearable (Samsung Gear) (https://play.google.com/store/apps/details?id=com.samsung.android.a...", safety: "safe" },
+ { pkg: "com.samsung.android.app.watchmanagerstub", label: "Watchmanagerstub", description: "Stub for the Galaxy Wearable app.", safety: "safe" },
+ { pkg: "com.samsung.android.app.withtv", label: "Withtv", description: "WitTV (replaced by com.sec.android.app.withtv)", safety: "safe" },
+ { pkg: "com.samsung.android.ardrawing", label: "Ardrawing", description: "AR Doodles (accessible through AR Zone)", safety: "safe" },
+ { pkg: "com.samsung.android.arzone", label: "Arzone", description: "AR Zone", safety: "safe" },
+ { pkg: "com.samsung.android.aremoji", label: "Aremoji", description: "AR Emoji mode for Samsung camera", safety: "safe" },
+ { pkg: "com.samsung.android.aremojieditor", label: "Aremojieditor", description: "AR Emoji Editor", safety: "safe" },
+ { pkg: "com.samsung.android.asksmanager", label: "Asksmanager", description: "Samsung device protection manager.", safety: "safe" },
+ { pkg: "com.samsung.android.authfw", label: "Authfw", description: "Used by Samsung Pass", safety: "safe" },
+ { pkg: "com.samsung.android.aware.service", label: "Service", description: "Samsung Quick Share", safety: "safe" },
+ { pkg: "com.samsung.android.bbc.bbcagent", label: "Bbcagent", description: "BBCAgent (B. B. Container Agent?)", safety: "safe" },
+ { pkg: "com.samsung.android.bbc.fileprovider", label: "Fileprovider", description: "KNOX BBC Provider.", safety: "safe" },
+ { pkg: "com.samsung.android.beaconmanager", label: "Beaconmanager", description: "Replaced by Samsung Smart Things (com.samsung.android.ststub)", safety: "safe" },
+ { pkg: "com.samsung.android.bixby.agent", label: "Agent", description: "Removing this will disable the bixby hardware key without breaking Bixby itself.", safety: "safe" },
+ { pkg: "com.samsung.android.bixbyvision.framework", label: "Framework", description: "BixbyVision Framework", safety: "safe" },
+ { pkg: "com.samsung.android.calendar", label: "Calendar", description: "Samsung Calendar App", safety: "caution" },
+ { pkg: "com.samsung.android.coreapps", label: "Coreapps", description: "Samsung Enhanced features", safety: "safe" },
+ { pkg: "com.samsung.android.da.daagent", label: "Daagent", description: "Samsung dual messenger (https://www.samsung.com/global/galaxy/what-is/dual-messenger/)", safety: "safe" },
+ { pkg: "com.samsung.android.dlp.service", label: "Service", description: "SamsungDLPService (KNOX). Old feature. Was replaced by SDP (Sensitive Data Protection)", safety: "safe" },
+ { pkg: "com.samsung.android.dqagent", label: "Dqagent", description: "Samsung Device Quality Agent", safety: "safe" },
+ { pkg: "com.samsung.android.drivelink.stub", label: "Stub", description: "Stub for car mode", safety: "safe" },
+ { pkg: "com.samsung.android.dynamiclock", label: "Dynamiclock", description: "Samsung Wallpaper services (AKA 'Dynamic Lock')", safety: "safe" },
+ { pkg: "com.samsung.android.gearoplugin", label: "Gearoplugin", description: "Gear S Plugin (https://play.google.com/store/apps/details?id=com.samsung.android.gearoplugin)", safety: "safe" },
+ { pkg: "com.samsung.android.easysetup", label: "Easysetup", description: "Samsung Connect Easy Setup (now SmartThings)", safety: "safe" },
+ { pkg: "com.samsung.android.email.provider", label: "Provider", description: "Samsung email app (https://play.google.com/store/apps/details?id=com.samsung.android.email.provider)", safety: "safe" },
+ { pkg: "com.samsung.android.emojiupdater", label: "Emojiupdater", description: "AR Emoji updater", safety: "safe" },
+ { pkg: "com.samsung.android.fast", label: "Fast", description: "Samsung Secure Wi-Fi", safety: "safe" },
+ { pkg: "com.samsung.android.fmm", label: "Fmm", description: "Find My Mobile", safety: "safe" },
+ { pkg: "com.samsung.android.game.gamehome", label: "Gamehome", description: "Samsung Game Launcher", safety: "safe" },
+ { pkg: "com.samsung.android.game.gametools", label: "Gametools", description: "Samsung Game Tools (https://www.samsung.com/au/support/mobile-devices/how-to-use-game-tools/)", safety: "safe" },
+ { pkg: "com.samsung.android.game.gos", label: "Gos", description: "Samsung Game Optimizing Service", safety: "safe" },
+ { pkg: "com.samsung.android.gametuner.thin", label: "Thin", description: "Samsung Game Tuner (https://play.google.com/store/apps/details?id=com.samsung.android.gametuner.thin)", safety: "safe" },
+ { pkg: "com.samsung.android.homemode", label: "Homemode", description: "Daily Board (https://play.google.com/store/apps/details?id=com.samsung.android.homemode)", safety: "safe" },
+ { pkg: "com.samsung.android.hmt.vrshell", label: "Vrshell", description: "Gear VR Shell", safety: "safe" },
+ { pkg: "com.samsung.android.hmt.vrsvc", label: "Vrsvc", description: "Gear VR Service", safety: "safe" },
+ { pkg: "com.samsung.android.icecone", label: "Icecone", description: "Keyboard Content Center", safety: "safe" },
+ { pkg: "com.samsung.android.intelligenceservice2", label: "Intelligenceservice2", description: "It seems that this package is a kind of spyware. Very difficult to find information about this.", safety: "safe" },
+ { pkg: "com.samsung.android.ipsgeofence", label: "Ipsgeofence", description: "Samsung Visit In app", safety: "safe" },
+ { pkg: "com.samsung.android.keyguardwallpaperupdator", label: "Keyguardwallpaperupdator", description: "Lets you customize your Samsung device with different images (provided by Samsung) on the lock screen.", safety: "safe" },
+ { pkg: "com.samsung.android.kidsinstaller", label: "Kidsinstaller", description: "Samsung Kids Home (https://www.samsung.com/global/galaxy/apps/samsung-kids-home/)", safety: "safe" },
+ { pkg: "com.samsung.android.knox.attestation", label: "Attestation", description: "KNOX Attestation", safety: "safe" },
+ { pkg: "com.samsung.android.knox.containercore", label: "Containercore", description: "KNOX Work profile/space", safety: "safe" },
+ { pkg: "com.samsung.android.knox.containerdesktop", label: "Containerdesktop", description: "Knox Container Desktop", safety: "safe" },
+ { pkg: "com.samsung.android.livestickers", label: "Livestickers", description: "Deco Pic (accessible through AR Zone)", safety: "safe" },
+ { pkg: "com.samsung.android.location", label: "Location", description: "IMO it handles GPS needs for some samsungs apps. I have it removed on my phone and I still can use the GPS ...", safety: "caution" },
+ { pkg: "com.samsung.android.mateagent", label: "Mateagent", description: "Samsung Galaxy Friends is an accessory platform service that allows the user to enjoy a variety of content ...", safety: "safe" },
+ { pkg: "com.samsung.android.mdecservice", label: "Mdecservice", description: "Samsung Call & Text", safety: "safe" },
+ { pkg: "com.samsung.android.mdm", label: "Mdm", description: "MDMApp (Mobile Device Management app)", safety: "safe" },
+ { pkg: "com.samsung.android.mdx", label: "Mdx", description: "Link to Windows Service", safety: "safe" },
+ { pkg: "com.samsung.android.mdx.kit", label: "Kit", description: "MDE Service Framework", safety: "safe" },
+ { pkg: "com.samsung.android.mdx.quickboard", label: "Quickboard", description: "Media & Devices feature", safety: "caution" },
+ { pkg: "com.samsung.android.mobileservice", label: "Mobileservice", description: "Samsung Experience Service (https://play.google.com/store/apps/details?id=com.samsung.android.mobileservice)", safety: "safe" },
+ { pkg: "com.samsung.android.net.wifi.wifiguider", label: "Wifiguider", description: "Wi-Fi Tips", safety: "safe" },
+ { pkg: "com.samsung.android.networkdiagnostic", label: "Networkdiagnostic", description: "Network Diagnostic", safety: "safe" },
+ { pkg: "com.samsung.android.oneconnect", label: "Oneconnect", description: "Samsung Smart Things (https://play.google.com/store/apps/details?id=com.samsung.android.oneconnect)", safety: "safe" },
+ { pkg: "com.samsung.android.provider.shootingmodeprovider", label: "Shootingmodeprovider", description: "Provide camera modes (when you swipe left fromt the camera app)", safety: "caution" },
+ { pkg: "com.samsung.android.providers.context", label: "Context", description: "Spyware", safety: "safe" },
+ { pkg: "com.samsung.android.rubin.app", label: "App", description: "Customization Service", safety: "safe" },
+ { pkg: "com.samsung.android.samsungpass", label: "Samsungpass", description: "Samsung Pass app", safety: "safe" },
+ { pkg: "com.samsung.android.samsungpassautofill", label: "Samsungpassautofill", description: "Auto Fill for Samsung Pass", safety: "safe" },
+ { pkg: "com.samsung.android.samsungpositioning", label: "Samsungpositioning", description: "Run at startup and ask for an unknown permission SEC_FACTORY_PHONE", safety: "safe" },
+ { pkg: "com.samsung.android.sdk.handwriting", label: "Handwriting", description: "Handwriting Service", safety: "safe" },
+ { pkg: "com.samsung.android.sdk.professionalaudio.utility.jammonitor", label: "Jammonitor", description: "Professional Audio", safety: "safe" },
+ { pkg: "com.samsung.android.sdk.professionalaudio.app.audioconnectionservice", label: "Audioconnectionservice", description: "AudioConnectionService", safety: "safe" },
+ { pkg: "com.samsung.android.shortcutbackupservice", label: "Shortcutbackupservice", description: "ShortcutBNR", safety: "safe" },
+ { pkg: "com.samsung.android.sdm.config", label: "Config", description: "Configuration Update for Samsung Deskphone Manager (SDM)", safety: "safe" },
+ { pkg: "com.samsung.android.slinkcloud", label: "Slinkcloud", description: "Samsung Cloud Gateway", safety: "safe" },
+ { pkg: "com.samsung.android.smartface", label: "Smartface", description: "SmartFaceService", safety: "caution" },
+ { pkg: "com.samsung.android.smartswitchassistant", label: "Smartswitchassistant", description: "Samsung SmartSwitch", safety: "safe" },
+ { pkg: "com.samsung.android.stickerplugin", label: "Stickerplugin", description: "StickerPlugin", safety: "safe" },
+ { pkg: "com.samsung.android.sm", label: "Sm", description: "Smart Manager app", safety: "safe" },
+ { pkg: "com.samsung.android.scloud.sync", label: "Sync", description: "Samsung cloud synchronisation service", safety: "safe" },
+ { pkg: "com.samsung.android.scloud", label: "Scloud", description: "Samsung Cloud (https://www.samsung.com/us/support/owners/app/samsung-cloud)", safety: "safe" },
+ { pkg: "com.samsung.android.scloud.auth", label: "Auth", description: "Handle authentifcation for Samsung cloud", safety: "safe" },
+ { pkg: "com.samsung.android.sconnect", label: "Sconnect", description: "Samsung Quick connect (discontinued ?)", safety: "safe" },
+ { pkg: "com.samsung.android.securitylogagent", label: "Securitylogagent", description: "Security Log Agent", safety: "safe" },
+ { pkg: "com.samsung.android.service.livedrawing", label: "Livedrawing", description: "Live Message enables you to draw your own animated GIFs or emojis.", safety: "safe" },
+ { pkg: "com.samsung.android.mfi", label: "Mfi", description: "Galaxy Widget (https://play.google.com/store/apps/details?id=com.samsung.android.mfi)", safety: "safe" },
+ { pkg: "com.samsung.android.service.peoplestripe", label: "Peoplestripe", description: "People Edge", safety: "safe" },
+ { pkg: "com.samsung.android.service.travel", label: "Travel", description: "Samsung Travel Wallpaper (discontinued)", safety: "safe" },
+ { pkg: "com.samsung.android.smartcallprovider", label: "Smartcallprovider", description: "Samsung Smart Call", safety: "safe" },
+ { pkg: "com.samsung.android.smartmirroring", label: "Smartmirroring", description: "Samsung Smart View", safety: "caution", neededBy: ["com.samsung.android.video"] },
+ { pkg: "com.samsung.android.spayfw", label: "Spayfw", description: "Samsung Pay Framework needed for Samsung Pay", safety: "safe", neededBy: ["com.samsung.android.spay"] },
+ { pkg: "com.samsung.android.spay", label: "Spay", description: "Samsung Pay (https://play.google.com/store/apps/details?id=com.samsung.android.spay)", safety: "safe", deps: ["com.sec.android.app.samsungapps", "com.samsung.android.spayfw"] },
+ { pkg: "com.samsung.android.spaymini", label: "Spaymini", description: "Samsung Pay Mini", safety: "safe" },
+ { pkg: "com.samsung.android.spdfnote", label: "Spdfnote", description: "Write on PDF (https://play.google.com/store/apps/details?id=com.samsung.android.spdfnote)", safety: "safe" },
+ { pkg: "com.samsung.android.stickercenter", label: "Stickercenter", description: "Sticker center. Used to retrieve stickers from the web in the camera app.", safety: "safe" },
+ { pkg: "com.samsung.android.ststub", label: "Ststub", description: "Allows users to control, automate, and monitor their home environment via mobile device.", safety: "safe" },
+ { pkg: "com.samsung.android.svcagent", label: "Svcagent", description: "Impossible to know what this system app does. It has full access to internet network anyway.", safety: "safe" },
+ { pkg: "com.samsung.android.svoice", label: "Svoice", description: "Samsung Voice (S Voice) was replaced by bixby on Samsung Galaxy S8(+) and newer phones.", safety: "safe" },
+ { pkg: "com.samsung.android.svoiceime", label: "Svoiceime", description: "Samsung voice input", safety: "safe" },
+ { pkg: "com.samsung.android.themecenter", label: "Themecenter", description: "Samsung Theme Center (AKA Galaxy Themes Service)", safety: "caution" },
+ { pkg: "com.samsung.android.themestore", label: "Themestore", description: "Galaxy Themes", safety: "caution" },
+ { pkg: "com.samsung.android.tripwidget", label: "Tripwidget", description: "Discontinued package (used in Galaxy S4) handling trip wallpaper widget.", safety: "safe" },
+ { pkg: "com.samsung.android.unifiedprofile", label: "Unifiedprofile", description: "My Profile", safety: "safe" },
+ { pkg: "com.samsung.android.universalswitch", label: "Universalswitch", description: "Universal Switch lets you designate certain touches or gestures to control specific actions on your phone.", safety: "safe" },
+ { pkg: "com.samsung.android.visionarapps", label: "Visionarapps", description: "\"AR apps\"", safety: "safe" },
+ { pkg: "com.samsung.android.visioncloudagent", label: "Visioncloudagent", description: "VisionCloudAgent", safety: "safe" },
+ { pkg: "com.samsung.android.visionintelligence", label: "Visionintelligence", description: "Bixby Vision", safety: "safe" },
+ { pkg: "com.samsung.android.voc", label: "Voc", description: "Samsung Members (https://play.google.com/store/apps/details?id=com.samsung.android.voc)", safety: "safe" },
+ { pkg: "com.samsung.android.voicewakeup", label: "Voicewakeup", description: "Voice wake-up for using Bixby", safety: "safe" },
+ { pkg: "com.samsung.android.weather", label: "Weather", description: "Samsung Weather", safety: "safe" },
+ { pkg: "com.samsung.android.forest", label: "Forest", description: "Digital Wellbeing (old version of com.samsung.android.wellbeing)", safety: "safe" },
+ { pkg: "com.samsung.android.wellbeing", label: "Wellbeing", description: "Digital Wellbeing", safety: "safe" },
+ { pkg: "com.samsung.android.widgetapp.yahooedge.finance", label: "Finance", description: "Special edge panel widget for Yahoo Finance", safety: "safe" },
+ { pkg: "com.samsung.android.widgetapp.yahooedge.sport", label: "Sport", description: "Special edge panel widget for Yahoo Sport", safety: "safe" },
+ { pkg: "com.samsung.crane", label: "Crane", description: "Call+ (https://support.vodafone.co.uk/Vodafone-apps/Call-and-Message/60900956/What-is-Call.htm)", safety: "safe" },
+ { pkg: "com.samsung.daydream.customization", label: "Customization", description: "Samsung customization for Google Daydream VR headset (https://arvr.google.com/daydream/)", safety: "safe" },
+ { pkg: "com.samsung.desktopsystemui", label: "Desktopsystemui", description: "Samsung DEX UI", safety: "safe" },
+ { pkg: "com.samsung.discover", label: "Discover", description: "It shows up as a pane on OneUI home and prompts you to install all sorts of random apps. OneUI works perfec...", safety: "safe", neededBy: ["com.samsung.discover.sep"] },
+ { pkg: "com.samsung.discover.sep", label: "Sep", description: "Related to `com.samsung.discover` but doesnt seem to do much on its own. Safe to remove without any effect.", safety: "safe", deps: ["com.samsung.discover"] },
+ { pkg: "com.samsung.ecomm", label: "Ecomm", description: "Shop Samsung (https://play.google.com/store/apps/details?id=com.samsung.ecomm)", safety: "safe" },
+ { pkg: "com.samsung.enhanceservice", label: "Enhanceservice", description: "Enhanced service is the process for Samsung cloud messaging (equivalent to iMessage on iOS).", safety: "safe" },
+ { pkg: "com.samsung.faceservice", label: "Faceservice", description: "Face service detection", safety: "safe" },
+ { pkg: "com.samsung.fresco.logging", label: "Logging", description: "Fresco Logging Service", safety: "safe" },
+ { pkg: "com.samsung.groupcast", label: "Groupcast", description: "Samsung Group Play (discontinued)", safety: "safe" },
+ { pkg: "com.samsung.helphub", label: "Helphub", description: "Not sure if this package still exist.", safety: "safe" },
+ { pkg: "com.samsung.ipservice", label: "Ipservice", description: "Set of hidden network settings (inlcuding frequency bands choice)", safety: "safe" },
+ { pkg: "com.samsung.klmsagent", label: "Klmsagent", description: "Checks the validity of your KLM/KPE (Knox Licence Manager) licence.", safety: "safe" },
+ { pkg: "com.samsung.android.knox.analytics.uploader", label: "Uploader", description: "Knox Analytics Uploader", safety: "safe" },
+ { pkg: "com.samsung.knox.keychain", label: "Keychain", description: "Knox Key Chain", safety: "keep" },
+ { pkg: "com.samsung.knox.knoxtrustagent", label: "Knoxtrustagent", description: "Knox Quick Access allows users to access the Knox Workspace container using wearables such as the Galaxy Ge...", safety: "safe" },
+ { pkg: "com.samsung.knox.kss", label: "Kss", description: "Knox Keyguard. Not much more information", safety: "safe" },
+ { pkg: "com.samsung.android.knox.pushmanager", label: "Pushmanager", description: "KnoxPushManager", safety: "safe" },
+ { pkg: "com.samsung.knox.securefolder", label: "Securefolder", description: "Knox Secure Folder (https://play.google.com/store/apps/details?id=com.samsung.knox.securefolder)", safety: "safe" },
+ { pkg: "com.samsung.knox.securefolder.setuppage", label: "Setuppage", description: "Provides the setup process when opening secure folder (com.samsung.knox.securefolder) for the first time", safety: "safe" },
+ { pkg: "com.samsung.logwriter", label: "Logwriter", description: "LogWriter", safety: "safe" },
+ { pkg: "com.samsung.mdl.radio", label: "Radio", description: "Samsung Milk Music (discontinued in 2016)", safety: "safe" },
+ { pkg: "com.samsung.mlp", label: "Mlp", description: "Samsung content recognition.", safety: "safe" },
+ { pkg: "com.samsung.mdl.radio.radiostub", label: "Radiostub", description: "Milk Music (shut down by Samsung)", safety: "safe" },
+ { pkg: "com.samsung.oh", label: "Oh", description: "Samsung Members (https://play.google.com/store/apps/details?id=com.samsung.oh)", safety: "safe" },
+ { pkg: "com.samsung.rcs", label: "Rcs", description: "RCS (Rich Communication Services)", safety: "safe" },
+ { pkg: "com.samsung.safetyinformation", label: "Safetyinformation", description: "Some safety information telling you not to put your phone in your eyes (it's not a joke)", safety: "safe" },
+ { pkg: "com.samsung.SMT", label: "Smt", description: "Samsung TTS (Text-to-speech)", safety: "caution" },
+ { pkg: "com.samsung.storyservice", label: "Storyservice", description: "Samsung StoryService", safety: "safe" },
+ { pkg: "com.samsung.svoice.sync", label: "Sync", description: "Samsung Voice service", safety: "safe" },
+ { pkg: "com.samsung.systemui.bixby2", label: "Bixby2", description: "System UI for Bixby/Bixby2", safety: "safe" },
+ { pkg: "com.samsung.tmovvm", label: "Tmovvm", description: "Samsung Visual Voicemail (for T-mobile only)", safety: "safe" },
+ { pkg: "com.samsung.ucs.agent.boot", label: "Boot", description: "Boot agent", safety: "safe" },
+ { pkg: "com.samsung.ucs.agent.ese", label: "Ese", description: "eSE UCS Plugin is another package from UCS. It makes possible for apps to access eSE of Samsung mobile devi...", safety: "safe" },
+ { pkg: "com.samsung.visionprovider", label: "Visionprovider", description: "Provider for Bixby Vision (com.samsung.android.visionintelligence)", safety: "safe" },
+ { pkg: "com.samsung.voiceserviceplatform", label: "Voiceserviceplatform", description: "Samsung Voice (for Galaxy S7)", safety: "safe" },
+ { pkg: "com.samsung.vvm.se", label: "Se", description: "Samsung Verizon Voicemail", safety: "safe" },
+ { pkg: "com.sec.allsharecastplayer", label: "Allsharecastplayer", description: "Screen Mirroring (only in Galaxy S6)", safety: "safe" },
+ { pkg: "com.sec.android.app.apex", label: "Apex", description: "Samsung ApexService", safety: "safe" },
+ { pkg: "com.sec.android.app.applinker", label: "Applinker", description: "Related to FeliCa Networks (https://en.wikipedia.org/wiki/FeliCa / https://www.felicanetworks.co.jp/en/).", safety: "safe" },
+ { pkg: "com.sec.android.app.billing", label: "Billing", description: "Samsung billing/Checkout", safety: "safe" },
+ { pkg: "com.sec.android.app.camera", label: "Camera", description: "Samsung camera app", safety: "caution" },
+ { pkg: "com.sec.android.app.bluetoothtest", label: "Bluetoothtest", description: "Bluetooth Test", safety: "safe" },
+ { pkg: "com.sec.android.app.chromecustomizations", label: "Chromecustomizations", description: "Samsung stuff on the homepage of Google Chrome", safety: "safe" },
+ { pkg: "com.sec.android.app.DataCreate", label: "Datacreate", description: "Automation Test", safety: "safe" },
+ { pkg: "com.sec.android.app.desktoplauncher", label: "Desktoplauncher", description: "Samsung DeX Home (launcher)", safety: "safe" },
+ { pkg: "com.sec.android.diagmonagent", label: "Diagmonagent", description: "Diagnostic Monitoring Agent", safety: "safe" },
+ { pkg: "com.sec.android.app.dictionary", label: "Dictionary", description: "Samsung Dictionary is is an app that enables you to manage all the dictionaries stored on your Samsung device.", safety: "safe" },
+ { pkg: "com.sec.android.app.easysetup", label: "Easysetup", description: "Core of Samsung SmartThings (formerly Samsung Easy Setup)", safety: "safe" },
+ { pkg: "com.sec.android.app.factorykeystring", label: "Factorykeystring", description: "DeviceKeyString : Dialable hidden diagnostic/debug app", safety: "safe" },
+ { pkg: "com.sec.android.app.gamehub", label: "Gamehub", description: "Samsung Game Hub", safety: "safe" },
+ { pkg: "com.sec.android.app.hwmoduletest", label: "Hwmoduletest", description: "HwModuleTest, a hardware hidden test app (dial *#0*# to open it).", safety: "safe" },
+ { pkg: "com.sec.android.app.magnifier", label: "Magnifier", description: "Lets you use your device as a magnifying glass making it easier to read any small font or expand the detail...", safety: "safe" },
+ { pkg: "com.sec.android.app.mt", label: "Mt", description: "Mobile tracker security feature. If someone inserts a new SIM card in your device the device will automatic...", safety: "safe" },
+ { pkg: "com.sec.android.app.ocr", label: "Ocr", description: "Optical Read (feature replaced by Bixby Vision : com.samsung.android.visionintelligence)", safety: "safe" },
+ { pkg: "com.sec.android.app.parser", label: "Parser", description: "DRParser Mode", safety: "safe" },
+ { pkg: "com.sec.android.app.quicktool", label: "Quicktool", description: "The Quick Tools panel includes a ruler, a compass and a torch. To add this to the Edge Panel (com.samsung.a...", safety: "safe" },
+ { pkg: "com.sec.android.app.ringtoneBR", label: "Ringtonebr", description: "Samsung ringtone backup/restore feature", safety: "safe" },
+ { pkg: "com.sec.android.app.samsungapps", label: "Samsungapps", description: "Samsung Galaxy Store", safety: "safe", neededBy: ["com.samsung.android.spay"] },
+ { pkg: "com.sec.android.app.safetyassurance", label: "Safetyassurance", description: "Safety assurance is related to emergency features. It is especially used for SOS messages.", safety: "caution" },
+ { pkg: "com.sec.android.app.sbrowser", label: "Sbrowser", description: "Samsung web browser (https://play.google.com/store/apps/details?id=com.sec.android.app.sbrowser)", safety: "safe" },
+ { pkg: "com.sec.android.app.sbrowser.lite", label: "Lite", description: "Samsung web browser lite", safety: "safe" },
+ { pkg: "com.sec.android.app.scloud", label: "Scloud", description: "I guess it's the core of Samsung scloud.", safety: "safe" },
+ { pkg: "com.sec.android.app.SecSetupWizard", label: "Secsetupwizard", description: "Samsung Setup Wizard", safety: "safe" },
+ { pkg: "com.sec.android.app.servicemodeapp", label: "Servicemodeapp", description: "SysDump hidden app", safety: "safe" },
+ { pkg: "com.sec.android.app.setupwizardlegalprovider", label: "Setupwizardlegalprovider", description: "SetupWizardLegalProvider", safety: "safe" },
+ { pkg: "com.sec.android.app.shealth", label: "Shealth", description: "Samsung Health (https://play.google.com/store/apps/details?id=com.sec.android.app.shealth)", safety: "safe" },
+ { pkg: "com.sec.android.app.sns3", label: "Sns3", description: "Samsung Galaxy (Only installed on older phone before Galaxy S7)", safety: "safe" },
+ { pkg: "com.sec.android.app.setupwizard", label: "Setupwizard", description: "Samsung Setupwizard", safety: "safe" },
+ { pkg: "com.sec.android.app.suwscriptplayer", label: "Suwscriptplayer", description: "SuwScriptPlayer", safety: "safe" },
+ { pkg: "com.sec.android.app.sysscope", label: "Sysscope", description: "Checks after every boot if the ROM and kernel have been modified. This package is only present on Verizon-l...", safety: "safe" },
+ { pkg: "com.sec.android.app.translator", label: "Translator", description: "Samsung Translater (S Translater)", safety: "safe" },
+ { pkg: "com.sec.android.app.voicenote", label: "Voicenote", description: "Samsung Voice recorder (https://play.google.com/store/apps/details?id=com.sec.android.app.voicenote)", safety: "safe" },
+ { pkg: "com.sec.android.app.withtv", label: "Withtv", description: "Samsung Smart View", safety: "safe" },
+ { pkg: "com.sec.android.app.wlantest", label: "Wlantest", description: "wlan test", safety: "safe" },
+ { pkg: "com.sec.android.AutoPreconfig", label: "Autopreconfig", description: "Auto Preconfig", safety: "safe" },
+ { pkg: "com.sec.android.cover.ledcover", label: "Ledcover", description: "Samsung LED cover service", safety: "safe" },
+ { pkg: "com.sec.android.daemonapp", label: "Daemonapp", description: "Unified Daemon app", safety: "safe" },
+ { pkg: "com.sec.android.desktopcommunity", label: "Desktopcommunity", description: "Samsung DeX panel", safety: "safe" },
+ { pkg: "com.sec.android.desktopmode.uiservice", label: "Uiservice", description: "Samsung DeX", safety: "safe" },
+ { pkg: "com.sec.android.app.dexonpc", label: "Dexonpc", description: "Samsung DeX", safety: "safe" },
+ { pkg: "com.sec.android.easyMover", label: "Easymover", description: "Samsung Smart Switch Mobile (https://play.google.com/store/apps/details?id=com.sec.android.easyMover)", safety: "safe" },
+ { pkg: "com.sec.android.easyMover.Agent", label: "Agent", description: "Smart Switch Agent", safety: "safe" },
+ { pkg: "com.sec.android.easyonehand", label: "Easyonehand", description: "Samsung Easy One Hand mode", safety: "safe" },
+ { pkg: "com.sec.android.fido.uaf.asm", label: "Asm", description: "Fido is a set of open technical specifications for mechanisms of authenticating users to online services th...", safety: "safe" },
+ { pkg: "com.sec.android.fido.uaf.client", label: "Client", description: "Fido UAF client. It's a layer that connects authenticator and RP (the application owner) and ensures validi...", safety: "safe" },
+ { pkg: "com.sec.android.game.gamehome", label: "Gamehome", description: "Samsung Game launcher", safety: "safe" },
+ { pkg: "com.sec.android.mimage.avatarstickers", label: "Avatarstickers", description: "Samsung My Emoji Stickers", safety: "safe" },
+ { pkg: "com.sec.android.mimage.gear360editor", label: "Gear360Editor", description: "360 Photo Editor", safety: "safe" },
+ { pkg: "com.sec.android.preloadinstaller", label: "Preloadinstaller", description: "Very shady apk. According to if you're chinese or not, Samsung mount an hidden partition during the first b...", safety: "safe" },
+ { pkg: "com.sec.android.providers.security", label: "Security", description: "Provider of password security policies?", safety: "safe" },
+ { pkg: "com.sec.android.provider.snote", label: "Snote", description: "Content provider for S Note (https://www.samsung.com/global/galaxy/apps/samsung-notes/).", safety: "safe" },
+ { pkg: "com.sec.android.RilServiceModeApp", label: "Rilservicemodeapp", description: "Service mode RIL hidden app. Used for debug and diagnostics", safety: "safe" },
+ { pkg: "com.sec.android.service.health", label: "Health", description: "Samsung Health Service", safety: "safe" },
+ { pkg: "com.sec.android.sidesync30", label: "Sidesync30", description: "SideSync (discontinued)", safety: "safe" },
+ { pkg: "com.sec.android.splitsound", label: "Splitsound", description: "SplitSoundService", safety: "caution" },
+ { pkg: "com.sec.android.uibcvirtualsoftkey", label: "Uibcvirtualsoftkey", description: "UIBC (User input back channel)", safety: "safe" },
+ { pkg: "com.sec.android.widgetapp.diotek.smemo", label: "Smemo", description: "Samsung Memo widget (was replaced by Samsung Note : com.samsung.android.app.notes)", safety: "safe" },
+ { pkg: "com.sec.android.widgetapp.easymodecontactswidget", label: "Easymodecontactswidget", description: "Favourite Contacts widget", safety: "safe" },
+ { pkg: "com.sec.android.widgetapp.samsungapps", label: "Samsungapps", description: "Galaxy Essential widget", safety: "safe" },
+ { pkg: "com.sec.android.widgetapp.webmanual", label: "Webmanual", description: "User Manual", safety: "safe" },
+ { pkg: "com.sec.app.RilErrorNotifier", label: "Rilerrornotifier", description: "RilNotifier", safety: "safe" },
+ { pkg: "com.sec.bcservice", label: "Bcservice", description: "Broadcast Service", safety: "safe" },
+ { pkg: "com.sec.downloadablekeystore", label: "Downloadablekeystore", description: "Keystore is a secure place provided by Android to store cryptographic keys and make it more difficult to ex...", safety: "safe" },
+ { pkg: "com.sec.enterprise.knox.attestation", label: "Attestation", description: "KNOX Attestation", safety: "safe" },
+ { pkg: "com.sec.enterprise.knox.cloudmdm.smdms", label: "Smdms", description: "Knox Enrollment Service", safety: "safe" },
+ { pkg: "com.sec.enterprise.knox.shareddevice.keyguard", label: "Keyguard", description: "KNOX shared device keyguard.", safety: "safe" },
+ { pkg: "com.sec.enterprise.mdm.services.simpin", label: "Simpin", description: "Entreprise Sim Pin Service", safety: "safe" },
+ { pkg: "com.sec.enterprise.mdm.vpn", label: "Vpn", description: "Entreprise VPN service", safety: "safe" },
+ { pkg: "com.sec.epdgtestapp", label: "Epdgtestapp", description: "Test app for ePDG (see com.sec.epdg)", safety: "safe" },
+ { pkg: "com.sec.everglades", label: "Everglades", description: "Samsung Hub (discontinued)", safety: "safe" },
+ { pkg: "com.sec.everglades.update", label: "Update", description: "SamsungHub Updater (discontinued - See above)", safety: "safe" },
+ { pkg: "com.sec.factory", label: "Factory", description: "Device Test app", safety: "safe" },
+ { pkg: "com.sec.factory.camera", label: "Camera", description: "Camera Test (dial *#34971539# to open CameraFirmware Standard)", safety: "safe" },
+ { pkg: "com.sec.factory.iris.usercamera", label: "Usercamera", description: "Camera Iris User Test (by dialing *#0*#)", safety: "safe" },
+ { pkg: "com.sec.hiddenmenu", label: "Hiddenmenu", description: "IOTHiddenMenu", safety: "safe" },
+ { pkg: "com.sec.imslogger", label: "Imslogger", description: "IMS Logger provides logging opt-ins.", safety: "safe" },
+ { pkg: "com.sec.kidsplat.installer", label: "Installer", description: "Kids Mode (replaced by Kids Home : com.samsung.android.kidsinstaller)", safety: "safe" },
+ { pkg: "com.sec.knox.bluetooth", label: "Bluetooth", description: "KNOX bluetooth", safety: "safe" },
+ { pkg: "com.sec.knox.bridge", label: "Bridge", description: "Debug Bridge ?", safety: "safe" },
+ { pkg: "com.sec.knox.containeragent2", label: "Containeragent2", description: "Samsung Knox Container (v2 ?)", safety: "safe" },
+ { pkg: "com.sec.knox.foldercontainer", label: "Foldercontainer", description: "Needed by KNOX Secure folder (com.samsung.knox.securefolder)", safety: "safe" },
+ { pkg: "com.sec.knox.knoxsetupwizardclient", label: "Knoxsetupwizardclient", description: "KNOX SetupWizardClient", safety: "safe" },
+ { pkg: "com.sec.knox.packageverifier", label: "Packageverifier", description: "KNOX Verifier", safety: "safe" },
+ { pkg: "com.sec.knox.shortcutsms", label: "Shortcutsms", description: "Knox shortcut to switch to workspace", safety: "safe" },
+ { pkg: "com.sec.knox.switchknoxII", label: "Switchknoxii", description: "Handles switches between KNOW/Work container and personal profile.", safety: "safe" },
+ { pkg: "com.sec.knox.switchknoxI", label: "Switchknoxi", description: "Handles switches between KNOW/Work container and personal profile.", safety: "safe" },
+ { pkg: "com.sec.knox.switchknox", label: "Switchknox", description: "Handles switches between KNOW/Work container and personal profile.", safety: "safe" },
+ { pkg: "com.sec.location.nsflp2", label: "Nsflp2", description: "Samsung Location", safety: "safe" },
+ { pkg: "com.sec.mldapchecker", label: "Mldapchecker", description: "MLDAP log", safety: "safe" },
+ { pkg: "com.sec.modem.settings", label: "Settings", description: "Name : SilentLogging", safety: "safe" },
+ { pkg: "com.sec.phone", label: "Phone", description: "another test/debug app used to test the proper functioning of phone calls.", safety: "safe" },
+ { pkg: "com.sec.readershub", label: "Readershub", description: "Samsung Books (discontinued)", safety: "safe" },
+ { pkg: "com.sec.smartcard.manager", label: "Manager", description: "Smart Card Manager", safety: "safe" },
+ { pkg: "com.sec.spp.push", label: "Push", description: "Samsung Push Service (https://play.google.com/store/apps/details?id=com.sec.spp.push)", safety: "safe" },
+ { pkg: "com.sec.sve", label: "Sve", description: "SecVideoEngineService is arguably a Samsung video engine service (handle enconding/decoding ?) for displayi...", safety: "caution" },
+ { pkg: "com.sec.yosemite.phone", label: "Phone", description: "Samsung WatchON (discontinued)", safety: "safe" },
+ { pkg: "com.sec.usbsettings", label: "Usbsettings", description: "USBSettings", safety: "safe" },
+ { pkg: "com.samsung.advp.imssettings", label: "Imssettings", description: "Needed for VoLTE (Voice over LTE) https://en.wikipedia.org/wiki/Voice_over_LTE", safety: "caution" },
+ { pkg: "com.samsung.accessibility", label: "Accessibility", description: "Accessibility settings (useful for apps creating virtual buttons such as a pie-menu)", safety: "caution" },
+ { pkg: "com.samsung.android.allshare.service.fileshare", label: "Fileshare", description: "Wi-Fi Direct", safety: "caution" },
+ { pkg: "com.samsung.android.app.amcagent", label: "Amcagent", description: "Advanced Management Console Agent", safety: "caution" },
+ { pkg: "com.samsung.android.app.aodservice", label: "Aodservice", description: "Always On Display", safety: "caution" },
+ { pkg: "com.samsung.android.app.galaxyfinder", label: "Galaxyfinder", description: "S Finder is a search application that allows you to find what you want in an instant by searching the conte...", safety: "caution" },
+ { pkg: "com.samsung.android.app.motionpanoramaviewer", label: "Motionpanoramaviewer", description: "Motion panorama viewer", safety: "caution" },
+ { pkg: "com.samsung.android.app.selfmotionpanoramaviewer", label: "Selfmotionpanoramaviewer", description: "Selfie panorama viewer", safety: "caution" },
+ { pkg: "com.samsung.android.app.smartcapture", label: "Smartcapture", description: "Samsung screenshot", safety: "caution" },
+ { pkg: "com.sec.android.app.soundalive", label: "Soundalive", description: "Responsible for Dolby Atmos and other pre-programmed equalizer stuff (accessible from the Settings app)", safety: "safe" },
+ { pkg: "com.samsung.android.mcfserver", label: "Mcfserver", description: "Samsung Multi Connectivity (starting from Galaxy S20)", safety: "caution" },
+ { pkg: "com.samsung.app.newtrim", label: "Newtrim", description: "Samsung Video trimmer", safety: "caution" },
+ { pkg: "com.sec.epdg", label: "Epdg", description: "Huh... that's hard to explain quickly. Let's try :", safety: "caution" },
+ { pkg: "com.samsung.android.app.multiwindow", label: "Multiwindow", description: "Provides manifestly the ability to display multiple apps on the screen (at the same time)", safety: "caution" },
+ { pkg: "com.samsung.android.bio.face.service", label: "Service", description: "Handles Face recognition unlock", safety: "caution" },
{ pkg: "com.samsung.android.biometrics", label: "Biometrics", description: "Provide biometric support", safety: "caution" },
{ pkg: "com.samsung.android.biometrics.app.setting", label: "Setting", description: "Biometric settings", safety: "caution" },
- { pkg: "com.samsung.android.biometrics.service", label: "Service", description: "Intelligent Scan for Samsung Galaxy S9(+) and Note 9. NOTE: Removing this will break Intelligent Scan.", safety: "caution" },
- { pkg: "com.samsung.android.bixby.agent", label: "Agent", description: "Removing this will disable the bixby hardware key without breaking Bixby itself.", safety: "safe" },
+ { pkg: "com.samsung.android.bluelightfilter", label: "Bluelightfilter", description: "Blue light filter", safety: "caution" },
+ { pkg: "com.samsung.android.app.contacts", label: "Contacts", description: "Samsung contacts app", safety: "caution" },
+ { pkg: "com.samsung.android.fingerprint.service", label: "Service", description: "Fingerprint service", safety: "caution" },
+ { pkg: "com.samsung.android.lool", label: "Lool", description: "Samsung Device Care (phone optimizer) (https://play.google.com/store/apps/details?id=com.samsung.android.lool)", safety: "caution" },
+ { pkg: "com.samsung.android.messaging", label: "Messaging", description: "Samsung Messaging app", safety: "caution" },
+ { pkg: "com.samsung.android.provider.stickerprovider", label: "Stickerprovider", description: "One more package related to camera stickers.", safety: "caution" },
+ { pkg: "com.samsung.android.sm.devicesecurity", label: "Devicesecurity", description: "Samsung Device security for the Smart Manager app using McAfee antivirus engine.", safety: "caution" },
+ { pkg: "com.samsung.android.server.iris", label: "Iris", description: "Provides iris recognition feature", safety: "caution" },
+ { pkg: "com.samsung.android.smartfitting", label: "Smartfitting", description: "Smart Fitting Service", safety: "safe" },
+ { pkg: "com.samsung.android.spdclient", label: "Spdclient", description: "Security policy updates (part of KNOX)", safety: "caution" },
+ { pkg: "com.samsung.android.tadownloader", label: "Tadownloader", description: "Seems to check if a trusted application needs an update and downloads it.", safety: "caution" },
+ { pkg: "com.samsung.android.tapack.authfw", label: "Authfw", description: "AuthFw TaPack", safety: "caution" },
+ { pkg: "com.samsung.android.video", label: "Video", description: "Samsung Video Player", safety: "caution", deps: ["com.samsung.android.smartmirroring"] },
+ { pkg: "com.samsung.app.slowmotion", label: "Slowmotion", description: "Slowmotion mode in camera app", safety: "caution" },
+ { pkg: "com.samsung.sec.android.application.csc", label: "Csc", description: "Do something related to Country Specific Code (CSC). Maybe it only let you change your CSC", safety: "caution" },
+ { pkg: "com.samsung.upsmtheme", label: "Upsmtheme", description: "Handle the theme of UPSM (Ultra Power Saving Mode)", safety: "caution" },
+ { pkg: "com.samsung.clipboardsaveservice", label: "Clipboardsaveservice", description: "Clipboard Save service saves all the content you saved in the clipboard (clipboard history)", safety: "caution" },
+ { pkg: "com.samsung.cmh", label: "Cmh", description: "CMH Provider is a dependency for the the samsung gallery app. This package asks for a lot of permissions.", safety: "caution" },
+ { pkg: "com.samsung.dcmservice", label: "Dcmservice", description: "Hard to find what it really does but I do know what DCM is in telecommunication. It means Dual Carrier Modu...", safety: "caution" },
+ { pkg: "com.samsung.sdm", label: "Sdm", description: "Handles OTA system Updates.", safety: "caution" },
+ { pkg: "com.samsung.sdm.sdmviewer", label: "Sdmviewer", description: "Lets you view installed updates?", safety: "caution" },
+ { pkg: "com.samsung.tmowfc.wfcpref", label: "Wfcpref", description: "Wifi Calling for T-mobile clients only! (tmowfc = t-mobile only wifi calling)", safety: "caution" },
+ { pkg: "com.samsung.android.app.dofviewer", label: "Dofviewer", description: "Live focus", safety: "caution" },
+ { pkg: "com.sec.android.app.fm", label: "Fm", description: "Samsung Radio", safety: "caution" },
+ { pkg: "com.sec.android.app.launcher", label: "Launcher", description: "Samsung One UI Home launcher (homescreen) (https://play.google.com/store/apps/details?id=com.sec.android.ap...", safety: "caution" },
+ { pkg: "com.sec.android.app.clockpackage", label: "Clockpackage", description: "Samsung clock", safety: "caution" },
+ { pkg: "com.sec.android.app.myfiles", label: "Myfiles", description: "Samsung file manager app (https://play.google.com/store/apps/details?id=com.sec.android.app.myfiles)", safety: "caution" },
+ { pkg: "com.sec.android.app.personalization", label: "Personalization", description: "Has something to do with personalization?", safety: "caution" },
+ { pkg: "com.sec.android.app.popupcalculator", label: "Popupcalculator", description: "Samsung calculator app (https://play.google.com/store/apps/details?id=com.sec.android.app.popupcalculator)", safety: "caution" },
+ { pkg: "com.sec.android.emergencylauncher", label: "Emergencylauncher", description: "Samsung Launcher when in emergency(low battery) mode.", safety: "caution" },
+ { pkg: "com.sec.android.app.vepreload", label: "Vepreload", description: "Samsung video editor", safety: "caution" },
+ { pkg: "com.sec.android.inputmethod.beta", label: "Beta", description: "Samsung Keyboard Neural Beta", safety: "caution" },
+ { pkg: "com.sec.android.emergencymode.service", label: "Service", description: "Emergency mode enables you to extend your device\u2019s standby time when in an emergency situation and want you...", safety: "caution" },
+ { pkg: "com.sec.android.gallery3d", label: "Gallery3D", description: "Samsung Gallery app (https://play.google.com/store/apps/details?id=com.sec.android.gallery3d)", safety: "caution" },
+ { pkg: "com.sec.android.gallery3d.panorama360view", label: "Panorama360View", description: "Let you see panoramic photos in the samsung Gallery.", safety: "caution" },
+ { pkg: "com.samsung.android.honeyboard", label: "Honeyboard", description: "Samsung keyboard", safety: "caution" },
+ { pkg: "com.sec.android.mimage.photoretouching", label: "Photoretouching", description: "Samsung Photo Editor", safety: "caution" },
+ { pkg: "com.sec.android.ofviewer", label: "Ofviewer", description: "Samsung selective focus camera mode.", safety: "caution" },
+ { pkg: "com.sec.android.provider.badge", label: "Badge", description: "Provider for the notification badges (which are not very useful IMHO)", safety: "caution" },
+ { pkg: "com.sec.android.provider.emergencymode", label: "Emergencymode", description: "Provider for emergency mode (com.sec.android.emergencylauncher)", safety: "caution" },
+ { pkg: "com.sec.android.sdhms", label: "Sdhms", description: "Samsung Device Health Manager Service", safety: "caution" },
+ { pkg: "com.sec.android.wallpapercropper2", label: "Wallpapercropper2", description: "Samsung Wallpaper. Needed to set a wallpaper on the launcher.", safety: "caution" },
+ { pkg: "com.sec.imsservice", label: "Imsservice", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over pack...", safety: "caution" },
+ { pkg: "com.sec.automation", label: "Automation", description: "Tethering Automation enables sharing phone internet to the PC with a usb cable.", safety: "caution" },
+ { pkg: "com.sec.hearingadjust", label: "Hearingadjust", description: "Samsung Adapt Sound", safety: "safe" },
+ { pkg: "com.sec.ims", label: "Ims", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over pack...", safety: "caution" },
+ { pkg: "com.sec.internal.vsim.VSimServiceApp", label: "Vsimserviceapp", description: "Non Sim Device Solution (NSDS) needed for VoLTE and VoWifi (Wifi Calling) if you have a virtual SIM.", safety: "caution" },
+ { pkg: "com.sec.vsimservice", label: "Vsimservice", description: "VSim Service", safety: "caution" },
+ { pkg: "com.sec.vsim.ericssonnsds.webapp", label: "Webapp", description: "NSDSWebApp.", safety: "safe" },
+ { pkg: "com.sec.svoice.lang.en_GB", label: "En Gb", description: "Language Pack for S-voice, the Samsung assistant (com.samsung.android.svoice)", safety: "safe" },
+ { pkg: "com.samsung.android.applock", label: "Applock", description: "Samsung App Lock", safety: "keep" },
+ { pkg: "com.samsung.android.SettingsReceiver", label: "Settingsreceiver", description: "Samsung overlay of AOSP Settings. It has 39 permissions. Handles interactions with features controled by th...", safety: "keep" },
+ { pkg: "com.samsung.android.timezone.data_Q", label: "Data Q", description: "Stores timezone data?", safety: "keep" },
+ { pkg: "com.samsung.android.timezone.data.P", label: "P", description: "Samsung timezone data?", safety: "keep" },
+ { pkg: "com.samsung.android.timezone.autoupdate_O", label: "Autoupdate O", description: "Samsung Time Zone Updater", safety: "keep" },
+ { pkg: "com.samsung.android.timezone.data.updater", label: "Updater", description: "Samsung Time Zone Updater", safety: "keep" },
+ { pkg: "com.samsung.android.app.soundpicker", label: "Soundpicker", description: "Lets you select a sound for alarm/ringtone", safety: "keep" },
+ { pkg: "com.samsung.android.clipboarduiservice", label: "Clipboarduiservice", description: "User interface for clipboard", safety: "keep" },
+ { pkg: "com.samsung.android.communicationservice", label: "Communicationservice", description: "Message Service.", safety: "keep" },
+ { pkg: "com.samsung.android.incallui", label: "Incallui", description: "UI when \"being called/in call\". It's basically the screen that shows you who is calling, lets you answer an...", safety: "keep" },
+ { pkg: "com.samsung.android.MtpApplication", label: "Mtpapplication", description: "Samsung overlay for MTP. Talks to com.android.mtp", safety: "keep" },
+ { pkg: "com.samsung.android.provider.filterprovider", label: "Filterprovider", description: "FilterProvider dependency to Samsung Camera", safety: "caution" },
+ { pkg: "com.samsung.networkui", label: "Networkui", description: "User interface of the Mobile Network settings", safety: "keep" },
+ { pkg: "com.samsung.android.sm.policy", label: "Policy", description: "SPCM (Striped Phase Change Memory ?) client.", safety: "keep" },
+ { pkg: "com.sec.android.app.simsettingmgr", label: "Simsettingmgr", description: "SIM card manager.", safety: "keep" },
+ { pkg: "com.samsung.android.sume.nn.service", label: "Service", description: "Provides the photo remaster feature in the Gallery app. Has the camera permission and can access all your m...", safety: "caution" },
+ { pkg: "com.samsung.android.privateshare", label: "Privateshare", description: "Blockchain-powered file sharing system for Samsung phones.", safety: "safe" },
+ { pkg: "com.samsung.android.airtel.stubapp", label: "Stubapp", description: "My Airtel Stub app", safety: "safe" },
+ { pkg: "com.samsung.android.app.camera.sticker.facear.preload", label: "Preload", description: "Annoying Stickers/stamps of the Samsung camera app. C'mon it feels like Snapshat.", safety: "safe" },
+ { pkg: "com.samsung.android.app.camera.sticker.facear3d.preload", label: "Preload", description: "Default 3D live stickers", safety: "safe" },
+ { pkg: "com.samsung.android.app.camera.sticker.facearavatar.preload", label: "Preload", description: "Annoying Stickers/stamps of the Samsung camera app. C'mon it feels like Snapshat.", safety: "safe" },
+ { pkg: "com.samsung.android.app.ledbackcover", label: "Ledbackcover", description: "I think it enables doing things with LEDs on the cover", safety: "safe" },
+ { pkg: "com.samsung.android.app.vrsetupwizards", label: "Vrsetupwizards", description: "Samsung Gear VR (Virtual Reality) setup wizard (https://en.wikipedia.org/wiki/Samsung_Gear_VR)", safety: "safe" },
{ pkg: "com.samsung.android.bixby.agent.dummy", label: "Dummy", description: "Bixby Voice Stub", safety: "safe" },
{ pkg: "com.samsung.android.bixby.es.globalaction", label: "Globalaction", description: "Bixby stuff [MORE INFO NEEDED]", safety: "safe" },
{ pkg: "com.samsung.android.bixby.plmsync", label: "Plmsync", description: "Bixby stuff [MORE INFO NEEDED]", safety: "safe" },
{ pkg: "com.samsung.android.bixby.service", label: "Service", description: "Bixby Service", safety: "safe" },
{ pkg: "com.samsung.android.bixby.voiceinput", label: "Voiceinput", description: "Bixby service needed for voice control", safety: "safe" },
{ pkg: "com.samsung.android.bixby.wakeup", label: "Wakeup", description: "Bixby voice wake-up", safety: "safe" },
- { pkg: "com.samsung.android.bixbyhelper", label: "Bixbyhelper", description: "QQ music plugin Require QQ Music and it's Chinese.", safety: "safe" },
- { pkg: "com.samsung.android.bixbytouch", label: "Bixbytouch", description: "Bixby Touch App for smart things, still only for China.", safety: "safe" },
- { pkg: "com.samsung.android.bixbyvision.framework", label: "Framework", description: "BixbyVision Framework", safety: "safe" },
- { pkg: "com.samsung.android.bluelightfilter", label: "Bluelightfilter", description: "Blue light filter Using the sunrise/sunset option uses the ACCESS_FINE_LOCATION permission. It's better to program the activation of the filter according to the time. Note: reducing blue light can prevent eyestrain and other health issues. See https://www.webmd.com/eye-health/blue-light-reduce-effects", safety: "caution" },
- { pkg: "com.samsung.android.brightnessbackupservice", label: "Brightnessbackupservice", description: "Backup brightness configuration May be used when reverting the brightness from a mode, routine, or powersaving mode.", safety: "caution" },
- { pkg: "com.samsung.android.calendar", label: "Calendar", description: "Samsung Calendar App", safety: "caution" },
- { pkg: "com.samsung.android.callassistant", label: "Callassistant", description: "Appears to handle a whole bunch of AI services related to Gallery and Phone. Can break stuff in OneUI 6.1+", safety: "caution" },
- { pkg: "com.samsung.android.callbgprovider", label: "Callbgprovider", description: "CallBGProvider Call Background. It is customizing background theme of calling. SCloud, backup things found in code.", safety: "caution" },
- { pkg: "com.samsung.android.camerasdkservice", label: "Camerasdkservice", description: "SCameraService Camera SDK, probably used for the main camera app? There are a lot of features that I do not know if it is not only available to developers. App has many permissions like arcsoft, smartcamerascan, supernight, too many to write here. A strange app with many things sometimes mentioned in the code that it is used for calibration.", safety: "caution" },
- { pkg: "com.samsung.android.cameraxservice", label: "Cameraxservice", description: "it's hidden app for testing camera things also it's camera calibration", safety: "safe" },
- { pkg: "com.samsung.android.carkey", label: "Carkey", description: "Digital Key Framework Frameworks to CarKey app, only China.", safety: "safe" },
- { pkg: "com.samsung.android.carlink", label: "Carlink", description: "CarLife app only for China.", safety: "safe" },
- { pkg: "com.samsung.android.chnfileshare.kit", label: "Kit", description: "S Share Chinese app to Secure transfer files using bluetooth.", safety: "safe" },
- { pkg: "com.samsung.android.cidmanager", label: "Cidmanager", description: "Sets the CSC for the phone depending on the SIM card. This is responsible for forcing you to restart when to activate the so-called features when inserting new SIM card. It may also revert band settings after OTA update in some cases. WARNING: it may be needed to receive OTA updates, currently unknown.", safety: "caution" },
- { pkg: "com.samsung.android.clipboarduiservice", label: "Clipboarduiservice", description: "User interface for clipboard", safety: "keep" },
- { pkg: "com.samsung.android.cmfa.framework", label: "Framework", description: "Continous Multi-Factor Authentication Framework Seems useless if you aren't logged-in to a Samsung Account. https://docs.samsungknox.com/dev/knox-sdk/additional-aac-enhancements.htm", safety: "safe" },
- { pkg: "com.samsung.android.coldwalletservice", label: "Coldwalletservice", description: "Samsung Blockchain Keystore Secure and convenient place to manage your private key used for cryptocurrency transactions.", safety: "safe" },
- { pkg: "com.samsung.android.communicationservice", label: "Communicationservice", description: "Message Service. Needed for SMS/MMS communication", safety: "keep" },
{ pkg: "com.samsung.android.contacts", label: "Contacts", description: "Samsung contacts app?", safety: "caution" },
- { pkg: "com.samsung.android.container", label: "Container", description: "ContainerService Creates container. Maybe not very useful. Someone can test?", safety: "caution" },
- { pkg: "com.samsung.android.coreapps", label: "Coreapps", description: "Samsung Enhanced features Files and profiles sharing feature. It may be called\"Enhanced messaging\". Using this service lets Samsung to automatically collect your phone number, contact list and messages https://forums.androidcentral.com/samsung-galaxy-s6-edge/523172-enhanced-features.html https://www.samsung.com/za/support/mobile-devices/what-is-enhanced-messaging/", safety: "safe" },
- { pkg: "com.samsung.android.da.daagent", label: "Daagent", description: "Samsung dual messenger (https://www.samsung.com/global/galaxy/what-is/dual-messenger/) Allows you to use two separate accounts for the same app.", safety: "safe" },
- { pkg: "com.samsung.android.dbsc", label: "Dbsc", description: "Galaxy Service Setup Device-Based Service Consent. Pairs with `com.sec.spp.push` to broadcast new service consent requests to your device. Really slimey move by Samsung to name it this in the wake of Google announcing their own DBSC (Device Bound Session Credentials) which will phase out third-party cookies and help secure browsers against cookie theft. https://blog.chromium.org/2024/04/fighting-cookie-theft-using-device.html", safety: "safe" },
- { pkg: "com.samsung.android.dck.timesync", label: "Timesync", description: "DckTimeSyncService Only logs found", safety: "safe" },
- { pkg: "com.samsung.android.deviceidservice", label: "Deviceidservice", description: "DeviceIdService Collects device id but it is not known what it is used for. Take's OAID, VAID, AAID.", safety: "safe" },
- { pkg: "com.samsung.android.dialer", label: "Dialer", description: "Stock Samsung Phone dialer", safety: "caution" },
- { pkg: "com.samsung.android.digitalkey", label: "Digitalkey", description: "Digital Key I found on this app only: Using your phone as a key to open doors. Coming soon! Useless. Not available digital key for users.", safety: "safe" },
- { pkg: "com.samsung.android.dkey", label: "Dkey", description: "Samsung Wallet Digital Key Used for cars, only China.", safety: "safe" },
- { pkg: "com.samsung.android.dlp.service", label: "Service", description: "SamsungDLPService (KNOX). Old feature. Was replaced by SDP (Sensitive Data Protection) Data Loss Prevention (DLP) feature SDP is good because it allows to have encrypted data at rest (= decryption keys not in RAM) even when your phone is on. https://docs.samsungknox.com/admin/whitepaper/kpe/sensitive-data-protection.htm https://docs.samsungknox.com/knox-platform-for-enterprise/admin-guide/sensitive-data-protection.htm", safety: "safe" },
- { pkg: "com.samsung.android.dqagent", label: "Dqagent", description: "Samsung Device Quality Agent Logging agent for diagnostic device information.", safety: "caution" },
- { pkg: "com.samsung.android.drivelink.stub", label: "Stub", description: "Stub for car mode REMINDER : Stub = https://stackoverflow.com/questions/10648280/what-is-stub-and-aidl-for-in-java", safety: "safe" },
- { pkg: "com.samsung.android.dsms", label: "Dsms", description: "Dsms Hidden diagmonagent logs components.", safety: "safe" },
- { pkg: "com.samsung.android.dynamiclock", label: "Dynamiclock", description: "Samsung Wallpaper services (Dynamic Lock) NOTE: Breaks LockStar customization. Automatically changes your Lock screen’s wallpaper every time your Galaxy phone wakes up (wallpapers update every 2 weeks). https://www.samsung.com/us/support/answer/ANS10001593", safety: "caution", neededBy: ["com.samsung.systemui.lockstar"] },
- { pkg: "com.samsung.android.easysetup", label: "Easysetup", description: "Samsung Nearby device scanning Requires\"com.samsung.android.beaconmanager\" to be useful.", safety: "safe" },
- { pkg: "com.samsung.android.email.composer", label: "Composer", description: "another app related to Email app, bad privacy", safety: "safe" },
- { pkg: "com.samsung.android.email.provider", label: "Provider", description: "Samsung email app (https://play.google.com/store/apps/details?id=com.samsung.android.email.provider)", safety: "safe" },
- { pkg: "com.samsung.android.email.sync", label: "Sync", description: "Sync to Email app, bad privacy", safety: "safe" },
- { pkg: "com.samsung.android.email.ui", label: "Ui", description: "Email app with bad privacy", safety: "safe" },
- { pkg: "com.samsung.android.email.widget", label: "Widget", description: "Email Widget on some old samsung phones like S6", safety: "safe" },
- { pkg: "com.samsung.android.emergency", label: "Emergency", description: "Emergency SOS Has a lot of permissions, lets you send SOS messages and calls.", safety: "caution" },
- { pkg: "com.samsung.android.emojiupdater", label: "Emojiupdater", description: "AR Emoji updater This package has no permission so I wonder how it can update anything. See com.samsung.android.aremoji", safety: "safe" },
- { pkg: "com.samsung.android.fast", label: "Fast", description: "Samsung Secure Wi-Fi Samsung VPN service powered by McAfee https://www.pcmag.com/news/mcafee-samsung-partner-on-built-in-security-vpn-for-galaxy-s9 https://www.ctrl.blog/entry/what-is-samsung-secure-wi-fi.html Note: If you need to use a VPN use something more trustworthy*", safety: "safe" },
- { pkg: "com.samsung.android.fingerprint.service", label: "Service", description: "Fingerprint service", safety: "caution" },
- { pkg: "com.samsung.android.fmm", label: "Fmm", description: "Find My Mobile Tracks down your device when it gets lost. Lets you remotely lock your device, block access to Samsung Pay and wipe data from the entire device. https://www.samsung.com/global/galaxy/what-is/find-my-mobile/ https://findmymobile.samsung.com/", safety: "safe" },
- { pkg: "com.samsung.android.forest", label: "Forest", description: "Digital Wellbeing (old version of com.samsung.android.wellbeing) That's an app for device and app usage tracking and limiting. https://galaxystore.samsung.com/prepost/000004807357 NOTE for Dex users: uninstalling this package makes the UI unstable, in particular the taskbar is not loaded and UI continues to crash.", safety: "caution" },
- { pkg: "com.samsung.android.framework.res", label: "Res", description: "This package is part of Samsung’s custom system framework and manages various resources for Samsung-specific features and UI enhancements.", safety: "caution" },
- { pkg: "com.samsung.android.galaxycontinuity", label: "Galaxycontinuity", description: "Samsung Flow (https://play.google.com/store/apps/details?id=com.samsung.android.galaxycontinuity) It's a service to 'seamlessly' connect your devices. You can authenticate your Tablet/PC with your smartphone, share content between devices, and sync notifications or view contents from your smartphone on your Tablet/PC. You can turn on the smartphone's Mobile Hotspot to keep your Tablet/PC connected. You can also log in to your Tablet/PC with your biometric data (Iris, Fingerprints) if you register with Samsung Pass. https://www.samsung.com/levant/support/mobile-devices/what-is-the-samsung-flow-and-how-to-use-it/ Has more than 81 permissions. Not the kind of app you want to keep installed if you don't use it. It increases the attack surface and can potentially compromise a lot of things (including your computer). FYI, 4 CVE has been discovered between 2021 and 2022: https://www.opencve.io/cve?vendor=samsung&product=samsung_flow Pithus analysis: https://beta.pithus.org/report/77216cd6209c73d00332180319249ac6e4ef8479e68d2a21c97a52fdc5f3d62b", safety: "safe" },
- { pkg: "com.samsung.android.gallery.plugins", label: "Plugins", description: "SamsungGallery Plugins Chinese mapcamera plugin.", safety: "safe" },
- { pkg: "com.samsung.android.gallery.watch", label: "Watch", description: "Samsung Watch gallery app", safety: "caution" },
- { pkg: "com.samsung.android.game.gamehome", label: "Gamehome", description: "Samsung Game Launcher https://www.samsung.com/global/galaxy/apps/game-launcher/ All in one hub for mobiles games", safety: "safe" },
- { pkg: "com.samsung.android.game.gametools", label: "Gametools", description: "Samsung Game Tools/Booster (https://www.samsung.com/au/support/mobile-devices/how-to-use-game-tools/) Let you record and share screenshots of your game-play.", safety: "safe" },
- { pkg: "com.samsung.android.game.gos", label: "Gos", description: "Samsung Game Optimizing Service Is supposed to\"improve\" game performance. Has a\"Game Intent Service\" that runs occasionally. If uninstalling fails, try disabling. More info: https://pcgamer.com/samsungs-game-optimization-service-might-be-throttling-the-performance-of-over-10000-apps", safety: "safe" },
- { pkg: "com.samsung.android.gametuner.thin", label: "Thin", description: "Samsung Game Tuner (https://play.google.com/store/apps/details?id=com.samsung.android.gametuner.thin) Game Tuner is advanced setting app. It enables you to change the resolution and frames per second settings in mobile games that require tuning for different Android devices, and thereby control heat generation and battery drain.", safety: "safe" },
- { pkg: "com.samsung.android.gearoplugin", label: "Gearoplugin", description: "Gear S Plugin (https://play.google.com/store/apps/details?id=com.samsung.android.gearoplugin) Plugin for com.samsung.android.app.watchmanager", safety: "safe" },
- { pkg: "com.samsung.android.globalpostprocmgr", label: "Globalpostprocmgr", description: "GlobalPostProcMgr Unknown app, has Draft Recovery. Uninstalling breaks camera functionality.", safety: "caution" },
- { pkg: "com.samsung.android.gru", label: "Gru", description: "Galaxy Resource Updater Needed for galaxy store probably and not sure but also for system updates?", safety: "caution" },
- { pkg: "com.samsung.android.hdmapp", label: "Hdmapp", description: "Hypervisor Device Manager App https://docs.samsungknox.com/devref/knox-sdk/reference/com/samsung/android/knox/hdm/HdmManager.html", safety: "safe" },
- { pkg: "com.samsung.android.hmt.vrshell", label: "Vrshell", description: "Gear VR Shell Gear VR : https://360samsungvr.com/portal/content/about_samsung_vr", safety: "safe" },
- { pkg: "com.samsung.android.hmt.vrsvc", label: "Vrsvc", description: "Gear VR Service See above.", safety: "safe" },
- { pkg: "com.samsung.android.homemode", label: "Homemode", description: "Daily Board (https://play.google.com/store/apps/details?id=com.samsung.android.homemode) Show a slideshow of your favourite pictures while your device is charging.", safety: "safe" },
- { pkg: "com.samsung.android.honeyboard", label: "Honeyboard", description: "Samsung keyboard WARNING: do NOT disable if you don't have another keyboard with direct boot mode support, or you'll be stuck at boot (no keyboard to unlock the phone). https://developer.android.com/training/articles/direct-boot WARNING: Do NOT remove this package with root if it wasn't first uninstalled with the non-root method. WARNING: Removing this packages breaks the Accessibility settings on Android 11. WARNING: Removing this packages breaks the edge panel clipboard.", safety: "caution" },
- { pkg: "com.samsung.android.hwresourceshare.storage", label: "Storage", description: "Allows the storage on your phone, tablet, computer, and TV to connect so you can view and use files from one device on another without cables or downloads. The service always runs in the background, and removing it has not caused any problems. https://r1.community.samsung.com/t5/tips-how-to/the-new-storage-share-feature/ba-p/36247598 https://www.samsung.com/us/support/answer/ANS10004607/", safety: "safe" },
- { pkg: "com.samsung.android.icecone", label: "Icecone", description: "Keyboard Content Center Lets you choose media content (e.g. stickers and music) from the Galaxy Keyboard. This app always runs in background.", safety: "safe" },
- { pkg: "com.samsung.android.imagepp", label: "Imagepp", description: "Chat PP Only for China.", safety: "safe" },
- { pkg: "com.samsung.android.incall.contentprovider", label: "Contentprovider", description: "CallContentProvider After remove, some features will not be available: Face AR, AR Emoji, filter, sticker.", safety: "caution" },
- { pkg: "com.samsung.android.incallui", label: "Incallui", description: "UI when\"being called/in call\". It's basically the screen that shows you who is calling, lets you answer and hang up, switch to speaker, etc", safety: "keep" },
- { pkg: "com.samsung.android.inputshare", label: "Inputshare", description: "Samsung Multi-Control, allows certain apps to be continued on multiple Galaxy devices (like Internet or Notes)", safety: "safe" },
- { pkg: "com.samsung.android.intelligenceservice", label: "Intelligenceservice", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.samsung.android.intelligenceservice2", label: "Intelligenceservice2", description: "It seems that this package is a kind of spyware. Very difficult to find information about this. Some people say it's linked to Carrier IQ (which is a carrier rootkit for the NSA). https://en.wikipedia.org/wiki/Carrier_IQ https://forum.xda-developers.com/showpost.php?s=c85df628dfc39c3a971e6f9cfa98cbb8&p=54071328&postcount=6 This package also have very strange permissions : READ_PLACE / WRITE_PLACE. I couldn't find any explanation on the web. So either it's a useless samsung package either it's a spyware. I delete it and I didn't notice anything bad.", safety: "safe" },
- { pkg: "com.samsung.android.internal.overlay.config.default_contextual_search", label: "Default_contextual_search", description: "The code only assigns (com.google.android.googlequicksearchbox) as the default contextual search package via (config_defaultContextualSearchPackageName). I suppose that if (com.google.android.googlequicksearchbox) is removed, this feature stops working.", safety: "caution" },
- { pkg: "com.samsung.android.ipsgeofence", label: "Ipsgeofence", description: "Samsung Visit In app IPSGeofence IPS = Indoor Positioning System. The concept of Indoor Positioning System designates a network of connected devices within a building making it possible to trace the position of another device – and therefore potentially of a person – in environments where GPS systems are not efficient . Geofencing is a technique which consists in activating preconfigured actions when a device enters a certain geographical area. For example, a user can use it to automatically turn on Wi-Fi and home lights when their smartphone is detected nearby. In short, if enabled, this app will track your location everywhere and all the time! https://www.comparitech.com/blog/vpn-privacy/what-is-geofencing-privacy/", safety: "safe" },
- { pkg: "com.samsung.android.keycustomizationinfobackupservice", label: "Keycustomizationinfobackupservice", description: "If you don't use backup service, it's safe to remove.", safety: "safe" },
- { pkg: "com.samsung.android.keyguardwallpaperupdator", label: "Keyguardwallpaperupdator", description: "Lets you customize your Samsung device with different images (provided by Samsung) on the lock screen.", safety: "safe" },
- { pkg: "com.samsung.android.kgclient", label: "Kgclient", description: "Samsung Payment Services Removing this package will LOCK YOU OUT of your device with a full-screen overlay message saying that Device Services was uninstalled in an unauthorised manner. This is persistent upon reboots until a factory data reset is initiated. Filesystem can still be accessed if ADB permissions were granted beforehand. Unless you know what you're doing, you shouldn't uninstall this package.", safety: "keep" },
- { pkg: "com.samsung.android.kidsinstaller", label: "Kidsinstaller", description: "Samsung Kids Home (https://www.samsung.com/global/galaxy/apps/samsung-kids-home/) Lets you shape a\"safe environment\" for your child. NOTE : You shouldn't give your phone to a child. That bad ! https://ifstudies.org/blog/a-smartphone-will-change-your-child-in-ways-you-might-not-expect-or-want", safety: "safe" },
- { pkg: "com.samsung.android.kmxservice", label: "Kmxservice", description: "KmxService Knox Matrix. Provides a feature to securely generate and store keys used for end-to-end encryption (E2EE). It encrypts/decrypts data on the user’s device and transmits it to the server. The user’s original data cannot be checked as decryption is impossible from the server, which only has encrypted data, and is safely protected from external attacks. https://www.apkmirror.com/apk/samsung-electronics-co-ltd/kmxservice/", safety: "caution" },
- { pkg: "com.samsung.android.knox.analytics.uploader", label: "Uploader", description: "Knox Analytics Uploader Sends analytics to Samsung", safety: "safe" },
- { pkg: "com.samsung.android.knox.app.networkfilter", label: "Networkfilter", description: "knoxNwFilter Is responsible for Bluetooth to work.", safety: "caution" },
- { pkg: "com.samsung.android.knox.attestation", label: "Attestation", description: "KNOX Attestation Lets you check the integrity of a Samsung Android device by connecting to a Samsung Attestation server. https://docs.samsungknox.com/admin/whitepaper/kpe/attestation.htm", safety: "safe" },
- { pkg: "com.samsung.android.knox.containeragent", label: "Containeragent", description: "KNOX Work profile/space Provides an isolated environment to store data (see Secure Folder) Note : With Knox 3.4, Knox containers are now deprecated and replaced by Android work profiles. Comunicate with Samsung servers : - https://vas.samsungapps.com (App updates) - http://cn-ms.samsungapps.com (APK Server) # https://support.samsungknox.com/hc/en-us/articles/115012547907-What-URLs-do-I-have-to-whitelist-to-make-Samsung-apps-work-with-an-authenticated-proxy-", safety: "safe" },
- { pkg: "com.samsung.android.knox.containercore", label: "Containercore", description: "KNOX Work profile/space Provides an isolated environment to store data (see Secure Folder) Note : With Knox 3.4, Knox containers are now deprecated and replaced by Android work profiles. Comunicate with Samsung servers : - https://vas.samsungapps.com (App updates) - http://cn-ms.samsungapps.com (APK Server) # https://support.samsungknox.com/hc/en-us/articles/115012547907-What-URLs-do-I-have-to-whitelist-to-make-Samsung-apps-work-with-an-authenticated-proxy-", safety: "safe" },
- { pkg: "com.samsung.android.knox.containerdesktop", label: "Containerdesktop", description: "Knox Container Desktop Provides UI for the work(space) container? See\"com.samsung.android.knox.containeragent\"", safety: "safe" },
- { pkg: "com.samsung.android.knox.er", label: "Er", description: "Knox ER component. Part of Samsung Knox enterprise features; safe to remove only if you do not use Knox/enterprise functionality.", safety: "caution" },
- { pkg: "com.samsung.android.knox.kfbp", label: "Kfbp", description: "Knox Frame Buffer Provider. Provides graphics buffer services for Knox UI/containers.", safety: "caution" },
- { pkg: "com.samsung.android.knox.knnr", label: "Knnr", description: "Knox Neural Network Runtime. ML runtime used by some Knox/enterprise features.", safety: "caution" },
- { pkg: "com.samsung.android.knox.kpecore", label: "Kpecore", description: "Samsung KPECore KPE stands for 'Knox Platform for Enterprise'", safety: "safe" },
- { pkg: "com.samsung.android.knox.mpos", label: "Mpos", description: "Knox mPOS Enabler offers a range of security/usability features, enabling secure and contactless payments on Samsung devices. https://play.google.com/store/apps/details?id=com.samsung.android.knox.mpos", safety: "caution" },
- { pkg: "com.samsung.android.knox.pushmanager", label: "Pushmanager", description: "KnoxPushManager", safety: "safe" },
- { pkg: "com.samsung.android.knox.sandbox", label: "Sandbox", description: "Knox Sandbox. Isolation/sandboxing support for Knox secure environments.", safety: "caution" },
- { pkg: "com.samsung.android.knox.zt.framework", label: "Framework", description: "KnoxZT Framework To learn how you type, Touch Dynamics will collect and analyze sensor data while typing.", safety: "safe" },
- { pkg: "com.samsung.android.livestickers", label: "Livestickers", description: "Deco Pic (accessible through AR Zone) Camera app with stickers and snapchat-like filters", safety: "safe" },
- { pkg: "com.samsung.android.localeoverlaymanager", label: "Localeoverlaymanager", description: "Locale Overlay Manager Has overlays about FOTA updates, Cleaning up files, checking setup complete", safety: "caution" },
- { pkg: "com.samsung.android.location", label: "Location", description: "Slocation. It handles GPS queries for some Samsung (Galaxy) apps, such as Camera location tagging. Apps exclusively using raw GPS and/or Google Location API are unaffected https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/issues/762#issuecomment-2567149732", safety: "caution" },
- { pkg: "com.samsung.android.lool", label: "Lool", description: "Samsung Device Care (https://play.google.com/store/apps/details?id=com.samsung.android.lool) While this package was suspected previously to send lots of data to Chinese servers it has since been debunked - only connects to Chinese server to retrieve database, but still sends some very basic data about the phone like model number, storage capacity, and a randomly generated identifier https://www.reddit.com/r/Android/comments/el99r0/samsung_members_koreas_official_reply_has_arrived/ WARNING: disabling/removing this package may remove the option to manage Power Saving, Fast Charging & Battery Protection on some devices", safety: "caution" },
- { pkg: "com.samsung.android.mapsagent", label: "Mapsagent", description: "Provides the\"recommendation\" service. It auto-installs recommended apps from Samsung & partners after a factory reset or first boot. Also recommends you apps when you access an app folder. Similar to com.samsung.android.app.omcagent", safety: "safe" },
- { pkg: "com.samsung.android.mateagent", label: "Mateagent", description: "Samsung Galaxy Friends is an accessory platform service that allows the user to enjoy a variety of content quickly and easily by simply connecting an accessory, without having to install additional applications. https://developer.samsung.com/codelab/SDC18-experiences/Galaxy-Friends", safety: "safe" },
- { pkg: "com.samsung.android.mcfds", label: "Mcfds", description: "Continuity Service Chat with other peoples. This app is available on Galaxy Store. https://galaxystore.samsung.com/prepost/000006390343?appId=com.samsung.android.mcfds", safety: "safe" },
- { pkg: "com.samsung.android.mcfserver", label: "Mcfserver", description: "Samsung Multi Connectivity See https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/12", safety: "caution" },
- { pkg: "com.samsung.android.mdagent", label: "Mdagent", description: "MdAgent", safety: "caution" },
- { pkg: "com.samsung.android.mdecservice", label: "Mdecservice", description: "Samsung Call & Text. Not 100% sure, but by looking at the decompiled Java/Dalvik/A.R.T. code it seems the app provides a way to receive call and SMS on Samsung accessories. In any case it is only useful for Samsung IoT stuff. Embeded Google Firebase analytics", safety: "safe" },
- { pkg: "com.samsung.android.mdm", label: "Mdm", description: "MDMApp (Mobile Device Management app) Used to monitor and manage remotely mobile devices. For example locking split-screen, blocking safe mode boot, enabling branding logo in the lock screen, remotely configuring IMAP email... Most likely related to KNOX https://www.samsungknox.com/en/solutions/it-solutions/knox-manage https://developer.samsung.com/tech-insights/knox/mobile-device-management", safety: "safe" },
- { pkg: "com.samsung.android.mdx", label: "Mdx", description: "Link to Windows Service Works in conjunction with the Microsoft Your Phone app and activates a connection to your PC on Windows", safety: "safe" },
- { pkg: "com.samsung.android.mdx.kit", label: "Kit", description: "Quick Share Connectivity / MDE Service Framework MDX = Multi Devices Experience (https://www.samsung.com/levant/multi-device-experience/) Framework for IoT stuff. Asks for a LOT of dangerous permissions Interacts with\"com.samsung.android.mobileservice\" and\"com.osp.app.signin\"", safety: "safe" },
- { pkg: "com.samsung.android.mdx.quickboard", label: "Quickboard", description: "Device control and Media output Kind of a hub in notification panel for managing medias played on smart devices (e.g play music to 2 Bluetooth devices simultaneously with Dual audio) https://www.samsung.com/latin_en/support/mobile-devices/media-and-device-feature/ Has a lot of permissions and asks for ACCESS_COARSE_LOCATION, QUERY_ALL_PACKAGES. WARNING: Removing this package does not prevent you to connect to smart devices, but causes the brightness slider in the notification panel to only be displayed in expanded state (as of OneUI 6).", safety: "caution" },
+ { pkg: "com.samsung.android.knox.containeragent", label: "Containeragent", description: "KNOX Work profile/space", safety: "safe" },
+ { pkg: "com.samsung.android.personalpage.service", label: "Service", description: "Private mode (was replaced by Secure Folder)", safety: "safe" },
+ { pkg: "com.samsung.hiddennetworksetting", label: "Hiddennetworksetting", description: "Set of hidden network settings (inlcuding frequency band choice).", safety: "caution" },
+ { pkg: "com.samsung.systemui.bixby", label: "Bixby", description: "System UI for Bixby/Bixby2", safety: "safe" },
+ { pkg: "com.samsung.vvm", label: "Vvm", description: "Samsung Verizon Voicemail", safety: "safe" },
+ { pkg: "com.samsung.android.kgclient", label: "Kgclient", description: "Samsung Payment Services", safety: "keep" },
+ { pkg: "com.samsung.android.setupindiaservicestnc", label: "Setupindiaservicestnc", description: "Samsung Services", safety: "safe" },
+ { pkg: "com.samsung.advancedcallservice", label: "Advancedcallservice", description: "Advanced Calling feature on an Android is a feature that allows you to make calls while using other applica...", safety: "caution" },
{ pkg: "com.samsung.android.mediacontroller", label: "Mediacontroller", description: "Ability to controls phone's audio from your watch.", safety: "caution" },
- { pkg: "com.samsung.android.messaging", label: "Messaging", description: "Samsung Messaging app", safety: "caution" },
- { pkg: "com.samsung.android.messaging.extension.chn", label: "Chn", description: "MessagingExtensionCh Has too much spying things.", safety: "safe" },
- { pkg: "com.samsung.android.mfi", label: "Mfi", description: "Galaxy Widget (https://play.google.com/store/apps/details?id=com.samsung.android.mfi) Just shows you ads of some of Samsung's services or other apps/games.", safety: "safe" },
- { pkg: "com.samsung.android.mobileservice", label: "Mobileservice", description: "Group Sharing (earlier Samsung Experience Service). The legacy version was similar to Samsung Core Services (citation needed). Can remove safely if you don't use any group sharing features (shared albums in gallery, etc.). Handles your Samsung account and is needed to use some Samsung apps features. It allows you to use Samsung apps, such as Samsung Health, Samsung Pay, Galaxy Apps, Samsung Members, and SmartThings with your Samsung account credentials. https://techshift.net/what-is-samsung-group-sharing/", safety: "caution" },
- { pkg: "com.samsung.android.mocca", label: "Mocca", description: "MoccaMobile Require google play services. Diagnostics, logs, car crash, better remove this app.", safety: "safe" },
- { pkg: "com.samsung.android.motionphoto.app", label: "App", description: "Motion Photo. Enables capture/view of motion photos (short video with still photo) in Samsung Camera/Gallery.", safety: "caution" },
- { pkg: "com.samsung.android.motionphoto.viewer", label: "Viewer", description: "Motion photo viewer that only you can watch videos on it also diagmonagent logs founded.", safety: "caution" },
- { pkg: "com.samsung.android.mtp", label: "Mtp", description: "MTP application It doesn't cause a bootloop, but its highly not recommended to remove it. This app is needed for transfer files to PC/Phone.", safety: "keep" },
- { pkg: "com.samsung.android.mydevice", label: "Mydevice", description: "This app shows your devices on the QuickPanel. https://galaxystore.samsung.com/prepost/000008084719?appId=com.samsung.android.mydevice", safety: "caution" },
- { pkg: "com.samsung.android.net.wifi.wifiguider", label: "Wifiguider", description: "Wi-Fi Tips Shows a question-mark button next to Wi-Fi networks that failed to connect for any reason, providing info to fix the specific issue. It also has a dedicated Settings activity that lists all possible help-tips, accessible via the\"More tips\" button when reading a tip. Upon reinstalling a notification pops up saying\"Analyzing Wi-Fi\" for a few seconds, no idea what it's doing. WARNING: removing makes it impossible to connect to a Wi-Fi network without a detected internet connection!", safety: "caution" },
- { pkg: "com.samsung.android.networkdiagnostic", label: "Networkdiagnostic", description: "Network Diagnostic Autostart after boot. 9 permissions (including ACCESS_FINE_LOCATION : precise GPS location) + 1 unknown permission : SEC_FACTORY_PHONE Seems to be telemetry.", safety: "safe" },
- { pkg: "com.samsung.android.networkstack", label: "Networkstack", description: "I guess it's needed for wifi and it can be important app", safety: "keep" },
- { pkg: "com.samsung.android.networkstack.tethering.overlay", label: "Overlay", description: "only found wifi configs", safety: "caution" },
- { pkg: "com.samsung.android.nfc", label: "Nfc", description: "It’s the main NFC module on Samsung devices. It handles contactless payments, card emulation for Samsung Pay, NFC tag reading and writing, and features like Wireless Power Sharing, and it also manages certain S Pen functions that rely on NFC. I assume NFC breaks when disabled.", safety: "caution" },
- { pkg: "com.samsung.android.nfc.resources.default", label: "Default", description: "Provides default NFC configuration resources (booleans and polling delays). Contains no executable code.", safety: "caution" },
- { pkg: "com.samsung.android.nfc.resources.japan", label: "Japan", description: "Overlay for com.android.nfc", safety: "caution" },
- { pkg: "com.samsung.android.oneconnect", label: "Oneconnect", description: "Samsung Smart Things (https://play.google.com/store/apps/details?id=com.samsung.android.oneconnect) Lets you manage all your Samsung and SmartThings-compatible devices. https://www.samsung.com/global/galaxy/apps/smartthings/ Probably needs com.samsung.android.beaconmanager", safety: "safe" },
- { pkg: "com.samsung.android.opencalendar", label: "Opencalendar", description: "Samsung Subscription Calendars.", safety: "safe" },
- { pkg: "com.samsung.android.packageinstaller", label: "Packageinstaller", description: "Removing it is Unsafe if there is no alternative.", safety: "caution" },
- { pkg: "com.samsung.android.peripheral.framework", label: "Framework", description: "Peripheral Framework It's knox analytics.", safety: "safe" },
- { pkg: "com.samsung.android.personalpage.service", label: "Service", description: "Private mode (was replaced by Secure Folder) https://www.samsung.com/uk/support/mobile-devices/what-is-private-mode-and-how-do-i-use-it/", safety: "safe" },
- { pkg: "com.samsung.android.photoremasterservice", label: "Photoremasterservice", description: "PhotoRemasterService If removed, Photo Remaster in the gallery won't work.", safety: "caution" },
- { pkg: "com.samsung.android.privacydashboard", label: "Privacydashboard", description: "Privacy dashboard in settings: https://insights.samsung.com/2023/08/17/what-is-privacy-dashboard-and-how-does-it-protect-my-data-2/", safety: "caution" },
- { pkg: "com.samsung.android.privateaccesstokens", label: "Privateaccesstokens", description: "Provides a system module used by Samsung Internet for an automatic verification feature on compatible websites to skip CAPTCHAs. On my device the option never appeared. Removing it does not affect normal system functionality. It relies on a few privileged permissions such as READ_PRIVILEGED_PHONE_STATE , SAMSUNG_KEYSTORE_PERMISSION , ACCESS_KEYGUARD_SECURE_STORAGE , and INTERNET/ACCESS_NETWORK_STATE. https://apps.samsung.com/appquery/appDetail.as?appId=com.samsung.android.privateaccesstokens", safety: "safe" },
- { pkg: "com.samsung.android.privateshare", label: "Privateshare", description: "Blockchain-powered file sharing system for Samsung phones. Why blockchain? Because it's a nice buzzword! The privacy policy of this Samsung service is really bad: https://libreddit.spike.codes/r/privacy/comments/rqbb9b/samsung_private_share_is_not_so_private/", safety: "safe" },
- { pkg: "com.samsung.android.provider.filterprovider", label: "Filterprovider", description: "FilterProvider dependency to Samsung Camera Provides access to filters (when you swipe right from the camera app) WARNING : Samsung camera will crash if this package is deleted.", safety: "caution" },
- { pkg: "com.samsung.android.provider.shootingmodeprovider", label: "Shootingmodeprovider", description: "Provide camera modes (when you swipe left from the camera app) Safe to remove (but it is quite useful)", safety: "caution" },
- { pkg: "com.samsung.android.provider.stickerprovider", label: "Stickerprovider", description: "One more package related to camera stickers. DO NOT REMOVE THIS IF YOU USE STOCK CAMERA (Samsung camera-app closes after about 4s!) adb shell 'pm disable-user com.samsung.android.provider.stickerprovider' can be used as a workaround if you want to stop this running in the background.", safety: "caution" },
- { pkg: "com.samsung.android.providers.carrier", label: "Carrier", description: "App for install update to get latest features for your SIM card. It is hard to say how useful this app is.", safety: "caution" },
- { pkg: "com.samsung.android.providers.contacts", label: "Contacts", description: "Likely same as com.android.providers.contacts, but for Samsung phones. Breaks messaging and calling services, as well as contact functionality.", safety: "caution" },
- { pkg: "com.samsung.android.providers.context", label: "Context", description: "Spyware https://www.eteknix.com/samsungs-context-service-may-take-data-collection-surveillance-worrying-levels/ https://www.theinquirer.net/inquirer/news/2328363/samsung-context-service-will-collect-user-data-to-share-with-developers Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "safe" },
- { pkg: "com.samsung.android.providers.factory", label: "Factory", description: "FactoryTestProvider Disabling breaks hwmoduletest.", safety: "caution" },
- { pkg: "com.samsung.android.providers.media", label: "Media", description: "Likely same as com.android.providers.media; scans the device for media files and allows permitted apps access to them.", safety: "caution" },
- { pkg: "com.samsung.android.providers.trash", label: "Trash", description: "SecTrashProvider Trash feature for Galaxy phones since One UI 6.0 Allows users to delete and restore files from My Files, Gallery, Voice Recordings, etc. directly from the Trash folder in My Files. Breaks apps that delete to Trash.", safety: "caution" },
- { pkg: "com.samsung.android.radiobasedlocation", label: "Radiobasedlocation", description: "Tracks location in the background. Doesn't seem to be needed for anything.", safety: "safe" },
- { pkg: "com.samsung.android.radiobasedlocation.manager", label: "Manager", description: "Tracks location in the background. Doesn't seem to be needed for anything.", safety: "safe" },
- { pkg: "com.samsung.android.rajaampat", label: "Rajaampat", description: "Samsung Pay Samsung Pay Services for Indonesia. https://play.google.com/store/apps/details?id=com.samsung.android.rajaampat", safety: "safe" },
- { pkg: "com.samsung.android.rampart", label: "Rampart", description: "Auto Blocker Uses for blocking unknown apps install, commands. As of Oneui 6.1.1+, it is no longer tied to App Protection unless you use maximum restrictions. A powerful tool that can keep your device secure, but also be an annoyance if you sideload apps from F-Droid or other sources.", safety: "safe" },
- { pkg: "com.samsung.android.rlc", label: "Rlc", description: "Samsung Biz Service Remote Lock Control? Remote Mobile Manager? It has not needed notification components.", safety: "safe" },
- { pkg: "com.samsung.android.rubin.app", label: "App", description: "Customization Service Collects a massive amount of data (https://www.samsung.com/us/account/customization-service/) Basically everything you do on your phone. For\"a better user experience\" Used to display customized advertisements about products and services that may be of interest to you", safety: "safe" },
- { pkg: "com.samsung.android.samsungpass", label: "Samsungpass", description: "Samsung Pass app https://www.samsung.com/global/galaxy/apps/samsung-pass/", safety: "safe" },
- { pkg: "com.samsung.android.samsungpassautofill", label: "Samsungpassautofill", description: "Auto Fill for Samsung Pass Once your account information is registered, you can use iris, fingerprint, or face recognition to sign in. https://www.samsung.com/us/support/answer/ANS00082282/", safety: "safe" },
- { pkg: "com.samsung.android.samsungpositioning", label: "Samsungpositioning", description: "Run at startup and ask for an unknown permission SEC_FACTORY_PHONE This package seems to be used for samsung apps needing location.", safety: "safe" },
- { pkg: "com.samsung.android.scloud", label: "Scloud", description: "Samsung Cloud (https://www.samsung.com/us/support/owners/app/samsung-cloud)", safety: "safe" },
- { pkg: "com.samsung.android.scloud.auth", label: "Auth", description: "Handle authentication for Samsung cloud", safety: "safe" },
- { pkg: "com.samsung.android.scloud.backup", label: "Backup", description: "Samsung Backup only for Samsung Cloud", safety: "safe" },
- { pkg: "com.samsung.android.scloud.proxy.calendar", label: "Calendar", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.samsung.android.scloud.proxy.contacts", label: "Contacts", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.samsung.android.scloud.proxy.memo", label: "Memo", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.samsung.android.scloud.proxy.sbrowser", label: "Sbrowser", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.samsung.android.scloud.proxy.snote3", label: "Snote3", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.samsung.android.scloud.quota", label: "Quota", description: "Literally all this app does is tell you when you're out of storage on your Samsung Cloud. Why this isn't part of the main Samsung Cloud app? I have no idea.", safety: "safe" },
- { pkg: "com.samsung.android.scloud.sync", label: "Sync", description: "Samsung cloud synchronisation service", safety: "safe" },
- { pkg: "com.samsung.android.sconnect", label: "Sconnect", description: "Samsung Quick connect (discontinued?) In theory, it lets you connect your phone to a variety of devices over Wifi that support multiple protocols — including Wifi Direct and Miracast — to display photos, video or audio. https://www.samsung.com/uk/support/tv-audio-video/what-is-screen-mirroring-and-how-do-i-use-it-with-my-samsung-tv-and-samsung-mobile-device/", safety: "safe" },
- { pkg: "com.samsung.android.scpm", label: "Scpm", description: "Samsung Cloud Platform Manager Related to Samsung Cloud. NOTE: Uninstalling or disabling this app causes the \"Sound Quality and Effects\" app (com.sec.android.app.soundalive) to crash regularly, resulting in a crash dialog that might become annoying. (However, the sound seems to work fine)", safety: "caution" },
- { pkg: "com.samsung.android.scs", label: "Scs", description: "Samsung Core Services (SCS) It's an application for quick and easy provision of the main features used by Samsung applications through application updates rather than through the distribution of software updates. Provides improved search, extraction, and intelligence features based on text and images. Used in various Samsung applications such as Camera, Gallery, Messages, Contacts, Settings, and Finder. https://galaxystore.samsung.com/prepost/000005514204", safety: "caution" },
- { pkg: "com.samsung.android.sdk.handwriting", label: "Handwriting", description: "Handwriting Service Only for Samsung Note? https://www.samsung.com/sg/support/mobile-devices/how-do-you-convert-handwriting-to-text-and-other-formats-using-s-pen-and-samsung-notes/", safety: "safe" },
- { pkg: "com.samsung.android.sdk.ocr", label: "Ocr", description: "It's for OCR (Optical Character Recognition), used among Samsung apps like the gallery, without this, you can't extract text from images.", safety: "caution" },
- { pkg: "com.samsung.android.sdk.professionalaudio.app.audioconnectionservice", label: "Audioconnectionservice", description: "AudioConnectionService I believe it allows to modulate an audio signal. I didn't find a lot of apps using this package. Nothing really worrying but safe to remove if you want.", safety: "safe" },
- { pkg: "com.samsung.android.sdk.professionalaudio.utility.jammonitor", label: "Jammonitor", description: "Professional Audio Allows you to create virtual instrument applications with Android. https://developer.samsung.com/html/techdoc/ProgrammingGuide_ProfessionalAudio.pdf", safety: "safe" },
- { pkg: "com.samsung.android.sdk.spenv10", label: "Spenv10", description: "Samsung Pen engine, Pen settings, SPen Engine Update.", safety: "safe" },
- { pkg: "com.samsung.android.sdm.config", label: "Config", description: "Configuration Update for Samsung Deskphone Manager (SDM) SDM allows a user to synchronize your smartphone with a IP deskphone", safety: "safe" },
- { pkg: "com.samsung.android.secsoundpicker", label: "Secsoundpicker", description: "Ringtone Picker.", safety: "caution" },
- { pkg: "com.samsung.android.securitylogagent", label: "Securitylogagent", description: "Security Log Agent https://www.androidexplained.com/galaxy-note-9-disable-security-log-agent/ Runs in the background and monitors your device for any change to the /system partition. It also listens for use of permissions by 3rd-party apps. This is a feature found in Security settings, named 'permission monitor' NOTE: when you root your phone, it will constantly tell you that your device is modified. - https://samsung.com/levant/support/mobile-devices/what-is-app-permission-monitor-feature-and-how-to-turn-it-off - https://howtogeek.com/332816/how-to-stop-samsungs-app-permission-monitor-from-displaying-notifications", safety: "safe" },
- { pkg: "com.samsung.android.server.iris", label: "Iris", description: "Provides iris recognition feature NOTE: removing this package causes biometric prompts in apps to be delayed by 5-8 seconds before appearing. Selecting 'Biometrics and security' in the settings app also locks up the Settings app for about 5-8 seconds but eventually loads and functions as normal.", safety: "caution" },
- { pkg: "com.samsung.android.server.wifi.mobilewips", label: "Mobilewips", description: "MobileWips Detects suspicious activities on Wi-Fi", safety: "safe" },
- { pkg: "com.samsung.android.server.wifi.mobilewips.client", label: "Client", description: "MobileWips Detects suspicious activity on Wi-Fi network.", safety: "caution" },
- { pkg: "com.samsung.android.service.health", label: "Health", description: "Health Platform (https://play.google.com/store/apps/details?id=com.samsung.android.service.health) It is a data aggregator. You can use it to link multiple health apps (like Strava, google fit etc) together. This app will unify their collected data and store them all together. Constantly phones to Samsung servers. Pithus analysis: https://beta.pithus.org/report/968364daf4fbb1828dfe9d8dbcce6d5f7f9a79522a5267c4be5bba19e6cd88b0", safety: "caution" },
- { pkg: "com.samsung.android.service.livedrawing", label: "Livedrawing", description: "Live Message enables you to draw your own animated GIFs or emojis. https://www.samsung.com/global/galaxy/what-is/live-message/", safety: "safe" },
- { pkg: "com.samsung.android.service.pentastic", label: "Pentastic", description: "Glance Samsung S-Pen Gestures. Safe to remove?", safety: "caution" },
- { pkg: "com.samsung.android.service.peoplestripe", label: "Peoplestripe", description: "People Edge Gives you immediate access to your favorite contacts from the edge of your phone. https://www.samsung.com/global/galaxy/what-is/people-edge/ https://videotron.tmtx.ca/en/topic/samsung_galaxys9/using_people_edge.html", safety: "safe" },
- { pkg: "com.samsung.android.service.stplatform", label: "Stplatform", description: "SmartThings Framework I guess it's app for installing sponsored apps. Useless Framework.", safety: "safe" },
- { pkg: "com.samsung.android.service.tagservice", label: "Tagservice", description: "Tags in Samsung Gallery app.", safety: "caution" },
- { pkg: "com.samsung.android.service.travel", label: "Travel", description: "Samsung Travel Wallpaper (discontinued)", safety: "safe" },
- { pkg: "com.samsung.android.setting.multisound", label: "Multisound", description: "Samsung Separate app sound Used to split audio different apps between phone speaker and bluetooth speaker. Pretty handy.", safety: "caution" },
- { pkg: "com.samsung.android.setupindiaservicestnc", label: "Setupindiaservicestnc", description: "Samsung Services Responsible for the persistent notification after every system update if you don't agree to data collection. The only way to dismiss it without agreeing to anything is to click the small text and uncheck all the items in a list. Then the 'Agree' button becomes a 'Skip' button. Removing this package doesn't have any known side effects.", safety: "safe" },
- { pkg: "com.samsung.android.shealthmonitor", label: "Shealthmonitor", description: "Samsung Health Monitor Enables you to record ECG and blood pressure.", safety: "caution" },
- { pkg: "com.samsung.android.shortcutbackupservice", label: "Shortcutbackupservice", description: "ShortcutBNR Related to smartSwitch Samsung Cloud features", safety: "safe" },
- { pkg: "com.samsung.android.singletake.service", label: "Service", description: "Single Take It's face unlock I guess.", safety: "caution" },
- { pkg: "com.samsung.android.slinkcloud", label: "Slinkcloud", description: "Samsung Cloud Gateway NEEDED FOR Scloud app A cloud storage gateway is designed to provide interoperability between different data protocols used in a client (Scloud app)/server cloud architecture. MORE INFO : https://searchstorage.techtarget.com/definition/cloud-storage-gateway # Needs a lot of permission (including the dangerous one : READ_PHONE_STATE) It means the app has the ability to read the device ID (e.g. IMEI or ESN) and phone number. https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE # Hardcoded Alibaba (chinese) server IP (42.120.153.17) https://www.hybrid-analysis.com/sample/2ef5367f700d2644fc51d2cdd8dd0ce97e9a6594cb5b89052537037c5a7aac56?environmentId=200 https://web.archive.org/web/20200604093347/https://www.hybrid-analysis.com/sample/2ef5367f700d2644fc51d2cdd8dd0ce97e9a6594cb5b89052537037c5a7aac56?environmentId=200", safety: "safe" },
- { pkg: "com.samsung.android.sm", label: "Sm", description: "Smart Manager app Provides pretty useless optimizing features using Chinese company Qihoo database. Automatically scans and optimizes data usage to preserve battery levels, manage storage and RAM https://www.privateinternetaccess.com/blog/android-community-worried-about-presence-of-chinese-spyware-by-qihoo-360-in-samsung-smartphones-and-tablets/ https://forum.xda-developers.com/galaxy-note-9/help/samsung-services-dialling-home-to-china-t3894033", safety: "safe" },
- { pkg: "com.samsung.android.sm.devicesecurity", label: "Devicesecurity", description: "Samsung Device security for the Smart Manager app using McAfee antivirus engine. This is the antivirus in Settings -> Device care -> Security Privacy nightmare(LOTS of permissions!) for a bit of security. https://www.hybrid-analysis.com/sample/05dab93ee2102a2fb6edf16e85750eb1f0189d7b82703c6a00c92cd08d62bb28?environmentId=200 ARCHIVE: https://web.archive.org/web/20200607140002/https://www.hybrid-analysis.com/sample/05dab93ee2102a2fb6edf16e85750eb1f0189d7b82703c6a00c92cd08d62bb28?environmentId=200 Some people reported that without this package they weren't able to install apps anymore BUT I personally removed this and I still can install apps. I think(not sure) that you can remove this safely if you also remove com.samsung.aasaservice and com.samsung.android.sm", safety: "caution" },
- { pkg: "com.samsung.android.sm.devicesecurity.tcm", label: "Tcm", description: "Device security Chinese scanning app for searching viruses.", safety: "safe" },
- { pkg: "com.samsung.android.sm.policy", label: "Policy", description: "SCPM (Samsung Cloud Platform Manager) client. Allows the app to read data from the Samsung Cloud Platform Manager in order to authenticate your phone and configure your apps and services. Surely linked to Smart Manager. On some devices, the app icon is cloud-shaped.", safety: "keep" },
- { pkg: "com.samsung.android.sm.provider", label: "Provider", description: "Smart Manager Provider SCPM Client? A lot debugging stuff", safety: "safe" },
- { pkg: "com.samsung.android.sm_cn", label: "Sm_cn", description: "Device care but in Chinese Samsung phones Is different from global, could break some important functions if removed.", safety: "caution" },
- { pkg: "com.samsung.android.smartcallprovider", label: "Smartcallprovider", description: "Samsung Smart Call Provides caller profile information to help consumers identify incoming calls and block unwanted ones. Also related to the 'local places' feature in Samsung dialer. Relies on Hiya (see com.hiya.star) TL;DR : really bad for your privacy.", safety: "safe" },
- { pkg: "com.samsung.android.smartface", label: "Smartface", description: "SmartFaceService Used to automatically detects faces when using the Samsung camera It might be related to\"Keep screen on while viewing\" under Motions and gestures in Settings. NOTE: This package has nothing to do with face unlock (com.samsung.android.bio.face.service)", safety: "caution" },
- { pkg: "com.samsung.android.smartface.overlay", label: "Overlay", description: "Not needed overlay to smartface", safety: "caution" },
- { pkg: "com.samsung.android.smartfitting", label: "Smartfitting", description: "Smart Fitting Service Adapts the size/ratio of the screen. Automatic mode is default but there is a manual mode https://www.samsung.com/levant/support/mobile-devices/galaxy-s8-s8-plus-what-is-the-smart-fitting-display-for-vod-games/", safety: "safe" },
- { pkg: "com.samsung.android.smartmirroring", label: "Smartmirroring", description: "Samsung Smart View Enable you to mirror screen your phone to a TV (https://www.samsung.com/us/apps/smart-view-2/) Dependency for com.samsung.android.video Uninstalling this breaks edge panels feature; edge panel won't work and will also crash OneUI Home when trying to switch edge panels on from settings > display. The edge panels package (com.samsung.android.app.cocktailbarservice and com.samsung.android.app.appsedge) doesn't exist on my phone so maybe on newer devices Samsung moved that functionality to this package instead. Tested on Galaxy S25 FE Android 16", safety: "caution", neededBy: ["com.samsung.android.video"] },
- { pkg: "com.samsung.android.smartprovider", label: "Smartprovider", description: "Samsung File Provider Provides intelligent classification, search and image/video favorite when selecting images/videos to send to friends/Moments/Channels in WeChat app.", safety: "safe" },
- { pkg: "com.samsung.android.smartsuggestions", label: "Smartsuggestions", description: "Smart suggestions", safety: "safe" },
- { pkg: "com.samsung.android.smartswitchassistant", label: "Smartswitchassistant", description: "Samsung SmartSwitch Lets you transfer your data from your old (Samsung) phone to your new one. Needed for com.sec.android.easyMover?", safety: "safe" },
- { pkg: "com.samsung.android.softsim", label: "Softsim", description: "Softsim Service Installs softsim and it's full Chinese.", safety: "safe" },
- { pkg: "com.samsung.android.spay", label: "Spay", description: "Samsung Pay (https://play.google.com/store/apps/details?id=com.samsung.android.spay) Samsung Pay is a mobile payment and digital wallet service by Samsung that lets users make payments using compatible phones and other Samsung-produced devices https://en.wikipedia.org/wiki/Samsung_Pay NOTE : Samsung Pay is KNOX dependant and will never work again if you root your phone. FYI : Your data is sold (https://www.sammobile.com/news/samsung-pay-new-privacy-policy-your-data-sold/)", safety: "safe", deps: ["com.sec.android.app.samsungapps", "com.samsung.android.spayfw"] },
- { pkg: "com.samsung.android.spayfw", label: "Spayfw", description: "Samsung Pay Framework needed for Samsung Pay Samsung Pay is a mobile payment and digital wallet service by Samsung that lets users make payments using compatible phones and other Samsung-produced devices. See below.", safety: "safe", neededBy: ["com.samsung.android.spay"] },
- { pkg: "com.samsung.android.spaymini", label: "Spaymini", description: "Samsung Pay Mini Same service as Samsung Pay but for online payments only and is available on all compatible android devices (not only Samsung devices) https://www.samsung.com/in/samsung-pay/mini/", safety: "safe" },
- { pkg: "com.samsung.android.spdclient", label: "Spdclient", description: "Security policy updates (part of KNOX) Updates the SELinux policies according to Security Enhancements for Android (SE for Android) There are privacy implications to the data collected by Samsung https://security.stackexchange.com/questions/161190/does-samsungs-security-enhancements-for-android-offer-anything-for-consumers Not mandatory if you know what you are doing and if you don't install software from unknown sources. Needs confirmation but removing this package could change SELinux mode (enforcing by default) https://source.android.com/security/selinux", safety: "caution" },
- { pkg: "com.samsung.android.spdfnote", label: "Spdfnote", description: "Write on PDF (https://play.google.com/store/apps/details?id=com.samsung.android.spdfnote) PDF annotator", safety: "safe" },
- { pkg: "com.samsung.android.sskds", label: "Sskds", description: "SoterSskdsService This app has something to 'com.tencent.soter.soterserver'. Only china.", safety: "safe" },
- { pkg: "com.samsung.android.stextclassifier", label: "Stextclassifier", description: "From https://developer.android.com/reference/android/view/textclassifier/TextClassifier: Interface for providing text classification related features. The TextClassifier may be used to understand the meaning of text, as well as generating predicted next actions based on the text. So it got something to do with text/spelling correction? But a samsung implementation of it. It needs some further testing, so far it doesn't affect even the auto-correct. Note: this app has no permission and doesn't run in background when not in used", safety: "caution" },
- { pkg: "com.samsung.android.stickercenter", label: "Stickercenter", description: "Sticker center. Used to retrieve stickers from the web in the camera app. https://developer.samsung.com/galaxy/stickers", safety: "safe" },
- { pkg: "com.samsung.android.stickerplugin", label: "Stickerplugin", description: "StickerPlugin Not sure if this package also provides stickers for camera. I don't have it so I can't test https://developer.samsung.com/galaxy/stickers", safety: "safe" },
- { pkg: "com.samsung.android.storage.watchstoragemanager", label: "Watchstoragemanager", description: "Storage manager. DO NOT REMOVE THIS", safety: "keep" },
- { pkg: "com.samsung.android.ststub", label: "Ststub", description: "SmartThings Allows users to control, automate, and monitor their home environment via mobile device. https://en.wikipedia.org/wiki/SmartThings REMINDER: stub = https://stackoverflow.com/questions/10648280/what-is-stub-and-aidl-for-in-java", safety: "safe" },
- { pkg: "com.samsung.android.sume.nn.service", label: "Service", description: "Provides the photo remaster feature in the Gallery app. Has the camera permission and can access all your medias but performs its job locally on the device. https://www.samsung.com/au/support/mobile-devices/remastering-photos-on-samsung-phone/", safety: "caution" },
- { pkg: "com.samsung.android.svcagent", label: "Svcagent", description: "The APK has various icons in it + DiagMon library (telemetry). It has full access to internet and occasionally runs a MainService for many consecutive hours.", safety: "safe" },
- { pkg: "com.samsung.android.svoice", label: "Svoice", description: "Samsung Voice (S Voice) was replaced by bixby on Samsung Galaxy S8(+) and newer phones. Virtual mobile personal assistant capable of running a basic tasks through voice command alone. https://www.samsung.com/global/galaxy/what-is/s-voice/", safety: "safe" },
- { pkg: "com.samsung.android.svoiceime", label: "Svoiceime", description: "Samsung voice input Voice input powered by Bixby. See above.", safety: "safe" },
- { pkg: "com.samsung.android.tadownloader", label: "Tadownloader", description: "Seems to check if a trusted application needs an update and downloads it. This package probably does more than that. There is a LOT of lines of code (obfuscated obviously) It was used to push an update to fix a security issue with the fingerprint sensor in 2019. https://libredd.it/r/galaxys10/comments/bcy93f/adb_how_to_get_the_fingerprint_update_pushed_to/ Seems to be only used for biometrics stuff There is Samsung analytics inside. You may want to remove it if you don't use biometrics authentication.", safety: "caution" },
- { pkg: "com.samsung.android.tapack.authfw", label: "Authfw", description: "AuthFw TaPack Authentication Framework for Trusted Application? (don't know what 'Pack' could mean) Hard to know what this app really does. Seems to be an assets provider used by com.samsung.android.tadownloader", safety: "caution" },
- { pkg: "com.samsung.android.tencentwifisecurity", label: "Tencentwifisecurity", description: "Chinese Tencent flags risky networks and prevent to connect to them.", safety: "safe" },
- { pkg: "com.samsung.android.themecenter", label: "Themecenter", description: "Galaxy Themes Service. Runs at startup and allows you to apply themes from `com.samsung.android.themestore`. On some devices, it provides the built-in wallpaper images to the Theme Store. It will enable itself if you disable it, so try uninstalling (may throw an error). Has of lot of permissions (including `INTERNET` and `INSTALL_PACKAGES`) and connects to Samsung domains for analytics. Pithus analysis: https://beta.pithus.org/report/973ba78ddd74a13dcf5268e980010a64ba42a3d2a1c4c62df277ead5a17cd10c", safety: "caution" },
- { pkg: "com.samsung.android.themestore", label: "Themestore", description: "Galaxy Themes. Forces you to login to a Samsung Account if you want to download ANY content (icons, wallpapers, themes...). If you already downloaded something, you can apply it\"freely\". Not needed for Wallpaper API, so any app (Samsung or not) can set Home & Lock wallpapers. However, on some devices, this app is required to view/apply built-in wallpapers (in that case, it requires `themecenter` service) https://www.samsung.com/global/galaxy/apps/galaxy-themes/", safety: "caution" },
- { pkg: "com.samsung.android.timezone.autoupdate_N", label: "Autoupdate_N", description: "This app handles automatic updates for time zone information on Samsung devices, ensuring accurate timekeeping across different regions.", safety: "caution" },
- { pkg: "com.samsung.android.timezone.autoupdate_O", label: "Autoupdate_O", description: "Samsung Time Zone Updater Used to automatically detect appropriate timezone REMOVING THIS WILL BOOTLOOP YOUR DEVICE", safety: "keep" },
- { pkg: "com.samsung.android.timezone.data.P", label: "P", description: "Samsung timezone data?", safety: "keep" },
- { pkg: "com.samsung.android.timezone.data.updater", label: "Updater", description: "Samsung Time Zone Updater Used to automatically detect appropriate timezone. A similar Samsung package apparently bootloops the device if removed, so be careful.", safety: "keep" },
- { pkg: "com.samsung.android.timezone.data_Q", label: "Data_Q", description: "Stores timezone data?", safety: "keep" },
- { pkg: "com.samsung.android.timezone.data_R", label: "Data_R", description: "Causes bootloop on any Samsung Galaxy A50 when removed. Rescue Party will be triggered, package manager service will fail to start. Device becomes unbootable. Do NOT remove on older Samsung devices.", safety: "keep" },
- { pkg: "com.samsung.android.timezone.updater", label: "Updater", description: "Time Zone Updater Used to detect or set timezone.", safety: "caution" },
- { pkg: "com.samsung.android.tncpage", label: "Tncpage", description: "TNCPageCN It's app for enhance lock screen.", safety: "safe" },
- { pkg: "com.samsung.android.tripwidget", label: "Tripwidget", description: "Discontinued package (used in Galaxy S4) handling trip wallpaper widget.", safety: "safe" },
- { pkg: "com.samsung.android.tzdata.update", label: "Update", description: "App for updating time zone changes on Samsung devices. Now discontinued and completely useless.", safety: "safe" },
- { pkg: "com.samsung.android.tzdata.update_M", label: "Update_M", description: "Samsung Timezone Data Updater", safety: "caution" },
- { pkg: "com.samsung.android.uds", label: "Uds", description: "Ultra data saving Have boring notifications and theres no point of keeping this app. https://play.google.com/store/apps/details?id=com.samsung.android.uds", safety: "safe" },
- { pkg: "com.samsung.android.unifiedprofile", label: "Unifiedprofile", description: "My Profile Related to Samsung Members?", safety: "safe" },
- { pkg: "com.samsung.android.universalswitch", label: "Universalswitch", description: "Universal Switch lets you designate certain touches or gestures to control specific actions on your phone. https://www.samsung.com/uk/accessibility/mobile-universal-switch/", safety: "safe" },
- { pkg: "com.samsung.android.uwb", label: "Uwb", description: "UwbApplication It's used for SmartThings and new Smart Tags. This app is bloated.", safety: "safe" },
- { pkg: "com.samsung.android.vdc", label: "Vdc", description: "Virtual Device Center It's Chinese app for Video calls.", safety: "safe" },
- { pkg: "com.samsung.android.vdcservice", label: "Vdcservice", description: "This app depends on Virtual Device Center app. Has network connection frameworks.", safety: "caution" },
- { pkg: "com.samsung.android.video", label: "Video", description: "Samsung Video Player https://galaxystore.samsung.com/prepost/000003980724?appId=com.samsung.android.video", safety: "caution", deps: ["com.samsung.android.smartmirroring"] },
- { pkg: "com.samsung.android.videolist", label: "Videolist", description: "Video player included on Samsung devices (https://play.google.com/store/apps/details?id=com.samsung.android.videolist). Works fine enough as a basic video player.", safety: "caution" },
- { pkg: "com.samsung.android.visionarapps", label: "Visionarapps", description: "\"AR apps\" Not really sure what this is, but the icon is Bixby as an eye so I assume it's for accessing AR stuff through Bixby.", safety: "safe" },
- { pkg: "com.samsung.android.visioncloudagent", label: "Visioncloudagent", description: "VisionCloudAgent Cloud Agent is a service which automatically upload on the cloud the photos you take on your phone. It connects to your\"Samsung account\". It is related to Dropbox. Given the Vision in the package name there is a link with Bixby.", safety: "safe" },
- { pkg: "com.samsung.android.visionintelligence", label: "Visionintelligence", description: "Bixby Vision Augmented reality camera that can identify objects in real-time and potentially offer the user to purchase them online, translate text, read QR codes, and recognize landmarks. https://www.samsung.com/global/galaxy/apps/bixby/vision/", safety: "safe" },
- { pkg: "com.samsung.android.visualars", label: "Visualars", description: "Smart Touch Call. It allows the user to\"Get voice and Screen interactive service when you call a customer service\". Bloated with Google API stuff", safety: "safe" },
- { pkg: "com.samsung.android.voc", label: "Voc", description: "Samsung Members (https://play.google.com/store/apps/details?id=com.samsung.android.voc) The other version is\"com.samsung.oh\".", safety: "safe" },
- { pkg: "com.samsung.android.voicewakeup", label: "Voicewakeup", description: "Voice wake-up for using Bixby https://www.samsung.com/us/support/answer/ANS00080448/", safety: "safe" },
- { pkg: "com.samsung.android.vtcamerasettings", label: "Vtcamerasettings", description: "Video call effects Keep the focus on you during video calls by blurring the background or covering it with an image or color. Unfortunately, only supports a few apps (Google Meet, WhatsApp, Zoom).", safety: "safe" },
- { pkg: "com.samsung.android.wallpaper.live", label: "Live", description: "Samsung official app for dynamic and live wallpapers with generative AI capabilities. Because it provides a wallpaper service, it runs in the background and starts automatically when the phone boots. If you remove it while using a wallpaper created by it, that wallpaper will be removed as well.", safety: "safe" },
- { pkg: "com.samsung.android.wallpaper.res", label: "Res", description: "Pre-installed wallpapers Removing this package causes the background to be transparent (black, but the system will see it as white unless you use a custom wallpaper).", safety: "caution" },
- { pkg: "com.samsung.android.watch.alarm", label: "Alarm", description: "Samsung Alarm app.", safety: "safe" },
+ { pkg: "com.samsung.android.shealthmonitor", label: "Shealthmonitor", description: "Samsung Health Monitor", safety: "caution" },
{ pkg: "com.samsung.android.watch.cameracontroller", label: "Cameracontroller", description: "Mirrors phone's camera to your watch. I can't find a use case for my usage. Safe to remove.", safety: "safe" },
- { pkg: "com.samsung.android.watch.compass", label: "Compass", description: "Samsung Compass app.", safety: "safe" },
- { pkg: "com.samsung.android.watch.findmyphone", label: "Findmyphone", description: "The phone will start ringing, if connected to watch via BT or WiFi, when pressing 'start ringing' on the watch.", safety: "caution" },
- { pkg: "com.samsung.android.watch.findmywatch", label: "Findmywatch", description: "The watch will start ringing, if connected to phone via BT or WiFi, when pressing 'start ringing' on the phone. Also fetches location and is able to lock or factory reset.", safety: "caution" },
- { pkg: "com.samsung.android.watch.flashlight", label: "Flashlight", description: "Samsung Flashlight", safety: "caution" },
- { pkg: "com.samsung.android.watch.runestone.app", label: "App", description: "Customization Service from Samsung. Provides customized content and recommendations. Collects a lot of personal information. See: https://www.samsung.com/us/account/customization-service/ Pithus analysis: https://beta.pithus.org/report/0f26752e636a9689bf0603e6023939e23a8cbd7197dea7b44c7ac93e2a930c24", safety: "safe" },
- { pkg: "com.samsung.android.watch.screencapture", label: "Screencapture", description: "Provides the ability to take screenshots from the smart watch.", safety: "caution" },
- { pkg: "com.samsung.android.watch.stopwatch", label: "Stopwatch", description: "Samsung Stopwatch", safety: "safe" },
- { pkg: "com.samsung.android.watch.timer", label: "Timer", description: "Timer app from Samsung.", safety: "safe" },
- { pkg: "com.samsung.android.watch.watchface.analogmodular", label: "Analogmodular", description: "Preinstalled watchface.", safety: "caution" },
+ { pkg: "com.samsung.android.watch.findmywatch", label: "Findmywatch", description: "The watch will start ringing, if connected to phone via BT or WiFi, when pressing 'start ringing' on the ph...", safety: "caution" },
+ { pkg: "com.samsung.android.watch.findmyphone", label: "Findmyphone", description: "The phone will start ringing, if connected to watch via BT or WiFi, when pressing 'start ringing' on the wa...", safety: "caution" },
+ { pkg: "com.samsung.android.watch.runestone.app", label: "App", description: "Customization Service from Samsung. Provides customized content and recommendations. Collects a lot of pers...", safety: "safe" },
{ pkg: "com.samsung.android.watch.watchface.analoguefont", label: "Analoguefont", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.animal", label: "Animal", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.aremoji", label: "Aremoji", description: "Preinstalled watchface.", safety: "caution" },
@@ -607,12 +599,10 @@ export const DEBLOAT_CATEGORIES: Category[] = [
{ pkg: "com.samsung.android.watch.watchface.bespoke", label: "Bespoke", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.bitmoji", label: "Bitmoji", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.boldindex", label: "Boldindex", description: "Preinstalled watchface.", safety: "caution" },
- { pkg: "com.samsung.android.watch.watchface.companionhelper", label: "Companionhelper", description: "Watchfaces fail to load without this. Removing it also breaks editing and changing watchfaces.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.digitalfont", label: "Digitalfont", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.digitalmodular", label: "Digitalmodular", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.dualwatch", label: "Dualwatch", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.dynamicfont", label: "Dynamicfont", description: "Preinstalled watchface.", safety: "caution" },
- { pkg: "com.samsung.android.watch.watchface.emergency", label: "Emergency", description: "Watchface in the emergency launcher.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.gradientfont", label: "Gradientfont", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.healthmodular", label: "Healthmodular", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.infomodular", label: "Infomodular", description: "Preinstalled watchface.", safety: "caution" },
@@ -623,4833 +613,1637 @@ export const DEBLOAT_CATEGORIES: Category[] = [
{ pkg: "com.samsung.android.watch.watchface.mystyle", label: "Mystyle", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.premiumanalog", label: "Premiumanalog", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.simpleanalogue", label: "Simpleanalogue", description: "Preinstalled watchface.", safety: "caution" },
- { pkg: "com.samsung.android.watch.watchface.simpleclassic", label: "Simpleclassic", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.simplecomplication", label: "Simplecomplication", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.superfiction", label: "Superfiction", description: "Preinstalled watchface.", safety: "caution" },
- { pkg: "com.samsung.android.watch.watchface.tickingsound", label: "Tickingsound", description: "Ticking sound on watchfaces that support it.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.together", label: "Together", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.typography", label: "Typography", description: "Preinstalled watchface.", safety: "caution" },
{ pkg: "com.samsung.android.watch.watchface.weather", label: "Weather", description: "Preinstalled watchface.", safety: "caution" },
+ { pkg: "com.samsung.android.watch.watchface.analogmodular", label: "Analogmodular", description: "Preinstalled watchface.", safety: "caution" },
+ { pkg: "com.samsung.android.watch.watchface.simpleclassic", label: "Simpleclassic", description: "Preinstalled watchface.", safety: "caution" },
+ { pkg: "com.samsung.android.watch.watchface.emergency", label: "Emergency", description: "Watchface in the emergency launcher.", safety: "caution" },
+ { pkg: "com.samsung.android.watch.watchface.companionhelper", label: "Companionhelper", description: "Watchfaces fail to load without this. Removing it also breaks editing and changing watchfaces.", safety: "caution" },
+ { pkg: "com.samsung.android.watch.watchface.tickingsound", label: "Tickingsound", description: "Ticking sound on watchfaces that support it.", safety: "caution" },
{ pkg: "com.samsung.android.watch.weather", label: "Weather", description: "Weather application from Samsung.", safety: "safe" },
{ pkg: "com.samsung.android.watch.worldclock", label: "Worldclock", description: "Worldclock app. This also includes a widget, displaying time in different time zones.", safety: "safe" },
- { pkg: "com.samsung.android.wcmurlsnetworkstack", label: "Wcmurlsnetworkstack", description: "China URL connection. generate_204 (it's only config, not sure if it's needed for checking wifi connection)", safety: "caution" },
- { pkg: "com.samsung.android.wcs.exstention", label: "Exstention", description: "Samsung Internet Extensions Samsung Internet for Android allows users to customize their browsing experience by installing extensions, which are additional software packages that add new features and functionality to the browser and help developers offer tailored services to users on mobile devices. NOTE: Disabling this broke the UI on my Watch5 for some reason so PROCEED WITH CAUTION.", safety: "caution" },
{ pkg: "com.samsung.android.wear.blockednumber", label: "Blockednumber", description: "Blocked number storage. Doesn't affect the dialer or contacts.", safety: "caution" },
- { pkg: "com.samsung.android.wear.contacts.sync", label: "Sync", description: "Handles 'open on phone' events. Also, settings often crash when this is uninstalled.", safety: "caution" },
{ pkg: "com.samsung.android.wear.musictransfer", label: "Musictransfer", description: "Used to sync music with the watch.", safety: "caution" },
+ { pkg: "com.samsung.android.wearable.setupwizard", label: "Setupwizard", description: "Samsung Wearable Setup Wizard", safety: "safe" },
+ { pkg: "com.samsung.android.wear.contacts.sync", label: "Sync", description: "Handles 'open on phone' events. Also, settings often crash when this is uninstalled.", safety: "caution" },
+ { pkg: "com.samsung.android.cidmanager", label: "Cidmanager", description: "In order to ensure that a user\u2019s phone receives the appropriate firmware updates, this app is used to ident...", safety: "caution" },
+ { pkg: "com.samsung.packageinstalleroverlay", label: "Packageinstalleroverlay", description: "It's used to display an overlay window when installing or updating apps. Shows information about the app an...", safety: "caution" },
+ { pkg: "com.samsung.android.wcs.exstention", label: "Exstention", description: "Samsung Internet Extensions", safety: "caution" },
+ { pkg: "com.samsung.android.stextclassifier", label: "Stextclassifier", description: "From https://developer.android.com/reference/android/view/textclassifier/TextClassifier:", safety: "caution" },
+ { pkg: "com.sec.android.soagent", label: "Soagent", description: "System application that is responsible for checking and installing software updates.", safety: "caution" },
+ { pkg: "com.samsung.packageinstalleroverlay", label: "Packageinstalleroverlay", description: "Most likely the overlay that appears when you installed an application.", safety: "caution" },
+ { pkg: "com.samsung.android.service.health", label: "Health", description: "Health Platform (https://play.google.com/store/apps/details?id=com.samsung.android.service.health)", safety: "caution" },
{ pkg: "com.samsung.android.wear.shealth", label: "Shealth", description: "Samsung Health app for WearOS.", safety: "caution" },
{ pkg: "com.samsung.android.wearable.samsungaccount", label: "Samsungaccount", description: "Samsung account settings. Breaks settings app if uninstalled.", safety: "caution" },
- { pkg: "com.samsung.android.wearable.setupwizard", label: "Setupwizard", description: "Samsung Wearable Setup Wizard The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device. It's the setup for Samsung services.", safety: "safe" },
- { pkg: "com.samsung.android.weather", label: "Weather", description: "Unified Daemon app. Named\"Weather\" on some Samsung Galaxy devices. Provides support for a number of different apps on your device. These include the Weather, Yahoo Finance and Yahoo News apps amongst others. The data is used by apps such as the Alarm, Calendar app and the Camera (including the\"Scan QR code\" Quick-Panel tile). If the display-name is\"Weather\", it doubles as the Samsung Weather app, which provides weather widgets.", safety: "safe" },
- { pkg: "com.samsung.android.wellbeing", label: "Wellbeing", description: "Digital Wellbeing That's an app for device and app usage tracking and limiting. https://galaxystore.samsung.com/prepost/000004807357", safety: "caution" },
- { pkg: "com.samsung.android.widget.pictureframe", label: "Pictureframe", description: "Samsung gallery widget, shows your selected photos as widget", safety: "caution" },
- { pkg: "com.samsung.android.widgetapp.yahooedge.finance", label: "Finance", description: "Special edge panel widget for Yahoo Finance", safety: "safe" },
- { pkg: "com.samsung.android.widgetapp.yahooedge.news", label: "News", description: "Special edge panel widget for Yahoo News", safety: "safe" },
- { pkg: "com.samsung.android.widgetapp.yahooedge.sport", label: "Sport", description: "Special edge panel widget for Yahoo Sport", safety: "safe" },
- { pkg: "com.samsung.android.wifi.ai", label: "Ai", description: "No activities, provides WiFi diagnostics, has several ai models that it is not clear how useful they are.", safety: "caution" },
- { pkg: "com.samsung.android.wifi.decrease.scan.interval.resources", label: "Resources", description: "Needed for WiFi.", safety: "keep" },
- { pkg: "com.samsung.android.wifi.h2e.resources", label: "Resources", description: "needed for wifi, has config values for that", safety: "keep" },
- { pkg: "com.samsung.android.wifi.increase.scan.interval.resources", label: "Resources", description: "Needed for WiFi.", safety: "keep" },
- { pkg: "com.samsung.android.wifi.largetcpbuffer.resources", label: "Resources", description: "It only provides configuration data with no executable code and adjusts Wi‑Fi TCP buffer sizes to optimized values Depending entirely on com.android.wifi.resources In theory it shouldn’t negatively affect Wi‑Fi if deleted, but this hasn’t been tested. It isn’t required for basic Wi‑Fi functionality; it mainly improves performance on fast networks, so removing it may make Wi‑Fi slightly slower.", safety: "caution" },
- { pkg: "com.samsung.android.wifi.p2paware.resources", label: "Resources", description: "Related to WiFi Direct", safety: "caution" },
- { pkg: "com.samsung.android.wifi.resources", label: "Resources", description: "Better keep this for wifi.", safety: "keep" },
- { pkg: "com.samsung.android.wifi.resources.qc", label: "Qc", description: "Needed for WiFi.", safety: "keep" },
- { pkg: "com.samsung.android.wifi.resources.wifilock", label: "Wifilock", description: "Needed for WiFi.", safety: "keep" },
- { pkg: "com.samsung.android.wifi.resources.wpa2", label: "Wpa2", description: "Needed for WiFi.", safety: "keep" },
- { pkg: "com.samsung.android.wifi.sbs.resources", label: "Resources", description: "WifiRROverlayAppSBS https://www.virustotal.com/gui/file/94140aa1e8e581bbdfbec9a31b983672d05cb1fda255e3155e3cb85cb5140bad/details", safety: "caution" },
- { pkg: "com.samsung.android.wifi.softap.resources", label: "Resources", description: "Needed for wifi.", safety: "keep" },
- { pkg: "com.samsung.android.wifi.softapwpathree.resources", label: "Resources", description: "Package: com.samsung.android.wifi.softapwpathree.resources", safety: "caution" },
- { pkg: "com.samsung.android.wifi.wapi.resources", label: "Resources", description: "Needed for WiFi.", safety: "keep" },
- { pkg: "com.samsung.android.wifinetworkdiagnostics", label: "Wifinetworkdiagnostics", description: "WifiNetworkDiagnostics Diagnostics network connection.", safety: "safe" },
- { pkg: "com.samsung.app.highlightplayer", label: "Highlightplayer", description: "Samsung Story Video Editor Lets you edit your videos stories", safety: "safe" },
- { pkg: "com.samsung.app.jansky", label: "Jansky", description: "Multi-lines settings Lets you have multiple virtual phone numbers. This feature is only available on some US carrier-locked devices https://www.reddit.com/r/GalaxyS8/comments/6esiub/tmobile_s8s8_multiline_setting_is_awesome/did2pur/", safety: "safe" },
- { pkg: "com.samsung.app.newtrim", label: "Newtrim", description: "Samsung Video trimmer (Editor Lite) Lets you quickly trim video files (from the gallery “Edit -> Studio -> Video Trimmer”). This trimmer is both imprecise and inaccurate, ffmpeg is much better.", safety: "caution" },
- { pkg: "com.samsung.app.slowmotion", label: "Slowmotion", description: "Slowmotion mode in camera app", safety: "caution" },
- { pkg: "com.samsung.app.video", label: "Video", description: "Can't figure out what this package does, but no adverse effects to removing it.", safety: "safe" },
- { pkg: "com.samsung.attribution", label: "Attribution", description: "Related to data collection (?): https://developer.samsung.com/galaxy-store/galaxy-store-statistics/user-attribution.html", safety: "safe" },
- { pkg: "com.samsung.carrier.logcollector", label: "Logcollector", description: "it's the same like diagmonagent, collects dumplogs", safety: "safe" },
- { pkg: "com.samsung.chn.apps.devicemanagement", label: "Devicemanagement", description: "AutoLoginService Register device with China Telecom. Only for China.", safety: "safe" },
- { pkg: "com.samsung.clipboardsaveservice", label: "Clipboardsaveservice", description: "Clipboard Save service saves all the content you saved in the clipboard (clipboard history) If you remove this you will still be able to copy/cust/past but a new content in clipboard will replace the current content. In short : there will no longer be a history.", safety: "caution" },
- { pkg: "com.samsung.cmfa.AuthTouch", label: "AuthTouch", description: "Continuous Multi-Factor Authentication AuthTouchService Related to `com.samsung.android.cmfa.framework`.", safety: "caution" },
- { pkg: "com.samsung.cmh", label: "Cmh", description: "CMH Provider is a dependency for the the samsung gallery app. This package asks for a lot of permissions. It seems to be be used for cloud and story stuff in the gallery and also seems needed for content recognition. Has the same shared user id as com.samsung.faceservice, com.samsung.mlp, com.samsung.mpl NOTE : On some phone models, deleting this package can also prevent to preview photos from the camera app. Seems to trigger com.samsung.faceservice, com.samsung.mlp, com.samsung.mpl when needed.", safety: "caution" },
- { pkg: "com.samsung.commonimsservice", label: "Commonimsservice", description: "Stat notify volte", safety: "caution" },
- { pkg: "com.samsung.crane", label: "Crane", description: "Call+ (https://support.vodafone.co.uk/Vodafone-apps/Call-and-Message/60900956/What-is-Call.htm) Call+ features on Samsung dialer NOTE: I have the feeling that these features are carrier/country dependant because I don't have them. But I have this package anyway.", safety: "safe" },
- { pkg: "com.samsung.daydream.customization", label: "Customization", description: "Samsung customization for Google Daydream VR headset (https://arvr.google.com/daydream/) NOTE : Google discontinued Daydream in 2019 and it no longer works on Android 10 Samsung devices", safety: "safe" },
- { pkg: "com.samsung.dcmservice", label: "Dcmservice", description: "Hard to find what it really does but I do know what DCM is in telecommunication. It means Dual Carrier Modulation. To stay simple, we use signal modulation to transfer information. DCM can be seen as an enhancement to conventional QPSK modulation that expand the coverage and robustness of an outdoor hotspot. https://www.ekahau.com/wp-content/uploads/2017/03/Webinar-slides-802.11ax-Sneak-Peek-%E2%80%93-The-Next-Generation-Wi-Fi.pdf Not a good idea to remove this unless it only impacts samsung apps. Need testing.", safety: "caution" },
- { pkg: "com.samsung.desktopsystemui", label: "Desktopsystemui", description: "Samsung DeX UI Extends your smartphone into a\"desktop computing experience\". https://developer.samsung.com/samsung-dex/how-it-works", safety: "safe" },
- { pkg: "com.samsung.discover", label: "Discover", description: "It shows up as a pane on OneUI home and prompts you to install all sorts of random apps. OneUI works perfectly fine if you uninstall these and simply removes the discover pane.", safety: "safe", neededBy: ["com.samsung.discover.sep"] },
- { pkg: "com.samsung.discover.sep", label: "Sep", description: "Related to `com.samsung.discover` but doesnt seem to do much on its own. Safe to remove without any effect.", safety: "safe", deps: ["com.samsung.discover"] },
- { pkg: "com.samsung.drmboost", label: "Drmboost", description: "Boosts CPU performance during secure DRM (Digital Rights Management) playback by monitoring codec activity and applying a DVFS (Dynamic Voltage and Frequency Scaling) hint (1400).", safety: "caution" },
- { pkg: "com.samsung.ecomm", label: "Ecomm", description: "Samsung Shop (https://play.google.com/store/apps/details?id=com.samsung.ecomm) App where you can buy all (and only) Samsung products. https://www.samsung.com/us/explore/shop-samsung-app/", safety: "safe" },
- { pkg: "com.samsung.ecomm.global.in", label: "In", description: "Samsung Shop (https://play.google.com/store/apps/details?id=com.samsung.ecomm) App where you can buy all (and only) Samsung products. https://www.samsung.com/us/explore/shop-samsung-app/", safety: "safe" },
- { pkg: "com.samsung.emergencyreporthelper", label: "Emergencyreporthelper", description: "Only for KOREA emergency report. Also no activities, only warn.", safety: "safe" },
- { pkg: "com.samsung.enhanceservice", label: "Enhanceservice", description: "Enhanced service is the process for Samsung cloud messaging (equivalent to iMessage on iOS). Messages on Samsung phones can be transmitted through either the network carrier or the non-archived Samsung service (which is transmitted over wireless data). This features is available in stock samsung SMS app settings.", safety: "safe" },
- { pkg: "com.samsung.euicc", label: "Euicc", description: "EuiccService eUICC refers to the architectural standards published by GSMA or implementations of those standard for eSIM, a device used to securely store one or more SIM card profiles, which are the unique identifiers and cryptographic keys used by service providers to uniquely identify and securely connect to mobile network devices. https://en.wikipedia.org/wiki/EUICC", safety: "caution" },
- { pkg: "com.samsung.everglades.video", label: "Video", description: "Part of the TouchWiz video player.", safety: "caution" },
- { pkg: "com.samsung.faceservice", label: "Faceservice", description: "Face service detection Analyzes all the photos in the Samsung Gallery to detect human faces using Samsung’s built-in face detection technology. Once FaceService identifies that the photo contains a face, it shows a button that allows users to add name tags to the photo and create a People Album of similar photos by selecting the name tag. Same shared user id as com.samsung.ipservice, com.samsung.mlp, com.samsung.cmh Needed for face recognition in the Gallery NOTE : Removing this package does not break face unlock", safety: "safe" },
- { pkg: "com.samsung.felicalock", label: "Felicalock", description: "FeliCa Password NFC things, not needed", safety: "safe" },
- { pkg: "com.samsung.fresco.logging", label: "Logging", description: "Fresco Logging Service Fresco is an android library for managing images and the memory they use (https://github.com/facebook/fresco)", safety: "safe" },
- { pkg: "com.samsung.gamedriver.ex2100", label: "Ex2100", description: "Package: com.samsung.gamedriver.ex2100", safety: "caution" },
- { pkg: "com.samsung.gamedriver.sm8250", label: "Sm8250", description: "Package: com.samsung.gamedriver.sm8250", safety: "caution" },
- { pkg: "com.samsung.gamedriver.sm8550", label: "Sm8550", description: "Samsung SM8550 GameDriver.", safety: "keep" },
- { pkg: "com.samsung.gpuwatchapp", label: "Gpuwatchapp", description: "This app has GPU Dumping mode, developer mode, game debugging. This package also provides the feature to watch and log system performance. Useful if you need/want to monitor system performance. Otherwise it offers no benefit. Safe to remove in any case.", safety: "safe" },
- { pkg: "com.samsung.groupcast", label: "Groupcast", description: "Samsung Group Play (discontinued) Allows you to share pictures , documents and music files with many people at same time if everyone is connected to a Wi-Fi network. https://www.samsung.com/in/support/mobile-devices/what-is-group-play-in-samsung-smartphones/", safety: "safe" },
- { pkg: "com.samsung.helphub", label: "Helphub", description: "Not sure if this package still exist. Provide help", safety: "safe" },
- { pkg: "com.samsung.hidden.china", label: "China", description: "China Hidden Menu Last call, secret code: 319712358.", safety: "safe" },
- { pkg: "com.samsung.hiddennetworksetting", label: "Hiddennetworksetting", description: "Set of hidden network settings (including frequency band choice). How to see these settings: https://forum.xda-developers.com/galaxy-note-8/help/q-hidden-network-settings-pie-t3914421/page4", safety: "caution" },
- { pkg: "com.samsung.hongbaoassistant", label: "Hongbaoassistant", description: "Hongbao Assistant Chinese app.", safety: "safe" },
- { pkg: "com.samsung.hs20provider", label: "Hs20provider", description: "only found useless hotspot logs", safety: "safe" },
- { pkg: "com.samsung.huxplatform", label: "Huxplatform", description: "Package: com.samsung.huxplatform", safety: "caution" },
- { pkg: "com.samsung.ims.smk", label: "Smk", description: "SimMobilityKit VoLTE calling, IMS.", safety: "caution" },
- { pkg: "com.samsung.inputshare", label: "Inputshare", description: "MultiControl Its use is to connect 2 devices and control one with the other.", safety: "safe" },
- { pkg: "com.samsung.internal.systemui.navbar.gestural_no_hint", label: "Gestural_no_hint", description: "Gestural Navigation Bar", safety: "caution" },
- { pkg: "com.samsung.internal.systemui.navbar.gestural_no_hint_extra_wide_back", label: "Gestural_no_hint_extra_wide_back", description: "Package: com.samsung.internal.systemui.navbar.gestural_no_hint_extra_wide_back", safety: "caution" },
- { pkg: "com.samsung.internal.systemui.navbar.gestural_no_hint_narrow_back", label: "Gestural_no_hint_narrow_back", description: "Package: com.samsung.internal.systemui.navbar.gestural_no_hint_narrow_back", safety: "caution" },
- { pkg: "com.samsung.internal.systemui.navbar.gestural_no_hint_wide_back", label: "Gestural_no_hint_wide_back", description: "Package: com.samsung.internal.systemui.navbar.gestural_no_hint_wide_back", safety: "caution" },
- { pkg: "com.samsung.internal.systemui.navbar.sec_gestural", label: "Sec_gestural", description: "Gestural Navigation Bar", safety: "caution" },
- { pkg: "com.samsung.internal.systemui.navbar.sec_gestural_no_hint", label: "Sec_gestural_no_hint", description: "Gestural Navigation Bar", safety: "caution" },
- { pkg: "com.samsung.ipservice", label: "Ipservice", description: "Set of hidden network settings (including frequency bands choice) How to see these settings : https://forum.xda-developers.com/galaxy-note-8/help/q-hidden-network-settings-pie-t3914421/page4 Same shared user id as com.samsung.faceservice, com.samsung.mlp, com.samsung.cmh Used by Galaxy Finder & Galaxy Vision to access web data Do removing this package break face/content recognition? # Name and permissions of this package suggest that it is used by Galaxy Finder to seek stuff on the web. Same shared user id as com.samsung.faceservice, com.samsung.mlp, com.samsung.cmh", safety: "safe" },
- { pkg: "com.samsung.japan.initonce", label: "Initonce", description: "InitOnce I found in code only name app", safety: "safe" },
- { pkg: "com.samsung.klmsagent", label: "Klmsagent", description: "Checks the validity of your KLM/KPE (Knox Licence Manager) license. This package is needed for Samsung Health (`com.sec.android.app.shealth`) and probably all Knox-related apps (like Secure Folder, Samsung Pay...) Note: KLM licences are deprecated. Samsung now only supports KPE (Knox Platform for Enterprise) keys. KPE keys are provided by Samsung and enable app's developers to access knox features.", safety: "caution" },
- { pkg: "com.samsung.knox.appsupdateagent", label: "Appsupdateagent", description: "This app is part of Samsung Knox, managing updates for apps within the Knox security framework.", safety: "caution" },
- { pkg: "com.samsung.knox.keychain", label: "Keychain", description: "Knox Key Chain Allows apps to sign data using system-wide private key/certificate pairs. So, even though the Android Keystore provides per-app access to credentials, the Android KeyChain runs as a system user, and hence, credentials stored through the Android KeyChain are associated with the system ID instead of a user ID. https://docs.samsungknox.com/dev/knox-sdk/about-keystores.htm This is only useful for apps using the TIMA Keystore. The big question I'm trying to answer is: Which are using this except Samsung apps? Can an android dev help on this?", safety: "keep" },
- { pkg: "com.samsung.knox.knoxtrustagent", label: "Knoxtrustagent", description: "Knox Quick Access allows users to access the Knox Workspace container using wearables such as the Galaxy Gear S2.", safety: "safe" },
- { pkg: "com.samsung.knox.kss", label: "Kss", description: "Knox Keyguard. Not much more information", safety: "safe" },
- { pkg: "com.samsung.knox.rcp.components", label: "Components", description: "Knox Content Mgr Security-related. Knox Content Mgr", safety: "safe" },
- { pkg: "com.samsung.knox.securefolder", label: "Securefolder", description: "Secure Folder (https://play.google.com/store/apps/details?id=com.samsung.knox.securefolder) Create a secure space on your device to encrypt and store your private data and apps. https://www.samsungknox.com/en/solutions/personal-apps/secure-folder NOTE: The key used to encrypt the files is not derived from the password you use to unlock the secure folder but rather from a key stored in the hardware that is set in the factory.", safety: "safe" },
- { pkg: "com.samsung.knox.securefolder.setuppage", label: "Setuppage", description: "Provides the setup process when opening secure folder (com.samsung.knox.securefolder) for the first time", safety: "safe" },
- { pkg: "com.samsung.locationhistory", label: "Locationhistory", description: "It's only location logs", safety: "safe" },
- { pkg: "com.samsung.logwriter", label: "Logwriter", description: "LogWriter Writes data in a logs SQL database. Runs at boot and is triggered when an download from an Iron Source (Iron Source is an Israeli advertising company) app is completed (probably\"com.aura.oobe.samsung\")", safety: "safe" },
- { pkg: "com.samsung.mdl.radio", label: "Radio", description: "Samsung Milk Music (discontinued in 2016) It was a freemium online music streaming service, with music streams and a recommendation engine powered by Slacker Radio. https://en.wikipedia.org/wiki/Milk_Music_(streaming_service)", safety: "safe" },
- { pkg: "com.samsung.mdl.radio.radiostub", label: "Radiostub", description: "Milk Music (shut down by Samsung) It was a music streaming app https://en.wikipedia.org/wiki/Milk_Music_(streaming_service)", safety: "safe" },
- { pkg: "com.samsung.memorysaver", label: "Memorysaver", description: "Helps you to free up space by letting you delete duplicates and move contents and apps on an SD card.", safety: "caution" },
- { pkg: "com.samsung.mlp", label: "Mlp", description: "Samsung content recognition. mpl= Media Learning Platform. Has permissions linked to com.samsung.cmh and com.samsung.android.visionintelligence", safety: "safe" },
- { pkg: "com.samsung.mobiletv", label: "Mobiletv", description: "Hidden testing mobiletv https://apkcombo.com/pt/mobiletv/com.samsung.mobiletv/", safety: "safe" },
- { pkg: "com.samsung.networkui", label: "Networkui", description: "User interface of the Mobile Network settings", safety: "keep" },
- { pkg: "com.samsung.oda.service", label: "Service", description: "SamsungOdaService Requires google play services. Another spying app collects sim info and other things.", safety: "safe" },
- { pkg: "com.samsung.oh", label: "Oh", description: "Samsung Members (https://play.google.com/store/apps/details?id=com.samsung.oh) Samsung community. It's a kind of social media app for Samsung users. https://www.samsung.com/global/galaxy/apps/samsung-members/ OOOPS ! https://bgr.com/2019/10/31/samsung-members-dong-pic-oops/ The other version is\"com.samsung.android.voc\".", safety: "safe" },
- { pkg: "com.samsung.packageinstalleroverlay", label: "Packageinstalleroverlay", description: "It's used to display an overlay window when installing or updating apps. Shows information about the app and provides the user with the option to cancel the process. Probably breaks manual installation of apps (needs more testing).", safety: "caution" },
- { pkg: "com.samsung.phone.overlay.common", label: "Common", description: "Possibly the incoming-call screen?", safety: "caution" },
- { pkg: "com.samsung.pickuptutorial", label: "Pickuptutorial", description: "A guide to some gestures on Samsung devices, however it doesn't seem to be accessable anywhere. Maybe intended for demo units?", safety: "safe" },
- { pkg: "com.samsung.pregpudriver.ex2100", label: "Ex2100", description: "Package: com.samsung.pregpudriver.ex2100", safety: "caution" },
- { pkg: "com.samsung.preloadapp", label: "Preloadapp", description: "Install app Installs recommended apps.", safety: "safe" },
- { pkg: "com.samsung.qosindicator", label: "Qosindicator", description: "QOS - quality of service, but it's only for diagnostics.", safety: "safe" },
- { pkg: "com.samsung.rcs", label: "Rcs", description: "RCS (Rich Communication Services) Has permissions linked to com.samsung.cmh, and com.samsung.android.visionintelligence (and I don't understand why). RCS is a communication protocol between mobile telephone carriers and between phone and carrier, aiming at replacing SMS. https://en.wikipedia.org/wiki/Rich_Communication_Services Uses IP protocol, so it needs an internet connection. It's a hot mess right now. It aims at being universal but only exists in Samsung Messages and Google Messages, because Google hasn't released a public API yet, so 3rd-party apps can't support it. In a lot of countries messages go through Google's Jibe servers. https://jibe.google.com/policies/terms/ https://pocketnow.com/why-you-should-probably-avoid-googles-rcs-text-messaging-chat-feature", safety: "safe" },
- { pkg: "com.samsung.safetyinformation", label: "Safetyinformation", description: "Safety information telling you to be careful with the usage of your phone.", safety: "safe" },
- { pkg: "com.samsung.sait.sohservice", label: "Sohservice", description: "FactoryApp This weird app collects battery data and probably others, who knows? Also to test battery things such as set voltage, Soc, temperature, status, timestamp.", safety: "safe" },
- { pkg: "com.samsung.samsungpssdplus", label: "Samsungpssdplus", description: "Samsung Magician https://play.google.com/store/apps/details?id=com.samsung.samsungpssdplus Allows users to conveniently manage their Samsung Portable SSD settings.", safety: "safe" },
- { pkg: "com.samsung.sdm", label: "Sdm", description: "Handles OTA system Updates.", safety: "caution" },
- { pkg: "com.samsung.sdm.sdmviewer", label: "Sdmviewer", description: "Lets you view installed updates?", safety: "caution" },
- { pkg: "com.samsung.sec.android.application.csc", label: "Csc", description: "Do something related to Country Specific Code (CSC). Maybe it only let you change your CSC Every Android device from Samsung has a folder called CSC. This folder contains some XML files that keep the configuration codes for the country and carrier-based customization options. Maybe it's safe to remove if you'll never change your CSC but it needs testing and I lack time for this. (I already have plenty of other packages uninstallation to test)", safety: "caution" },
- { pkg: "com.samsung.sec.android.teegris.tui_service", label: "Tui_service", description: "TuiService Security-related, but not necessary.", safety: "safe" },
- { pkg: "com.samsung.sec.mtv", label: "Mtv", description: "Hidden testing mobiletv", safety: "safe" },
- { pkg: "com.samsung.slsi.audiologging", label: "Audiologging", description: "It's hidden Audiologging.", safety: "safe" },
- { pkg: "com.samsung.slsi.telephony.silentlogging", label: "Silentlogging", description: "Hidden network logging. Safe to remove", safety: "safe" },
- { pkg: "com.samsung.ssu", label: "Ssu", description: "Network Unlock Network unlock? It's needed for SIM probably.", safety: "caution" },
- { pkg: "com.samsung.storyservice", label: "Storyservice", description: "Samsung StoryService Create stories in the Gallery from your pictures and videos. https://www.samsung.com/uk/support/mobile-devices/what-is-video-collage-and-how-do-i-use-it/ Use of content recognition (so may be related) Disabling breaks edge panels on my s9+ with OneUI 8.0/Android 16", safety: "caution" },
- { pkg: "com.samsung.svoice.sync", label: "Sync", description: "Samsung Voice service", safety: "safe" },
- { pkg: "com.samsung.systemui.bixby", label: "Bixby", description: "System UI for Bixby/Bixby2", safety: "safe" },
- { pkg: "com.samsung.systemui.bixby2", label: "Bixby2", description: "System UI for Bixby/Bixby2", safety: "safe" },
- { pkg: "com.samsung.systemui.hidenotch", label: "Hidenotch", description: "Hide notch overlay.", safety: "caution" },
- { pkg: "com.samsung.systemui.hidenotch.withoutcornerround", label: "Withoutcornerround", description: "Hide notch overlay without corner round.", safety: "caution" },
- { pkg: "com.samsung.tmovvm", label: "Tmovvm", description: "Samsung Visual Voicemail (for T-mobile only) Allows you to review and manage your voicemail directly from your smartphone, eliminating the need to dial into your mailbox. https://mobile.spectrum.com/support/article/360001296667/samsung-visual-voicemail", safety: "safe" },
- { pkg: "com.samsung.tmowfc.wfccontroller", label: "Wfccontroller", description: "Wifi Calling for T-mobile clients only! (tmowfc = t-mobile only wifi calling) Lets you call or text on Wi-Fi networks with your T-Mobile phone number https://www.t-mobile.com/support/coverage/wi-fi-calling-from-t-mobile VoLTE/IMS is needed for this to work (see com.sec.imsservice)", safety: "caution" },
- { pkg: "com.samsung.tmowfc.wfcpref", label: "Wfcpref", description: "Wifi Calling for T-mobile clients only! (tmowfc = t-mobile only wifi calling) Lets you call or text on Wi-Fi networks with your T-Mobile phone number https://www.t-mobile.com/support/coverage/wi-fi-calling-from-t-mobile VoLTE/IMS is needed for this to work (see com.sec.imsservice)", safety: "caution" },
- { pkg: "com.samsung.ucs.agent.boot", label: "Boot", description: "Boot agent UCS is a company which has partnered with Samsung to provide licenses for Samsung Knox https://www.ucssolutions.com/blog/samsung-knox/ I don't have precise information about the package itself but there are chances that it verifies some files on boot. If these files are not verified then it may prevent the phone from booting.", safety: "keep" },
- { pkg: "com.samsung.ucs.agent.ese", label: "Ese", description: "eSE UCS Plugin is another package from UCS. It makes possible for apps to access eSE of Samsung mobile devices by using the UCM (Universal Credential Management) APIs and framework. https://docs.samsungknox.com/dev/knox-sdk/faqs/general/what-is-universal-credential-management_-ucm.htm https://www.samsung.com/semiconductor/security/ese/ See above", safety: "safe" },
- { pkg: "com.samsung.ucs.ucspinpad", label: "Ucspinpad", description: "UcsPinpad In this app u can setup pin,puk UCS is a company which has partnered with Samsung to provide licenses for Samsung Knox", safety: "safe" },
- { pkg: "com.samsung.unifiedtp", label: "Unifiedtp", description: "Unified tethering provisioner. Tethering still works for me without it.", safety: "caution" },
- { pkg: "com.samsung.upsmtheme", label: "Upsmtheme", description: "Handle the theme of UPSM (Ultra Power Saving Mode) Safe to remove", safety: "caution" },
- { pkg: "com.samsung.visionprovider", label: "Visionprovider", description: "Provider for Bixby Vision (com.samsung.android.visionintelligence) Manages access to data stored by itself, stored by other apps, and provide a way to share these data with other apps.", safety: "safe" },
- { pkg: "com.samsung.vklayer.sm8250", label: "Sm8250", description: "Vulkan GPU DRIVER", safety: "keep" },
- { pkg: "com.samsung.vklayer.sm8350", label: "Sm8350", description: "GPU Driver", safety: "keep" },
- { pkg: "com.samsung.voiceserviceplatform", label: "Voiceserviceplatform", description: "Samsung Voice (for Galaxy S7) Virtual mobile personal assistant capable of running basic tasks through voice https://www.samsung.com/global/galaxy/what-is/s-voice/", safety: "safe" },
- { pkg: "com.samsung.vvm", label: "Vvm", description: "Samsung Verizon Voicemail Allows you to review and manage your voicemail directly from your smartphone, eliminating the need to dial into your mailbox. You can scroll through your messages, pick the ones you want to listen to, and erase them right from your device's screen. https://mobile.spectrum.com/support/article/360001296667/samsung-visual-voicemail", safety: "safe" },
- { pkg: "com.samsung.vvm.se", label: "Se", description: "Samsung Verizon Voicemail Allows you to review and manage your voicemail directly from your smartphone, eliminating the need to dial into your mailbox. You can scroll through your messages, pick the ones you want to listen to, and erase them right from your device's screen. https://mobile.spectrum.com/support/article/360001296667/samsung-visual-voicemail", safety: "safe" },
- { pkg: "com.sec.allsharecastplayer", label: "Allsharecastplayer", description: "Screen Mirroring (only in Galaxy S6) Cast your mobile screen to a TV. https://www.samsung.com/us/2012-allshare-play/", safety: "safe" },
- { pkg: "com.sec.android.AutoPreconfig", label: "AutoPreconfig", description: "Auto Preconfig Tells you to format the device when sim from other country is used basically (won't let you use another one)", safety: "safe" },
- { pkg: "com.sec.android.CcInfo", label: "CcInfo", description: "CcInfo Samsung logs/analytics.", safety: "safe" },
- { pkg: "com.sec.android.Cdfs", label: "Cdfs", description: "CDFS MODE Launcher, it's CdfsService Probably needed for usb mtp", safety: "caution" },
- { pkg: "com.sec.android.GeoLookout", label: "GeoLookout", description: "Geo News for korea or japanese", safety: "safe" },
- { pkg: "com.sec.android.Kies", label: "Kies", description: "Required for connecting your device to Samsung Kies, Samsung's long discontinued iTunes competitor. Everything that can be done with Kies can be done with ADB or Heimdall, so there isn't really a point to keeping this.", safety: "safe" },
- { pkg: "com.sec.android.Preconfig", label: "Preconfig", description: "On some phones founded testing things menu and on some not found any hidden menu but it's app for secret codes to testing hardware things", safety: "safe" },
- { pkg: "com.sec.android.QRreader", label: "QRreader", description: "Samsung QR code reader.", safety: "safe" },
- { pkg: "com.sec.android.RilServiceModeApp", label: "RilServiceModeApp", description: "Service mode RIL hidden app. Used for debug and diagnostics dial *#0011# for modem connectivity info, *#9090# for diagnostics control # RIL means Radio Interface Layer. It's the bridge between Android phone framework services and the hardware. https://wladimir-tm4pda.github.io/porting/telephony.html https://stackoverflow.com/questions/11111067/how-does-modem-code-talk-to-android-code Samsung RIL is a add on from Samsung : Modem <=> Linux kernel <=> libsamsung-ipc <=> Samsung-RIL <=> Android framework <=> Android applications", safety: "safe" },
- { pkg: "com.sec.android.SamsungDrmProvider", label: "SamsungDrmProvider", description: "Completely empty package. Useless. Content with DRM still works without this package.", safety: "safe" },
- { pkg: "com.sec.android.UsimRegistrationKOR", label: "UsimRegistrationKOR", description: "USIM Registration. This app is used to register your USIM card in South Korea. It is not needed outside of South Korea.", safety: "caution" },
- { pkg: "com.sec.android.allshare.service.controlshare", label: "Controlshare", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.sec.android.allshare.service.fileshare", label: "Fileshare", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.sec.android.allshare.service.mediashare", label: "Mediashare", description: "Share media to your other Samsung devices with Allshare. Allshare is discontinued and no longer present on modern Samsung devices.", safety: "safe" },
- { pkg: "com.sec.android.app.DataCreate", label: "DataCreate", description: "Automation Test Another hidden test app. A lot of mention of samsung note (memo). Has access to basically everything on the phone Related to these hidden menus (accessible by typing these codes in the samsung dialer) : - *#3282*727336*# (Status of data usage) - *#273283*255*3282*# (Data create menu) - *#*#273283*255*663282*#*#* (Backup all media files)", safety: "safe" },
- { pkg: "com.sec.android.app.FileShareClient", label: "FileShareClient", description: "Receive files from Samsung devices with Allshare. Allshare is discontinued and no longer present on modern Samsung devices.", safety: "safe" },
- { pkg: "com.sec.android.app.FileShareServer", label: "FileShareServer", description: "Send files to Samsung devices with Allshare. Allshare is discontinued and no longer present on modern Samsung devices.", safety: "safe" },
- { pkg: "com.sec.android.app.SecSetupWizard", label: "SecSetupWizard", description: "Samsung Setup Wizard The first time you turn your device on, a welcome screen is displayed. It guides you through the basics of setting up your device. It's the setup for Samsung services. Both `com.sec.phone` & `com.sec.android.app.SecSetupWizard` must be enabled to be able to add new ESIMs to device. Otherwise menu will spin indefinitely.", safety: "caution" },
- { pkg: "com.sec.android.app.SmartClipService", label: "SmartClipService", description: "Default image editor on older Samsung devices.", safety: "caution" },
- { pkg: "com.sec.android.app.aftersalecamera", label: "Aftersalecamera", description: "Calibration Camera app.", safety: "safe" },
- { pkg: "com.sec.android.app.apex", label: "Apex", description: "Samsung ApexService Enables taking motion photos and provides a motion photos player/viewer https://www.samsung.com/global/galaxy/what-is/motion-photo/ It also does face recognition in the gallery. Without this package, motion photos will not work, see https://www.samsung.com/au/support/mobile-devices/motion-photos", safety: "caution" },
- { pkg: "com.sec.android.app.applinker", label: "Applinker", description: "Related to FeliCa Networks (https://en.wikipedia.org/wiki/FeliCa / https://www.felicanetworks.co.jp/en/). FeliCa is contactless RFID smart card system mainly used for wallet function on mobile devices # Has the permission INSTALL_PACKAGES", safety: "safe" },
- { pkg: "com.sec.android.app.bcocr", label: "Bcocr", description: "Business card recognition Something about business cards not very useful", safety: "safe" },
- { pkg: "com.sec.android.app.billing", label: "Billing", description: "Samsung billing/Checkout Used to purchase apps through Samsung Store application that is delivered with Samsung phones. Acts as bridge between Samsung Store and payment servers.", safety: "safe" },
- { pkg: "com.sec.android.app.bluetoothagent", label: "Bluetoothagent", description: "Bluetooth Agent Bluetooth test service.", safety: "safe" },
- { pkg: "com.sec.android.app.bluetoothtest", label: "Bluetoothtest", description: "Bluetooth Test Hidden feature accessible by entering *#*#232331#*#* in the Samsung dialer. It was found to be calling home back in 2015: https://forum.xda-developers.com/galaxy-s5/help/bluetoothtest-apk-calling-home-t3035182", safety: "safe" },
- { pkg: "com.sec.android.app.camera", label: "Camera", description: "Samsung camera app Safe to remove (but not recommended)", safety: "caution" },
- { pkg: "com.sec.android.app.camera.plb", label: "Plb", description: "Looks like an app to record videos for Facebook. Despite having 'camera' in the name, it is not needed for the camera at all.", safety: "safe" },
- { pkg: "com.sec.android.app.camera.sticker", label: "Sticker", description: "Samsung DECO PIC. Add things such as live stickers, AR masks, frames, and GIFs to your photos and videos.", safety: "safe" },
- { pkg: "com.sec.android.app.camerasaver", label: "Camerasaver", description: "Weird app that has BootCameraService. Probably you can't uninstall it. In the code found things: createCameraPreviewSession, generateTextureIds, openCamera, setUpCameraOutputs.", safety: "caution" },
- { pkg: "com.sec.android.app.chromecustomizations", label: "Chromecustomizations", description: "Samsung stuff on the homepage of Google Chrome", safety: "safe" },
- { pkg: "com.sec.android.app.clipvideo", label: "Clipvideo", description: "App to create a video collage.", safety: "safe" },
- { pkg: "com.sec.android.app.clockpackage", label: "Clockpackage", description: "Samsung clock", safety: "caution" },
- { pkg: "com.sec.android.app.desktoplauncher", label: "Desktoplauncher", description: "Samsung DeX Home (launcher) Dex enables users to extend their device into a desktop-like experience by connecting a keyboard, mouse, and monitor. \"DeX\" is a contraction of\"Desktop eXperience\". https://en.wikipedia.org/wiki/Samsung_DeX", safety: "safe" },
- { pkg: "com.sec.android.app.dexonpc", label: "Dexonpc", description: "Samsung DeX Extends your smartphone into a\"desktop computing experience\". Concretely this lets you access all your mobile apps and content from a computer. Only works on Windows/MacOS. You will need to install the Samsung DeX app on your computer. https://en.wikipedia.org/wiki/Samsung_DeX https://www.samsung.com/global/galaxy/apps/samsung-dex/", safety: "safe" },
- { pkg: "com.sec.android.app.dictionary", label: "Dictionary", description: "Samsung Dictionary is is an app that enables you to manage all the dictionaries stored on your Samsung device.", safety: "safe" },
- { pkg: "com.sec.android.app.easylauncher", label: "Easylauncher", description: "TouchWiz easy home -- gives you large icons and makes things the home screen significantly simpler. Primarly designed for elderly users. Discontinued after the release of Samsung Experience in 2017.", safety: "safe" },
- { pkg: "com.sec.android.app.easysetup", label: "Easysetup", description: "Core of Samsung SmartThings (formerly Samsung Easy Setup) See com.samsung.android.easysetup", safety: "safe" },
- { pkg: "com.sec.android.app.factorykeystring", label: "Factorykeystring", description: "DeviceKeyString : Dialable hidden diagnostic/debug app Dial *#0283# to open audio LoopbackTest control, dial *#2663# for TSP firmware update", safety: "safe" },
- { pkg: "com.sec.android.app.felicatest", label: "Felicatest", description: "FeliCa Test, hidden debugs, logs HAL_Nfc", safety: "safe" },
- { pkg: "com.sec.android.app.filtermanager", label: "Filtermanager", description: "Manage camera filters on your Samsung device.", safety: "caution" },
- { pkg: "com.sec.android.app.firewall", label: "Firewall", description: "Blocked calls'msgs Chinese blocking calls and spam.", safety: "safe" },
- { pkg: "com.sec.android.app.fm", label: "Fm", description: "Samsung Radio Listen to FM radio stations", safety: "caution" },
- { pkg: "com.sec.android.app.gamehub", label: "Gamehub", description: "Samsung Game Hub Was replaced by\"com.samsung.android.game.gamehome\" https://www.techradar.com/news/phone-and-communications/mobile-phones/the-samsung-game-hub-explained-1143450", safety: "safe" },
- { pkg: "com.sec.android.app.hwmoduletest", label: "Hwmoduletest", description: "HwModuleTest, a hardware hidden test app (dial *#0*# to open it). Has stuff to quickly check the phone's hardware. Removing it does not break anything, but no point in removing it. Note: opening this menu is required to change CSC with PC programs.", safety: "safe" },
- { pkg: "com.sec.android.app.interactivekeyguardtutorial", label: "Interactivekeyguardtutorial", description: "A guide on how to unlock your phones screen, however it doesn't seem to be present anywhere on the phone. Maybe intended for demo units?", safety: "safe" },
- { pkg: "com.sec.android.app.kidshome", label: "Kidshome", description: "This app provides a child-friendly interface and controls on Samsung devices, designed to create a safe environment for children by restricting access to apps and content.", safety: "safe" },
- { pkg: "com.sec.android.app.launcher", label: "Launcher", description: "Samsung One UI Home launcher (homescreen) (https://play.google.com/store/apps/details?id=com.sec.android.app.launcher) It is also Samsung's TouchWiz default launcher WARNING: disabling this package breaks the multitasking navigation button on all newer versions of One UI, nothing would happen when pressing it.", safety: "caution" },
- { pkg: "com.sec.android.app.magnifier", label: "Magnifier", description: "Lets you use your device as a magnifying glass making it easier to read any small font or expand the details of any object, for example.", safety: "safe" },
- { pkg: "com.sec.android.app.mediasync", label: "Mediasync", description: "Share music for group play.", safety: "safe" },
- { pkg: "com.sec.android.app.minimode.res", label: "Res", description: "Minimode will be not available when this app be removed", safety: "safe" },
- { pkg: "com.sec.android.app.mobileprint", label: "Mobileprint", description: "Samsung print service for supported printers.", safety: "caution" },
- { pkg: "com.sec.android.app.mt", label: "Mt", description: "Mobile tracker security feature. If someone inserts a new SIM card in your device the device will automatically sends the SIM contact number to specified recipients to help you locate and recover you device. https://www.samsung.com/nz/support/mobile-devices/what-is-mobile-tracker/", safety: "safe" },
- { pkg: "com.sec.android.app.music", label: "Music", description: "Samsung's proprietary music app, allows you to play local music or connect your Spotify account (https://play.google.com/store/apps/details?id=com.sec.android.app.music). Safe to uninstall, and there's much better open source alternatives for both local music and Spotify.", safety: "safe" },
- { pkg: "com.sec.android.app.mv.player", label: "Player", description: "Share videos to other devices.", safety: "safe" },
- { pkg: "com.sec.android.app.myfiles", label: "Myfiles", description: "Samsung file manager app (https://play.google.com/store/apps/details?id=com.sec.android.app.myfiles) WARNING: If you remove this package on Android 10+, you will no longer be able to manage storage the same way as before. For example you will lose the ability to unmount or format the SD card from within the Settings app.", safety: "caution" },
- { pkg: "com.sec.android.app.ocr", label: "Ocr", description: "Optical Read (feature replaced by Bixby Vision : com.samsung.android.visionintelligence) Lets you scan or extract text or data from images, documents, business cards, or QR codes.", safety: "safe" },
- { pkg: "com.sec.android.app.parser", label: "Parser", description: "DRParser Mode Secret code parser Support for hidden samsung apps launched via secret codes", safety: "safe" },
- { pkg: "com.sec.android.app.personalization", label: "Personalization", description: "Has something to do with personalization? Has 2 permissions: `READ_PHONE_STATE` and `CHANGE_PHONE_STATE`", safety: "caution" },
- { pkg: "com.sec.android.app.popupcalculator", label: "Popupcalculator", description: "Samsung calculator app (https://play.google.com/store/apps/details?id=com.sec.android.app.popupcalculator)", safety: "caution" },
- { pkg: "com.sec.android.app.popupuireceiver", label: "Popupuireceiver", description: "Not needed popupui with battery animation charging or other system notifications.", safety: "safe" },
- { pkg: "com.sec.android.app.qsfastpairoverlay", label: "Qsfastpairoverlay", description: "About half street overlay, has to gms.", safety: "caution" },
- { pkg: "com.sec.android.app.quicktool", label: "Quicktool", description: "The Quick Tools panel includes a ruler, a compass and a torch. To add this to the Edge Panel (com.samsung.android.app.clipboardedge)", safety: "safe" },
- { pkg: "com.sec.android.app.rakein", label: "Rakein", description: "Completely empty package. Useless", safety: "safe" },
- { pkg: "com.sec.android.app.ringtoneBR", label: "RingtoneBR", description: "Samsung ringtone backup/restore feature Where is this feature? (available from Samsung Galaxy S9)", safety: "safe" },
- { pkg: "com.sec.android.app.safetyassurance", label: "Safetyassurance", description: "Safety assurance is related to emergency features. It is especially used for SOS messages. https://www.samsung.com/nz/support/mobile-devices/samsung-sos-smart-phone-emergency-message-guide/ Has obviously a huge amount of permissions. Pithus analysis: https://beta.pithus.org/report/a06501fce61a39cb2b38df088eba4d0ce7ca3ed8fce3e8b672d8eb807538fb1f", safety: "caution" },
- { pkg: "com.sec.android.app.samsungapps", label: "Samsungapps", description: "Samsung Galaxy Store Samsung's app store, required for the Samsung Pay feature to work. You probably don't want this app, it's just a worse version of the Play Store with a few proprietary exclusives from Samsung. Uninstalling it will not cause a bootloop, so its priority shouldn't be any higher than Advanced. https://en.wikipedia.org/wiki/Samsung_Galaxy_Store", safety: "caution", neededBy: ["com.samsung.android.spay"] },
- { pkg: "com.sec.android.app.saspmodemailerprovider", label: "Saspmodemailerprovider", description: "docomo mail no activities, looks like more useless frameworks also it's only for japanese", safety: "safe" },
- { pkg: "com.sec.android.app.sbrowser", label: "Sbrowser", description: "Samsung Internet (https://play.google.com/store/apps/details?id=com.sec.android.app.sbrowser) Don't use this browser. In their privacy policy:\"The information we obtain [...] include, identifiers associated with your devices, types of devices, web browser characteristics, device and operating system type and characteristics, language preferences, clickstream data, your interactions with Samsung Internet (such as the web pages you visit, links you click and features you use), dates and times of your use of Samsung Internet, and other information about your use of Samsung Internet\" https://developer.samsung.com/internet/privacy-policy-us.html", safety: "safe" },
- { pkg: "com.sec.android.app.sbrowser.lite", label: "Lite", description: "Samsung Internet Lite/Go Lite version of the Samsung browser (hah! Because the base one was too bloated?) Don't use this browser. In their privacy policy:\"The information we obtain [...] include, identifiers associated with your devices, types of devices, web browser characteristics, device and operating system type and characteristics, language preferences, clickstream data, your interactions with Samsung Internet (such as the web pages you visit, links you click and features you use), dates and times of your use of Samsung Internet, and other information about your use of Samsung Internet\" https://developer.samsung.com/internet/privacy-policy-us.html", safety: "safe" },
- { pkg: "com.sec.android.app.sbrowsertry", label: "Sbrowsertry", description: "Samsung Internet browser, there are much better browsers available and Samsung Internet has a really sketchy privacy policy.", safety: "safe" },
- { pkg: "com.sec.android.app.scloud", label: "Scloud", description: "I guess it's the core of Samsung Cloud.", safety: "safe" },
- { pkg: "com.sec.android.app.servicemodeapp", label: "Servicemodeapp", description: "SysDump hidden app Low-level debugging and diagnostics tools (dial *#9900# to open it)", safety: "safe" },
- { pkg: "com.sec.android.app.setupwizard", label: "Setupwizard", description: "Samsung Setupwizard The Welcome screen which guides you through the basics of setting up your device when you boot it for the first time (or after a factory reset). On some Verizon-carried devices, it can show an annoying\"SIM card not from Verizon Wireless\" notification, for each boot, and it can't be blocked unless you disable the app", safety: "safe" },
- { pkg: "com.sec.android.app.setupwizardlegalprovider", label: "Setupwizardlegalprovider", description: "SetupWizardLegalProvider All the legal terms you need to accept when you boot your phone for the first time. The Welcome screen which guides you through the basics of setting up your device is the android setup wizard.", safety: "safe" },
- { pkg: "com.sec.android.app.shealth", label: "Shealth", description: "Samsung Health (https://play.google.com/store/apps/details?id=com.sec.android.app.shealth) Serves to track various aspects of daily life contributing to well being such as physical activity, diet, and sleep. https://en.wikipedia.org/wiki/Samsung_Health S Health data is stored in a Knox container (with HIPAA compliance)", safety: "safe" },
- { pkg: "com.sec.android.app.simsettingmgr", label: "Simsettingmgr", description: "SIM card manager. Contains configuration and settings for handling dual SIM (give a SIM an icon, a name, and so on)", safety: "keep" },
- { pkg: "com.sec.android.app.sns3", label: "Sns3", description: "Samsung Galaxy (Only installed on older phone before Galaxy S7) Don't really know what this app does but majority of people deleted this.", safety: "safe" },
- { pkg: "com.sec.android.app.snsimagecache", label: "Snsimagecache", description: "SnsImageCache A lot logs, probably it's for image cache. A lot samsung phones dont have it so it's safe to remove", safety: "safe" },
- { pkg: "com.sec.android.app.soundalive", label: "Soundalive", description: "Responsible for Dolby Atmos and other equalizer stuff (accessible from the Settings app). Needed by Adapt Sound (com.sec.hearingadjust) which is a pretty useful feature. NOTE: If the app crashes regularly, even when you don't use Dolby or other features, check to see if you have \"com.samsung.android.scpm\" installed & enabled. If not, try installing/enabling it.", safety: "safe" },
- { pkg: "com.sec.android.app.suwscriptplayer", label: "Suwscriptplayer", description: "SuwScriptPlayer Seems to be another test app which test some\"scripts\"", safety: "safe" },
- { pkg: "com.sec.android.app.sysscope", label: "Sysscope", description: "Checks after every boot if the ROM and kernel have been modified. This package is usually present on Verizon-locked phones. Verizon has the ability to check if your device has root access (content://com.verizon.security/ROOT_STATUS)", safety: "safe" },
- { pkg: "com.sec.android.app.taskmanager", label: "Taskmanager", description: "Hidden app that shows uninstall unused apps(+boring notifications that may be disabled) and button to (other, in the same app)task manager(shows ram and buttons kill user apps).", safety: "safe" },
- { pkg: "com.sec.android.app.tourviewer", label: "Tourviewer", description: "3d tour image, Virtual tour, Viewer used to view photos taken with the Galaxy S5 camera's Virtual Tour Shot mode.", safety: "safe" },
- { pkg: "com.sec.android.app.translator", label: "Translator", description: "Samsung Translater (S Translater) https://www.samsung.com/africa_en/support/mobile-devices/what-is-s-translator-and-how-does-it-work/", safety: "safe" },
- { pkg: "com.sec.android.app.uwbtest", label: "Uwbtest", description: "UwbTest for testing UWB in the factory", safety: "safe" },
- { pkg: "com.sec.android.app.ve.vebgm", label: "Vebgm", description: "Samsung Editing Assets (\"Video Editor BackGround Music\"). This app lets you choose background music from the Video Editor app.", safety: "safe" },
- { pkg: "com.sec.android.app.vepreload", label: "Vepreload", description: "Samsung video editor Lets you add add transitions, music, stickers and text to your videos. You can also change the speed of the action, or even add filters to switch up the mood of your videos.", safety: "caution" },
- { pkg: "com.sec.android.app.videoplayer", label: "Videoplayer", description: "TouchWiz video player.", safety: "caution" },
- { pkg: "com.sec.android.app.voicenote", label: "Voicenote", description: "Samsung Voice recorder (https://play.google.com/store/apps/details?id=com.sec.android.app.voicenote)", safety: "safe" },
- { pkg: "com.sec.android.app.volumemonitorprovider", label: "Volumemonitorprovider", description: "VolumeMonitorProvider used in Digital Wellbeing to average the dB heard through earphones and display it.", safety: "safe" },
- { pkg: "com.sec.android.app.wallpaperchooser", label: "Wallpaperchooser", description: "This app provides the functionality to select and manage wallpapers on Samsung devices, including Samsung-specific wallpaper options.", safety: "caution" },
- { pkg: "com.sec.android.app.wfdbroker", label: "Wfdbroker", description: "I found it's for connecting to tv also settings but app size is too small for doing these things.", safety: "safe" },
- { pkg: "com.sec.android.app.withtv", label: "Withtv", description: "Samsung Smart View Allows you to cast your phone screen to the TV. https://www.samsung.com/us/apps/smart-view-2/", safety: "safe" },
- { pkg: "com.sec.android.app.wlantest", label: "Wlantest", description: "wlan test Hidden test app responding to the #232339*# and *#232338*# secret codes FYI : wlan = wireless LAN (https://en.wikipedia.org/wiki/Wireless_LAN) NOTE: Disabling this test will rise the exclamation mark on the WI-Fi icon and will show the message\"Unable to connect to the host\" in Settings -> Connections -> More connections settings - Private DNS - provider hostname. The connection seems to work despite those esthetic errors.", safety: "safe" },
- { pkg: "com.sec.android.app.wluc", label: "Wluc", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.sec.android.autodoodle.service", label: "Service", description: "Samsung Auto Doodle for Photo Editor https://galaxystore.samsung.com/prepost/000005425352", safety: "safe" },
- { pkg: "com.sec.android.automotive.drivelink", label: "Drivelink", description: "Car mode it's hidden app and has a lot duplicate settings. Not needed", safety: "safe" },
- { pkg: "com.sec.android.automotive.drivelinkremote", label: "Drivelinkremote", description: "DriveLinkRemote I found only Hello world!", safety: "safe" },
- { pkg: "com.sec.android.casual2", label: "Casual2", description: "Casual theme", safety: "caution" },
- { pkg: "com.sec.android.classic2", label: "Classic2", description: "Classic theme", safety: "caution" },
- { pkg: "com.sec.android.cloudagent", label: "Cloudagent", description: "Part of Dropbox integration on TouchWiz", safety: "safe" },
- { pkg: "com.sec.android.cloudagent.dropboxoobe", label: "Dropboxoobe", description: "Get a free 50GB Dropbox account with your Samsung device! Would be useful, but Dropbox ended this offer about 10 years ago.", safety: "safe" },
- { pkg: "com.sec.android.cover.ledcover", label: "Ledcover", description: "Samsung LED cover service Display stuff on the LED case. https://www.samsung.com/us/support/troubleshooting/TSG01001489/ HOW IT WORKS : https://forum.xda-developers.com/galaxy-note-8/accessories/how-led-cover-t3686694", safety: "safe" },
- { pkg: "com.sec.android.daemonapp", label: "Daemonapp", description: "Unified Daemon app provides support for a number of different apps on your device. These include the Weather, Yahoo Finance and Yahoo News apps amongst others. The data is used by apps such as the Alarm, Calendar app and the camera.", safety: "safe" },
- { pkg: "com.sec.android.desktopcommunity", label: "Desktopcommunity", description: "Samsung DeX panel", safety: "safe" },
- { pkg: "com.sec.android.desktopmode.uiservice", label: "Uiservice", description: "Samsung DeX Extends your smartphone into a\"desktop computing experience\". Concretely this lets you access all your mobile apps and content from a computer. Only works on Windows/MacOS. You will need to install the Samsung DeX app on your computer. https://en.wikipedia.org/wiki/Samsung_DeX https://www.samsung.com/global/galaxy/apps/samsung-dex/", safety: "safe" },
- { pkg: "com.sec.android.dexsystemui", label: "Dexsystemui", description: "Samsung DeX System UI Safe to remove if not use connect phone for example to TV.", safety: "caution" },
- { pkg: "com.sec.android.diagmonagent", label: "Diagmonagent", description: "Diagnostic Monitoring Agent Used to send diagnostic data to Samsung Data collection from Settings > Biometrics and security > Send diagnostic data WARNING: disabling this causes scheduled services to aggressively launch it every second, spamming the Android crash log and overheating the device, thus draining battery. More info is needed on the dependencies that trigger this behavior. Version tested: 9.0.11.", safety: "caution" },
- { pkg: "com.sec.android.directshare", label: "Directshare", description: "Part of Samsung's SBeam service. SBeam has known security vulnerabilities (https://labs.withsecure.com/advisories/samsung-s5-arbitary-file-retrieval-during-sbeam-transfer), so you should really uninstall this.", safety: "safe" },
- { pkg: "com.sec.android.easyMover", label: "EasyMover", description: "Samsung Smart Switch Mobile (https://play.google.com/store/apps/details?id=com.sec.android.easyMover) Allows you to easily transfer content (contacts, photos, music, notes, etc.) to a new Samsung Galaxy device. https://www.samsung.com/global/galaxy/apps/smart-switch/ https://fr.wikipedia.org/wiki/Smart_Switch", safety: "safe" },
- { pkg: "com.sec.android.easyMover.Agent", label: "Agent", description: "Smart Switch Agent Needed to use Smart Switch. See\"com.sec.android.easyMover\".", safety: "safe" },
- { pkg: "com.sec.android.easyonehand", label: "Easyonehand", description: "Samsung Easy One Hand mode Allows you to temporarily scale down the display size of your screen for easier control of your phone with just one hand. https://www.samsung.com/au/support/mobile-devices/using-one-handed-mode/", safety: "safe" },
- { pkg: "com.sec.android.easysettings", label: "Easysettings", description: "Settings app if you're using the Easy Mode feature on Samsung devices.", safety: "safe" },
- { pkg: "com.sec.android.emergencylauncher", label: "Emergencylauncher", description: "Samsung Launcher when in emergency(low battery) mode.", safety: "caution" },
- { pkg: "com.sec.android.emergencymode.service", label: "Service", description: "Emergency mode enables you to extend your device’s standby time when in an emergency situation and want your device to conserve power for as long as possible. When activated, screen brightness will decrease, some of functionality will be limited and the home screen is changed to a black theme, all to reduce battery drain (OLED screens draw less power when showing black, cuz black = pixel off). NOT related to SOS messages/911. https://www.samsung.com/uk/support/mobile-devices/what-is-emergency-mode/", safety: "caution" },
- { pkg: "com.sec.android.fido.uaf.asm", label: "Asm", description: "Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords. https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device to the online service and using a local authentication mechanism such as iris or fingerprint recognition. https://developers.google.com/identity/fido/android/native-apps The UAF Authenticator-Specific Module (ASM) is a software interface on top of UAF authenticators which gives a standardized way for FIDO UAF clients to detect and access the functionality of UAF authenticators and hides internal communication complexity from FIDO UAF Client. https://fidoalliance.org/specs/fido-uaf-v1.0-ps-20141208/fido-uaf-asm-api-v1.0-ps-20141208.html Safe to remove if you don't use password-less authentication to access online services.", safety: "safe" },
- { pkg: "com.sec.android.fido.uaf.client", label: "Client", description: "Fido UAF client. It's a layer that connects authenticator and RP (the application owner) and ensures validity of the connection. So it can be browser, desktop application, mobile application, platform(i.e. android/ios). See above Safe to remove if you don't use password-less authentication to access online services", safety: "safe" },
- { pkg: "com.sec.android.fotaclient", label: "Fotaclient", description: "OTA for legacy Samsung devices.", safety: "caution" },
- { pkg: "com.sec.android.fwupgrade", label: "Fwupgrade", description: "Updates AllShare components. Since Samsung AllShare is discontinued, this is now useless.", safety: "safe" },
- { pkg: "com.sec.android.gallery3d", label: "Gallery3d", description: "Samsung Gallery app (https://play.google.com/store/apps/details?id=com.sec.android.gallery3d) Note: Samsung Gallery is a dependency for the camera so it's not a good idea to delete it. Note : Good to know. When the original version of the image is deleted, the copy of it within the com.sec.android.gallery3d folder is not removed. https://athenaforensics.co.uk/com-sec-android-gallery3d-mobile-phone-forensics/ NOTE : Deleting this package will also prevent to preview photos from the camera app.", safety: "caution" },
- { pkg: "com.sec.android.gallery3d.panorama360view", label: "Panorama360view", description: "Let you see panoramic photos in the samsung Gallery.", safety: "caution" },
- { pkg: "com.sec.android.game.gamehome", label: "Gamehome", description: "Samsung Game launcher Centralizes all your android games. This app can track all your games, how many hours you've spent playing each one, and which genres you play the most. Recommends games based on your profile. https://galaxystore.samsung.com/prepost/000004906980?appId=com.samsung.android.game.gamehome", safety: "safe" },
- { pkg: "com.sec.android.iaft", label: "Iaft", description: "iaft Has permission dump, trace errors probably.", safety: "safe" },
- { pkg: "com.sec.android.inputmethod", label: "Inputmethod", description: "Samsung Keyboard Superseded by `com.samsung.android.honeyboard`.", safety: "caution" },
- { pkg: "com.sec.android.inputmethod.beta", label: "Beta", description: "Samsung Keyboard Neural Beta Smarter Samsung Keyboard with better predictition/suggestion (using deep learning) https://galaxystore.samsung.com/prepost/000004170688?appId=com.sec.android.inputmethod.beta", safety: "caution" },
- { pkg: "com.sec.android.inputmethod.iwnnime.japan", label: "Japan", description: "Samsung Japanese keyboard", safety: "caution" },
- { pkg: "com.sec.android.kies", label: "Kies", description: "No activities, only useless frameworks in classes.dex", safety: "safe" },
- { pkg: "com.sec.android.llmpolicy", label: "Llmpolicy", description: "LLMPolicyService Low latency network to game? Looks unused.", safety: "safe" },
- { pkg: "com.sec.android.mimage.avatarstickers", label: "Avatarstickers", description: "Samsung My Emoji Stickers Let you turn yourself into an emoji. Woah ! What an incredible feature... https://www.samsung.com/us/support/answer/ANS00078920/", safety: "safe" },
- { pkg: "com.sec.android.mimage.gear360editor", label: "Gear360editor", description: "360 Photo Editor Lets you edit the 360-degree photos you took.", safety: "safe" },
- { pkg: "com.sec.android.mimage.photoretouching", label: "Photoretouching", description: "Samsung Photo Editor Disabling this will disable the inbuilt photo editor accessed via the stock gallery. Safe to remove if you don't use Samsung gallery.", safety: "caution" },
- { pkg: "com.sec.android.mmapp", label: "Mmapp", description: "Required for Samsung's proprietary music app to work.", safety: "safe" },
- { pkg: "com.sec.android.nearby.mediaserver", label: "Mediaserver", description: "Samsung nearby share, part of AllShare. Discontinued.", safety: "safe" },
- { pkg: "com.sec.android.ofviewer", label: "Ofviewer", description: "Samsung selective focus camera mode. Safe to remove (but it's pretty useful)", safety: "caution" },
- { pkg: "com.sec.android.omc", label: "Omc", description: "OM Customize I found only things for Vodafone. It's not needed.", safety: "safe" },
- { pkg: "com.sec.android.overlay.dcmconfig", label: "Dcmconfig", description: "Static overlay that sets \"config_systemContacts\" to \"docomo phonebook\" (customized com.android.contacts). NOTE: Safe to remove, reboot needed after uninstalling. \"docomo phonebook\" itself is safe to remove whether this overlay is installed.", safety: "caution" },
- { pkg: "com.sec.android.overlay.dcmconfig.sms", label: "Sms", description: "Static overlay that sets \"config_defaultSms\" to \"+Message\" (com.nttdocomo.android.msg). NOTE: Safe to remove, reboot needed after uninstalling. \"+Message\" itself is safe to remove whether this overlay is installed.", safety: "caution" },
- { pkg: "com.sec.android.pagebuddynotisvc", label: "Pagebuddynotisvc", description: "PageBuddyNotiSvc I only found it's for notifications to car, earphones, pen. Not needed.", safety: "safe" },
- { pkg: "com.sec.android.preloadinstaller", label: "Preloadinstaller", description: "Very shady apk. According to if you're chinese or not, Samsung mount an hidden partition during the first boot and install some apps. https://web.archive.org/web/20200107110205/https://nitter.net/fs0c131y/status/1046689524691218432", safety: "safe" },
- { pkg: "com.sec.android.provider.badge", label: "Badge", description: "Provider for the notification badges (which are not very useful IMHO) Provides a way for apps to use notifications badges. https://www.samsung.com/au/support/mobile-devices/what-is-app-icon-badge/ Emergency Power saving launcher does not start after removing.", safety: "caution" },
- { pkg: "com.sec.android.provider.emergencymode", label: "Emergencymode", description: "Provider for emergency mode (com.sec.android.emergencylauncher) Content providers encapsulate data, providing centralized management of data shared between apps. For example: the Settings provider. It stores all the settings from your Settings app in a database, which apps can query for info on whether you for example have Dark Mode turned on or off. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "caution" },
- { pkg: "com.sec.android.provider.logsprovider", label: "Logsprovider", description: "LogsProvider It's app used for logs.", safety: "safe" },
- { pkg: "com.sec.android.provider.snote", label: "Snote", description: "Content provider for S Note (https://www.samsung.com/global/galaxy/apps/samsung-notes/). Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "safe" },
- { pkg: "com.sec.android.providers.mapcon", label: "Mapcon", description: "Mapcon Provider Only name app founded.", safety: "safe" },
- { pkg: "com.sec.android.providers.security", label: "Security", description: "Provider of password security policies? Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html Seems to provide access to a password database but I don't know under what circumstances this database is used. This provider is only usable by Samsung apps. I see a com.android.security.PASSWORD_EXPIRED intent filter in the AndroidManifest so my guess is it handles password policies. For example: A policy could force a user to change their password after a certain amount of time. That's a common policy in enterprise work.", safety: "safe" },
- { pkg: "com.sec.android.providers.tasks", label: "Tasks", description: "Tasks provider This app have nothing in code, only name and useless permissions", safety: "safe" },
- { pkg: "com.sec.android.romantic2", label: "Romantic2", description: "Sweet theme", safety: "caution" },
- { pkg: "com.sec.android.sdhms", label: "Sdhms", description: "Samsung Device Health Manager Service Battery estimation service for Samsung Care/Device maintenance (com.samsung.android.lool) There is some weird stuff in the java code. I don't understand why there is a need to parse torrent files for instance or why there is a string\"googleapis.com/drive\" https://developers.google.com/drive/api/v3/reference", safety: "caution" },
- { pkg: "com.sec.android.service.bezel", label: "Bezel", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.sec.android.service.cm", label: "Cm", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.sec.android.service.health", label: "Health", description: "Samsung Health Service Needed for Samsung Health (com.sec.android.app.shealth)", safety: "safe" },
- { pkg: "com.sec.android.settingsmaps", label: "Settingsmaps", description: "My places I found Search location also theres other stuff about location but it's not needed I guess", safety: "safe" },
- { pkg: "com.sec.android.sidesync30", label: "Sidesync30", description: "SideSync (discontinued) Lets you share the screen and data between your PC and mobile device. Receive alarms of your phone through PC and use various features of your phone on the computer. https://www.samsung.com/levant/support/side-sync/", safety: "safe" },
- { pkg: "com.sec.android.smartfpsadjuster", label: "Smartfpsadjuster", description: "SmartFPSAdjuster Adjusts FPS automatically in Samsung phones? Safe to delete. https://docs.samsungknox.com/CCMode/G985F_Q.pdf", safety: "safe" },
- { pkg: "com.sec.android.soagent", label: "Soagent", description: "System application that is responsible for checking and installing software updates.", safety: "caution" },
- { pkg: "com.sec.android.splitsound", label: "Splitsound", description: "SplitSoundService Provides ability to play music on the smartphone and an external speaker at the same time https://www.samsung.com/nz/support/mobile-devices/samsung-separate-app-sound/", safety: "caution" },
- { pkg: "com.sec.android.stub.paywithpaypal", label: "Paywithpaypal", description: "Pay with PayPal Hidden app that wanna to install PayPal to your phone.", safety: "safe" },
- { pkg: "com.sec.android.systemupdate", label: "Systemupdate", description: "SystemUpdate System updater for Samsung phones. https://docs.samsungknox.com/CCMode/G985F_Q.pdf", safety: "caution" },
- { pkg: "com.sec.android.theme.natural", label: "Natural", description: "Natural theme", safety: "caution" },
- { pkg: "com.sec.android.uibcvirtualsoftkey", label: "Uibcvirtualsoftkey", description: "UIBC (User input back channel) Allows users to experience the dual monitor function, with the keyboard and mouse having the ability to control your smartphone device. Either discontinued (for the benefit of Smart View : com.samsung.android.smartmirroring) or related to Smart View.", safety: "safe" },
- { pkg: "com.sec.android.usermanual", label: "Usermanual", description: "Opens the device’s built‑in user manual PDF", safety: "safe" },
- { pkg: "com.sec.android.voltesettings", label: "Voltesettings", description: "Needed for VoLTE to function properly, which is a feature a lot of carriers now require.", safety: "caution" },
- { pkg: "com.sec.android.wallpapercropper2", label: "Wallpapercropper2", description: "Samsung Wallpaper. Needed to set a wallpaper on the launcher. Note: it is possible to change the wallpaper and then disable this package. Used wallpapers are stored in /data/data/com.sec.android.wallpapercropper2/", safety: "caution" },
- { pkg: "com.sec.android.wfds.printplugin", label: "Printplugin", description: "Needed for Wi-Fi direct printing on Samsung devices.", safety: "caution" },
- { pkg: "com.sec.android.widget.samsungapps", label: "Samsungapps", description: "Widget for Galaxy Apps, showing app suggestions on your home screen.", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.SPlannerAppWidget", label: "SPlannerAppWidget", description: "Calendar Widget", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.activeapplicationwidget", label: "Activeapplicationwidget", description: "Completely empty package. Useless", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.ap.hero.accuweather", label: "Accuweather", description: "Weather app", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.ap.hero.weathernewsjp", label: "Weathernewsjp", description: "japanese samsung weather app", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.digitalclock", label: "Digitalclock", description: "Clock (digital) widget", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.digitalclockeasy", label: "Digitalclockeasy", description: "Clock (digital easy) widget", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.diotek.smemo", label: "Smemo", description: "Samsung Memo widget (was replaced by Samsung Note : com.samsung.android.app.notes) Partnership with 3-party DIOTEK : https://www.diotek.co.kr/", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.dualclockdigital", label: "Dualclockdigital", description: "Dual Clock Widget", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.easymodecontactswidget", label: "Easymodecontactswidget", description: "Favourite Contacts widget Lets you add favorite contacts to home screen https://www.samsung.com/au/getstarted/advanced/create-favourite-contacts-on-your-home-screen/ Is it only usable when enabling the\"simple use\" senior mode?", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.samsungapps", label: "Samsungapps", description: "Galaxy Essential widget Galaxy Essentials is a collection of specially chosen applications available through Samsung Apps. From the Galaxy Essentials widget you can access and download a collection of premium content, free of charge. https://www.samsung.com/my/support/mobile-devices/what-is-galaxy-essentials-and-how-can-i-add-or-remove-it-from-my-smartphone-home-screen/", safety: "safe" },
- { pkg: "com.sec.android.widgetapp.webmanual", label: "Webmanual", description: "User Manual https://www.samsung.com/us/support/answer/ANS00077583/", safety: "safe" },
- { pkg: "com.sec.android.yellowpage", label: "Yellowpage", description: "Yellow Page Contain phone numbers of companies and services.", safety: "safe" },
- { pkg: "com.sec.app.RilErrorNotifier", label: "RilErrorNotifier", description: "RilNotifier Debug app for the RIL See\"com.sec.android.RilServiceModeApp\"", safety: "safe" },
- { pkg: "com.sec.app.TransmitPowerService", label: "TransmitPowerService", description: "This app manages settings related to the transmit power of wireless communications on Samsung devices, such as Wi-Fi and Bluetooth.", safety: "caution" },
- { pkg: "com.sec.automation", label: "Automation", description: "Tethering Automation enables sharing phone internet to the PC with a usb cable. Safe to remove (but it's a useful feature)", safety: "caution" },
- { pkg: "com.sec.bcservice", label: "Bcservice", description: "Broadcast Service Diagnostic/debug hidden app. TCP dump.", safety: "safe" },
- { pkg: "com.sec.clocationservice", label: "Clocationservice", description: "CLocationService Network location provider only to Chinese. Bad privacy.", safety: "safe" },
- { pkg: "com.sec.downloadablekeystore", label: "Downloadablekeystore", description: "Keystore is a secure place provided by Android to store cryptographic keys and make it more difficult to extract from the device. This package is used by enterprise to update certificates on the device. NOTE : It allows IT admins to install certificates while the device is still locked. This means certificates can be silently installed into a keystore without any interaction from the device-user. It uses the KNOX TIMA (Named Trust-zone-based Integrity Measurement Architecture) that allows storage of keys in the container for certificate signing using the TrustZone hardware platform.[16] https://docs.samsungknox.com/dev/knox-sdk/about-keystores.htm https://docs.samsungknox.com/dev/knox-sdk/faqs/general/what-is-the-knox-tima-ccm.htm https://docs.samsungknox.com/admin/whitepaper/kpe/client-certificate-manager.htm", safety: "safe" },
- { pkg: "com.sec.dsm.phone", label: "Phone", description: "Completely empty package. Useless", safety: "safe" },
- { pkg: "com.sec.dsm.system", label: "System", description: "Part of Samsung's Find my Mobile service, appears this app is so you can ring your phone if you lost it.", safety: "safe" },
- { pkg: "com.sec.enterprise.knox.attestation", label: "Attestation", description: "KNOX Attestation Lets you check the integrity of a Samsung Android device by connecting to a Samsung Attestation server. https://docs.samsungknox.com/admin/whitepaper/kpe/attestation.htm", safety: "safe" },
- { pkg: "com.sec.enterprise.knox.cloudmdm.smdms", label: "Smdms", description: "Knox Enrollment Service mdm = mobile device management = software used by an IT department to monitor employees' mobile devices. Used to enroll/register a large number of phones to the KNOX MDM service https://docs.samsungknox.com/admin/knox-mobile-enrollment/enroll-your-devices.htm FYI : https://blog.quarkslab.com/abusing-samsung-knox-to-remotely-install-a-malicious-application-story-of-a-half-patched-vulnerability.html", safety: "safe" },
- { pkg: "com.sec.enterprise.knox.shareddevice.keyguard", label: "Keyguard", description: "KNOX shared device keyguard. Knox Configure Shared Device feature enables multiple users to access the same device without sharing data across multiple devices. https://docs.samsungknox.com/KC-Getting-Started/Content/about-shared-device.htm", safety: "safe" },
- { pkg: "com.sec.enterprise.mdm.services.simpin", label: "Simpin", description: "Enterprise Sim Pin Service I couldn't find information about this package. No permissions asked. It's quite strange. # Mobile device management (MDM) is a type of security software used by an IT department to monitor employees' mobile devices. KNOX-dependent. https://developer.samsung.com/tech-insights/knox/mobile-device-management", safety: "safe" },
- { pkg: "com.sec.enterprise.mdm.vpn", label: "Vpn", description: "Enterprise VPN service I couldn't find information about this package. No permissions asked too. See above for MDM signification", safety: "safe" },
- { pkg: "com.sec.epdg", label: "Epdg", description: "Safe to remove if you're not using VoWifi. You need to know that: 3GPP is a standards organization for mobile telephony (2G/3G/4G/5G). Non-3GPP RAT refers to wireless connection methods not specified by 3GPP, including Wi-Fi. ePDG (evolved Packet Data Gateway) secures connections over untrusted non-3GPP access, commonly used for VoWiFi (Voice over Wi-Fi). For more information: - https://www.3gpp.org/technologies/keywords-acronyms/100-the-evolved-packet-core - https://www.aptilo.com/solutions/mobile-data-offloading/3gpp-wifi-access/ - https://en.wikipedia.org/wiki/System_Architecture_Evolution#Evolved_Packet_Core_(EPC)", safety: "caution" },
- { pkg: "com.sec.epdgtestapp", label: "Epdgtestapp", description: "Test app for ePDG (see com.sec.epdg)", safety: "safe" },
- { pkg: "com.sec.esdk.elm", label: "Elm", description: "ELM Agent Hidden ELM for Developers Logs", safety: "safe" },
- { pkg: "com.sec.everglades", label: "Everglades", description: "Samsung Hub (discontinued) It was a cloud-based music service launched by Samsung. It allowed users to listen to music from a variety of Samsung devices https://en.wikipedia.org/wiki/Samsung_Music_Hub", safety: "safe" },
- { pkg: "com.sec.everglades.update", label: "Update", description: "SamsungHub Updater (discontinued - See above)", safety: "safe" },
- { pkg: "com.sec.facatfunction", label: "Facatfunction", description: "FacAtFunction UI Display, Sensors Tests", safety: "safe" },
- { pkg: "com.sec.factory", label: "Factory", description: "Device Test app Diagnostic hidden app.", safety: "safe" },
- { pkg: "com.sec.factory.camera", label: "Camera", description: "Camera Test (dial *#34971539# to open CameraFirmware Standard)", safety: "safe" },
- { pkg: "com.sec.factory.cameralyzer", label: "Cameralyzer", description: "Cameralyzer A factory testing app that allows manufacturers to check for defects in the camera, had a security issue in the past https://techforesta.com/cameralyzer/ https://docs.samsungknox.com/CCMode/G985F_Q.pdf", safety: "safe" },
- { pkg: "com.sec.factory.iris.usercamera", label: "Usercamera", description: "Camera Iris User Test (by dialing *#0*#)", safety: "safe" },
- { pkg: "com.sec.hearingadjust", label: "Hearingadjust", description: "Samsung Adapt Sound Configures a sound profile according to your ears. Improve audio experience in the end (even with headphones) https://www.howtogeek.com/316375/how-to-use-adapt-sound-on-the-galaxy-s7-and-s8-for-better-sound-quality/ # Settings > Sound and vibration > Sound Quality and effects > Adapt Sound NOTE : com.sec.android.app.soundalive is needed", safety: "safe" },
- { pkg: "com.sec.hiddenmenu", label: "Hiddenmenu", description: "IOTHiddenMenu Hidden menu used to access other hidden debug apps (those accessible with a secret code)", safety: "safe" },
- { pkg: "com.sec.ims", label: "Ims", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling). Don't know how this is different from com.sec.imsservice. Could they interact? May be unsafe to disable. Needs more testing.", safety: "caution" },
- { pkg: "com.sec.ims.android", label: "Android", description: "IMS Framework Needed for Wifi calling", safety: "caution" },
- { pkg: "com.sec.imslogger", label: "Imslogger", description: "IMS Logger provides logging opt-ins. Security flaw: https://web.archive.org/web/20211209093408/https://twitter.com/fs0c131y/status/1115889065285562368", safety: "safe" },
- { pkg: "com.sec.imsservice", label: "Imsservice", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling). Video calling is also affected. Note: Samsung Dialer will crash if you disable this package and have wifi-calling activated in the Dialer's settings. May be unsafe to disable. Needs more testing.", safety: "caution" },
- { pkg: "com.sec.internal.vsim.VSimServiceApp", label: "VSimServiceApp", description: "Non Sim Device Solution (NSDS) needed for VoLTE and VoWifi (Wifi Calling) if you have a virtual SIM. Enabled in devices without esims for some reason. Not sure if there are non-esim virtual sims? See com.sec.vsimservice. Uses IMS service.", safety: "caution" },
- { pkg: "com.sec.kidsplat.installer", label: "Installer", description: "Kids Mode (replaced by Kids Home : com.samsung.android.kidsinstaller) Samsung Kids Home (https://www.samsung.com/global/galaxy/apps/kids-mode/) Lets you shape a safe environment for your child to happily explore and connect with the world. NOTE : You shouldn't give your phone to a child. That's bad ! https://ifstudies.org/blog/a-smartphone-will-change-your-child-in-ways-you-might-not-expect-or-want", safety: "safe" },
- { pkg: "com.sec.knox.bluetooth", label: "Bluetooth", description: "KNOX bluetooth https://docs.samsungknox.com/knox-platform-for-enterprise/admin-guide/bluetooth.htm NOTE : This does not affect regular bluetooth.", safety: "safe" },
- { pkg: "com.sec.knox.bridge", label: "Bridge", description: "Debug Bridge ?", safety: "safe" },
- { pkg: "com.sec.knox.containeragent2", label: "Containeragent2", description: "Samsung Knox Container (v2 ?) https://docs.samsungknox.com/whitepapers/knox-platform/app-container.htm", safety: "safe" },
- { pkg: "com.sec.knox.foldercontainer", label: "Foldercontainer", description: "Needed by KNOX Secure folder (com.samsung.knox.securefolder)", safety: "safe" },
- { pkg: "com.sec.knox.knoxsetupwizardclient", label: "Knoxsetupwizardclient", description: "KNOX SetupWizardClient The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device. It's the setup for Samsung KNOX services.", safety: "safe" },
- { pkg: "com.sec.knox.packageverifier", label: "Packageverifier", description: "KNOX Verifier Used to scan installed packages", safety: "safe" },
- { pkg: "com.sec.knox.seandroid", label: "Seandroid", description: "Samsung Knox security features. Can't be disabled or uninstalled without root.", safety: "caution" },
- { pkg: "com.sec.knox.shortcutsms", label: "Shortcutsms", description: "Knox shortcut to switch to workspace https://docs.samsungknox.com/knox-platform-for-enterprise/admin-guide/workspace-shortcuts.htm", safety: "safe" },
- { pkg: "com.sec.knox.switcher", label: "Switcher", description: "Knox Secure Folder", safety: "caution" },
- { pkg: "com.sec.knox.switchknox", label: "Switchknox", description: "Handles switches between KNOW/Work container and personal profile. It also manages data sharing between them. https://docs.samsungknox.com/dev/knox-sdk/container-data-sharing-policies.htm", safety: "safe" },
- { pkg: "com.sec.knox.switchknoxI", label: "SwitchknoxI", description: "Handles switches between KNOW/Work container and personal profile. It also manages data sharing between them. https://docs.samsungknox.com/dev/knox-sdk/container-data-sharing-policies.htm", safety: "safe" },
- { pkg: "com.sec.knox.switchknoxII", label: "SwitchknoxII", description: "Handles switches between KNOW/Work container and personal profile. It also manages data sharing between them. https://docs.samsungknox.com/dev/knox-sdk/container-data-sharing-policies.htm", safety: "safe" },
- { pkg: "com.sec.location.nfwlocationprivacy", label: "Nfwlocationprivacy", description: "Service provider location Not needed for location, I found something like that: (This app enables your carrier to access your location for network improvement or other reasons) This app is hidden so idk how useful it is.", safety: "safe" },
- { pkg: "com.sec.location.nsflp2", label: "Nsflp2", description: "Samsung Location SDK It seems to only be used by Samsung (Galaxy) apps", safety: "safe" },
- { pkg: "com.sec.mhs.smarttethering", label: "Smarttethering", description: "Auto Hotspot Needed for hotspots probably.", safety: "caution" },
- { pkg: "com.sec.mldapchecker", label: "Mldapchecker", description: "MLDAP log LDAP (Lightweight Directory Access Protocol; I don't know what the M means. Mobile?) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an IP network. Directory service refers to the collection of software, hardware, and processes that store and organize everyday items and network resources(folders, files, printers, users, groups, devices, telephone numbers...) It looks like a database but it's different. Directory services excel at fast lookups for rarely changing data (email, username etc...) Differences between database and Directory Service : https://www.c-sharpcorner.com/article/directory-services-vs-rdbms/ LDAP uses a relatively simple, string-based query to extract information from Active Directory. LDAP can store and extract objects such as usernames and passwords in Active Directory, and share that object data throughout a network. Example of LDAP usage : https://stackoverflow.com/questions/239385/what-is-ldap-used-for/592339 I don't know why and how Samsung uses LDAP. This package, according to its name only does logging.", safety: "safe" },
- { pkg: "com.sec.modem.settings", label: "Settings", description: "Name : SilentLogging This package runs at startup and logs things (related to the modem ?). Seems Pretty shady to me (I don't like its orwellian name).", safety: "safe" },
- { pkg: "com.sec.nfc.felicalocktest", label: "Felicalocktest", description: "Testing FeliCa carrier remote lock. Common to Softbank, au, and docomo.", safety: "safe" },
- { pkg: "com.sec.omadmspr", label: "Omadmspr", description: "OMADM has activation things and firmware updates", safety: "caution" },
- { pkg: "com.sec.pcw.device", label: "Device", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.sec.phone", label: "Phone", description: "Another test/debug app used to test the proper functioning of phone calls. On Samsung, both `com.sec.phone` & `com.sec.android.app.SecSetupWizard` must be enabled to be able to add new ESIMs to device. Otherwise menu will spin indefinitely.", safety: "caution" },
- { pkg: "com.sec.providers.assisteddialing", label: "Assisteddialing", description: "Assisted Dialing I found mcc countrycode OTA lookup, not needed", safety: "safe" },
- { pkg: "com.sec.providers.settingsearch", label: "Settingsearch", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.sec.readershub", label: "Readershub", description: "Samsung Books (discontinued) All-in-one e-Reading solution that offers instant access to thousands of e-reading contents.", safety: "safe" },
- { pkg: "com.sec.setdefaultlauncher", label: "Setdefaultlauncher", description: "Completely empty package. Useless. You can still change launchers without this package.", safety: "safe" },
- { pkg: "com.sec.smartcard.manager", label: "Manager", description: "Smart Card Manager Smart Card enables communication with Secure Elements (SIM card, embedded Secure Elements, Mobile Security Card...) These packages seem to be Samsung implementation.", safety: "safe" },
- { pkg: "com.sec.spen.flashannotate", label: "Flashannotate", description: "Take notes on your screen. Unneeded, and can't even be accessed unless you're using a Galaxy Note or S Ultra, despite being preinstalled on all Samsungs.", safety: "safe" },
- { pkg: "com.sec.spp.push", label: "Push", description: "Samsung Push Service (https://play.google.com/store/apps/details?id=com.sec.spp.push) Provides updates and notifications for services exclusive to Samsung (more like Samsung ads). https://www.samsunggeeks.com/2015/10/25/what-is-the-samsung-push-service/", safety: "safe" },
- { pkg: "com.sec.sve", label: "Sve", description: "SecVideoEngineService is arguably a Samsung video engine service (handling enconding/decoding?) for displaying video through Samsung apps. 3 permissions: RECORD_AUDIO, CAMERA, INTERACT_ACROSS_USERS_FULL Note: Removing it will break WiFi Calling.", safety: "caution" },
- { pkg: "com.sec.svoice.lang.de_DE", label: "De_DE", description: "This is the German language pack for Samsung's old S Voice assistant, enabling speech recognition and responses. Path: /system/priv-app/SVoiceLang_GermanPack_DE_1.0/SVoiceLang_GermanPack_DE_1.0.apk", safety: "caution" },
- { pkg: "com.sec.svoice.lang.en_GB", label: "En_GB", description: "Language Pack for S-voice, the Samsung assistant (com.samsung.android.svoice)", safety: "safe" },
- { pkg: "com.sec.svoice.lang.en_US", label: "En_US", description: "This is the English language pack for Samsung's old S Voice assistant, enabling speech recognition and responses.", safety: "caution" },
- { pkg: "com.sec.svoice.lang.es_ES", label: "Es_ES", description: "This is the Spanish language pack for Samsung's old S Voice assistant, enabling speech recognition and responses.", safety: "caution" },
- { pkg: "com.sec.svoice.lang.fr_FR", label: "Fr_FR", description: "This is the French language pack for Samsung's old S Voice assistant, enabling speech recognition and responses.", safety: "caution" },
- { pkg: "com.sec.svoice.lang.it_IT", label: "It_IT", description: "This is the Italian language pack for Samsung's old S Voice assistant, enabling speech recognition and responses.", safety: "caution" },
- { pkg: "com.sec.svoice.lang.ru_RU", label: "Ru_RU", description: "This is the Russian language pack for Samsung's old S Voice assistant, enabling speech recognition and responses.", safety: "caution" },
- { pkg: "com.sec.tcpdumpservice", label: "Tcpdumpservice", description: "only found app name tcpdumpservice theres no code", safety: "safe" },
- { pkg: "com.sec.unifiedwfc", label: "Unifiedwfc", description: "Samsung Wi-Fi Calling Wi-Fi calling app for Samsung. Wi-Fi calling may not work without the app", safety: "caution" },
- { pkg: "com.sec.usbsettings", label: "Usbsettings", description: "USBSettings Hidden settings. Lets you choose from ADB, MTP, RNDIS, ACM, DM (dial *#0808# to open) Runs at startup", safety: "caution" },
- { pkg: "com.sec.vsim.ericssonnsds.webapp", label: "Webapp", description: "NSDSWebApp. Virtual SIM is an application-enabled service that requires you to install an app to use a number. With this technology, it is possible for one to have numbers of different countries. Non Sim Device Solution (NSDS) is needed for VoLTE and VoWifi (Wifi Calling) if you have a virtual SIM. NSDS allows connecting non sim devices to IMS core: https://uk.linkedin.com/in/hemant-kumar-dewnarain-2b779679", safety: "safe" },
- { pkg: "com.sec.vsimservice", label: "Vsimservice", description: "VSim Service Lets you use a virtual sim https://www.quora.com/What-is-VSIM-virtual-SIM-technology Has a LOT of permissions (and involving IMS service) Run at startup. FYI : https://security.stackexchange.com/questions/223290/esim-vs-sim-card-what-is-more-secure", safety: "caution" },
- { pkg: "com.sec.yosemite.phone", label: "Phone", description: "Samsung WatchON (discontinued) It was a service allowing you to view programming information on the TV and choose programs directly from the phone. https://en.wikipedia.org/wiki/Samsung_WatchON", safety: "safe" },
- { pkg: "tv.peel.samsung.app", label: "App", description: "Peel Smart Remote (WatchON) It's an application that turns your smart phone or tablet into a TV remote. The app uses the IR Blaster of your device, so devices not equipped with that feature will not be able to use all of Peel Smart Remote's functions. https://www.samsung.com/za/support/mobile-devices/what-is-the-peel-smart-remote-application/", safety: "safe" },
+ { pkg: "com.samsung.android.watch.stopwatch", label: "Stopwatch", description: "Samsung Stopwatch", safety: "safe" },
+ { pkg: "com.samsung.android.watch.screencapture", label: "Screencapture", description: "Provides the ability to take screenshots from the smart watch.", safety: "caution" },
+ { pkg: "com.samsung.android.watch.flashlight", label: "Flashlight", description: "Samsung Flashlight", safety: "caution" },
+ { pkg: "com.samsung.android.watch.compass", label: "Compass", description: "Samsung Compass app.", safety: "safe" },
+ { pkg: "com.samsung.android.watch.alarm", label: "Alarm", description: "Samsung Alarm app.", safety: "safe" },
+ { pkg: "com.samsung.android.storage.watchstoragemanager", label: "Watchstoragemanager", description: "Storage manager. DO NOT REMOVE THIS", safety: "keep" },
+ { pkg: "com.samsung.android.watch.timer", label: "Timer", description: "Timer app from Samsung.", safety: "safe" },
+ { pkg: "com.samsung.android.gallery.watch", label: "Watch", description: "Samsung Watch gallery app", safety: "caution" },
],
},
{
name: "Xiaomi",
packages: [
- { pkg: "android.miui.home.launcher.res", label: "Res", description: "Config to default icons/placeholder widgets in MIUI launcher. It's used only first time run MIUI launcher app like com.mi.globallayout.", safety: "caution" },
- { pkg: "android.miui.overlay", label: "Overlay", description: "Refers to a specific package within the MIUI overlay, The package contains various resources and components that are used to customize the appearance and behavior of the MIUI interface. https://source.android.com/docs/core/runtime/rros", safety: "keep" },
- { pkg: "android.miui.overlay.telephony", label: "Telephony", description: "Likely an important overlay for telephony services and com.android.providers.telephony, specific for devices running HyperOS/MIUI. Not safe to delete.", safety: "keep" },
- { pkg: "android.miui.poco.launcher.res", label: "Res", description: "Config to default icons/placeholder widgets in MIUI launcher. It's used only first time run MIUI launcher app like com.mi.globallayout.", safety: "caution" },
- { pkg: "com.android.systemui.miui.optimization.overlay", label: "Overlay", description: "In the code founded: navigationcolor to red. Unused overlay.", safety: "caution" },
- { pkg: "com.lbe.security.miui.customizedregion.overlay", label: "Overlay", description: "Something about WiFi calling\"vowifi\",\"volte\",\"notification on keyguard\" It's unused.", safety: "safe" },
- { pkg: "com.mi.AutoTest", label: "AutoTest", description: "Assemble test Hidden app used by the manufacturer to test various hardware components", safety: "safe" },
- { pkg: "com.mi.android.globalFileexplorer", label: "GlobalFileexplorer", description: "Xiaomi Files Manager (https://play.google.com/store/apps/details?id=com.mi.android.globalFileexplorer)", safety: "caution" },
- { pkg: "com.mi.android.globallauncher", label: "Globallauncher", description: "Poco Launcher System Launcher for POCO Phone, the way icons apps are organized and displayed. If you remove this package you will loose navigation gestures and recent apps view. https://play.google.com/store/apps/details?id=com.mi.android.globallauncher", safety: "caution" },
- { pkg: "com.mi.android.globalminusscreen", label: "Globalminusscreen", description: "Default App Vault package Sends notifications and can't be uninstalled through the Apps tab. Can be downloaded back from Play Store if needed. The screen on the left on the first page of the launcher; mostly useless, especially when you use a third party launcher. Displays tonns of ads and clutter and constantly works in background.", safety: "safe" },
- { pkg: "com.mi.android.globalpersonalassistant", label: "Globalpersonalassistant", description: "MI Vault aka the\"assistant\" you open swiping left from MI Home", safety: "safe" },
- { pkg: "com.mi.appfinder", label: "Appfinder", description: "HyperOs 2.0.202.0, it didn't break the system or ui search function or poco launcher search app function. Havent heard of it breaking stuff for others so dont think it's of much concern has 15 trackers", safety: "safe" },
- { pkg: "com.mi.emapal", label: "Emapal", description: "GamePal In China language game mode tracing menu not available for users. Safe to remove.", safety: "safe" },
- { pkg: "com.mi.global.bbs", label: "Bbs", description: "Mi Community (https://play.google.com/store/apps/details?id=com.mi.global.bbs) Xiaomi Forum app", safety: "safe" },
- { pkg: "com.mi.global.pocobbs", label: "Pocobbs", description: "Poco Community It's only a forum and community app for POCO phones.", safety: "safe" },
- { pkg: "com.mi.global.pocostore", label: "Pocostore", description: "POCO Store It's an official POCO online store. https://play.google.com/store/apps/details?id=com.mi.global.pocostore", safety: "safe" },
- { pkg: "com.mi.global.shop", label: "Shop", description: "Mi Store (https://play.google.com/store/apps/details?id=com.mi.global.shop) Xiaomi app store", safety: "safe" },
- { pkg: "com.mi.globalTrendNews", label: "GlobalTrendNews", description: "Can't find info about this package Probably used for displaying (useless) news", safety: "safe" },
- { pkg: "com.mi.globalbrowser", label: "Globalbrowser", description: "Mi Browser Privacy nightmare. You really should use something else. https://www.xda-developers.com/xiaomi-mi-web-browser-pro-mint-collecting-browsing-data-incognito-mode/ Note: Since MIUI 12, you can no longer uninstall this app. Disabling it still works fine.", safety: "safe" },
- { pkg: "com.mi.globallayout", label: "Globallayout", description: "Home Layout Sets the default MIUI launcher to global layout instead of Chinese (or HyperOS) when you first launch the app or when cleaning the launcher data. After removing this app there are several replacement widgets and no phone/message at the bottom. Because Chinese MUI uses other apps and package names instead of just changing the default layout in the MIUI launcher code, they just threw the app in.", safety: "caution" },
- { pkg: "com.mi.globalminusscreen", label: "Globalminusscreen", description: "Xiaomi App Vault https://play.google.com/store/apps/details?id=com.mi.android.globalminusscreen&gl=US The screen on the left on the first page of the launcher; mostly useless, especially when you use a third party launcher. Displays tonns of ads and clutter and constantly works in background.", safety: "safe" },
- { pkg: "com.mi.health", label: "Health", description: "Heart Rate Hidden app, not available for users. https://www.reddit.com/r/Xiaomi/comments/v0uhhx/found_hidden_heart_rate_app_in_miui_1304_i_opened/ In HyperOS, this app is deprecated and there are no hidden activities like in miui 14: https://www.apkmirror.com/apk/xiaomi-inc/mi-health/mi-health-1-0-6-release/mi-health-1-0-6-android-apk-download/", safety: "safe" },
- { pkg: "com.mi.healthglobal", label: "Healthglobal", description: "Mi Health. Xiaomi's health and fitness app. Tracks sleep, step count, BMI, and menstruation cycle. Includes heart rate monitoring support using the camera. https://www.xda-developers.com/mi-health-xiaomi-fitness-app/ https://www.xda-developers.com/xiaomi-mi-health-app-gets-heart-rate-monitoring-support-using-camera/", safety: "safe" },
- { pkg: "com.mi.liveassistant", label: "Liveassistant", description: "Mi Live Assistant I don't really know what it is. Maybe an old name for\"com.mi.android.globalpersonalassistant\"", safety: "safe" },
- { pkg: "com.mi.setupwizardoverlay", label: "Setupwizardoverlay", description: "Weird package related to the SetupWizard (the menu which assists you to setup your phone for the first time) A user said he needed to remove this package to be able to properly apply a dark theme to the Settings app.", safety: "caution" },
- { pkg: "com.mi.webkit.core", label: "Core", description: "MI WebView Xiaomi alternative to Google WebView REMINDER : It is a system component for the Android operating system that allows Android apps to display content from the web directly inside an application. It's based on Chrome. WARNING: Make to have another Webview before uninstalling it or some apps may not work properly .An open-source privacy oriented Webview is Bromite (https://www.bromite.org/system_web_view)", safety: "safe" },
- { pkg: "com.miui.accessibility", label: "Accessibility", description: "Mi Ditto Accesibility feature. Dictation (TTS) and speech output, making mobile devices more convenient for people who have difficulties using conventionally designed smartphones.", safety: "safe" },
- { pkg: "com.miui.analytics", label: "Analytics", description: "Xiaomi Analytics This app is shady. According to a guy who tried to reverse engineer the app, Xiaomi Analytics can replace any (signed?) package they want silently on your device within 24 hours. Maybe that no longer the case now but... you don't want analytics anyway. Source : http://blog.thijsbroenink.com/2016/09/xiaomis-analytics-app-reverse-engineered/", safety: "safe" },
- { pkg: "com.miui.android.fashiongallery", label: "Fashiongallery", description: "Mi Wallpaper Carousel (https://play.google.com/store/apps/details?id=com.miui.android.fashiongallery) A lockscreen customization app. Displays a new photo every on your lock screen every time you turn ON your screen.", safety: "safe" },
- { pkg: "com.miui.antispam", label: "Antispam", description: "MIUI Antispam spam phone numbers filter (blacklist). Suspicious analytics inside and has access to internet. Cloud backup possible. At quick glance it is not a private antispam app. Can someone check what data are collected/transfered?", safety: "safe" },
- { pkg: "com.miui.aod", label: "Aod", description: "Always-on display and Lock screen editor Safe to remove if you don't use\"Always-on display\" and\"Lock screen editor\" features in settings. Required for the fingerprint scanner if you want without double-tapping or pressing the power button.", safety: "caution" },
- { pkg: "com.miui.audioeffect", label: "Audioeffect", description: "AudioEffect from Xiaomi (https://developer.android.com/reference/android/media/audiofx/AudioEffect) Used by the equalizer (to be confirmed)", safety: "safe" },
- { pkg: "com.miui.audiomonitor", label: "Audiomonitor", description: "Recording Assistant. Voice Call Recorder (only in MIUI dialer app). Unused on Global, EEA MIUI", safety: "caution" },
- { pkg: "com.miui.backup", label: "Backup", description: "MIUI Backup Local Backup/Restore feature (Settings > Additional Settings > Local backups) It seems this app can communicate with Mi Drop This app has 73 permissions and can obviously do everything it wants.", safety: "safe" },
- { pkg: "com.miui.bugreport", label: "Bugreport", description: "Mi Feedback Used to send bug report to devs", safety: "safe" },
- { pkg: "com.miui.calculator", label: "Calculator", description: "MIUI Calculator (https://play.google.com/store/apps/details?id=com.miui.calculator)", safety: "safe" },
- { pkg: "com.miui.carlink", label: "Carlink", description: "CarWith Not supported for most cars and only Chinese.", safety: "safe" },
- { pkg: "com.miui.catcherpatch", label: "Catcherpatch", description: "Needed for Application Extension Service (com.miui.contentcatcher).", safety: "safe" },
- { pkg: "com.miui.cit", label: "Cit", description: "Hardware tests Secret codes (https://web.archive.org/web/20220520051328/https://twitter.com/fs0c131y/status/933037531066785797). Lets you run hardware tests. https://c.mi.com/thread-1744085-1-0.html", safety: "safe" },
- { pkg: "com.miui.cleaner", label: "Cleaner", description: "Mi Cleaner Shady Xiaomi cleaner app developed by Cheetah mobile which has previously been caught in ad fraud and user data theft with this app in 2018 (previously called com.miui.cleanmaster and banned from the PlayStore). This\"new\" app is still full of trackers https://www.gadgets360.com/apps/news/banned-security-app-clean-master-by-cheetah-mobile-collected-user-private-data-report-2189633 Pithus analysis: https://beta.pithus.org/report/f7f7ee425a8dc928db75105bd8f52e9b02f11dec3b398aac9fef1d42809d8ec1", safety: "safe" },
- { pkg: "com.miui.cleanmaster", label: "Cleanmaster", description: "Mi Cleaner Shady Xiaomi cleaner app developed by Cheetah mobile which has previously been caught in ad fraud and user data theft in 2018. The app has been banned from the PlayStore and then reintroduced under the package name 'com.miui.cleaner'. https://www.gadgets360.com/apps/news/banned-security-app-clean-master-by-cheetah-mobile-collected-user-private-data-report-2189633", safety: "safe" },
- { pkg: "com.miui.cloudbackup", label: "Cloudbackup", description: "Mi Cloud backup Needed for Xiaomi cloud backup.", safety: "safe" },
- { pkg: "com.miui.cloudservice", label: "Cloudservice", description: "Dependency for synchronizing data with Xiaomi Cloud, including photos, contacts, messages, etc. This feature is essential for Xiaomi phone users in China, as Xiaomi Cloud is their primary cloud storage service.", safety: "safe" },
- { pkg: "com.miui.cloudservice.sysbase", label: "Sysbase", description: "Another Mi Cloud dependency", safety: "safe" },
- { pkg: "com.miui.compass", label: "Compass", description: "Mi Compass I think you understand its purpose...", safety: "safe" },
- { pkg: "com.miui.contentcatcher", label: "Contentcatcher", description: "Application Extension Service It's a password manager in settings, requires Mi Account to Autofill and it syncs to your account.", safety: "safe" },
- { pkg: "com.miui.contentextension", label: "Contentextension", description: "Taplus It's disabled on default in settings. It allows you to analyze images and text by pressing and holding items on your screen to get contextual info.", safety: "safe" },
- { pkg: "com.miui.core", label: "Core", description: "MIUI SDK It is obiously needed for MIUI to work correctly. FYI, it manages the MIUI Analytics service (`tracking.miui.com`), autoinstall MIUI apps updates (?). Related to GetApps 'com.xiaomi.market' China Mi App Store), DropboxManager where is temp clean code, a lot of logs. Found things related to Quick Apps 'com.miui.hybrid', DataUpdateManager (related to micloud?). Telocation update, app looks like tracking everything. Can be disabled and uninstalled with MIUI 13.0.6, MIUI 14, see https://github.com/0x192/universal-android-debloater/issues/632 NOTE: uninstalling this package causes the Settings app to crash when searching in Settings, so better disable this app instead. If you want to test, disable this app and open an issue if anything isn't working. Another weird thing is normal user can disable this app using hidden Settings to manage app by in Google Play. No effects after disable, but not sure if its required for Miui updates or gestures.", safety: "caution" },
- { pkg: "com.miui.core.internal.assistant", label: "Assistant", description: "Needed for Chinese Mi AI (com.miui.voiceassist).", safety: "safe" },
- { pkg: "com.miui.core.internal.editor.services", label: "Services", description: "I only found: config_enableHapticTextHandle true What is this mean? it's used to permission MIUIOP 10008 in some apps. MIUIOP = miui optimization? it's useless or important? No effects after removing, it's probably a feature of Touch Assistant, but its used on 'com.miui.core'?", safety: "caution" },
- { pkg: "com.miui.core.internal.services", label: "Services", description: "I only found: array name= config_deviceSpecificSystemServices item: com.miui.me.server.auto_install.InstallService What does this mean? I have to check com.miui.core what it does and it's for autoinstall miui apps updates from GetApps 'com.xiaomi.market'.", safety: "caution" },
- { pkg: "com.miui.cotaservice", label: "Cotaservice", description: "MIUI's COTA (Configuration Over-The-Air) service. Pretty much the same as com.google.configupdater but for miui services. Unlike google's config updater, it constantly connects to the web and sends/receives data from an unknown source. Might cause obscure issues with telephony and Xiaomi services. Safe to delete if you've deleted all Xiaomi services like Xiaomi Cloud, GetApps, xmsf, etc... and !!! have logged out of your Xiaomi Account !!! Pretty much all is same as with com.google.configupdater. Deleting it on HyperOS 2.0 causes no issues.", safety: "caution" },
- { pkg: "com.miui.daemon", label: "Daemon", description: "MIUI daemon Collects a lot of data and sends them to China. See: https://web.archive.org/web/20210923050136/https://twitter.com/fs0c131y/status/938872347087564800", safety: "safe" },
- { pkg: "com.miui.easygo", label: "Easygo", description: "For me, this app means nothing. A lot of useless code that you can't use.", safety: "safe" },
- { pkg: "com.miui.enbbs", label: "Enbbs", description: "Xiaomi Forums old package. Now com.mi.global.bbs.", safety: "safe" },
- { pkg: "com.miui.euicc", label: "Euicc", description: "The LPA app that is constantly running in background, consuming RAM and battery. This app is the core of all the eSIM services on Xiaomi devices, runs and drains resources even if you have no eSIM. Constantly being found in running processes list. No issues appeared after removing it on HyperOS 2.0 and using it for over a month. Telephony and all settings stayed intact, worth deleting this if you don't use an eSIM.", safety: "caution" },
- { pkg: "com.miui.extraphoto", label: "Extraphoto", description: "Bokeh The document mode of the Xiaomi camera (for taking IDs), deleting it doesn't affect the editing of albums.", safety: "safe" },
- { pkg: "com.miui.face", label: "Face", description: "MIUI Biometric Face Unlock feature", safety: "caution" },
- { pkg: "com.miui.face.overlay.miui", label: "Miui", description: "MiuiBiometricResOverlay Face Unlock feature will be unavailable.", safety: "caution", deps: ["com.miui.face"] },
- { pkg: "com.miui.fm", label: "Fm", description: "MIUI FM Radio app", safety: "safe" },
- { pkg: "com.miui.fmservice", label: "Fmservice", description: "FM Radio Service Needed by com.miui.fm to work correctly", safety: "safe" },
- { pkg: "com.miui.freeform", label: "Freeform", description: "Floating window I think the name of the app is pretty straightforward You can make apps appear above other applications https://forum.xda-developers.com/android/miui/floating-windows-miui-12-t4125661 On some phones even if you uninstalled it, floating window still works.", safety: "caution" },
- { pkg: "com.miui.gallery", label: "Gallery", description: "MIUI Gallery app. Note: Removing the Gallery will break the send screenshot feature (swipe 3 fingers to show the screenshot preview). It has several trackers and sometimes connects to micloud, even if the account is not added.", safety: "caution" },
- { pkg: "com.miui.global.packageinstaller", label: "Packageinstaller", description: "MIUI Package Installer. Provides sideload apps virus checker when installing APKs. Removal causes bootloop on Xiaomi.EU custom ROMs. Use the built-in com.android.packageinstaller instead.", safety: "caution" },
- { pkg: "com.miui.greenguard", label: "Greenguard", description: "Security Guard Service The app includes three different antivirus brands built in that the user can choose from to keep their phone protected: Avast, AVL, and Tencent. Upon selecting the app, the user selects one of these providers as the default Anti-Virus engine to scan the device. It the app that scans an app before installing it NOTE : A vulnerability was found in 2019 : https://research.checkpoint.com/2019/vulnerability-in-xiaomi-pre-installed-security-app/", safety: "safe" },
- { pkg: "com.miui.guardprovider", label: "Guardprovider", description: "Guard Provider security app The app includes 3 different antivirus brands built in that the user can choose (Avast, AVL and Tencent). This app notably performs a virus scan of any apps you want to install. A serious vulnerability was found in 2019 Worth reading : https://research.checkpoint.com/2019/vulnerability-in-xiaomi-pre-installed-security-app/ You may want to remove this app from a privacy stance. https://beta.pithus.org/report/797a7e405bc8e767deebbbcab3e06a19b05156de44292c918b582dff3078d7b8 IMPORTANT NOTE: Removing this package will very likely break any app installation/update. Before removing, disable security things in MIUI security app. On HyperOS this module is responsible for showing the 'Install via USB' prompt when installing apps via ADB (enabled through developer options, requires Mi account the first time). On MIUI 12, it broke app installation from APKs, and made app installation from Google Play be 2-5 minutes long. Apps were uninstallable properly though.", safety: "caution" },
- { pkg: "com.miui.home", label: "Home", description: "MIUI System Launcher It's basically the home screen, the way icons and apps are organized and displayed. Note: If you remove this package on devices based on MIUI 12+ with Android 11+, you will lose navigation gestures and recent apps view EVEN with a 3rd party launcher... https://web.archive.org/web/20220926221620/https://libreddit.spike.codes/r/Xiaomi/comments/o6vk5z/miui_12125_and_android_11_gestures/ DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER!", safety: "caution" },
- { pkg: "com.miui.huanji", label: "Huanji", description: "Mi Mover (https://play.google.com/store/apps/details?id=com.miui.huanji) Lets you transfer your contacts, messages, personal files, all the installed apps (but not it's data). Also all the settings (app + system) from an Android phone to a Xiaomi phone. The two phones will establish a direct Wi-Fi connection.", safety: "safe" },
- { pkg: "com.miui.hybrid", label: "Hybrid", description: "Quick Apps It's basically an app which shows you ads and tracks you... Funny thing, Xiaomi's Quick Apps was reportedly being blocked by Google Play Protect. https://www.androidpolice.com/2019/11/19/xiaomi-quick-apps-flagged-blocked-google-play-protect/ # Reverse engineering of the app : https://medium.com/@gags.gk/reverse-engineering-quick-apps-from-xiaomi-a1c9131ae0b7 Spoiler : you really should delete this package.", safety: "safe" },
- { pkg: "com.miui.hybrid.accessory", label: "Accessory", description: "Xiaomi Hybrid Accessory Smartphone accessories support for Quick Apps (com.miui.hybrid)", safety: "safe" },
- { pkg: "com.miui.klo.bugreport", label: "Bugreport", description: "KLO Bugreport This app registers system failures and Android applications errors and sends bugs to Xiaomi servers.", safety: "safe" },
- { pkg: "com.miui.maintenancemode", label: "Maintenancemode", description: "Maintenance Mode The maintenance mode of the cell phone, the cell phone maintenance time into an empty user data system mode, to ensure the safety of cell phone data. Also has child mode. Not useful if you are not in China.", safety: "safe" },
- { pkg: "com.miui.mediaeditor", label: "Mediaeditor", description: "Xiaomi Gallery Editor Extension for MIUI Gallery that's used to edit photos and videos.", safety: "caution" },
- { pkg: "com.miui.mediafeature", label: "Mediafeature", description: "MediaFeature合集 Is this something for media? Unused app, probably for China.", safety: "safe" },
- { pkg: "com.miui.mediaviewer", label: "Mediaviewer", description: "Media viewer Old? Mi Video.", safety: "caution" },
- { pkg: "com.miui.metoknlp", label: "Metoknlp", description: "Network location provider Useless, only for China, have analytics things.", safety: "safe" },
- { pkg: "com.miui.micloudsync", label: "Micloudsync", description: "Dependency for synchronizing data with Xiaomi Cloud, including photos, contacts, messages, etc. This feature is essential for Xiaomi phone users in China, as Xiaomi Cloud is their primary cloud storage service.", safety: "safe" },
- { pkg: "com.miui.miinput", label: "Miinput", description: "Removing this package breaks\"Gesture shortcuts\" under\"Additional settings\".", safety: "caution" },
- { pkg: "com.miui.miservice", label: "Miservice", description: "Services & feedback Used to send feedbacks (and data) to Xiaomi. Integration in Wechat Seems to be able to launch 'Baidu location service' Has too many permissions, runs in the background all the time and can be removed without issue.", safety: "safe" },
- { pkg: "com.miui.mishare.connectivity", label: "Connectivity", description: "Mi Share Unified file sharing service between Xiaomi, Oppo, Realme and Vivo devices using Wifi-direct Settings -> Connection & sharing -> Mi Share FYI : Wifi direct allows 2 devices to establish a direct Wi-Fi connection without requiring a wireless router.", safety: "caution" },
- { pkg: "com.miui.misightservice", label: "Misightservice", description: "Telemetry and diagnostics collector app that sends analytics to Xiaomi servers and has almost no use for user. Something on the level of com.miui.msa or com.miui.daemon. Worth deleting. Constantly connects somewhere and sends/receives up to 100KB of data per day to/from an unknown source. This also means it often runs in background. It's labeled as Blur and has orange-white MI icon, but it just hides under it. No blur/ui/any other issues seen after around a month of use of HyperOS 2.0 with this removed.", safety: "safe" },
- { pkg: "com.miui.misound", label: "Misound", description: "Earphones (it's the name of the app) Provides the sounds section in Settings and is needed for the equalizing and the per app mixer feature Some people removed this package but I personaly don't think it's worth it. This package isn't really an issue (no dangerous permissions and does not run in the background all the time) You can still remove it. You'll be just fine if you really don't need it.", safety: "caution" },
- { pkg: "com.miui.miwallpaper", label: "Miwallpaper", description: "Mi Wallpaper app, causes a lot of UI damage when removed, but not bootloop. Removing this makes it impossible to set a lock or home screen wallpaper, resulting in a black solid wallpaper everywhere. Note: it may also result in longer boot times (~+10s) because the system tries to call Mi Wallpaper during boot. On HyperOS 2.0, The fingerprint outline disappears on lock screen after removing this. The fingerprint recognicion itself works properly. Everything in the status bar is becoming colored black on the lock screen after removing this, and you can only see the battery color. Elsewhere the status bar is colored properly. On HyperOS 2.0, you will have to remove this package and reboot 3-5 times. It constantly restores itself after each reboot until around 3rd-5th attempt. It vanishes fully only around 3-5 attempts. On HyperOS 2.0, the default color for system icons is also being reset to brown after removing this package. Similar behavior to as described here might also be observed on other devices.", safety: "caution" },
- { pkg: "com.miui.miwallpaper.config.overlay", label: "Overlay", description: "Another overlay for com.miui.miwallpaper. Since all other overlays related to it are listed in recommended and marked as useless empty apps, this one is most likely the same.", safety: "caution" },
- { pkg: "com.miui.miwallpaper.earth", label: "Earth", description: "SuperWallpaperEARTH / SuperWallpaperMARS Live/animated Xiaomi wallaper", safety: "safe" },
- { pkg: "com.miui.miwallpaper.mars", label: "Mars", description: "SuperWallpaperEARTH / SuperWallpaperMARS Live/animated Xiaomi wallaper", safety: "safe" },
- { pkg: "com.miui.miwallpaper.overlay", label: "Overlay", description: "App that doesn't do anything, no code. Safe to remove. You will need to remove it twice.", safety: "caution" },
- { pkg: "com.miui.miwallpaper.overlay.customize", label: "Customize", description: "App that doesn't do anything, no code. Safe to remove.", safety: "caution" },
- { pkg: "com.miui.miwallpaper.overlay.lundun", label: "Lundun", description: "app that doesnt do anything, no code. Safe to remove. You will need remove it 2 times.", safety: "caution" },
- { pkg: "com.miui.miwallpaper.overlay.qr", label: "Qr", description: "Useless app to default lock wallpaper path? Probably unused. Safe to remove.", safety: "caution" },
- { pkg: "com.miui.miwallpaper.telcel.overlay", label: "Overlay", description: "Useless app to telcel wallpaper? Probably unused. Safe to remove.", safety: "caution" },
- { pkg: "com.miui.msa.global", label: "Global", description: "Main System Ads Analyzation of user behaviors to show you ads. Yeah Xiaomi phones has ads... https://www.theverge.com/2018/9/19/17877970/xiaomi-ads-settings-menu-android-phones", safety: "safe" },
- { pkg: "com.miui.newhome", label: "Newhome", description: "Content Service A lot bloated. Only useful in China.", safety: "safe" },
- { pkg: "com.miui.newmidrive", label: "Newmidrive", description: "Mi Drive (Chinese version) Lets you upload and sync your files on the (Mi) Cloud. Always run in background", safety: "safe" },
- { pkg: "com.miui.nextpay", label: "Nextpay", description: "Smart cards Web Extension Only for Chinese.", safety: "safe" },
- { pkg: "com.miui.notes", label: "Notes", description: "Mi Notes", safety: "safe" },
- { pkg: "com.miui.notification", label: "Notification", description: "Notifications are working without this app. It is possible to access the app notification settings by long pressing on the notification without the app. However notification settings in the settings menu will be broken without this package. The app is mandatory to enable notifications of apps that have been disabled before. Note: embeds a tracking statistics service (usage tracking : `id`,`pkgName`,`latestSentTime`,`sentCount`,`avgSentDaily`,`avgSentWeekly)", safety: "caution" },
- { pkg: "com.miui.otaprovision", label: "Otaprovision", description: "OtaProvision Useless, only for China, have analytics things.", safety: "safe" },
- { pkg: "com.miui.packageinstaller", label: "Packageinstaller", description: "Package installer Hardcoded in Xiaomi China Rom. Causes BOOTLOOP on Chinese ROM When remove. It's weird when after a month this app is gone from my phone for no reason and Android enabled stock package installer.", safety: "caution" },
- { pkg: "com.miui.permissioncontroller.overlay", label: "Overlay", description: "Presumably a MIUI/HyperOS overlay for com.gooogle.android.permissioncontroller. Not safe to delete.", safety: "keep" },
- { pkg: "com.miui.personalassistant", label: "Personalassistant", description: "Seems to be App Vault on some phones (https://play.google.com/store/apps/details?id=com.mi.android.globalpersonalassistant) https://c.mi.com/thread-1017547-1-0.html", safety: "safe" },
- { pkg: "com.miui.phone.carriers.customized.overlay", label: "Overlay", description: "Something about WiFi calling\"vowifi\",\"volte\",\"notification on keyguard\" It's unused.", safety: "safe" },
- { pkg: "com.miui.phone.carriers.overlay", label: "Overlay", description: "Preferred network type to Vodafone 5G/4G/3G/2G auto. It's unused.", safety: "safe" },
- { pkg: "com.miui.phone.carriers.overlay.h3g", label: "H3g", description: "Preferred network type to h3g 5G/4G/3G/2G auto. It's unused.", safety: "safe" },
- { pkg: "com.miui.phone.carriers.overlay.vodafone", label: "Vodafone", description: "Preferred network type to Vodafone 5G/4G/3G/2G auto. It's unused.", safety: "safe" },
- { pkg: "com.miui.phrase", label: "Phrase", description: "Frequent Phrases This adds a button next to paste on input fields containing a list of phrases you can edit and paste at any time. In any case it has access to internet, is linked to MiCloud and contains a weird CloudTelephonyManager java class in the code.", safety: "safe" },
- { pkg: "com.miui.player", label: "Player", description: "Mi Music (https://play.google.com/store/apps/details?id=com.miui.player)", safety: "safe" },
- { pkg: "com.miui.powerkeeper", label: "Powerkeeper", description: "Battery and Performance (aggressive) MIUI power management (https://dontkillmyapp.com/xiaomi) That's a weird app that also contains a DRM Manager and a service related to Cloud Backup Has obviously a lot of dangerous permissions. I guess removing this package will decrease the battery performance. Is it that noticeable? Can someone try? NOTE: REMOVING THIS PACKAGE CAUSES A BOOTLOOP ON THE REDMI PAD. To not get bootloop, log out from Mi Account.", safety: "caution" },
- { pkg: "com.miui.privacycomputing", label: "Privacycomputing", description: "MIUI Privacy Components Unknown app from Miui China. There's something about keys, key status code.", safety: "safe" },
- { pkg: "com.miui.providers.weather", label: "Weather", description: "Provider for MI Weather app (com.miui.weather) Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "safe" },
+ { pkg: "com.miui.accessibility", label: "Accessibility", description: "Mi Ditto", safety: "safe" },
+ { pkg: "com.miui.audioeffect", label: "Audioeffect", description: "AudioEffect from Xiaomi (https://developer.android.com/reference/android/media/audiofx/AudioEffect)", safety: "safe" },
+ { pkg: "com.miui.cit", label: "Cit", description: "Hardware tests", safety: "safe" },
+ { pkg: "com.miui.cloudservice", label: "Cloudservice", description: "Mi Cloud Services needed for Mi Cloud", safety: "safe" },
+ { pkg: "com.miui.huanji", label: "Huanji", description: "Mi Mover (https://play.google.com/store/apps/details?id=com.miui.huanji)", safety: "safe" },
+ { pkg: "com.miui.enbbs", label: "Enbbs", description: "Xiaomi Forums old package.", safety: "safe" },
+ { pkg: "com.miui.greenguard", label: "Greenguard", description: "Security Guard Service", safety: "safe" },
+ { pkg: "com.miui.hybrid", label: "Hybrid", description: "Quick Apps", safety: "safe" },
+ { pkg: "com.miui.hybrid.accessory", label: "Accessory", description: "Xiaomi Hybrid Accessory", safety: "safe" },
+ { pkg: "com.miui.micloudsync", label: "Micloudsync", description: "Mi Cloud Sync", safety: "safe" },
+ { pkg: "com.miui.miwallpaper", label: "Miwallpaper", description: "Mi Wallpaper", safety: "caution" },
+ { pkg: "com.miui.nextpay", label: "Nextpay", description: "Next Pay", safety: "safe" },
{ pkg: "com.miui.qr", label: "Qr", description: "MUI Qr code scanner", safety: "safe" },
- { pkg: "com.miui.rom", label: "Rom", description: "Core package of MIUI DO NOT REMOVE THIS", safety: "keep" },
- { pkg: "com.miui.safetycenter.config.overlay", label: "Overlay", description: "An overlay for com.miui.safetycenter providing configurations and preferences. Safe to delete if com.miui.safetycenter is removed.", safety: "caution" },
- { pkg: "com.miui.safetycenter.res.overlay", label: "Overlay", description: "An overlay for com.miui.safetycenter providing resources and preferences. Safe to delete if com.miui.safetycenter is removed.", safety: "caution" },
- { pkg: "com.miui.screenrecorder", label: "Screenrecorder", description: "Mi Screen Recorder", safety: "safe" },
- { pkg: "com.miui.screenshot", label: "Screenshot", description: "MIUI Screenshot Screenshots will not work.", safety: "caution" },
- { pkg: "com.miui.securityadd", label: "Securityadd", description: "Related to the MIUI Security app REMOVING THIS WILL MOST LIKELY BOOTLOOP YOUR DEVICE BELOW MIUI 13! This may depend on your MIUI version and device, see https://github.com/0x192/universal-android-debloater/issues/641", safety: "caution" },
- { pkg: "com.miui.securitycenter", label: "Securitycenter", description: "MIUI Security app Provides\"protection and optimization tools\" App lock, Data usage, Security scan, Cleaner, Battery saver, Blocklist and other features. This package is mostly the front-end (UI). https://beta.pithus.org/report/f8c24ccfc526389ff9084505c60fba3d3463565f92e2015190e2974b370e7c4e NOTE: REMOVING THIS WILL MOST LIKELY BOOTLOOP YOUR DEVICE! Uninstalling this on the Redmi Pad or Miui 13 and above is not causing any bootloop, but you will lose some functionality like the battery status/usage page, as well as the app usage/removal page.", safety: "caution" },
- { pkg: "com.miui.securitycenter.securitycenter_phone_overlay.config.overlay", label: "Overlay", description: "'Security tools' name app only found", safety: "caution" },
- { pkg: "com.miui.securitycore", label: "Securitycore", description: "Core features of the\"com.miui.securitycenter\" Provides Enterprise Mode, Dual App, Second Space, Fingerprint Add, Gesture Settings REMOVING THIS MAY BOOTLOOP YOUR DEVICE! Depends on your MIUI version and device, see https://github.com/0x192/universal-android-debloater/issues/641 On MIUI 13 and above it doesn't bootloop and performance appears similar, but this app shows annoying notifications when running new apps.", safety: "caution" },
- { pkg: "com.miui.securityinputmethod", label: "Securityinputmethod", description: "Mi Secure Keyboard A useless keyboard used to secure your password when logging in.", safety: "safe" },
- { pkg: "com.miui.settings.rro.device.config.overlay", label: "Overlay", description: "Presumably a MIUI/HyperOS overlay com.android.settings providing device-specific configurations for system settings. Likely not something you would want to remove. Will likely cause issues.", safety: "keep" },
- { pkg: "com.miui.settings.rro.device.hide.statusbar.overlay", label: "Overlay", description: ".webp files, and one config for me it means nothing. Only Chinese.", safety: "safe" },
- { pkg: "com.miui.settings.rro.device.systemui.overlay", label: "Overlay", description: "A device-specific overlay for com.android.settings on Xiaomi devices customizing the system UI. Likely not something that's safe to remove.", safety: "keep" },
- { pkg: "com.miui.settings.rro.device.type.overlay", label: "Overlay", description: "I found only PNG files and it's Chinese. Only Chinese.", safety: "safe" },
- { pkg: "com.miui.smsextra", label: "Smsextra", description: "Dependency for MIUI Messaging (MIUI SMS app misleadingly called (`com.android.mms`) You can remove it if you don't use the default SMS app (and you shouldn't). Run in the background once the phone is booted, has access to the internet and interact with Cloud Manager.", safety: "safe" },
- { pkg: "com.miui.spock", label: "Spock", description: "Analytics app which constantly runs in the background. Sends identifiable data to Xiaomi servers. See https://www.virustotal.com/gui/file/70400d0055e1924966fb8367cafddc175dee914bbdc227342c9dd86fb3aa829f/details It leaks system version, device model, exact firmware build + some few mysterious IDs", safety: "safe" },
- { pkg: "com.miui.sysopt", label: "Sysopt", description: "SysoptApplication Strange app with no permissions. By looking at the code it seems to be some kind of debug app. The app doesn't seem to do any interesting stuff.", safety: "safe" },
- { pkg: "com.miui.system", label: "System", description: "Called 'MIUI System Launcher' but it's not the launcher itself (com.miui.home is) This package is another core MIUI app you can't remove. It centralizes a lot of default configuration values", safety: "keep" },
- { pkg: "com.miui.system.overlay", label: "Overlay", description: "App without code and safe to remove.", safety: "safe" },
- { pkg: "com.miui.systemAdSolution", label: "SystemAdSolution", description: "Spyware which analyses user behavior for targeted ads. Yeah Xiaomi phones has ads... https://www.theverge.com/2018/9/19/17877970/xiaomi-ads-settings-menu-android-phones", safety: "safe" },
- { pkg: "com.miui.systemui.carriers.overlay", label: "Overlay", description: "You will lose LTE. Important overlay to LTE connection.", safety: "keep" },
- { pkg: "com.miui.systemui.devices.overlay", label: "Overlay", description: "The empty space between the status bar and the edges of the screen Elements at edges ignore screen fillets and cutouts when removed.", safety: "caution" },
- { pkg: "com.miui.systemui.overlay.devices.android", label: "Android", description: "Config doze Component 'com.miui.aod' and ext media ready notification 'Tap to safely remove device'.", safety: "caution" },
- { pkg: "com.miui.thirdappassistant", label: "Thirdappassistant", description: "Third party app problems It's boring app.", safety: "safe" },
- { pkg: "com.miui.touchassistant", label: "Touchassistant", description: "Quick Ball/Touch Assistant Touch assistant with a combination of five unique shortcuts which aimed to give easy and quick access to functions and apps you use frequently.", safety: "safe" },
- { pkg: "com.miui.translation.kingsoft", label: "Kingsoft", description: "Translation stuff by Kingsoft (https://en.wikipedia.org/wiki/Kingsoft)", safety: "safe" },
- { pkg: "com.miui.translation.xmcloud", label: "Xmcloud", description: "Translation stuff. Does not impact global translation for non-Chinese users.", safety: "safe" },
- { pkg: "com.miui.translation.youdao", label: "Youdao", description: "Translation stufff by Youdao (https://en.wikipedia.org/wiki/Youdao)", safety: "safe" },
- { pkg: "com.miui.translationservice", label: "Translationservice", description: "Translation stuff. Does not impact global translation for non-Chinese users.", safety: "safe" },
- { pkg: "com.miui.tsmclient", label: "Tsmclient", description: "Smart cards Only for Chinese.", safety: "safe" },
- { pkg: "com.miui.tv.analytics", label: "Analytics", description: "Analytics Weird analytics app with a lot random stuff found in resources.", safety: "safe" },
- { pkg: "com.miui.uireporter", label: "Uireporter", description: "UIReporter This Chinese app has some secret code: 847, 1130.", safety: "safe" },
+ { pkg: "com.miui.smsextra", label: "Smsextra", description: "Dependency for MIUI Messaging (MIUI SMS app misleadingly called com.android.mms)", safety: "safe" },
+ { pkg: "com.miui.touchassistant", label: "Touchassistant", description: "Quick Ball/Touch Assistant", safety: "safe" },
+ { pkg: "com.miui.translation.xmcloud", label: "Xmcloud", description: "Translation stuff. Does not impact global translation for non-chinesse users.", safety: "safe" },
+ { pkg: "com.miui.translationservice", label: "Translationservice", description: "Translation stuff. Does not impact global translation for non-chinesse users.", safety: "safe" },
{ pkg: "com.miui.userguide", label: "Userguide", description: "Xiaomi User guide", safety: "safe" },
- { pkg: "com.miui.video", label: "Video", description: "Mi Video with a different package name. Has a lot of ads, tracking.", safety: "safe" },
- { pkg: "com.miui.videoplayer", label: "Videoplayer", description: "Mi Video (https://play.google.com/store/apps/details?id=com.miui.videoplayer) Has a lot of ads, tracking.", safety: "safe" },
- { pkg: "com.miui.videoplayer.overlay", label: "Overlay", description: "Mi Video overlay Overlays are usually themes.", safety: "caution" },
- { pkg: "com.miui.vipservice", label: "Vipservice", description: "My services Customer support maybe not be available for users.", safety: "safe" },
- { pkg: "com.miui.virtualsim", label: "Virtualsim", description: "Mi Roaming It enables users to connect to roaming data on-demand via virtual SIM technology. https://alertify.eu/xiaomi-mi-roaming/", safety: "safe" },
- { pkg: "com.miui.voiceassist", label: "Voiceassist", description: "Mi AI Chinese voice assist.", safety: "safe" },
- { pkg: "com.miui.voiceassistoverlay", label: "Voiceassistoverlay", description: "Overlay to Mi AI 'com.miui.voiceassist'. The overlay won't show up when you trigger it, which makes the voice-to-command features largely inaccessible.", safety: "caution" },
- { pkg: "com.miui.voicetrigger", label: "Voicetrigger", description: "Wake with voice Not needed if you removed Chinese Mi AI.", safety: "safe" },
- { pkg: "com.miui.vpnsdkmanager", label: "Vpnsdkmanager", description: "MiuiVpnSdkManager Vpn to game service?", safety: "safe" },
+ { pkg: "com.miui.analytics", label: "Analytics", description: "Xiaomi Analytics", safety: "safe" },
+ { pkg: "com.miui.android.fashiongallery", label: "Fashiongallery", description: "Mi Wallpaper Carousel (https://play.google.com/store/apps/details?id=com.miui.android.fashiongallery)", safety: "safe" },
+ { pkg: "com.miui.antispam", label: "Antispam", description: "MIUI Antispam", safety: "safe" },
+ { pkg: "com.miui.backup", label: "Backup", description: "MIUI Backup", safety: "safe" },
+ { pkg: "com.miui.bugreport", label: "Bugreport", description: "Mi Feedback", safety: "safe" },
+ { pkg: "com.miui.cleanmaster", label: "Cleanmaster", description: "Mi Cleaner", safety: "safe" },
+ { pkg: "com.miui.cleaner", label: "Cleaner", description: "Mi Cleaner", safety: "safe" },
+ { pkg: "com.miui.cloudbackup", label: "Cloudbackup", description: "Mi Cloud backup", safety: "safe" },
+ { pkg: "com.miui.cloudservice.sysbase", label: "Sysbase", description: "Another Mi Cloud dependency", safety: "safe" },
+ { pkg: "com.miui.compass", label: "Compass", description: "Mi Compass", safety: "safe" },
+ { pkg: "com.miui.contentcatcher", label: "Contentcatcher", description: "Application Extension Service", safety: "safe" },
+ { pkg: "com.miui.daemon", label: "Daemon", description: "MIUI daemon", safety: "safe" },
+ { pkg: "com.miui.fm", label: "Fm", description: "MIUI FM Radio app", safety: "safe" },
+ { pkg: "com.miui.fmservice", label: "Fmservice", description: "FM Radio Service", safety: "safe" },
+ { pkg: "com.miui.gallery", label: "Gallery", description: "MIUI Gallery app.", safety: "caution" },
+ { pkg: "com.miui.klo.bugreport", label: "Bugreport", description: "KLO Bugreport", safety: "safe" },
+ { pkg: "com.miui.miservice", label: "Miservice", description: "Services & feedback", safety: "safe" },
+ { pkg: "com.miui.msa.global", label: "Global", description: "Main System Ads", safety: "safe" },
+ { pkg: "com.miui.notes", label: "Notes", description: "Mi Notes", safety: "safe" },
+ { pkg: "com.miui.personalassistant", label: "Personalassistant", description: "Seems to be App Vault on some phones (https://play.google.com/store/apps/details?id=com.mi.android.globalpe...", safety: "safe" },
+ { pkg: "com.miui.phrase", label: "Phrase", description: "Frequent Phrases", safety: "safe" },
+ { pkg: "com.miui.player", label: "Player", description: "Mi Music (https://play.google.com/store/apps/details?id=com.miui.player)", safety: "safe" },
+ { pkg: "com.miui.providers.weather", label: "Weather", description: "Provider for MI Weather app (com.miui.weather)", safety: "safe" },
+ { pkg: "com.miui.screenrecorder", label: "Screenrecorder", description: "Mi Screen Recorder", safety: "safe" },
+ { pkg: "com.miui.spock", label: "Spock", description: "Analytics app which constantly runs in background.", safety: "safe" },
+ { pkg: "com.miui.systemAdSolution", label: "Systemadsolution", description: "Spyware which analyses user behavior for targeted ads. Yeah Xiaomi phones has ads...", safety: "safe" },
+ { pkg: "com.miui.sysopt", label: "Sysopt", description: "SysoptApplication", safety: "safe" },
+ { pkg: "com.miui.translation.kingsoft", label: "Kingsoft", description: "Translation stuff by Kingsoft (https://en.wikipedia.org/wiki/Kingsoft)", safety: "safe" },
+ { pkg: "com.miui.translation.youdao", label: "Youdao", description: "Translation stufff by Youdao (https://en.wikipedia.org/wiki/Youdao)", safety: "safe" },
+ { pkg: "com.miui.video", label: "Video", description: "IMO it's needed by com.miui.videoplayer (confirmation needed)", safety: "safe" },
+ { pkg: "com.miui.videoplayer", label: "Videoplayer", description: "Mi Video (https://play.google.com/store/apps/details?id=com.miui.videoplayer)", safety: "safe" },
+ { pkg: "com.miui.videoplayer.overlay", label: "Overlay", description: "Mi Video overlay", safety: "caution" },
+ { pkg: "com.miui.virtualsim", label: "Virtualsim", description: "Mi Roaming", safety: "safe" },
{ pkg: "com.miui.vsimcore", label: "Vsimcore", description: "Virtual Sim core service", safety: "safe" },
- { pkg: "com.miui.wallpaper.overlay", label: "Overlay", description: "App that doesnt do anything, no code. Safe to remove. You will need remove it 2 times.", safety: "caution" },
- { pkg: "com.miui.wallpaper.overlay.customize", label: "Customize", description: "App that doesnt do anything, no code. Safe to remove.", safety: "caution" },
+ { pkg: "com.miui.miwallpaper.mars", label: "Mars", description: "SuperWallpaperEARTH / SuperWallpaperMARS", safety: "safe" },
+ { pkg: "com.miui.newmidrive", label: "Newmidrive", description: "Mi Drive (Chinese version)", safety: "safe" },
{ pkg: "com.miui.weather2", label: "Weather2", description: "Mi Weather app", safety: "safe" },
- { pkg: "com.miui.wmsvc", label: "Wmsvc", description: "WMService Runs at boot and has access to internet + GPS I quickly looked at the decompiled code and saw some unsanitized SQL inputs, which is BAD! (vulnerable to SQL injection) Tries to get your android unique Google advertising ID from Google Play Services. Feeds and launches the spying/analytics app\"com.miui.hybrid\". Doesn't seem to do anything important, only tracking. WARNING: It does not seem to affect any functionality or cause bootloop.", safety: "safe" },
- { pkg: "com.miui.yellowpage", label: "Yellowpage", description: "Yellow Page from MIUI. REMINDER : Yellow pages contain phone numbers of companies and services. They are provided by Xiaomi partners or businesses themselves.", safety: "safe" },
- { pkg: "com.miui.zman", label: "Zman", description: "Mi Secure sharing Provides an option in the settings of the Xiaomi Gallery to automatically remove location and metadata from images you want to share. This do not remove metadata of the picture in the gallery but only the shared copy. There's also a\"Secure sharing\" watermark that shows up when you share photos on WeChat without metadata. The question is does this really remove all EXIF tags? Can someone test? This is a useful app anyway but do not forget that all your photos/vidoes taken with the Xiaomi camera are still geo-tagged (+ all others exif tags) by default. What you can do is at least revoke the GPS permission to the camera. FOSS alternative to this app : https://f-droid.org/fr/packages/com.jarsilio.android.scrambledeggsif/ https://f-droid.org/fr/packages/de.kaffeemitkoffein.imagepipe/", safety: "caution" },
- { pkg: "com.miuix.editor", label: "Editor", description: "textaction It's probably used for FrequentPhrase(`com.miui.phrase`) but also Frequent Phrases is unknown app so it's safe to remove.", safety: "safe" },
- { pkg: "com.xiaomi.NetworkBoost", label: "NetworkBoost", description: "Network Boost Network acceleration not available in settings wifi? People said it's placebo and it doesn't speed up the network. It has a lot of Chinese code and has permission to MIUI analytics.", safety: "safe" },
- { pkg: "com.xiaomi.ab", label: "Ab", description: "Mi Store System Components Something about login, paying in Mi Store China.", safety: "safe" },
- { pkg: "com.xiaomi.account", label: "Account", description: "Mi Account Has a LOT of permissions + Facebook trackers. Collects many information, including your phone number, your unique International mobile subscriber identity (IMSI) and your clipboard). You should remove this if you don't have or don't want a Mi account. WARNING: Make sure to log out of your Mi Account and unbind your phone from it. If you don't you could be locked out from your phone after removing this package. Remove Mi Account: https://xiaomiui.net/how-to-remove-mi-account-7606/ Pithus analysis: https://beta.pithus.org/report/3f5abc9d7215dd0be5c3ac137b0cd528217640b5778e9f849a9beb0a34eda8dc", safety: "caution" },
- { pkg: "com.xiaomi.aiasst.service", label: "Service", description: "AI Call Assistant. Useless Call settings.", safety: "safe" },
- { pkg: "com.xiaomi.aiasst.vision", label: "Vision", description: "AiasstVision. Not needed if you removed AI Call Assistant.", safety: "safe" },
- { pkg: "com.xiaomi.aicr", label: "Aicr", description: "Mi AI Engine Another app to Mi AI from MIUI China. Might break the ability to set wallpapers See https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/issues/1110 https://hyperosupdates.com/apps/com.xiaomi.aicr/", safety: "caution" },
- { pkg: "com.xiaomi.aireco", label: "Aireco", description: "XiaoaiRecommendation This app does nothing, totally random frameworks unused.", safety: "safe" },
- { pkg: "com.xiaomi.android.tvsetup.partnercustomizer", label: "Partnercustomizer", description: "SetupCustomizer On first boot setup installs bloatware.", safety: "safe" },
- { pkg: "com.xiaomi.aon", label: "Aon", description: "'I always on' found in code and a lot statistics. Also Miui analytics permissions. Region of the tracking device, found things Mi Face, spy on your face and everything you do on your phone? AONEventTracking uses and sends to 'com.miui.analytics'.", safety: "safe" },
- { pkg: "com.xiaomi.barrage", label: "Barrage", description: "Bullet screen notifications Pop-up notifications (feature inside the game service) Have a lot of Chinese things in this code but it's for the game service, NOT gamespace. So it's for China only.", safety: "safe" },
- { pkg: "com.xiaomi.bluetooth", label: "Bluetooth", description: "MIUI Bluetooth Extension. Doesn't seem to affect bluetooth functionality. Tested on Poco M4 Pro 5G HyperOS 1.0.1.0. Note: If you deleted (com.xiaomi.xmsf) this package will likely send\"Bluetooth extension stopped working\" errors, uninstalling it removes them.", safety: "caution" },
- { pkg: "com.xiaomi.bluetooth.overlay", label: "Overlay", description: "It has only unused png files, webp. Images in it: wireless headphones from all angles.", safety: "caution" },
- { pkg: "com.xiaomi.bluetooth.rro.device.config.overlay", label: "Overlay", description: "A device-specific overlay for com.xiaomi.bluetooth. Safe to remove if com.xiaomi.bluetooth is removed.", safety: "caution" },
- { pkg: "com.xiaomi.bsp.gps.nps", label: "Nps", description: "GPS location I think bsp = board system package (https://en.wikipedia.org/wiki/Board_support_package) Not sure about nps (It might be Non-Permanent GPS station) It's a small package which seems to display a notification when an app is using GPS. More precisely, there is a receiver (GnssEventReceiver) which listen to com.xiaomi.bsp.gps.nps.GetEvent This event most likely happen when an app use the GPS and refers to the state of the communication with the GNSS: FIX, LOSE, RECOVER, START, STOP It's safe to remove if you really want to.", safety: "caution" },
- { pkg: "com.xiaomi.bttester", label: "Bttester", description: "BTCIT Bluetooth Test Service", safety: "safe" },
- { pkg: "com.xiaomi.calendar", label: "Calendar", description: "Mi Calendar. Google trackers inside and needs 48 permissions! Obviously talks to Xiaomi servers. The com.mi.health.provider.permission.read_menstruation permissions is really creepy... There are better alternatives. Pithus analysis: https://beta.pithus.org/report/6c68ddd1f9e2d1f9e1df2eab572c07f1e34c4a6490c0ba98554a7356ca2a351d Note: Since MIUI 12, you can no longer uninstall this app. Disabling it still works fine.", safety: "safe" },
- { pkg: "com.xiaomi.cameramind", label: "Cameramind", description: "The core of all AI features for Xiaomi's camera app. Won't impact other camera apps' AI features. Safe to delete if you use another camera app, otherwise, removal may cause background connection issues.", safety: "caution", neededBy: ["com.android.camera"] },
- { pkg: "com.xiaomi.cameratools", label: "Cameratools", description: "CameraTools Camera calibration. Deleting it does not affect the camera.", safety: "safe" },
- { pkg: "com.xiaomi.channel", label: "Channel", description: "Mi Talk Mi instant messaging app that lets you do practically the same thing as Whatsapp. NOTE: You should use Signal or Wire instead Whatsapp/Mi Talk for more privacy.", safety: "safe" },
- { pkg: "com.xiaomi.digitalkey", label: "Digitalkey", description: "digitalkey Smart door locks, can also be used as a car key. Only for China.", safety: "safe" },
- { pkg: "com.xiaomi.discover", label: "Discover", description: "System Apps Updater WARNING: Disable System app updates (but not firmware updates)", safety: "caution" },
- { pkg: "com.xiaomi.entitlement.o2", label: "O2", description: "Unknown, seems to be United Kingdom, Germany specific to the O2 carrier. https://en.wikipedia.org/wiki/O2_(brand) If you don't use O2 carrier, it's safe to remove.", safety: "safe" },
- { pkg: "com.xiaomi.finddevice", label: "Finddevice", description: "Find My Device feature (in the Settings) Allows you to locate a lost phone and wipe it remotely, provided it has an active Wi-Fi/mobile data connection. Before uninstalling, !!! log out of your Mi Account !!! Removing this breaks factory reset from UI, the Security Status page in Settings, and prevents Mi Account sign-in. Confirmed not to bootloop on HyperOS 1.0 and HyperOS 2.0, but other MIUI versions/devices may still bootloop see https://github.com/0x192/universal-android-debloater/issues/641 Sends and receives around 1,5MB-2MB of data per day to/from an unknown source on HyperOS 2.0, even with Data Saver on and on mobile data. The UI blocks you from denying any kind of mobile data access. Consider replacing it with Google's find device. It's much more optimized, has offline location tracking feature and is already preinstalled even on the devices with Xiaomi's Find Device.", safety: "caution" },
- { pkg: "com.xiaomi.gamecenter", label: "Gamecenter", description: "Games Another app with a lot tracking and not needed for gamespace.", safety: "safe" },
- { pkg: "com.xiaomi.gamecenter.sdk.service", label: "Service", description: "Game Service Not needed for gamespace. Disabled in settings on default. Have activities about alipay, login to account. I'm not sure what it's needed for.", safety: "safe" },
- { pkg: "com.xiaomi.glgm", label: "Glgm", description: "Xiaomi Games Not sure if this app still exists.", safety: "safe" },
- { pkg: "com.xiaomi.joyose", label: "Joyose", description: "GPU Tuner Optimizes your game for gaming. Some people have noticed that it locks the fps at 60 after selecting 90. https://youtu.be/gavEuH3Ck5o?t=550. If you want, you can test it by yourself.", safety: "caution" },
+ { pkg: "com.miui.yellowpage", label: "Yellowpage", description: "Yellow Page from MIUI.", safety: "safe" },
+ { pkg: "com.mi.android.globalpersonalassistant", label: "Globalpersonalassistant", description: "MI Vault aka the \"assistant\" you open swiping left from MI Home", safety: "safe" },
+ { pkg: "com.mi.android.globalminusscreen", label: "Globalminusscreen", description: "App Vault (https://play.google.com/store/apps/details?id=com.mi.android.globalminusscreen)", safety: "safe" },
+ { pkg: "com.mi.AutoTest", label: "Autotest", description: "Assemble test", safety: "safe" },
+ { pkg: "com.xiaomi.mi_connect_service", label: "Mi Connect Service", description: "MiConnectService", safety: "safe" },
+ { pkg: "com.mi.global.bbs", label: "Bbs", description: "Mi Community (https://play.google.com/store/apps/details?id=com.mi.global.bbs)", safety: "safe" },
+ { pkg: "com.mi.global.shop", label: "Shop", description: "Mi Store (https://play.google.com/store/apps/details?id=com.mi.global.shop)", safety: "safe" },
+ { pkg: "com.mi.globalTrendNews", label: "Globaltrendnews", description: "Can't find info about this package", safety: "safe" },
+ { pkg: "com.mi.health", label: "Health", description: "Mi Health", safety: "safe" },
+ { pkg: "com.mi.liveassistant", label: "Liveassistant", description: "Mi Live Assistant", safety: "safe" },
+ { pkg: "com.mi.setupwizardoverlay", label: "Setupwizardoverlay", description: "Weird package related to the SetupWizard (the menu which assists you to setup your phone for the first time)", safety: "safe" },
+ { pkg: "com.mi.webkit.core", label: "Core", description: "MI WebView", safety: "safe" },
+ { pkg: "com.xiaomi.ab", label: "Ab", description: "MAB", safety: "safe" },
+ { pkg: "com.xiaomi.account", label: "Account", description: "Mi Account", safety: "caution" },
+ { pkg: "com.xiaomi.channel", label: "Channel", description: "Mi Talk", safety: "safe" },
+ { pkg: "com.xiaomi.gamecenter.sdk.service", label: "Service", description: "Game Service", safety: "safe" },
+ { pkg: "com.xiaomi.joyose", label: "Joyose", description: "Joyse Analytics and advertising", safety: "safe" },
{ pkg: "com.xiaomi.jr", label: "Jr", description: "Help you getting loans when shopping.", safety: "safe" },
- { pkg: "com.xiaomi.lens", label: "Lens", description: "Related to camera app ? Safe to remove (according to a lot of users) I'd like to have more info about it. Can a Xiaomi user help ?", safety: "safe" },
- { pkg: "com.xiaomi.location.fused", label: "Fused", description: "It has china location, ads & analytics. You dont need it for location.", safety: "safe" },
- { pkg: "com.xiaomi.macro", label: "Macro", description: "MiMacro is an automation task from Xiaomi like touch on MIUI Game Turbo. Has INTERNET and READ_PHONE_STATE permission allowing access to the phone number, serial number, whether a call is active, the number that a call is connected to... What is sure (from the code) is that the app collects the IMEI. Pithus analysis: https://beta.pithus.org/report/2b056ed84fe500552a58184035b962ba68af29457c24930c0aa8c9eba4af7bcf", safety: "safe" },
- { pkg: "com.xiaomi.market", label: "Market", description: "GetApps China Mi App Store. Essential for installing the Google Play Store and updating key system applications, such as the System Launcher.", safety: "caution" },
- { pkg: "com.xiaomi.mbnloader", label: "Mbnloader", description: "Modem Config Hidden app for Choosing Country vowifi?", safety: "caution" },
- { pkg: "com.xiaomi.metoknlp", label: "Metoknlp", description: "Network location provider Useless, only for China, have analytics things.", safety: "safe" },
- { pkg: "com.xiaomi.mi_connect_service", label: "Mi_connect_service", description: "MiConnectService Handles connection to IoT stuff Seems to be linked to Mi Home (com.xiaomi.smarthome)", safety: "safe" },
- { pkg: "com.xiaomi.miaudiovisual", label: "Miaudiovisual", description: "MiAudioVisual Safe to remove if you not use audio visuals when screen is off.", safety: "safe" },
- { pkg: "com.xiaomi.mibrain.speech", label: "Speech", description: "Mi AI Speech Engine Another app to Mi AI Chinese app.", safety: "safe" },
- { pkg: "com.xiaomi.micloud.sdk", label: "Sdk", description: "Mi Cloud sdk sdk = Software development kit Seems to be a dependency for\"com.miui.gallery\" (MIUI auto reboots android after remove this package)", safety: "keep" },
- { pkg: "com.xiaomi.midrop", label: "Midrop", description: "Share Me (Mi Drop) (https://play.google.com/store/apps/details?id=com.xiaomi.midrop) P2P file transfer tool.", safety: "safe" },
- { pkg: "com.xiaomi.midrop.overlay", label: "Overlay", description: "Mi Drop overlay Overlays are usually themes.", safety: "caution" },
- { pkg: "com.xiaomi.migameservice", label: "Migameservice", description: "Mi Game Service Chinese app made to test game service things.", safety: "safe" },
- { pkg: "com.xiaomi.mipicks", label: "Mipicks", description: "Mi Picks (becomed Mi Apps Store and now Get Apps -- Xiaomi app store) I believe this package is discontinued. https://play.google.com/store/apps/details?id=com.mi.global.shop", safety: "safe" },
- { pkg: "com.xiaomi.miplay_client", label: "Miplay_client", description: "MiPlay Client Provides support for Miracast (https://en.wikipedia.org/wiki/Miracast). It provides the Wireless Display feature (Settings - Connection & sharing - Cast).", safety: "caution" },
- { pkg: "com.xiaomi.mircs", label: "Mircs", description: "Mi RCS Hidden unused Xiaomi free web messaging.", safety: "safe" },
- { pkg: "com.xiaomi.mirecycle", label: "Mirecycle", description: "Mi Recycle Xiaomi has extended its partnership with Cashify to launch the 'Mi Recycle' feature through its MIUI Security app. It will let Xiaomi phone users check the health of their smartphone and get their resale value directly from Cashify, the online re-commerce company based out of New Delhi. Source : https://gadgets.ndtv.com/mobiles/news/xiaomi-mi-recycle-cashify-miui-security-app-2018024", safety: "safe" },
- { pkg: "com.xiaomi.mirror", label: "Mirror", description: "MIUI+ Beta Transfer files, sync copy text to PC without USB. https://plus.miui.com", safety: "safe" },
- { pkg: "com.xiaomi.mis", label: "Mis", description: "Xiaomi Connected Car Service for China.", safety: "safe" },
+ { pkg: "com.xiaomi.lens", label: "Lens", description: "Related to camera app ?", safety: "safe" },
+ { pkg: "com.xiaomi.midrop", label: "Midrop", description: "Share Me (Mi Drop) (https://play.google.com/store/apps/details?id=com.xiaomi.midrop)", safety: "safe" },
+ { pkg: "com.xiaomi.macro", label: "Macro", description: "MiMacro is an automation task from Xiaomi like touch on MIUI Game Turbo.", safety: "safe" },
+ { pkg: "com.xiaomi.midrop.overlay", label: "Overlay", description: "Mi Drop overlay", safety: "caution" },
+ { pkg: "com.xiaomi.mipicks", label: "Mipicks", description: "Mi Picks (becomed Mi Apps Store and now Get Apps -- Xiaomi app store)", safety: "safe" },
+ { pkg: "com.xiaomi.o2o", label: "O2O", description: "o2o = online-to-offline", safety: "safe" },
+ { pkg: "com.xiaomi.pass", label: "Pass", description: "Mi Pass is an App allows Xiaomi NFC phones to replace cards and keys in real life usage.", safety: "safe" },
+ { pkg: "com.xiaomi.payment", label: "Payment", description: "Old package name for Mi Credit (https://play.google.com/store/apps/details?id=com.micredit.in.gp)", safety: "safe" },
+ { pkg: "com.xiaomi.scanner", label: "Scanner", description: "Mi Scanner", safety: "safe" },
+ { pkg: "com.xiaomi.shop", label: "Shop", description: "Xiaomi app store (I thinks it's discontinued)", safety: "safe" },
+ { pkg: "com.xiaomi.vipaccount", label: "Vipaccount", description: "Xiaomi VIP account", safety: "safe" },
+ { pkg: "com.xiaomi.glgm", label: "Glgm", description: "Xiaomi Games", safety: "safe" },
+ { pkg: "com.xiaomi.micloud.sdk", label: "Sdk", description: "Mi Cloud sdk", safety: "safe" },
+ { pkg: "com.xiaomi.mirecycle", label: "Mirecycle", description: "Mi Recycle", safety: "safe" },
+ { pkg: "com.xiaomi.oversea.ecom", label: "Ecom", description: "Xiaomi ShopPlus.", safety: "safe" },
+ { pkg: "com.xiaomi.providers.appindex", label: "Appindex", description: "Provider for app index?", safety: "safe" },
+ { pkg: "com.xiaomi.upnp", label: "Upnp", description: "UpnpService", safety: "safe" },
+ { pkg: "com.xiaomi.simactivate.service", label: "Service", description: "Xiaomi SIM Activation Service", safety: "safe" },
+ { pkg: "com.xiaomi.smarthome", label: "Smarthome", description: "Mi Home (https://play.google.com/store/apps/details?id=com.xiaomi.smarthome)", safety: "safe" },
+ { pkg: "com.xiaomi.xmsfkeeper", label: "Xmsfkeeper", description: "Xiaomi Service Framework Keeper", safety: "safe" },
+ { pkg: "com.miui.wmsvc", label: "Wmsvc", description: "WMService", safety: "caution" },
+ { pkg: "com.xiaomi.xmsf", label: "Xmsf", description: "Xiaomi Service Framework", safety: "caution" },
+ { pkg: "com.xiaomi.location.fused", label: "Fused", description: "FusedLocationProvider", safety: "keep" },
+ { pkg: "com.miui.audiomonitor", label: "Audiomonitor", description: "My guess is this is a feature allowing to control the sound of multiples apps.", safety: "caution" },
+ { pkg: "com.miui.calculator", label: "Calculator", description: "MIUI Calculator (https://play.google.com/store/apps/details?id=com.miui.calculator)", safety: "safe" },
+ { pkg: "com.miui.face", label: "Face", description: "MIUI Biometric", safety: "caution" },
+ { pkg: "com.miui.freeform", label: "Freeform", description: "Floating window", safety: "caution" },
+ { pkg: "com.miui.home", label: "Home", description: "MIUI System Launcher", safety: "caution" },
+ { pkg: "com.mi.globallayout", label: "Globallayout", description: "Home Layout", safety: "caution" },
+ { pkg: "com.miui.mishare.connectivity", label: "Connectivity", description: "Mi Share", safety: "caution" },
+ { pkg: "com.miui.misound", label: "Misound", description: "Earphones (it's the name of the app)", safety: "caution" },
+ { pkg: "com.miui.notification", label: "Notification", description: "Notifications are working without this app.", safety: "caution" },
+ { pkg: "com.miui.powerkeeper", label: "Powerkeeper", description: "Battery and Performance", safety: "caution" },
+ { pkg: "com.miui.zman", label: "Zman", description: "Mi Secure sharing", safety: "caution" },
+ { pkg: "com.mi.android.globalFileexplorer", label: "Globalfileexplorer", description: "Xiaomi Files Manager (https://play.google.com/store/apps/details?id=com.mi.android.globalFileexplorer)", safety: "caution" },
+ { pkg: "com.xiaomi.bluetooth.overlay", label: "Overlay", description: "MIUI Bluetooth Control.", safety: "caution" },
+ { pkg: "com.xiaomi.bsp.gps.nps", label: "Nps", description: "GPS location", safety: "caution" },
+ { pkg: "com.miui.core", label: "Core", description: "MIUI SDK", safety: "keep" },
+ { pkg: "com.miui.global.packageinstaller", label: "Packageinstaller", description: "The security check / virus scan that runs after package installation.", safety: "caution" },
+ { pkg: "com.miui.guardprovider", label: "Guardprovider", description: "Guard Provider security app", safety: "caution" },
+ { pkg: "com.miui.systemui.carriers.overlay", label: "Overlay", description: "MIUI User interface for MCC/MNC configuration", safety: "caution" },
+ { pkg: "com.miui.systemui.overlay.devices.android", label: "Android", description: "MIUI User interface for 'device' settings?", safety: "caution" },
+ { pkg: "com.xiaomi.discover", label: "Discover", description: "System Apps Updater", safety: "caution" },
+ { pkg: "com.xiaomi.powerchecker", label: "Powerchecker", description: "Power Detector", safety: "caution" },
+ { pkg: "com.xiaomi.miplay_client", label: "Miplay Client", description: "MiPlay Client", safety: "caution" },
+ { pkg: "com.xiaomi.finddevice", label: "Finddevice", description: "Find My Device feature (in the Settings)", safety: "keep" },
+ { pkg: "com.miui.securitycenter", label: "Securitycenter", description: "MIUI Security app", safety: "keep" },
+ { pkg: "com.miui.securitycore", label: "Securitycore", description: "Core features of the \"com.miui.securitycenter\"", safety: "keep" },
+ { pkg: "com.miui.system", label: "System", description: "Called 'MIUI System Launcher' but it's not the launcher itself (com.miui.home is)", safety: "keep" },
+ { pkg: "com.miui.rom", label: "Rom", description: "Core package of MIUI", safety: "keep" },
+ { pkg: "com.miui.securityadd", label: "Securityadd", description: "Related to the MIUI Security app", safety: "keep" },
{ pkg: "com.xiaomi.misettings", label: "Misettings", description: "Xiaomi Settings app", safety: "keep" },
- { pkg: "com.xiaomi.mitv.res", label: "Res", description: "MiUtilRes Looks like mitv api. Probably Unsafe to remove.", safety: "caution" },
- { pkg: "com.xiaomi.mtb", label: "Mtb", description: "Rueban(MTB)V2.4 Hidden debugging baseband tools, not available for users. https://i.postimg.cc/GpSxmNyj/Bez-n-zvu.png", safety: "safe" },
- { pkg: "com.xiaomi.o2o", label: "O2o", description: "o2o = online-to-offline ==> Describes systems enticing consumers within a digital environment to make purchases of goods or services from physical businesses. https://en.wikipedia.org/wiki/Online_to_offline NOTE: This package can make phone calls without user intervention.", safety: "safe" },
- { pkg: "com.xiaomi.oobhelper", label: "Oobhelper", description: "OOBHelper Useless frameworks and logs.", safety: "safe" },
- { pkg: "com.xiaomi.otrpbroker", label: "Otrpbroker", description: "TAMservice OTRP Protocol Negotiation Program (Internet of Things) Only useful in China.", safety: "safe" },
- { pkg: "com.xiaomi.oversea.ecom", label: "Ecom", description: "Xiaomi ShopPlus. Given its name I think this package is useless.", safety: "safe" },
- { pkg: "com.xiaomi.pass", label: "Pass", description: "Mi Pass is an App allows Xiaomi NFC phones to replace cards and keys in real life usage. Support NFC payment, bus card, key card, door and car lock features all together.", safety: "safe" },
- { pkg: "com.xiaomi.payment", label: "Payment", description: "Old package name for Mi Credit (https://play.google.com/store/apps/details?id=com.micredit.in.gp) Mi Credit is a personal loan platform from Xiaomi.", safety: "safe" },
- { pkg: "com.xiaomi.phone", label: "Phone", description: "A MIUI/HyperOS extension for telephony services. Called HyperPhone (at least on HyperOS), I don't know how is it named in MIUI, if you know, please edit this package and add it's MIUI name here. (in GitHub) It's similar to com.xiaomi.bluetooth by it's purpose, but here it's a Xiaomi extension for telephony services. Deleting it caused no data loss or issues with telephony, calls, mobile data, and other on HyperOS 2.0.", safety: "caution" },
- { pkg: "com.xiaomi.phone.overlay", label: "Overlay", description: "An overlay needed for com.xiaomi.phone. Safe to remove if com.xiaomi.phone has been removed.", safety: "caution" },
- { pkg: "com.xiaomi.powerchecker", label: "Powerchecker", description: "Power Detector Security> Battery> Activity Control. Detects abnormal power usage by apps (not all. Some Xiaomi apps are whitelisted) Needed for 'com.miui.powerkeeper' to work.", safety: "caution" },
- { pkg: "com.xiaomi.providers.appindex", label: "Appindex", description: "Provider for app index? I believe it is a provider for the settings but can't confirm (I don't have a Xiaomi device). A lot of people debloat this but I'd like to know more about this one. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "safe" },
- { pkg: "com.xiaomi.scanner", label: "Scanner", description: "Mi Scanner QR code scanner with a lot of questionable permissions : `ACCESS_FINE_LOCATION`, `CALL_PHONE`, `READ_CONTACTS`, `REQUEST_INSTALL_PACKAGES`, `QUERY_ALL_PACKAGES`, `FOREGROUND_SERVICE`, `INTERNET`", safety: "safe" },
- { pkg: "com.xiaomi.security.onetrack", label: "Onetrack", description: "SecurityOnetrackService Only uses MIUI analytics.", safety: "safe" },
- { pkg: "com.xiaomi.shop", label: "Shop", description: "Xiaomi app store (I thinks it's discontinued) Now com.mi.global.shop (https://play.google.com/store/apps/details?id=com.mi.global.shop)", safety: "safe" },
- { pkg: "com.xiaomi.simactivate.service", label: "Service", description: "Xiaomi SIM Activation Service SIM authentication process to access exclusive features in certain MIUI applications. For the activation to work you need to send a international SMS to China. Your carrier may block this by default and/or you'll probably need to pay extra for this. After SIM activation, you can send text messages (Mi Messages) to other Mi users using internet connection (like i-messages). You will be able to synchronize your messages into Mi Cloud and this also enables the Mi Find Device feature which allows you to track your phone’s location from your online Mi account. Note: To enable/disable Mi Messages go to Settings -> System Apps -> Messaging and reboot", safety: "safe" },
- { pkg: "com.xiaomi.smarthome", label: "Smarthome", description: "Mi Home (https://play.google.com/store/apps/details?id=com.xiaomi.smarthome) IoT. Lets you control with Xiaomi Smart Home Suite devices.", safety: "safe" },
- { pkg: "com.xiaomi.touchservice", label: "Touchservice", description: "No activities, uses miui analytics looks like a tracking touch.", safety: "safe" },
- { pkg: "com.xiaomi.trustservice", label: "Trustservice", description: "MiTrustService IFAASecCam, security things or 'Remote Control trust'.", safety: "safe" },
- { pkg: "com.xiaomi.ugd", label: "Ugd", description: "GPU Driver Updater It's weird when this app cameback on HyperOS(from MIUI 12). Updates GPU driver.", safety: "caution" },
- { pkg: "com.xiaomi.upnp", label: "Upnp", description: "UpnpService UPnP = Universal Plug and Play It’s a protocol that lets UPnP-enabled devices on your network automatically discover and communicate with each other For example it works with the Xiaomi Network Speaker (and probably a lot more Xiaomi IoT stuff) UPnP has a lot of security issues and you proably should disable it on your router. https://nakedsecurity.sophos.com/2020/06/10/billions-of-devices-affected-by-upnp-vulnerability/ This package is the Xiaomi implementation on Android (no AOSP support)", safety: "safe" },
- { pkg: "com.xiaomi.vipaccount", label: "Vipaccount", description: "Xiaomi VIP account https://www.mi.com/in/service/privilegefaq/", safety: "safe" },
- { pkg: "com.xiaomi.xaee", label: "Xaee", description: "XiaoaiEdgeEngine This app has something to Mi AI.", safety: "safe" },
- { pkg: "com.xiaomi.xmsf", label: "Xmsf", description: "Xiaomi Service Framework Contains a set of API's for Xiaomi apps. Expect widespread breakage of Xiaomi apps/functionality if disabled. Disabling will mess with Alarm clock functionality(according to issue#136) and break Mi Cloud and Mi account (and all features that depend on them). I don't know about now, but in 2016 this app constantly tried to establish tcp connections in the background.", safety: "caution" },
- { pkg: "com.xiaomi.xmsfkeeper", label: "Xmsfkeeper", description: "Xiaomi Service Framework Keeper Logger service for 'com.xiaomi.xmsf'", safety: "safe" },
- { pkg: "com.xiaomi.youpin", label: "Youpin", description: "Xiaomi Yipin Mi Shop China.", safety: "safe" },
+ { pkg: "com.miui.miwallpaper.earth", label: "Earth", description: "SuperWallpaperEARTH / SuperWallpaperMARS", safety: "safe" },
+ { pkg: "com.mi.globalbrowser", label: "Globalbrowser", description: "Mi Browser", safety: "safe" },
+ { pkg: "com.xiaomi.calendar", label: "Calendar", description: "Mi Calendar. Google trackers inside and needs 48 permissions! Obviously talks to Xiaomi servers. The com.mi...", safety: "safe" },
],
},
{
name: "Huawei",
packages: [
- { pkg: "com.android.huawei.HiMediaEngine", label: "HiMediaEngine", description: "It's for debugging camera. Has all camera features and report.", safety: "safe" },
- { pkg: "com.android.huawei.projectmenu", label: "Projectmenu", description: "ProjectMenu Hidden settings not available for users. it's useless.", safety: "safe" },
- { pkg: "com.hihonor.HnMultiScreenShot", label: "HnMultiScreenShot", description: "Scrolling screenshot feature", safety: "caution" },
- { pkg: "com.hihonor.aipluginengine", label: "Aipluginengine", description: "Assistant Basic Services Seems to be a dependency of Honor Lens. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.airlink", label: "Airlink", description: "Air link service, it's probably needed for Wireless Projection. No activities, only more debugging stuff, location things, logs", safety: "caution" },
- { pkg: "com.hihonor.android.FloatTasks", label: "FloatTasks", description: "Floating/Navigation dock (also called NaviDot). https://consumer.huawei.com/en/support/how-to/detail-troubleshooting/en-us00310067/", safety: "safe" },
- { pkg: "com.hihonor.android.chr", label: "Chr", description: "HnChrService Honor Call History Record.", safety: "safe" },
- { pkg: "com.hihonor.android.fmradio", label: "Fmradio", description: "Honor's stock radio player. Remove if FM isn't relevant for you.", safety: "safe" },
- { pkg: "com.hihonor.android.hnaps", label: "Hnaps", description: "HnAps Manages Intelligent Resolution and changing screen resolution in settings. Intelligent Resolution will be not available and changing screen resolution in settings.", safety: "keep" },
- { pkg: "com.hihonor.android.hnupgradeguide", label: "Hnupgradeguide", description: "hnupgradeguide it's guide menu at first start Honor App Market.", safety: "safe" },
- { pkg: "com.hihonor.android.instantshare", label: "Instantshare", description: "Honor Share features. File transfer tool between Honor mobiles, using Bluetooth connection and WiFi Direct technology.", safety: "safe" },
- { pkg: "com.hihonor.android.internal.app", label: "App", description: "Component of Honor sharing May break the sharing function in several applications (in particular, apps will crash).", safety: "caution" },
- { pkg: "com.hihonor.android.launcher", label: "Launcher", description: "Honor launcher app. It's basically the home screen, the way icons apps are organized and displayed. DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER ! You will need this package for the recent apps feature to work, and will completely break the gestural navigation bar.", safety: "caution" },
- { pkg: "com.hihonor.android.mirrorshare", label: "Mirrorshare", description: "MirrorShare feature (Miracast rebranded by Honor) Used to mirror screen of you smartphone on a TV.", safety: "safe" },
- { pkg: "com.hihonor.android.projectmenu", label: "Projectmenu", description: "ProjectMenu Hidden settings not available for users. ProjectMenu interface: phone *#*#2846579#*#* https://www.99mediasector.com/open-project-menu-huawei-device-huawei-code/", safety: "safe" },
- { pkg: "com.hihonor.android.thememanager", label: "Thememanager", description: "Honor's Theme manager. Disabling it will prevent you from changing themes.", safety: "caution" },
- { pkg: "com.hihonor.android.wfdft", label: "Wfdft", description: "Wi-Fi Direct feature. Note: Wifi direct enables devices to establish a direct Wi-Fi connection (without a router) over which the two can send and receive files.", safety: "caution" },
- { pkg: "com.hihonor.appmarket", label: "Appmarket", description: "HONOR's App store. Safe to remove. NOTE: Installed apps via this store will no longer auto-update after removal.", safety: "safe" },
- { pkg: "com.hihonor.assetsync", label: "Assetsync", description: "HnAssetSync Needed for HiCloud, Cloud syncing.", safety: "safe" },
- { pkg: "com.hihonor.assetsyncservice", label: "Assetsyncservice", description: "It's for 'com.hihonor.securityserver' for start this service app. Needed for HiCloud sync security.", safety: "safe" },
- { pkg: "com.hihonor.assistant", label: "Assistant", description: "AI Suggestions Didn't find any issues when removing it.", safety: "safe" },
- { pkg: "com.hihonor.autoinstallapkfrommcc", label: "Autoinstallapkfrommcc", description: "Auto Install apk from mcc Auto Install apk from mcc? it's only information and logs.", safety: "safe" },
- { pkg: "com.hihonor.awareness", label: "Awareness", description: "Dependency of YOYO Assistant and Honor AI ? Didn't notice anything when removed.", safety: "safe" },
- { pkg: "com.hihonor.behaviorauth", label: "Behaviorauth", description: "BehaviorAuth It seems to be related to verifying the authenticity of user behavior and enhancing password security. User can disable it so it's safe to remove. https://www.android-hilfe.de/forum/huawei-p30-p30-pro-p30-lite.3510/was-ist-die-behaviorauth-app-fuer-das-p30.1008750.html", safety: "safe" },
- { pkg: "com.hihonor.bluetooth", label: "Bluetooth", description: "Contact import via blueooth on Honor devices, probably safe to remove if you don't plan using this function.", safety: "caution" },
- { pkg: "com.hihonor.browserhomepage", label: "Browserhomepage", description: "Honor Browser component.", safety: "safe" },
- { pkg: "com.hihonor.calculator", label: "Calculator", description: "Honor's calculator app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.calendar", label: "Calendar", description: "Honor's calendar app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.camera", label: "Camera", description: "Safe to remove, but not recommended, as other camera apps are not much better than this one.", safety: "caution" },
- { pkg: "com.hihonor.coauthservice", label: "Coauthservice", description: "HnCoAuthService Applock, lockscreen password, face recognition things, fingerprint, not sure if it's worth removing it. Needed for manual apk installation.", safety: "caution" },
- { pkg: "com.hihonor.collectcenter", label: "Collectcenter", description: "HONOR Favourites space. Safe to remove if you're not using it.", safety: "safe" },
- { pkg: "com.hihonor.compass", label: "Compass", description: "Honor's compass app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.contacts", label: "Contacts", description: "Honor's contacts app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.contacts.sync", label: "Sync", description: "Huawei Contacts sync My guess (can't have the apk on hand) is this enables you to synchronise your contacts with your Huawei account.", safety: "safe" },
- { pkg: "com.hihonor.ddmp", label: "Ddmp", description: "DDMP Has a lot frameworks. Uninstalling breaks calling app even if you disable. It does not cause bootloop but removing is highly not recommended. Not only breaks the dialer app, but causes lag in whole system too.", safety: "keep" },
- { pkg: "com.hihonor.deskclock", label: "Deskclock", description: "Honor Clock App.", safety: "caution" },
- { pkg: "com.hihonor.detectrepair", label: "Detectrepair", description: "Honor Smart diagnosis (discontinued?) Useless features and run in background.", safety: "safe" },
- { pkg: "com.hihonor.deviceauth", label: "Deviceauth", description: "TrustedDeviceAuth I guess it's for authentication keys", safety: "caution" },
- { pkg: "com.hihonor.dsdscardmanager", label: "Dsdscardmanager", description: "Dual card management It's sim card management in Honor settings. After removing, sim card management in settings will not work.", safety: "keep" },
- { pkg: "com.hihonor.fido.uafclient", label: "Uafclient", description: "UAF client for FIDO. Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords. https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device to the online service and using a local authentication mechanism such as iris or fingerprint recognition. https://developers.google.com/identity/fido/android/native-apps Safe to remove if you don't use password-less authentication to access online services.", safety: "caution" },
- { pkg: "com.hihonor.filemanager", label: "Filemanager", description: "Honor's file manager. It is not the system one so it's safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.game.kitserver", label: "Kitserver", description: "Probably safe to remove if you don't play games. Has window show, keybind set and more things.", safety: "caution" },
- { pkg: "com.hihonor.gameassistant", label: "Gameassistant", description: "Honor Game Suite (HiGame). Mobile game app store. https://club.hihonor.com/in/topic/16341/detail.htm", safety: "safe" },
- { pkg: "com.hihonor.hiview", label: "Hiview", description: "hiview Removing this doesn't remove access to the picture attributes, so what does it actually do? It's the same as (com.hihonor.hiviewtunnel), which is useless. It has 19 permissions, Crash App Dialog, logs. So do not trust these apps.", safety: "safe" },
- { pkg: "com.hihonor.hiviewtunnel", label: "Hiviewtunnel", description: "This displays details/attributes of pictures in the gallery (ISO, exposure time, etc.).", safety: "caution" },
- { pkg: "com.hihonor.hnasm", label: "Hnasm", description: "FIDO UAF Authenticator-Specific Module. See 'com.hihonor.fido.uafclient' for FIDO explaination. The UAF Authenticator-Specific Module (ASM) is a software interface on top of UAF authenticators which gives a standardized way for FIDO UAF clients to detect and access the functionality of UAF authenticators and hides internal communication complexity from FIDO UAF Client. https://fidoalliance.org/specs/fido-uaf-v1.0-ps-20141208/fido-uaf-asm-api-v1.0-ps-20141208.html", safety: "caution" },
- { pkg: "com.hihonor.hndockbar", label: "Hndockbar", description: "Honor Multi-Window dock Probably fine to remove if you're not using Honor Multi-Window features.", safety: "caution" },
- { pkg: "com.hihonor.hnpanpayservice", label: "Hnpanpayservice", description: "Payment related service. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.hnstartupguide", label: "Hnstartupguide", description: "A one-time setup app that is no longer needed", safety: "safe" },
- { pkg: "com.hihonor.iaware", label: "Iaware", description: "App Prioritizer. Prioritizes apps to avoid slowdown Up to you but there is apparently no noticeable difference when deleted? System will start lagging a little bit (you will notice it while scrolling and on some animations, for example scrolling installed apps), battery consumption will become slightly higher and battery stats will disappear soon. At the same time, logcat will be full of errors like: PowerKit: PG Server is not found. calling pid xxxx.", safety: "caution" },
- { pkg: "com.hihonor.iconnect", label: "Iconnect", description: "iConnect Hidden menu 'install PCAssistant' when connected to PC? I have never seen it. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.id", label: "Id", description: "Honor Mobile Services Honor’s alternative to Google Play Services. Needed to access advanced Honor features. A Honor ID is required to access services, like Themes. This may break an app like InPost Mobile, see: https://github.com/0x192/universal-android-debloater/issues/477 See more about Honor Mobile Services: https://www.xda-developers.com/huawei-hms-core-android-alternative-google-play-services-gms/", safety: "caution" },
- { pkg: "com.hihonor.imedia.sws", label: "Sws", description: "Audio 3D effects found in the settings. Safe to remove if you don't use these settings. Causes an audio glitch after the first reboot following the uninstallation or disabling of this package. When you start or resume playing any audio content in any media application, the sound volume initially sets to maximum for half a second, then normalizes. Affects only external audio devices with any connection type.", safety: "safe" },
- { pkg: "com.hihonor.keychain", label: "Keychain", description: "Face recognition and fingerprint authentication. Probably a bad idea to remove.", safety: "keep" },
- { pkg: "com.hihonor.koBackup", label: "KoBackup", description: "As of writing this, Honor phones cannot be rooted. This Backup application is probably able to backup more than any other 3rd party backup app.", safety: "caution" },
- { pkg: "com.hihonor.lbs", label: "Lbs", description: "Location Based Services Location-based services (LBS) are applications or services that utilize location data from a user's device, such as a smartphone or GPS, to provide relevant information, directions, or recommendations tailored to their specific location. These services rely on a combination of technologies, including Global Positioning System (GPS), Wi-Fi, cellular networks, and sensors, to determine a user's position accurately. NOTE: Can cause bootloops on some devices. The primary goal of LBS is to offer personalized and context-aware experiences based on a user's geographical location. This can include services like: 1. Navigation and Mapping, 2. Location-Based Advertising, 3. Social Networking, 4. Emergency Services, 5. IoT Asset Tracking https://forum.huawei.com/enterprise/en/location-based-services/thread/703168442200375296-667213855346012160", safety: "caution" },
- { pkg: "com.hihonor.lens", label: "Lens", description: "App kinda like Google Lens, used for scanning QR Codes and more. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.linktowindowsservice", label: "Linktowindowsservice", description: "Windows Phone Link Service. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.magazine", label: "Magazine", description: "Magic Pictorial/Magazine unlock. Safe to remove if you're not using it.", safety: "safe" },
- { pkg: "com.hihonor.mmitest", label: "Mmitest", description: "MMITest Hidden hardware tests. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.motionservice", label: "Motionservice", description: "Gesture Service Not very useful gestures available in settings.", safety: "caution" },
- { pkg: "com.hihonor.nearby", label: "Nearby", description: "HnNearby Needed for Honor Share features. (com.hihonor.android.instantshare) Honor Share features may not work after remove. Needed to show a preview of recently opened apps in task manager. I agree, makes no sense, but that's what it is.", safety: "caution", deps: ["com.hihonor.android.instantshare"] },
- { pkg: "com.hihonor.notepad", label: "Notepad", description: "Honor's notepad app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.numberidentity", label: "Numberidentity", description: "Designed to block unwanted calls.", safety: "safe" },
- { pkg: "com.hihonor.omacp", label: "Omacp", description: "Provisioning message Used for provisioning APN settings to devices via SMS. I think you shouldnt touch it if you want sms messages.", safety: "caution" },
- { pkg: "com.hihonor.ouc", label: "Ouc", description: "OTA Updates for Honor devices. Probably unsafe to remove.", safety: "caution" },
- { pkg: "com.hihonor.pcassistant", label: "Pcassistant", description: "HiSuite service. Used by HiSuite PC software. HiSuite enables you to backup your data and restore them from/to your phone. https://consumer.huawei.com/en/support/hisuite/", safety: "safe" },
- { pkg: "com.hihonor.permissioncontroller.overlay", label: "Overlay", description: "Found help app permissions - only link to Google site in code, overlay to permission things like buttons, dialogs, etc. But it's not needed?", safety: "caution" },
- { pkg: "com.hihonor.phoneservice", label: "Phoneservice", description: "My Honor. https://play.google.com/store/apps/details?id=com.hihonor.phoneservice&hl=fr", safety: "safe" },
- { pkg: "com.hihonor.photos", label: "Photos", description: "Honor's photos app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.powergenie", label: "Powergenie", description: "Task killer app in EMUI 9+ (Android 9+). Task killer apps tend to do more harm than help as they clear cached RAM for no good reason, removing the battery and time savings involved in caching. In addition to the obvious issues with background functionality like notifications. From issue#104. System will start lagging a little bit (you will notice it while scrolling and on some animations, for example scrolling installed apps), battery consumption will become slightly higher and battery stats will disappear soon. At the same time, logcat will be full of errors like: PowerKit: PG Server is not found. calling pid xxxx.", safety: "caution" },
- { pkg: "com.hihonor.printservice", label: "Printservice", description: "Print service", safety: "caution" },
- { pkg: "com.hihonor.remotepassword", label: "Remotepassword", description: "RemotePassword remotepassword: errors, invalid, null, errors generally also subscribe info, device info. Better remove that.", safety: "safe" },
- { pkg: "com.hihonor.screenrecorder", label: "Screenrecorder", description: "Stock screen recorder Useful only in pre-Android Pie for having system audio recording without root.", safety: "caution" },
- { pkg: "com.hihonor.search", label: "Search", description: "HONOR Search. https://www.honor.com/sa-en/support/content/en-us15829481/ Safe to remove if you're not using it.", safety: "safe" },
- { pkg: "com.hihonor.searchservice", label: "Searchservice", description: "Fusion Search Service Needed for searching? also found trackers components that connects to Honor servers unnecessarily.", safety: "safe" },
- { pkg: "com.hihonor.securitypluginbase", label: "Securitypluginbase", description: "HnSecurityPluginBase Antivirus Service supports bad antiviruses, HnLog, not needed", safety: "safe" },
- { pkg: "com.hihonor.securityserver", label: "Securityserver", description: "HnSecurityServer Not needed app without code and useless assets to spying apps. Needed for face unlock, black screen will be shown if you remove this package (?). Doesn't apply to all devices", safety: "caution" },
- { pkg: "com.hihonor.smartshot", label: "Smartshot", description: "Smart screenshots Needed for screenshots.", safety: "caution" },
- { pkg: "com.hihonor.soundrecorder", label: "Soundrecorder", description: "Honor's audio recording app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.synergy", label: "Synergy", description: "Honor Cloud & Network Synergy. Seems to be related to B2B (Business To Business) cloud stuff. https://www.huawei.com/en/press-events/news/2016/10/Cloud-Network-Synergy-Whitepaper", safety: "safe" },
- { pkg: "com.hihonor.systemappsupdater", label: "Systemappsupdater", description: "System apps update Unless you want to manually update system apps, do not remove.", safety: "caution" },
- { pkg: "com.hihonor.systemmanager", label: "Systemmanager", description: "System Manager Honor's stock phone cleaner. Consumes a lot of battery power for useless 'security' checks. NOTE: breaks the functionality of closing and cleaning background apps. This is more than a phone cleaner, you will lose a lot of settings like battery and notifications management if you remove this. WARNING: apparently needed for managing app permissions, not safe to remove.", safety: "keep" },
- { pkg: "com.hihonor.systemserver", label: "Systemserver", description: "Honor System Services It depends on (com.hihonor.systemmanager). Needed for navigation with a fingerprint reader that is on a Huawei Mate 10, but fingerprint unlock will still work if you remove it.", safety: "caution" },
- { pkg: "com.hihonor.trustcircle", label: "Trustcircle", description: "Device authentication service The app's usage is unknown, but it can be removed if apps such as com.hihonor.id, com.hihonor.appmarket are also removed. This is what I found while exploring the APK: Huawei Mobile Services?, managing installation and updates of AppGallery. Huawei HWID account may be inaccessible without this app.", safety: "safe" },
- { pkg: "com.hihonor.videoeditor", label: "Videoeditor", description: "Honor's video editing app. Safe to remove.", safety: "safe" },
- { pkg: "com.hihonor.wifieapsimplmn", label: "Wifieapsimplmn", description: "PredefinedEapSim Needed for WiFi to work properly? WiFi may not work (?)", safety: "caution" },
- { pkg: "com.huawei.HwMultiScreenShot", label: "HwMultiScreenShot", description: "Scrolling screenshot feature", safety: "safe" },
- { pkg: "com.huawei.KoBackup", label: "KoBackup", description: "As of writing this, Huawei phones cannot be rooted. This Backup application is probably able to backup more than any other 3rd party backup app.", safety: "caution" },
- { pkg: "com.huawei.airlink", label: "Airlink", description: "Air link service, it's probably needed for Wireless Projection. No activities, only more debugging stuff, location things, logs", safety: "caution" },
- { pkg: "com.huawei.android.FMRadio", label: "FMRadio", description: "FM-Radio Huawei's stock radio player. Remove if FM isn't relevant for you.", safety: "caution" },
- { pkg: "com.huawei.android.FloatTasks", label: "FloatTasks", description: "Floating/Navigation dock (also called NaviDot). https://consumer.huawei.com/en/support/how-to/detail-troubleshooting/en-us00310067/", safety: "safe" },
- { pkg: "com.huawei.android.airsharing", label: "Airsharing", description: "Wireless Projection Miracast, Requires Huawei Mobile Services, also it's so bloated, also found unused frameworks HUAWEI GameCenter", safety: "caution" },
- { pkg: "com.huawei.android.chr", label: "Chr", description: "HwChrService Huawei Call History Record.", safety: "safe" },
- { pkg: "com.huawei.android.dsdscardmanager", label: "Dsdscardmanager", description: "Dual card management It's sim card management in Huawei settings. After removing, sim card management in settings will not work.", safety: "keep" },
- { pkg: "com.huawei.android.findmyphone", label: "Findmyphone", description: "Find Device is an app that lets you locate your device and protect your data remotely. To provide these features, this app needs to connect to the Internet during use.", safety: "caution", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.android.hsf", label: "Hsf", description: "Huawei Services Framework 3 permissions : DELETE_PACKAGES, INSTALL_PACKAGES, PACKAGE_USAGE_STATS Safe to remove according to huawei users", safety: "safe" },
- { pkg: "com.huawei.android.hwaps", label: "Hwaps", description: "HwAps Manages Intelligent Resolution and changing screen resolution in settings. Intelligent Resolution will be not available and changing screen resolution in settings.", safety: "keep" },
- { pkg: "com.huawei.android.hwouc", label: "Hwouc", description: "OTA updates. Safe to remove if you have a very outdated device or flashed recovery.", safety: "caution" },
- { pkg: "com.huawei.android.hwpay", label: "Hwpay", description: "Huawei Pay Mobile payment and e-wallet service for Huawei devices that offers the same services as Apple Pay, Samsung Pay etc... https://consumer.huawei.com/en/mobileservices/huawei-wallet/", safety: "safe" },
- { pkg: "com.huawei.android.hwupgradeguide", label: "Hwupgradeguide", description: "hwupgradeguide it's guide menu at first start AppGallery.", safety: "safe" },
- { pkg: "com.huawei.android.instantonline", label: "Instantonline", description: "no noticeable consequences", safety: "safe" },
- { pkg: "com.huawei.android.instantshare", label: "Instantshare", description: "Huawei Share features. File transfer tool between Huawei mobiles, using Bluetooth connection and WiFi Direct technology.", safety: "safe" },
- { pkg: "com.huawei.android.internal.app", label: "App", description: "Component of Huawei sharing May break the sharing function in several applications (in particular, apps will crash).", safety: "caution" },
+ { pkg: "com.hicloud.android.clone", label: "Clone", description: "Huawei Phone Clone (https://play.google.com/store/apps/details?id=com.hicloud.android.clone)", safety: "safe" },
+ { pkg: "com.huawei.android.chr", label: "Chr", description: "HwChrService", safety: "safe" },
+ { pkg: "com.huawei.android.FloatTasks", label: "Floattasks", description: "Floating/Navigation dock (also called NaviDot).", safety: "safe" },
+ { pkg: "com.huawei.android.hsf", label: "Hsf", description: "Huawei Services Framework", safety: "safe" },
+ { pkg: "com.huawei.android.hwpay", label: "Hwpay", description: "Huawei Pay", safety: "safe" },
+ { pkg: "com.huawei.android.instantonline", label: "Instantonline", description: "no noticable consequences", safety: "safe" },
+ { pkg: "com.huawei.android.instantshare", label: "Instantshare", description: "Huawei Share features.", safety: "safe" },
{ pkg: "com.huawei.android.karaoke", label: "Karaoke", description: "Karaoke mode feature.", safety: "safe" },
- { pkg: "com.huawei.android.launcher", label: "Launcher", description: "Huawei launcher app. It's basically the home screen, the way icons apps are organized and displayed. DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER ! You will maybe need this package for the recent apps feature to work (even if you have another launcher)", safety: "caution" },
- { pkg: "com.huawei.android.mirrorshare", label: "Mirrorshare", description: "MirrorShare feature (Miracast rebranded by Huawei) Used to mirror screen of you smartphone on a TV.", safety: "safe" },
- { pkg: "com.huawei.android.overlay.modules.modulemetadata", label: "Modulemetadata", description: "Module that contains metadata about the list of modules on the device and that's about it. I wouldn't advise you to mess with it as it could break important modules (see W1nst0n/universal-android-debloater#37 on GitLab). Good explanation of what Android modules are: https://www.xda-developers.com/android-project-mainline-modules-explanation/", safety: "keep" },
- { pkg: "com.huawei.android.projectmenu", label: "Projectmenu", description: "ProjectMenu Hidden settings not available for users. ProjectMenu interface: phone *#*#2846579#*#* https://www.99mediasector.com/open-project-menu-huawei-device-huawei-code/", safety: "safe" },
- { pkg: "com.huawei.android.pushagent", label: "Pushagent", description: "push notification agent Seems to only be used for Huawei apps The recompiled java code makes it look like it's once again mainly used for analytics.", safety: "safe" },
- { pkg: "com.huawei.android.remotecontroller", label: "Remotecontroller", description: "Huawei Smart Controller app. Lets you you add, customize, and set up remote controls, allowing control of your electronic appliances through your phone.", safety: "safe" },
- { pkg: "com.huawei.android.rftest", label: "Rftest", description: "HwRFTest MT Test Station.", safety: "safe" },
- { pkg: "com.huawei.android.thememanager", label: "Thememanager", description: "Themes (https://play.google.com/store/apps/details?id=com.huawei.android.thememanager) Lets you download and use Huawei themes. Setting Wallpapers directly will no longer work, but the Wallpaper entry in the Settings app will still let you choose wallpapers. Without this package you may no longer be able to change a notification sound.", safety: "caution" },
- { pkg: "com.huawei.android.tips", label: "Tips", description: "HUAWEI Feature Advisor Periodically gives you notifications on how to use certain features on your phone.", safety: "safe" },
- { pkg: "com.huawei.android.totemweather", label: "Totemweather", description: "Huawei Weather app (and its widget)", safety: "safe" },
- { pkg: "com.huawei.android.totemweatherapp", label: "Totemweatherapp", description: "Huawei Weather app (and its widget)", safety: "safe" },
+ { pkg: "com.huawei.android.mirrorshare", label: "Mirrorshare", description: "MirrorShare feature (Miracast rebranded by Huawei)", safety: "safe" },
+ { pkg: "com.huawei.android.pushagent", label: "Pushagent", description: "push notification agent", safety: "safe" },
+ { pkg: "com.huawei.android.remotecontroller", label: "Remotecontroller", description: "Huawei Smart Controller app.", safety: "safe" },
+ { pkg: "com.huawei.android.tips", label: "Tips", description: "HUAWEI Feature Advisor", safety: "safe" },
{ pkg: "com.huawei.android.totemweatherwidget", label: "Totemweatherwidget", description: "Huawei Weather app (and its widget)", safety: "safe" },
- { pkg: "com.huawei.android.wfdft", label: "Wfdft", description: "Wi-Fi Direct feature. Note: Wifi direct enables devices to establish a direct Wi-Fi connection (without a router) over which the two can send and receive files.", safety: "safe" },
- { pkg: "com.huawei.android.wfdirect", label: "Wfdirect", description: "Wi-Fi Direct feature. Note: Wifi direct enables devices to establish a direct Wi-Fi connection (without a router) over which the two can send and receive files.", safety: "caution" },
- { pkg: "com.huawei.androidx", label: "Androidx", description: "It have something to MediaPlayer but by name app it looks like important. Someone will need to check if it bootloop or not because this app dont have code.", safety: "caution" },
- { pkg: "com.huawei.aod", label: "Aod", description: "Always On Display When enabled in settings it shows clock and notifications when you raise the phone or touch the screen. This is basically a lower-power lock-screen. It could in theory reduce power draw if you check notifications/clock often as OLED screens draw minimal power showing a mostly black screen(black = pixel off), but in practice the number of times you'll unintentionally trigger it will likely eat up any potential power savings and more. And if your device doesn't have an OLED screen this will draw way more power. Most of these power savings could be applied to your standard lock-screen simply by making your background image completely black. RedSkull23 says it's unsafe to remove. Does it bootloop?", safety: "safe" },
- { pkg: "com.huawei.appmarket", label: "Appmarket", description: "Huawei app store (AppGallery) https://www.xda-developers.com/appgallery-huawei-alternative-google-play-store-android/", safety: "caution" },
- { pkg: "com.huawei.ar.measure", label: "Measure", description: "Ar Measure Measure length, depth, area and volume.", safety: "safe" },
+ { pkg: "com.huawei.android.wfdirect", label: "Wfdirect", description: "Wi-Fi Direct feature.", safety: "caution" },
+ { pkg: "com.huawei.appmarket", label: "Appmarket", description: "Huawei app store (AppGallery)", safety: "caution" },
{ pkg: "com.huawei.arengine.service", label: "Service", description: "Augmented reality service.", safety: "safe" },
- { pkg: "com.huawei.assetsync", label: "Assetsync", description: "HwAssetSync Needed for HiCloud, Cloud syncing.", safety: "safe" },
- { pkg: "com.huawei.assetsyncservice", label: "Assetsyncservice", description: "It's for 'com.huawei.securityserver' for start this service app. Needed for HiCloud sync security.", safety: "safe" },
- { pkg: "com.huawei.audioaccessorymanager", label: "Audioaccessorymanager", description: "Audio Accessory Manager A lot stuff: Huawei health, Huawei music, earphones. Probably only useful when you got Huawei FreeBuds.", safety: "safe" },
- { pkg: "com.huawei.autoinstallapkfrommcc", label: "Autoinstallapkfrommcc", description: "Auto Install apk from mcc Auto Install apk from mcc? it's only information and logs.", safety: "safe" },
- { pkg: "com.huawei.bd", label: "Bd", description: "HwUE (Huawei UserExperience) When a company call a something 'UserExperience' you know you don't need this. Analytics service, run at boot. Collect information about packages/apps usages. Has a nice custom permission called com.huawei.permission.BIG_DATA", safety: "safe" },
- { pkg: "com.huawei.behaviorauth", label: "Behaviorauth", description: "BehaviorAuth It seems to be related to verifying the authenticity of user behavior and enhancing password security. User can disable it so it's safe to remove. https://www.android-hilfe.de/forum/huawei-p30-p30-pro-p30-lite.3510/was-ist-die-behaviorauth-app-fuer-das-p30.1008750.html", safety: "safe" },
- { pkg: "com.huawei.betaclub", label: "Betaclub", description: "BetaClub It's app for testing, collection logs and feedback.", safety: "safe" },
- { pkg: "com.huawei.bluetooth", label: "Bluetooth", description: "Lets you import your contacts via Bluetooth Bluetooth will still work if you remove this package.", safety: "safe" },
+ { pkg: "com.huawei.bd", label: "Bd", description: "HwUE (Huawei UserExperience)", safety: "safe" },
+ { pkg: "com.huawei.bluetooth", label: "Bluetooth", description: "Lets you import your contacts via Bluetooth", safety: "safe" },
{ pkg: "com.huawei.browser", label: "Browser", description: "Huawei Browser app. Don't expect privacy using it", safety: "safe" },
{ pkg: "com.huawei.browserhomepage", label: "Browserhomepage", description: "Huawei Browser component.", safety: "safe" },
- { pkg: "com.huawei.ca", label: "Ca", description: "CA Uses permissions: GET_TASKS, LOCATION_HARDWARE, etc. This app looks like a backdoor or logs.", safety: "safe" },
- { pkg: "com.huawei.calculator", label: "Calculator", description: "Calculator app", safety: "caution" },
- { pkg: "com.huawei.calendar", label: "Calendar", description: "Huawei Calendar app.", safety: "caution" },
- { pkg: "com.huawei.camera", label: "Camera", description: "Safe to remove, but not recommended, as other camera apps are not much better than this one.", safety: "caution" },
- { pkg: "com.huawei.camerakit.impl", label: "Impl", description: "HwCameraKit In the code it was found that it's for testing camera functions.", safety: "safe" },
- { pkg: "com.huawei.cloud", label: "Cloud", description: "Chinese only. Huawei Cloud Computer provides you with basic services of online desktop.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.coauthservice", label: "Coauthservice", description: "HwCoAuthService Applock, lockscreen password, face recognition things, fingerprint, not sure if it's worth removing it. Needed for manual apk installation.", safety: "caution" },
{ pkg: "com.huawei.compass", label: "Compass", description: "Huawei Compass app.", safety: "safe" },
- { pkg: "com.huawei.contacts", label: "Contacts", description: "Huawei Contacts app", safety: "caution" },
- { pkg: "com.huawei.contacts.sync", label: "Sync", description: "Huawei Contacts sync My guess (can't have the apk on hand) is this enables you to synchronise your contacts with your Huawei account.", safety: "safe" },
{ pkg: "com.huawei.contactscamcard", label: "Contactscamcard", description: "CamCard is a business card reader app.", safety: "safe" },
- { pkg: "com.huawei.contentsensor", label: "Contentsensor", description: "ContentSensor Looks like this app has a lot chinese code and collects a lot stuff about user like apps installed, app info, connects to huawei hivoice sites", safety: "safe" },
- { pkg: "com.huawei.controlcenter", label: "Controlcenter", description: "Smart Collaboration Collaboration between devices. Needed for Multi-Screen, Wireless Projection? Needed for Super Device or Device+, safe to remove if you don't use this, it will also declutter action center.", safety: "caution" },
- { pkg: "com.huawei.cryptosms.service", label: "Service", description: "SMS Encryption Service, looks made for China.", safety: "safe" },
- { pkg: "com.huawei.def", label: "Def", description: "DEF Unused? message things:allows the app public keys on connected devices, getting status, access information", safety: "caution" },
- { pkg: "com.huawei.deskclock", label: "Deskclock", description: "Huawei Clock App.", safety: "caution" },
- { pkg: "com.huawei.desktop.explorer", label: "Explorer", description: "From XDA thread :\"Service that is been used when you wanna use your phone as an operative system on a PC.\" I don't understand what does it mean.", safety: "safe" },
- { pkg: "com.huawei.desktop.systemui", label: "Systemui", description: "Huawei desktop mode switching It has also Take Screenshot Service. Require HMS, has a lot tracking.", safety: "caution" },
- { pkg: "com.huawei.deviceauth", label: "Deviceauth", description: "TrustedDeviceAuth I guess it's for authentication keys", safety: "caution" },
- { pkg: "com.huawei.devicegroupmanage", label: "Devicegroupmanage", description: "(Unused?)HwGroupManager It's an app without activities, only device info things", safety: "caution" },
- { pkg: "com.huawei.devicemanager", label: "Devicemanager", description: "Needed for Huawei account. I found only things: installing service?, Linked devices, Multi-Device management, connection code, metrics", safety: "safe" },
- { pkg: "com.huawei.distributed.kms", label: "Kms", description: "HwDistributedKeyManager Has random frameworks, probably needed for huawei account, authentication", safety: "safe" },
- { pkg: "com.huawei.distributedpasteboard", label: "Distributedpasteboard", description: "SuperHub Has something to History Clipboard and Drag Drop.", safety: "caution" },
- { pkg: "com.huawei.dmsdp", label: "Dmsdp", description: "Multi-Device management This service allows you to virtually expand your devices capabilities by connecting to other devices and using them as an extension of this device.", safety: "caution" },
- { pkg: "com.huawei.dsdscardmanager", label: "Dsdscardmanager", description: "Dual card management It's sim card management in Huawei settings. After removing, sim card management in settings will not work.", safety: "keep" },
- { pkg: "com.huawei.dtmfanalyzer", label: "Dtmfanalyzer", description: "Dtmf Analyzer Has something to media player to ride mode for China.", safety: "safe" },
- { pkg: "com.huawei.easygo", label: "Easygo", description: "HwEasyGo Looks like a backdoor for WeChat app? EasyGoServer, error code things found, also EasyGoCallBack. These app is probably backdoor or for developers. This app has no permissions and no activities.", safety: "safe" },
+ { pkg: "com.huawei.contacts.sync", label: "Sync", description: "Huawei Contacts sync", safety: "safe" },
+ { pkg: "com.huawei.desktop.explorer", label: "Explorer", description: "From XDA thread : \"Service that is been used when you wanna use your phone as an operative system on a PC.\"", safety: "safe" },
{ pkg: "com.huawei.email", label: "Email", description: "Huawei Email app.", safety: "safe" },
- { pkg: "com.huawei.entitlement", label: "Entitlement", description: "Needed for messages Bluetooth, wifi, hotspot, Terms of Agreement, Authentication? On some phone's it has some features, and on some not.", safety: "caution" },
- { pkg: "com.huawei.fans", label: "Fans", description: "Huawei Club is the official forum for Huawei users. It provides the latest news and information, FAQs, and tutorials about Huawei and Honor products.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.fastapp", label: "Fastapp", description: "Quick App Center Component of AppGallery (Huawei's app store) providing Quick Apps support. Quick Apps are Javascript+CSS apps that don't need any installation. This technology has its uses but I'm personally not a huge fan on having to rely on a JS engine to run an application This system app has a lot of permissions (including SEND_SMS, CAMERA, READ_EXTERNAL_STORAGE, RECORD_AUDIO... why?) More information: https://www.xda-developers.com/huawei-quick-apps-alternative-google-instant-apps/ OW2 Quick App whitepaper: https://quick-app-initiative.ow2.io/docs/Quick_App_White_Paper.pdf", safety: "caution", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.featurelayer.featureframework", label: "Featureframework", description: "FeatureFramework Allows the app to check for feature updates.", safety: "caution" },
- { pkg: "com.huawei.featurelayer.sharedfeature.map", label: "Map", description: "Huawei Map Service Require FeatureFramework. Only uses Chinese AMap to get location. Used to show maps inside Calendar and Gallery, they will complain if you uninstall it, disable instead.", safety: "safe" },
- { pkg: "com.huawei.fido.uafclient", label: "Uafclient", description: "UAF client for FIDO. Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords. https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device to the online service and using a local authentication mechanism such as iris or fingerprint recognition. https://developers.google.com/identity/fido/android/native-apps Safe to remove if you don't use password-less authentication to access online services.", safety: "caution" },
- { pkg: "com.huawei.filemanager", label: "Filemanager", description: "Huawei file manager Probably fine to remove as long as you have another file manager.", safety: "caution" },
- { pkg: "com.huawei.firstbootinfo", label: "Firstbootinfo", description: "Get city info service Get city info service? Needed by your phone in order to sync with Huawei servers and check for apps updates, software updates and other access for your phone.", safety: "caution" },
- { pkg: "com.huawei.game.kitserver", label: "Kitserver", description: "Probably safe to remove if you don't play games. Has window show, keybind set and more things.", safety: "caution" },
- { pkg: "com.huawei.gameassistant", label: "Gameassistant", description: "Huawei Game Suite (HiGame). Mobile game app store. https://club.hihonor.com/in/topic/16341/detail.htm", safety: "safe" },
- { pkg: "com.huawei.gamebox", label: "Gamebox", description: "GameCenter Requires HMS Core to run. It's app for installing games.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.geofence", label: "Geofence", description: "GeofenceService. Allows you to do something when a user enters an area that has been defined as a trigger. A geofence is a virtual perimeter set on a real geographic area. Combining a user position with a geofence perimeter, it is possible to know if the user is inside or outside the geofence or even if he is exiting or entering the area.", safety: "safe" },
- { pkg: "com.huawei.harmonyos.foundation", label: "Foundation", description: "foundation Has hwid, vehicle things, Aosp In Call Service permissions. Disable app instead of uninstalling, because breaks calling. Settings app and APK installation will become slow if you uninstall this.", safety: "caution" },
- { pkg: "com.huawei.health", label: "Health", description: "Huawei Health (discontinued?) Connect Huawei wearables to your phone and all sorts of stats like all fitness tracking apps. Require HMS.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.hff", label: "Hff", description: "HFF HFF? It has not any code.", safety: "safe" },
- { pkg: "com.huawei.hiaction", label: "Hiaction", description: "no noticeable consequences", safety: "safe" },
- { pkg: "com.huawei.hiai", label: "Hiai", description: "no noticeable consequences", safety: "safe" },
- { pkg: "com.huawei.hiassistantoversea", label: "Hiassistantoversea", description: "HiVoice. Huawei's voice assistant to replace\"Hey Google\"", safety: "safe" },
- { pkg: "com.huawei.hicar", label: "Hicar", description: "Huawei HiCar To connect to Huawei HiCar, press and hold the wireless button on the steering wheel or control panel. More useful in China.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.hicard", label: "Hicard", description: "Huawei Cards, no noticeable consequences", safety: "safe" },
+ { pkg: "com.huawei.fido.uafclient", label: "Uafclient", description: "UAF client for FIDO.", safety: "safe" },
+ { pkg: "com.huawei.game.kitserver", label: "Kitserver", description: "Probably safe to remove if you don't play games", safety: "safe" },
+ { pkg: "com.huawei.gameassistant", label: "Gameassistant", description: "Huawei Game Suite (HiGame).", safety: "safe" },
+ { pkg: "com.huawei.geofence", label: "Geofence", description: "GeofenceService.", safety: "safe" },
+ { pkg: "com.huawei.hwsearch", label: "Hwsearch", description: "Petal Search widget. Used for finding apps/apks on serveral online sources (introduced after Google Mobile ...", safety: "safe" },
+ { pkg: "com.huawei.hwid", label: "Hwid", description: "Huawei Mobile Services (https://play.google.com/store/apps/details?id=com.huawei.hwid)", safety: "safe", neededBy: ["com.huawei.fastapp"] },
+ { pkg: "com.huawei.hiaction", label: "Hiaction", description: "no noticable consequences", safety: "safe" },
+ { pkg: "com.huawei.hiai", label: "Hiai", description: "no noticable consequences", safety: "safe" },
+ { pkg: "com.huawei.hiassistantoversea", label: "Hiassistantoversea", description: "HiVoice. Huawei's voice assistant to replace \"Hey Google\"", safety: "safe" },
+ { pkg: "com.huawei.hicard", label: "Hicard", description: "Huawei Cards, no noticable consequences", safety: "safe" },
{ pkg: "com.huawei.hicloud", label: "Hicloud", description: "Huawei cloud features", safety: "safe" },
- { pkg: "com.huawei.hidisk", label: "Hidisk", description: "Huawei File Manager app.", safety: "caution" },
- { pkg: "com.huawei.hifolder", label: "Hifolder", description: "Huawei Online Cloud folder service https://consumer.huawei.com/en/mobileservices/mobilecloud/", safety: "safe" },
- { pkg: "com.huawei.hilink.framework", label: "Framework", description: "AI Life Service Used for smart devices and to run smart scenes. It's more useful in China.", safety: "safe" },
- { pkg: "com.huawei.himovie", label: "Himovie", description: "Huawei Video Player Bloated on newer versions. Can be safely removed if you don't want it.", safety: "caution" },
- { pkg: "com.huawei.himovie.overseas", label: "Overseas", description: "Huawei stock video application. Has a lot tracking.", safety: "safe" },
- { pkg: "com.huawei.himovie.partner1", label: "Partner1", description: "HiMoviePlayerPlus Weird app without any code and there's nothing in Main Activity.", safety: "safe" },
- { pkg: "com.huawei.himovie.partner2", label: "Partner2", description: "HiMoviePlayerPlus Weird app without any code and there's nothing in Main Activity.", safety: "safe" },
- { pkg: "com.huawei.hiskytone", label: "Hiskytone", description: "SkyTone Overseas Data Service.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.hisuite", label: "Hisuite", description: "Can be uninstalled via settings. App to connect with the desktop program to Backup/Restore, flash firmware, etc. https://consumer.huawei.com/en/support/hisuite/", safety: "safe" },
- { pkg: "com.huawei.hitouch", label: "Hitouch", description: "Huawei HiTouch Assistant capable to recognize the objects in a photo and to search them through various shopping sites. https://consumer.huawei.com/uk/support/faq/have-you-tried-the-new-hitouch-assistant/", safety: "safe" },
- { pkg: "com.huawei.hiview", label: "Hiview", description: "hiview Removing this doesn't remove access to the picture attributes, so what does it actually do? It's the same as (com.huawei.hiviewtunnel), which is useless. It has 19 permissions, Crash App Dialog, logs. So do not trust these apps.", safety: "safe" },
- { pkg: "com.huawei.hiviewtunnel", label: "Hiviewtunnel", description: "This displays details/attributes of pictures in the gallery (ISO, exposure time, etc.).", safety: "caution" },
- { pkg: "com.huawei.hms5gkit.agentservice", label: "Agentservice", description: "Hw5GKitAgentService Only debugging code found that APK id is invalid, disable parameter error, other error things.", safety: "safe" },
- { pkg: "com.huawei.honorclub.android", label: "Android", description: "Honor Club Huawei's social media app. Safe to remove.", safety: "safe" },
- { pkg: "com.huawei.hwasm", label: "Hwasm", description: "FIDO UAF Authenticator-Specific Module. See 'com.huawei.fido.uafclient' for FIDO explaination. The UAF Authenticator-Specific Module (ASM) is a software interface on top of UAF authenticators which gives a standardized way for FIDO UAF clients to detect and access the functionality of UAF authenticators and hides internal communication complexity from FIDO UAF Client. https://fidoalliance.org/specs/fido-uaf-v1.0-ps-20141208/fido-uaf-asm-api-v1.0-ps-20141208.html", safety: "caution" },
- { pkg: "com.huawei.hwblockchain", label: "Hwblockchain", description: "Probably blockchain related, no noticeable consequences when removed", safety: "safe" },
- { pkg: "com.huawei.hwddmp", label: "Hwddmp", description: "HwDDMP Has a lot frameworks. Uninstalling breaks calling app even if you disable. It does not cause bootloop but removing is highly not recommended. Not only breaks the dialer app, but causes lag in whole system too.", safety: "keep" },
- { pkg: "com.huawei.hwdetectrepair", label: "Hwdetectrepair", description: "Huawei Smart diagnosis (discontinued?) Useless features and run in background.", safety: "safe" },
- { pkg: "com.huawei.hwdiagnosis", label: "Hwdiagnosis", description: "HwDiagnosis No activities, only code about diagnosis and logs Also device info and is send to Huawei servers.", safety: "safe" },
- { pkg: "com.huawei.hwdockbar", label: "Hwdockbar", description: "Huawei Multi-Window dock Probably fine to remove if you're not using Huawei Multi-Window features.", safety: "caution" },
- { pkg: "com.huawei.hwesimservice", label: "Hwesimservice", description: "HwESIMService If you use eSIM do not remove it.", safety: "caution" },
- { pkg: "com.huawei.hwid", label: "Hwid", description: "Huawei Mobile Services Huawei’s alternative to Google Play Services. Needed to access advanced Huawei features. A Huawei ID is required to access services, like Themes, Mobile Cloud, HiCare, Huawei Wear, Huawei Health. This may break an app like InPost Mobile, see: https://github.com/0x192/universal-android-debloater/issues/477 See more about Huawei Mobile Services: https://www.xda-developers.com/huawei-hms-core-android-alternative-google-play-services-gms/", safety: "caution", neededBy: ["com.huawei.fastapp"] },
- { pkg: "com.huawei.hwireader", label: "Hwireader", description: "App for adding by user 'Books'. This app has ads and bad privacy.", safety: "safe" },
- { pkg: "com.huawei.hwpanpayservice", label: "Hwpanpayservice", description: "Payment related service. Safe to remove.", safety: "safe" },
- { pkg: "com.huawei.hwpolicyservice", label: "Hwpolicyservice", description: "HwPolicyService Another debugging, logs app.", safety: "safe" },
- { pkg: "com.huawei.hwread.dz", label: "Dz", description: "App for adding by user 'Books'. This app has ads and bad privacy.", safety: "safe" },
- { pkg: "com.huawei.hwsearch", label: "Hwsearch", description: "Petal Search widget. Used for finding apps/apks on several online sources (introduced after Google Mobile Services Ban).", safety: "safe" },
- { pkg: "com.huawei.hwstartupguide", label: "Hwstartupguide", description: "A one-time setup app that is no longer needed", safety: "safe" },
- { pkg: "com.huawei.hwusbearphoneupdate", label: "Hwusbearphoneupdate", description: "Huawei digital earphones come with built-in software that can be updated regularly to enhance your audio experience.", safety: "caution" },
+ { pkg: "com.huawei.hifolder", label: "Hifolder", description: "Huawei Online Cloud folder service", safety: "safe" },
+ { pkg: "com.huawei.hiviewtunnel", label: "Hiviewtunnel", description: "This displays details/attributes of pictures in the gallery (ISO, exposure time, etc.).", safety: "safe" },
+ { pkg: "com.huawei.himovie.overseas", label: "Overseas", description: "Huawei stock video application (https://play.google.com/store/apps/details?id=com.huawei.himovie.overseas)....", safety: "safe" },
+ { pkg: "com.huawei.hitouch", label: "Hitouch", description: "Huawei HiTouch", safety: "safe" },
+ { pkg: "com.huawei.hwasm", label: "Hwasm", description: "FIDO UAF Autenthicator-Specific Module.", safety: "safe" },
+ { pkg: "com.huawei.hwblockchain", label: "Hwblockchain", description: "Probably blockchain related, no noticable consequences when removed", safety: "safe" },
+ { pkg: "com.huawei.hwdetectrepair", label: "Hwdetectrepair", description: "Huawei Smart diagnosis (https://play.google.com/store/apps/details?id=com.huawei.hwdetectrepair)", safety: "safe" },
+ { pkg: "com.huawei.HwMultiScreenShot", label: "Hwmultiscreenshot", description: "Scrolling screenshot feature", safety: "safe" },
{ pkg: "com.huawei.hwvoipservice", label: "Hwvoipservice", description: "Voice over IP service for Huawei MeeTime (com.huawei.meetime)", safety: "safe", neededBy: ["com.huawei.meetime"] },
- { pkg: "com.huawei.hwvplayer.youku", label: "Youku", description: "Video Youku Video Player on Chinese Huawei. Has some ads and bad privacy.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.iaware", label: "Iaware", description: "App Prioritizer. Prioritizes apps to avoid slowdown Up to you but there is apparently no noticeable difference when deleted? System will start lagging a little bit (you will notice it while scrolling and on some animations, for example scrolling installed apps), battery consumption will become slightly higher and battery stats will disappear soon. At the same time, logcat will be full of errors like: PowerKit: PG Server is not found. calling pid xxxx.", safety: "caution" },
- { pkg: "com.huawei.iconnect", label: "Iconnect", description: "iConnect Hidden menu 'install PCAssistant' when connected to PC? I have never seen it. Safe to remove.", safety: "safe" },
+ { pkg: "com.huawei.meetime", label: "Meetime", description: "MeeTime (https://consumer.huawei.com/en/support/content/en-us00956296/). Voice and video calling applicatio...", safety: "safe", deps: ["com.huawei.hwvoipservice"] },
+ { pkg: "com.huawei.ohos.inputmethod", label: "Inputmethod", description: "Huawei default Keyboard", safety: "caution" },
+ { pkg: "com.huawei.mycenter", label: "Mycenter", description: "Huawei Member Center", safety: "safe" },
+ { pkg: "com.huawei.maps.app", label: "App", description: "Petal Maps (https://play.google.com/store/apps/details?id=com.huawei.maps.app)", safety: "caution" },
+ { pkg: "com.huawei.webview", label: "Webview", description: "Huawei Webview.", safety: "caution" },
+ { pkg: "com.huawei.iaware", label: "Iaware", description: "App Prioritizer. Prioritizes apps to avoid slowdown", safety: "safe" },
{ pkg: "com.huawei.ihealth", label: "Ihealth", description: "MotionService package, it's required for actions like shaking the phone to shut off the alarm, ecc.", safety: "safe" },
- { pkg: "com.huawei.imedia.dolby", label: "Dolby", description: "Dolby Atmos Optimize sound automatically for exceptional audio quality.", safety: "caution" },
- { pkg: "com.huawei.imedia.sws", label: "Sws", description: "Huawei Histen Audio 3D effects found in the settings. Safe to remove if you don't use these settings. Causes an audio glitch after the first reboot following the uninstallation or disabling of this package. When you start or resume playing any audio content in any media application, the sound volume initially sets to maximum for half a second, then normalizes. Affects only external audio devices with any connection type.", safety: "safe" },
- { pkg: "com.huawei.imonitor", label: "Imonitor", description: "imonitor Hidden logs founded in app. Detects app launch anomaly and runs safe mode.", safety: "safe" },
- { pkg: "com.huawei.ims", label: "Ims", description: "HwImsService VoLTE(Voice over LTE) calls. IP multimedia subsystem. https://en.wikipedia.org/wiki/Voice_over_LTE Uninstalling app breaks sim calling even if you disable. It does not cause bootloop but removing is highly not recommended.", safety: "keep" },
- { pkg: "com.huawei.indexsearch", label: "Indexsearch", description: "Index search works without it.", safety: "safe" },
- { pkg: "com.huawei.indexsearch.observer", label: "Observer", description: "Index search works without it.", safety: "safe" },
- { pkg: "com.huawei.indiacalendar", label: "Indiacalendar", description: "Indian Calendar HUAWEI Calendar", safety: "caution" },
{ pkg: "com.huawei.intelligent", label: "Intelligent", description: "Huawei Assistant. Shopping recommendations", safety: "safe" },
- { pkg: "com.huawei.internetaudioservice", label: "Internetaudioservice", description: "Smart headset control Has a lot logs and frameworks to mmitest.", safety: "safe" },
- { pkg: "com.huawei.languagedownloader", label: "Languagedownloader", description: "Allows you to load the system languages when changing them", safety: "caution" },
- { pkg: "com.huawei.lbs", label: "Lbs", description: "Location Based Services Location-based services (LBS) are applications or services that utilize location data from a user's device, such as a smartphone or GPS, to provide relevant information, directions, or recommendations tailored to their specific location. These services rely on a combination of technologies, including Global Positioning System (GPS), Wi-Fi, cellular networks, and sensors, to determine a user's position accurately. NOTE: Can cause bootloops on some devices. The primary goal of LBS is to offer personalized and context-aware experiences based on a user's geographical location. This can include services like: 1. Navigation and Mapping, 2. Location-Based Advertising, 3. Social Networking, 4. Emergency Services, 5. IoT Asset Tracking https://forum.huawei.com/enterprise/en/location-based-services/thread/703168442200375296-667213855346012160", safety: "caution" },
- { pkg: "com.huawei.lives", label: "Lives", description: "HiLives is jointly developed by Huawei and certified third-party service providers to provide lifestyle services for you.", safety: "safe", deps: ["com.huawei.hwid"] },
+ { pkg: "com.huawei.health", label: "Health", description: "Huawei Health (https://play.google.com/store/apps/details?id=com.huawei.health)", safety: "safe" },
+ { pkg: "com.huawei.magazine", label: "Magazine", description: "Magazine unlock. Downloads wallpapers for your lock screen.", safety: "safe" },
+ { pkg: "com.huawei.mirrorlink", label: "Mirrorlink", description: "Huawei Mirror app.", safety: "safe" },
+ { pkg: "com.huawei.music", label: "Music", description: "Huawei Music app. Fat music player developed by Huawei (137Mo. Seriously?). There are a lof of better alter...", safety: "safe" },
+ { pkg: "com.huawei.parentcontrol", label: "Parentcontrol", description: "Parental controls functions.", safety: "safe" },
+ { pkg: "com.huawei.pcassistant", label: "Pcassistant", description: "HiSuite service. Used by HiSuite PC software.", safety: "safe" },
+ { pkg: "com.huawei.phoneservice", label: "Phoneservice", description: "HiCare (https://play.google.com/store/apps/details?id=com.huawei.phoneservice)", safety: "safe" },
+ { pkg: "com.huawei.powergenie", label: "Powergenie", description: "Task killer app in EMUI 9+ (Android 9+).", safety: "safe" },
+ { pkg: "com.huawei.stylus.floatmenu", label: "Floatmenu", description: "AI Lens. Shop for objects that you take a picture of. This de-clutters the camera interface by removing the...", safety: "safe" },
+ { pkg: "com.huawei.synergy", label: "Synergy", description: "Huawei Cloud & Network Synergy.", safety: "safe" },
+ { pkg: "com.huawei.tips", label: "Tips", description: "HUAWEI Feature Advisor", safety: "safe" },
+ { pkg: "com.huawei.trustagent", label: "Trustagent", description: "Smart unlock feature.", safety: "safe" },
+ { pkg: "com.huawei.vassistant", label: "Vassistant", description: "HiVoice app", safety: "safe" },
+ { pkg: "com.huawei.videoeditor", label: "Videoeditor", description: "Huawei Video editor", safety: "safe" },
+ { pkg: "com.huawei.wallet", label: "Wallet", description: "Huawei Wallet (renammed Huawei Pay)", safety: "safe" },
+ { pkg: "com.huawei.watch.sync", label: "Sync", description: "Huawei Watch sync function", safety: "safe" },
+ { pkg: "com.hisi.mapcon", label: "Mapcon", description: "Provides wifi calling feature (call or text on Wi-Fi networks using your SIM card)", safety: "safe" },
+ { pkg: "com.huawei.KoBackup", label: "Kobackup", description: "As of writing this, Huawei phones cannot be rooted.", safety: "caution" },
+ { pkg: "com.huawei.android.thememanager", label: "Thememanager", description: "Themes (https://play.google.com/store/apps/details?id=com.huawei.android.thememanager)", safety: "caution" },
+ { pkg: "com.huawei.aod", label: "Aod", description: "Always On Display", safety: "safe" },
+ { pkg: "com.huawei.android.internal.app", label: "App", description: "Component of Huawei sharing. I read someone saying \"Do not remove or you won't be able to send files to apps\".", safety: "caution" },
+ { pkg: "com.huawei.android.launcher", label: "Launcher", description: "Huawei launcher app.", safety: "caution" },
+ { pkg: "com.huawei.calendar", label: "Calendar", description: "Huawei Calendar app.", safety: "caution" },
+ { pkg: "com.huawei.contacts", label: "Contacts", description: "Huawei Contacts app", safety: "caution" },
+ { pkg: "com.huawei.deskclock", label: "Deskclock", description: "Huawei Clock App.", safety: "caution" },
+ { pkg: "com.huawei.photos", label: "Photos", description: "Huawei Gallery app.", safety: "caution" },
+ { pkg: "com.huawei.hidisk", label: "Hidisk", description: "Huawei File Manager app.", safety: "caution" },
+ { pkg: "com.huawei.search", label: "Search", description: "HiSearch", safety: "safe" },
+ { pkg: "com.huawei.securitymgr", label: "Securitymgr", description: "PrivateSpace", safety: "caution" },
+ { pkg: "com.huawei.android.totemweather", label: "Totemweather", description: "Huawei Weather app (and its widget)", safety: "safe" },
+ { pkg: "com.huawei.android.totemweatherapp", label: "Totemweatherapp", description: "Huawei Weather app (and its widget)", safety: "safe" },
+ { pkg: "com.huawei.android.wfdft", label: "Wfdft", description: "Wi-Fi Direct feature.", safety: "safe" },
+ { pkg: "com.huawei.hwstartupguide", label: "Hwstartupguide", description: "A one-time setup app that is no longer needed", safety: "safe" },
+ { pkg: "com.huawei.livewallpaper.paradise", label: "Paradise", description: "Live wallpapers", safety: "safe" },
{ pkg: "com.huawei.livewallpaper.artflower", label: "Artflower", description: "Live wallpapers", safety: "safe" },
{ pkg: "com.huawei.livewallpaper.flowersbloom", label: "Flowersbloom", description: "Live wallpapers", safety: "safe" },
{ pkg: "com.huawei.livewallpaper.mountaincloud", label: "Mountaincloud", description: "Live wallpapers", safety: "safe" },
{ pkg: "com.huawei.livewallpaper.naturalgarden", label: "Naturalgarden", description: "Live wallpapers", safety: "safe" },
- { pkg: "com.huawei.livewallpaper.paradise", label: "Paradise", description: "Live wallpapers", safety: "safe" },
{ pkg: "com.huawei.livewallpaper.ripplestone", label: "Ripplestone", description: "Live wallpapers", safety: "safe" },
- { pkg: "com.huawei.localbackup", label: "Localbackup", description: "Huawei Backup has a lot permissions and can backup your data", safety: "safe" },
- { pkg: "com.huawei.magazine", label: "Magazine", description: "Magazine unlock. Downloads wallpapers for your lock screen.", safety: "safe" },
- { pkg: "com.huawei.manufacture.wificonnect", label: "Wificonnect", description: "Wifi Connect Needed for WiFi connection?", safety: "caution" },
- { pkg: "com.huawei.maps.app", label: "App", description: "Petal Maps (https://play.google.com/store/apps/details?id=com.huawei.maps.app) Huawei map and navigation app with HMS (Huawei Mobile Services) trackers. Pithus analysis: https://beta.pithus.org/report/d15349e7a998306012462484f270f93794141113d6680fa8512931c270adf830", safety: "caution" },
- { pkg: "com.huawei.mediacontroller", label: "Mediacontroller", description: "Can be disabled via Settings. Will disable the media controls in quick settings. Won't remove them however.", safety: "caution" },
- { pkg: "com.huawei.meetime", label: "Meetime", description: "MeeTime (https://consumer.huawei.com/en/support/content/en-us00956296/). Voice and video calling application by Huawei. Only works with EMUI 9.1+ Huawei phones. Huawei claims they use E2EE but this wasn't verified and there is no whitepaper, so don't trust them. They also collect metadata.", safety: "safe", deps: ["com.huawei.hwvoipservice"] },
- { pkg: "com.huawei.mirror", label: "Mirror", description: "Huawei Mirror app. Mirror like\"Glass\"", safety: "safe" },
- { pkg: "com.huawei.mirrorlink", label: "Mirrorlink", description: "Huawei Mirror app. Mirror like\"Glass\" Huawei mirrorlink implementation Used to connect your phone to a car (with https://mirrorlink.com/ support) in order to provide audio streaming, GPS navigation...", safety: "safe" },
- { pkg: "com.huawei.mmiautotest", label: "Mmiautotest", description: "MMIAutoTest Hidden testing hardware things.", safety: "safe" },
- { pkg: "com.huawei.mmitest", label: "Mmitest", description: "MMITest Hidden hardware tests. Safe to remove.", safety: "safe" },
- { pkg: "com.huawei.motionservice", label: "Motionservice", description: "Gesture Service Not very useful gestures available in settings.", safety: "caution" },
- { pkg: "com.huawei.msdp", label: "Msdp", description: "Multimodal Sensor Data Platform Has Device Status, Movement, Spatial Aware. Uses location, airlink permissions.", safety: "safe" },
- { pkg: "com.huawei.multimedia.audioengine", label: "Audioengine", description: "Audio Engine, probably not needed. https://developer.huawei.com/consumer/en/audioengine", safety: "safe" },
- { pkg: "com.huawei.multimedia.hivideoplayengine", label: "Hivideoplayengine", description: "hivideoplayengine HwVideoKitImpl, sdk tools for developers.", safety: "safe" },
- { pkg: "com.huawei.music", label: "Music", description: "Huawei Music app. Fat music player developed by Huawei (137Mo. Seriously?). There are a lof of better alternatives (e.g Metro on F-droid)", safety: "safe" },
- { pkg: "com.huawei.mycenter", label: "Mycenter", description: "Huawei Member Center Gives reward offers and news to Huawei users. Very intrusive app: 68 permissions including CAMERA, ACCESS_FINE_LOCATION, REQUEST_INSTALL_PACKAGES. Can run in the background and just after boot even if you haven't unlock your phone yet. Phones home. Pithus analysis: https://beta.pithus.org/report/3af49c621aefeef0dca86a4f79b5f007d73698fa979d3ba1ac7d6f1ccaea9cdf", safety: "safe" },
- { pkg: "com.huawei.nb.service", label: "Service", description: "Service for discovering nearby devices by GPS", safety: "caution" },
- { pkg: "com.huawei.nearby", label: "Nearby", description: "HwNearby Needed for Huawei Share features. (com.huawei.android.instantshare) Huawei Share features may not work after remove. Needed to show a preview of recently opened apps in task manager. I agree, makes no sense, but that's what it is.", safety: "caution", deps: ["com.huawei.android.instantshare"] },
- { pkg: "com.huawei.notepad", label: "Notepad", description: "Notepad Looks so bloated with Hi Voice, Update using AppGallery, Location. It has a few tracking components, but not too many.", safety: "safe" },
- { pkg: "com.huawei.numberidentity", label: "Numberidentity", description: "Designed to block unwanted calls, but only works properly in China", safety: "safe" },
- { pkg: "com.huawei.ohos.collaborationcenter", label: "Collaborationcenter", description: "Sometimes ohos apps is configuration app before building. In code I found it's for app cast transfer. Disable instead of uninstalling if you don't want to lose the widget.", safety: "safe" },
- { pkg: "com.huawei.ohos.famanager", label: "Famanager", description: "Service Center Provides a space for you to view and manage services. This app and its underlying services (which provide searches and AI-based services). A lot tracking. Disable instead of uninstalling if you don't want to lose the widget.", safety: "safe" },
- { pkg: "com.huawei.ohos.hiwindow", label: "Hiwindow", description: "HiWindow Have loading, waiting png files collaboration devices, hardware things, screen projection on activities shows Window Shell. After remove you will lose animations and loading screen. Disable instead of uninstalling if you don't want to lose the widget.", safety: "safe" },
- { pkg: "com.huawei.ohos.inputmethod", label: "Inputmethod", description: "Huawei default Keyboard WARNING: Before uninstalling, make sure to have a third-party keyboard installed. Disable instead of uninstalling if you don't want to lose the widget.", safety: "caution" },
- { pkg: "com.huawei.ohos.security.privacycenter", label: "Privacycenter", description: "It's shell to app 'com.huawei.security.privacycenter'? Disable instead of uninstalling if you don't want to lose the widget.", safety: "safe" },
- { pkg: "com.huawei.omacp", label: "Omacp", description: "Provisioning message Used for provisioning APN settings to devices via SMS. I think you shouldnt touch it if you want sms messages.", safety: "caution" },
- { pkg: "com.huawei.onehopsvcclient", label: "Onehopsvcclient", description: "OneHopSvcClient TagService, HarmonyTag.", safety: "safe" },
- { pkg: "com.huawei.onehopsvchost", label: "Onehopsvchost", description: "OneHopSvcHost Triggerservice opens hardware things by secret code.", safety: "safe" },
- { pkg: "com.huawei.parentcontrol", label: "Parentcontrol", description: "Parental controls functions. It seems Huawei can prevent to remove packages. Uninstalling (or even disabling) this package returns an error: Failure [DELETE_FAILED_INTERNAL_ERROR] (not allowed to disable this package). See https://github.com/0x192/universal-android-debloater/issues/51", safety: "safe" },
- { pkg: "com.huawei.pcassistant", label: "Pcassistant", description: "HiSuite service. Used by HiSuite PC software. HiSuite enables you to backup your data and restore them from/to your phone. https://consumer.huawei.com/en/support/hisuite/", safety: "safe" },
- { pkg: "com.huawei.pengine", label: "Pengine", description: "HUAWEI Intelligent Suggestion will collect and analyze screens from selected apps to provide personalized services.", safety: "safe" },
- { pkg: "com.huawei.permissioncontroller", label: "Permissioncontroller", description: "Can be disabled via Settings as well", safety: "safe" },
- { pkg: "com.huawei.permissioncontroller.overlay", label: "Overlay", description: "Found help app permissions - only link to Google site in code, overlay to permission things like buttons, dialogs, etc. But it's not needed?", safety: "caution" },
- { pkg: "com.huawei.phoneservice", label: "Phoneservice", description: "HiCare (discontinued) Provides you common online services including customer services, issue feedback, user guides, service centers and self-service.", safety: "safe" },
- { pkg: "com.huawei.photos", label: "Photos", description: "Huawei Gallery app. Note: The official camera app refuses to open photos in another gallery (you can't review your picture from the camera app)", safety: "caution" },
- { pkg: "com.huawei.powergenie", label: "Powergenie", description: "Task killer app in EMUI 9+ (Android 9+). Task killer apps tend to do more harm than help as they clear cached RAM for no good reason, removing the battery and time savings involved in caching. In addition to the obvious issues with background functionality like notifications. From issue#104. System will start lagging a little bit (you will notice it while scrolling and on some animations, for example scrolling installed apps), battery consumption will become slightly higher and battery stats will disappear soon. At the same time, logcat will be full of errors like: PowerKit: PG Server is not found. calling pid xxxx.", safety: "caution" },
- { pkg: "com.huawei.printservice", label: "Printservice", description: "Print service", safety: "caution" },
- { pkg: "com.huawei.privatespace", label: "Privatespace", description: "Privacy Space for files", safety: "caution" },
- { pkg: "com.huawei.profile", label: "Profile", description: "Profile Services It's an app needed for HUAWEI ID, depends on HMSCore, also has analytics and trackers.", safety: "safe" },
- { pkg: "com.huawei.rcsserviceapplication", label: "Rcsserviceapplication", description: "Huawei Rich Communication Service Provides sending messages to another Huawei phone Hidden RCS Chats with 49 permissions.", safety: "safe" },
- { pkg: "com.huawei.recsys", label: "Recsys", description: "HwIntelligentRecSystem is a smart app that provides personalized services on HiBoard? My phone dont have Hiboard. Safe to remove. https://consumer.huawei.com/en/support/content/en-us00434788/", safety: "safe" },
- { pkg: "com.huawei.regservice", label: "Regservice", description: "RegService Register for celluar network services, not needed.", safety: "safe" },
- { pkg: "com.huawei.remotepassword", label: "Remotepassword", description: "RemotePassword remotepassword: errors, invalid, null, errors generally also subscribe info, device info. Better remove that.", safety: "safe" },
- { pkg: "com.huawei.ridemode", label: "Ridemode", description: "Uses google maps website to track your ride when RideMode is Enabled.", safety: "safe" },
- { pkg: "com.huawei.runningtestii", label: "Runningtestii", description: "Testing hardware things like Audio, Camera, VideoPlayer, etc.", safety: "safe" },
- { pkg: "com.huawei.sarlevel", label: "Sarlevel", description: "Mobile phone SAR Hidden SAR Level Activity.", safety: "safe" },
- { pkg: "com.huawei.scanner", label: "Scanner", description: "AI Lens. Shop for objects that you take a picture of. This de-clutters the camera interface by removing the AI Lens button on the top left corner and does not break the AR Measure app.", safety: "safe" },
- { pkg: "com.huawei.scenepack", label: "Scenepack", description: "Travel Assistant provides you with travel tips, voice guides, and other related services.", safety: "safe" },
- { pkg: "com.huawei.screenrecorder", label: "Screenrecorder", description: "Stock screen recorder Useful only in pre-Android Pie for having system audio recording without root Not sure if it's an app, but I can't find it on my phone. Safe to remove.", safety: "caution" },
- { pkg: "com.huawei.search", label: "Search", description: "HiSearch Allows you to search through settings, files, contacts and notes while keeping a record of your search history. Hi Search is really annoying because it's triggered as soon as you wipe down from the middle part of the home.", safety: "safe" },
- { pkg: "com.huawei.searchservice", label: "Searchservice", description: "Fusion Search Service Needed for searching? Found out that it uses `com.huawei.hwddmp` this app is for debugging errors also found trackers components that connects to Huawei servers unnecessarily.", safety: "safe" },
- { pkg: "com.huawei.secime", label: "Secime", description: "Huawei Secure IME Secure keyboard.", safety: "safe" },
- { pkg: "com.huawei.security.privacycenter", label: "Privacycenter", description: "Protect your privacy by preventing apps from accessing sensitive data stored within images, such as location info and time stamps. This restriction does not apply to system apps such as Gallery and Cloud. I don't think this app values privacy a lot. Needed for Permission Manager to open.", safety: "caution" },
- { pkg: "com.huawei.securitymgr", label: "Securitymgr", description: "PrivateSpace Lets you store private information in a hidden space within your device that can only be accessed with your fingerprint or password. TODO: Data at rest encryption? If not, this is useless https://consumer.huawei.com/en/support/content/en-us00754246/) This is the password vault or password manager too.", safety: "caution" },
- { pkg: "com.huawei.securitypluginbase", label: "Securitypluginbase", description: "HwSecurityPluginBase Antivirus Service supports bad antiviruses, HwLog, not needed", safety: "safe" },
- { pkg: "com.huawei.securityserver", label: "Securityserver", description: "HwSecurityServer Not needed app without code and useless assets to spying apps. Needed for face unlock, black screen will be shown if you remove this package (?). Doesn't apply to all devices", safety: "caution" },
- { pkg: "com.huawei.skytone", label: "Skytone", description: "SkyTone Data Service. Frameworks to 'com.huawei.hiskytone' SkyTone Overseas Data Service.", safety: "safe", deps: ["com.huawei.hiskytone"] },
- { pkg: "com.huawei.smarthome", label: "Smarthome", description: "AI Life Require Logging in to your Huawei ID, HMSCore. It's app that lets your control and manage routers and audio accessories.", safety: "safe", deps: ["com.huawei.hwid"] },
- { pkg: "com.huawei.smartlocation", label: "Smartlocation", description: "Huawei Indoor Positioning Services Chinese Tracking Location.", safety: "safe" },
- { pkg: "com.huawei.smartshot", label: "Smartshot", description: "Smart screenshots Needed for screenshots.", safety: "caution" },
- { pkg: "com.huawei.sos", label: "Sos", description: "SOS Emergency things.", safety: "safe" },
- { pkg: "com.huawei.soundrecorder", label: "Soundrecorder", description: "Sound Recorder app.", safety: "caution" },
- { pkg: "com.huawei.spaceservice", label: "Spaceservice", description: "Huawei Geofence Services Uses Chinese Location.", safety: "safe" },
- { pkg: "com.huawei.stylus.floatmenu", label: "Floatmenu", description: "AI Lens. Shop for objects that you take a picture of. This de-clutters the camera interface by removing the AI Lens button on the top left corner and does not break the AR Measure app. Floating menu with M-Pen feature.", safety: "safe" },
- { pkg: "com.huawei.suggestion", label: "Suggestion", description: "HiSuggestion Hw intelligence permissions found and logs, also maybe has suggestions on widget.", safety: "safe" },
- { pkg: "com.huawei.synergy", label: "Synergy", description: "Huawei Cloud & Network Synergy. Seems to be related to B2B (Business To Business) cloud stuff. https://www.huawei.com/en/press-events/news/2016/10/Cloud-Network-Synergy-Whitepaper", safety: "safe" },
- { pkg: "com.huawei.systemdebug", label: "Systemdebug", description: "SystemDebug Testing system things.", safety: "safe" },
- { pkg: "com.huawei.systemmanager", label: "Systemmanager", description: "System Manager Huawei's stock phone cleaner. Consumes a lot of battery power for useless 'security' checks. Safe to remove unless you need any anti-virus (while there are better ones to be found). NOTE: breaks the functionality of closing and cleaning background apps. This is more than a phone cleaner, you will lose a lot of settings like battery and notifications management if you remove this.", safety: "caution" },
- { pkg: "com.huawei.systemserver", label: "Systemserver", description: "Huawei System Services It depends on (com.huawei.systemmanager). Needed for navigation with a fingerprint reader that is on Mate 10, but fingerprint unlock will still work if you remove it.", safety: "caution" },
- { pkg: "com.huawei.tips", label: "Tips", description: "HUAWEI Feature Advisor Periodically gives you notifications on how to use certain features on your phone.", safety: "safe" },
- { pkg: "com.huawei.tipsove", label: "Tipsove", description: "Tips Huawei Tips to HiCar, AI Life and more.", safety: "safe" },
- { pkg: "com.huawei.tmecustomize", label: "Tmecustomize", description: "TME Tme Activity. Hidden carrier config sim. I think it's useless but you need to test.", safety: "caution" },
- { pkg: "com.huawei.trustagent", label: "Trustagent", description: "Smart unlock feature. Enables you to unlock your phone with a Bluetooth device, like a smart band. When a compatible Bluetooth device is detected, you can unlock your phone with a simple swipe (without a password).", safety: "safe" },
- { pkg: "com.huawei.trustcircle", label: "Trustcircle", description: "Device authentication service The app's usage is unknown, but it can be removed if apps such as com.huawei.hwid, com.huawei.appmarket are also removed. This is what I found while exploring the APK: Huawei Mobile Services?, managing installation and updates of AppGallery. Huawei HWID account may be inaccessible without this app.", safety: "safe" },
- { pkg: "com.huawei.trustedthingsauth", label: "Trustedthingsauth", description: "HwTrustedThingsAuth Only name app found in code, has permissions: Bluetooth, execute_reg, use_auth.", safety: "safe" },
- { pkg: "com.huawei.trustspace", label: "Trustspace", description: "TrustSpace useless security to payment. Settings > Security > TrustSpace Has something to unrooting rooted phone.", safety: "safe" },
- { pkg: "com.huawei.userguide", label: "Userguide", description: "User Guide Require install a PDF reader app to work.", safety: "safe" },
- { pkg: "com.huawei.vassistant", label: "Vassistant", description: "HiVoice app Huawei voice assistant (like Siri or Google assistant) Huge privacy risk. Keep in mind that the app keeps the microphone *on* non-stop. Is now Celia (https://consumer.huawei.com/en/emui/celia/)", safety: "safe" },
- { pkg: "com.huawei.vdrive", label: "Vdrive", description: "Driving Mode uses HiVoice to provide voice services when you are driving.", safety: "safe" },
- { pkg: "com.huawei.videoeditor", label: "Videoeditor", description: "Huawei Video editor Includes 2 ads trackers. Interacts with Huawei cloud. Pithus analysis: https://beta.pithus.org/report/19ef8cfb02f3853128603a140b4602db57ddf729a728b1ea6998e8b20752138f", safety: "safe" },
- { pkg: "com.huawei.vrservice", label: "Vrservice", description: "Huawei VR Service used for Huawei VR.", safety: "safe" },
- { pkg: "com.huawei.wallet", label: "Wallet", description: "Huawei Wallet (renamed Huawei Pay) Mobile payment and e-wallet service for Huawei devices that offers the same services as Apple Pay, Samsung Pay etc... https://consumer.huawei.com/en/mobileservices/huawei-wallet/", safety: "safe" },
- { pkg: "com.huawei.wallet.sdk.walletsdk", label: "Walletsdk", description: "Wallet app Safe to remove.", safety: "safe" },
- { pkg: "com.huawei.watch.sync", label: "Sync", description: "Huawei Watch sync function Is it only used to sync Huawei watch ? Safe to remove according to several users", safety: "safe" },
- { pkg: "com.huawei.waudio", label: "Waudio", description: "waudio Wi-Fi Speaker, Speaker playback, WLAN speaker This app is only for Chinese users because I found a Chinese app list that supports it and depends on AI Life app probably.", safety: "safe" },
- { pkg: "com.huawei.webview", label: "Webview", description: "Huawei WebView enables Android apps to display web content within the app itself, based on Chrome. No root? Don't uninstall. Root? If you delete WebView, make sure to install a replacement. Many third-party apps, such as banks, VPNs, GitHub, Discord and Reddit use web-based content and will crash without it.", safety: "caution" },
- { pkg: "com.huawei.welinknow", label: "Welinknow", description: "Link Now Require login to Huawei ID Account. Some features is not available for some countries. It's app for meeting and collects a lot data from users.", safety: "safe" },
- { pkg: "com.huawei.wifieapsimplmn", label: "Wifieapsimplmn", description: "PredefinedEapSim Needed for WiFi to work properly? WiFi may not work (?)", safety: "caution" },
- { pkg: "com.huawei.wifiprobqeservice", label: "Wifiprobqeservice", description: "HwWifiproBqeService Needed for WiFi to work properly? WiFi may not work (?)", safety: "caution" },
+ { pkg: "com.huawei.mirror", label: "Mirror", description: "Huawei Mirror app.", safety: "safe" },
+ { pkg: "com.huawei.scanner", label: "Scanner", description: "AI Lens. Shop for objects that you take a picture of. This de-clutters the camera interface by removing the...", safety: "safe" },
+ { pkg: "com.huawei.fastapp", label: "Fastapp", description: "Quick App Center", safety: "caution", deps: ["com.huawei.hwid"] },
],
},
{
name: "OnePlus/Oppo",
packages: [
- { pkg: "com.coloros.accessibilityassistant", label: "Accessibilityassistant", description: "AI VoiceScribe. It's used to convert speech to text in real-time for accessibility purposes. Can be safely deleted if you don't use AI services.", safety: "safe" },
- { pkg: "com.coloros.activation", label: "Activation", description: "E-warranty card Lets you check if your registered phone is still under warranty (will send your IMEI to esa-reg-eup.myoppo.com. Has a lot of permissions and run at boot Pithus analysis: https://beta.pithus.org/report/2a1dc5caedd2347fa009563e9b4d1c11b1cb42726f9046151934c456fdd77d88", safety: "caution" },
- { pkg: "com.coloros.activation.overlay.common", label: "Common", description: "E-warranty card Lets you check if your registered phone is still under warranty. Has a lot of permissions and runs at boot. Pithus analysis: https://beta.pithus.org/report/2a1dc5caedd2347fa009563e9b4d1c11b1cb42726f9046151934c456fdd77d88", safety: "caution" },
- { pkg: "com.coloros.alarmclock", label: "Alarmclock", description: "Stock Clock app.", safety: "caution" },
- { pkg: "com.coloros.appmanager", label: "Appmanager", description: "App Management Used to uninstall applications, but uninstalling apps works nonetheless, even after uninstalling this package. GameSpace's game assistant does not work anymore after uninstalling this package.", safety: "caution" },
- { pkg: "com.coloros.apprecover", label: "Apprecover", description: "Used for app recovery?", safety: "safe" },
- { pkg: "com.coloros.assistantscreen", label: "Assistantscreen", description: "Shelf. ColorOS/OnePlus 'At a Glance'. Shelf provides a variety of widgets that let you access important information or services from apps with ease. Removing will also be unable to access third-party widgets (these are different from the 'normal' widgets in any launcher) in ColorOS 16/OxygenOS 16 Swipe down on the Home screen to enter Shelf. https://play.google.com/store/apps/details?id=com.coloros.assistantscreen", safety: "caution" },
- { pkg: "com.coloros.athena", label: "Athena", description: "Memory management, maybe useful, maybe not", safety: "caution" },
- { pkg: "com.coloros.athena.config_plugin", label: "Config_plugin", description: "Needed to configure com.coloros.athena. Memory management, maybe useful, maybe not.", safety: "caution" },
- { pkg: "com.coloros.avastofferwall", label: "Avastofferwall", description: "Avast Offerwall Avast anti-virus things.", safety: "safe" },
- { pkg: "com.coloros.backuprestore", label: "Backuprestore", description: "Most likely Oppo backup/restore feature", safety: "safe" },
- { pkg: "com.coloros.backuprestore.remoteservice", label: "Remoteservice", description: "It has something to scan always Wi-Fi but it's probably unused.", safety: "safe" },
- { pkg: "com.coloros.blacklistapp", label: "Blacklistapp", description: "Blacklist Contacts Black list contacts, blocking calling.", safety: "caution" },
- { pkg: "com.coloros.bootreg", label: "Bootreg", description: "Setup Wizard Cause bootloop after uninstall app.", safety: "keep" },
- { pkg: "com.coloros.calculator", label: "Calculator", description: "Calculator app Has internet access because it can convert exchange rate, but I don't know whether it's used for other things as well or not.", safety: "safe" },
- { pkg: "com.coloros.childrenspace", label: "Childrenspace", description: "Limit time spending on apps for kids.", safety: "safe" },
- { pkg: "com.coloros.cloud", label: "Cloud", description: "Oppo Cloud", safety: "safe" },
- { pkg: "com.coloros.codebook", label: "Codebook", description: "Password manager App where you can keep passwords.", safety: "safe" },
- { pkg: "com.coloros.colordirectservice", label: "Colordirectservice", description: "Screen Recognition (Breeno Touch). This app is used to recognize screen contents and provide quick access to relevant services (like Text Extraction, AI Summarizer). com.coloros.ocrscanner, com.coloros.ocrservice, com.oplus.ocs, com.oplus.aiunit, com.coloros.ocs.opencapabilityservice are also needed for this to work.", safety: "safe", deps: ["com.coloros.ocrscanner", "com.coloros.ocrservice", "com.oplus.ocs", "com.oplus.aiunit", "com.coloros.ocs.opencapabilityservice"] },
- { pkg: "com.coloros.colorfilestand", label: "Colorfilestand", description: "It has only Request permission activity. Probably useless framework also it has something to do with cloud.", safety: "safe" },
- { pkg: "com.coloros.compass2", label: "Compass2", description: "ColorOS and OxygenOS 16's default compass app Keep in mind that by using this app you give your location to the weather Oppo/OnePlus servers. Pithus analysis: https://beta.pithus.org/report/9a965f5587fa6ee21c526612f3d72c50ef3cc53679b741260298387c44f5a3dc", safety: "caution" },
- { pkg: "com.coloros.digitalwellbeing", label: "Digitalwellbeing", description: "App usage time that can be found in settings.", safety: "caution" },
- { pkg: "com.coloros.directui", label: "Directui", description: "Brenoo touch Smart things it can be found in settings.", safety: "safe" },
- { pkg: "com.coloros.dirrecord", label: "Dirrecord", description: "Security features, anti-trojan?", safety: "safe" },
- { pkg: "com.coloros.encryption", label: "Encryption", description: "Private Safe Removing breaks the stock launcher? Private Safe (located in Privacy Settings)", safety: "caution" },
- { pkg: "com.coloros.exserviceui", label: "Exserviceui", description: "Edge touch Gesture-related things. Edge touch", safety: "safe" },
- { pkg: "com.coloros.exsystemservice", label: "Exsystemservice", description: "Color settings, app manager things without activities. Someone can test if it's useless?", safety: "caution" },
- { pkg: "com.coloros.eyeprotect", label: "Eyeprotect", description: "It's the only eye protection option", safety: "safe" },
- { pkg: "com.coloros.feedback", label: "Feedback", description: "Feedback service Feedback for OPPO", safety: "safe" },
- { pkg: "com.coloros.filemanager", label: "Filemanager", description: "ColorOS File Manager", safety: "caution" },
- { pkg: "com.coloros.findmyphone", label: "Findmyphone", description: "Find phone Find phone, logout from oppo account before", safety: "safe" },
- { pkg: "com.coloros.findphone.client2", label: "Client2", description: "Find phone Find phone, logout from oppo account before", safety: "caution" },
- { pkg: "com.coloros.floatassistant", label: "Floatassistant", description: "GA ball, Assistive ball feature.", safety: "safe" },
- { pkg: "com.coloros.focusmode", label: "Focusmode", description: "Focus mode it's option that can be found in settings.", safety: "safe" },
- { pkg: "com.coloros.gallery3d", label: "Gallery3d", description: "Gallery Stock gallery app.", safety: "caution" },
- { pkg: "com.coloros.gamespace", label: "Gamespace", description: "Game Space Hub for your Games + some performance optimizations https://community.coloros.com/thread-9962-1-1.html", safety: "safe" },
- { pkg: "com.coloros.gamespaceui", label: "Gamespaceui", description: "GameSpace Gaming utility aiming at 'optimizing your gaming experience'. Has a lot of permissions. For instance, it has internet access, will scans all the apps you have on your phones (to find games), can performs Bluetooth scan and has access to the metadata of your media files (e.g the place where you took a picture).", safety: "safe" },
- { pkg: "com.coloros.gesture", label: "Gesture", description: "Gestures & Motions Somatic gestures (double tap to light up the screen)", safety: "safe" },
- { pkg: "com.coloros.healthcheck", label: "Healthcheck", description: "Health check Health check? Probably hidden.", safety: "safe" },
- { pkg: "com.coloros.healthservice", label: "Healthservice", description: "Health service Another thing related to health check", safety: "safe" },
- { pkg: "com.coloros.karaoke", label: "Karaoke", description: "In-ear monitoring Basically ColorOS's high volume warning system. Can be removed fine if you don't want it.", safety: "safe" },
- { pkg: "com.coloros.launcher.layout", label: "Layout", description: "Useless code that means nothing for the launcher", safety: "safe" },
- { pkg: "com.coloros.lockassistant", label: "Lockassistant", description: "You can't remove this app using adb.", safety: "keep" },
- { pkg: "com.coloros.logkit", label: "Logkit", description: "LogKit Logs, Dial *#800# for running it", safety: "safe" },
- { pkg: "com.coloros.logkit.plugin.upload", label: "Upload", description: "Useless plugin for logs", safety: "safe" },
- { pkg: "com.coloros.mapcom.frame", label: "Frame", description: "Useless frameworks", safety: "safe" },
- { pkg: "com.coloros.mcs", label: "Mcs", description: "Package: com.coloros.mcs", safety: "safe" },
- { pkg: "com.coloros.musiclink", label: "Musiclink", description: "Music Party This app allows you to play music through different phones, synchronised. https://www.youtube.com/watch?v=3Ak222Z79RY", safety: "caution" },
- { pkg: "com.coloros.notificationmanager", label: "Notificationmanager", description: "Needed for notification manager and scheduled do not disturb.", safety: "caution" },
- { pkg: "com.coloros.ocrscanner", label: "Ocrscanner", description: "ColorOS Optical character recognition scanner", safety: "safe" },
- { pkg: "com.coloros.ocrservice", label: "Ocrservice", description: "Extract text from images.", safety: "safe" },
- { pkg: "com.coloros.ocs.opencapabilityservice", label: "Opencapabilityservice", description: "Security things and something related to Chinese payment", safety: "safe" },
- { pkg: "com.coloros.onekeylockscreen", label: "Onekeylockscreen", description: "Lock your phone if you click on the app icon. Completely useless unless your physical power button is damaged. This app still has the permission to list all the apps installed on the phone. Pithus analysis: https://beta.pithus.org/report/ece4088357c0a47dffd96bdc46a7b535d448c1a3619d995f7032df3be6cb0a38", safety: "safe" },
- { pkg: "com.coloros.operationManual", label: "OperationManual", description: "Help & feedback Help (in Settings - Other Settings)", safety: "safe" },
- { pkg: "com.coloros.operationtips", label: "Operationtips", description: "Tips", safety: "safe" },
- { pkg: "com.coloros.oppoguardelf", label: "Oppoguardelf", description: "Needed for power-saving and security", safety: "caution" },
- { pkg: "com.coloros.oppoguardelf.restrict_plugin", label: "Restrict_plugin", description: "Needed components for com.coloros.oppoguardelf. Needed for power-saving and security. Also, the plugin is bloated with logs and statistics.", safety: "caution" },
- { pkg: "com.coloros.oppoguardelf.secretplugin", label: "Secretplugin", description: "Needed components for com.coloros.oppoguardelf. Needed for power-saving and security. Also, the plugin is bloated with logs and statistics.", safety: "caution" },
- { pkg: "com.coloros.oppomultiapp", label: "Oppomultiapp", description: "App cloner Needed for app clone feature.", safety: "safe" },
- { pkg: "com.coloros.oshare", label: "Oshare", description: "Oppo Share File sharing app to transfer data from/to Oppo devices only. Seems to use weak crypto (AES ECB mode) and has weird permissions (such as `READ_CONTACTS`). WARNING: removing this app will break the functionality to share photos directly from ColorOS Photos app and break the 'share with' prompt after taking a screenshot. Pithus analysis: https://beta.pithus.org/report/170f4a14be24a2e2135cd956a038aae9e2f78c845f3161b84c5545dbec03fad9", safety: "caution" },
- { pkg: "com.coloros.phonemanager", label: "Phonemanager", description: "Phone Manager Provides so called 'optimization tools' and various security scanning services. These virus scanning services may have privacy implications. Pithus analysis: https://beta.pithus.org/report/6b7d9e117ffb600b852f3785ede4f3773385fc291376e94a061bf7ed787dec48", safety: "safe" },
- { pkg: "com.coloros.phonenoareainquire", label: "Phonenoareainquire", description: "Number Origin", safety: "safe" },
- { pkg: "com.coloros.pictorial", label: "Pictorial", description: "LockscreenMagazine Removal will result in no longer being able to access Lockscreen settings.", safety: "keep" },
- { pkg: "com.coloros.prome.service", label: "Service", description: "Useless frameworks. About feedback and smart touch.", safety: "safe" },
- { pkg: "com.coloros.prome.smsservice", label: "Smsservice", description: "Useless SMS frameworks.", safety: "safe" },
- { pkg: "com.coloros.recents", label: "Recents", description: "Recent apps. Provides navigation to alternate between multiple apps. Removal will result in no\"Recent App\" list and re-enablement will cause a soft reload.", safety: "caution" },
- { pkg: "com.coloros.regservice", label: "Regservice", description: "Mobile DM authentication related (recommended to be uninstalled)", safety: "safe" },
- { pkg: "com.coloros.remoteguardservice", label: "Remoteguardservice", description: "Remote Guard Service Have only useless statistics and depends on: com.coloros.mcs, com.heytap.mcs ONLY FOR CHINA.", safety: "safe" },
- { pkg: "com.coloros.safecenter", label: "Safecenter", description: "Security Center It breaks 'display over other apps' permission!", safety: "keep" },
- { pkg: "com.coloros.safecenter.config_plugin", label: "Config_plugin", description: "This plugin doesn't have any important things. It's safe to remove, useless logs code.", safety: "safe" },
- { pkg: "com.coloros.safesdkproxy", label: "Safesdkproxy", description: "It has cleaner and security things.", safety: "safe" },
- { pkg: "com.coloros.sau", label: "Sau", description: "System Upgrade Services Needed to update ColorOS.", safety: "caution" },
- { pkg: "com.coloros.sauhelper", label: "Sauhelper", description: "SAUHelper It has only statistics and logs.", safety: "safe" },
- { pkg: "com.coloros.scenemode", label: "Scenemode", description: "Scene mode and simple mode", safety: "safe" },
- { pkg: "com.coloros.sceneservice", label: "Sceneservice", description: "Data Services Platform Data Services Platform (the entire Breeno option in the settings menu disappears after deletion)", safety: "safe" },
- { pkg: "com.coloros.screenrecorder", label: "Screenrecorder", description: "Screen recorder Stock screen recording app.", safety: "caution" },
- { pkg: "com.coloros.screenshot", label: "Screenshot", description: "Screenshot Needed for screenshots. Very useful app.", safety: "caution" },
- { pkg: "com.coloros.securepay", label: "Securepay", description: "Payment system from Oppo allowing you to pay with your phone Pithus analysis: https://beta.pithus.org/report/65246664d3795a5ac1b402d28456903e1b3bd76176de8298b3ea96c6c592ae9a", safety: "safe" },
- { pkg: "com.coloros.securityguard", label: "Securityguard", description: "Security Events (located in Phone Manager - Security Tools, it is recommended to uninstall it).", safety: "safe" },
- { pkg: "com.coloros.securitykeyboard", label: "Securitykeyboard", description: "Secure keyboard Not needed if your keyboard is already good.", safety: "safe" },
- { pkg: "com.coloros.securitypermission", label: "Securitypermission", description: "Handles app permission management. DO NOT REMOVE THIS", safety: "keep" },
- { pkg: "com.coloros.sharescreen", label: "Sharescreen", description: "Shared screen assistance Shared screen assistance (nobody need it)", safety: "safe" },
- { pkg: "com.coloros.simsettings", label: "Simsettings", description: "Data usage Data usage and OTA updates", safety: "caution" },
- { pkg: "com.coloros.smartdrive", label: "Smartdrive", description: "Breeno smart drive it's for smart things.", safety: "safe" },
- { pkg: "com.coloros.smartlock", label: "Smartlock", description: "\"Phone stays unlocked when using a wearable device\" feature support component.", safety: "safe" },
- { pkg: "com.coloros.smartsidebar", label: "Smartsidebar", description: "Smart Sidebar Edge panel settings", safety: "safe" },
- { pkg: "com.coloros.soundrecorder", label: "Soundrecorder", description: "ColorOS Sound Recorder", safety: "caution" },
- { pkg: "com.coloros.speechassist", label: "Speechassist", description: "ColorOS Speech Assistant", safety: "safe" },
- { pkg: "com.coloros.systemclone", label: "Systemclone", description: "System Cloner Creates multiple users on device", safety: "caution" },
- { pkg: "com.coloros.trafficlimit", label: "Trafficlimit", description: "Useless frameworks", safety: "safe" },
- { pkg: "com.coloros.translate.engine", label: "Engine", description: "Used for translation?", safety: "safe" },
- { pkg: "com.coloros.uxdesign", label: "Uxdesign", description: "Needed for themes", safety: "caution" },
- { pkg: "com.coloros.video", label: "Video", description: "Video Player Default Oppo and OnePlus video player with too much permissions (21) for a video player! Note: using inbuilt screen recorder you won't be able to open the recorded video from the notification view. Pithus analysis: https://beta.pithus.org/report/4ceb96c23ad0e26ee8eceab293d251f8b1bddaf4a901741ee467e0bb867db6e9", safety: "safe" },
- { pkg: "com.coloros.wallet", label: "Wallet", description: "Oppo Wallet", safety: "safe" },
- { pkg: "com.coloros.wallpapers", label: "Wallpapers", description: "Wallpapers Needed for wallpapers", safety: "caution" },
- { pkg: "com.coloros.weather.service", label: "Service", description: "Name indicates it's for the weather, but removing this causes the screen to flash and the phone will eventually become unresponsive. https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/issues/585. Disabling instead does not seem to cause this problem, see https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/issues/585#issuecomment-3796739025", safety: "caution" },
- { pkg: "com.coloros.weather2", label: "Weather2", description: "ColorOS weather app. Removal seems to trigger a bootloop on some phones. You should try, several users removed this app without any trouble on Oppo/Realme device with Android 11+ See: https://github.com/0x192/universal-android-debloater/issues/211", safety: "caution" },
- { pkg: "com.coloros.widget.smallweather", label: "Smallweather", description: "It is classified as a Safe app to remove. It is a widget that displays clock and weather, weather warnings, the clock, 15-day forecasts, etc. Does not work with the at a Glance Google widget", safety: "caution" },
- { pkg: "com.coloros.wifibackuprestore", label: "Wifibackuprestore", description: "WifiBackupRestore Backup Wi-Fi to the cloud NOTE: Removing or disabling this app would lose the ability for Backup and Restore functionality to backup locally stored wifi access points or credentials locally on your device", safety: "caution" },
- { pkg: "com.coloros.wifisecuredetect", label: "Wifisecuredetect", description: "Useless for Wi-Fi. Has captcha and mobile number verification.", safety: "safe" },
- { pkg: "com.coloros.wirelesssettings", label: "Wirelesssettings", description: "Wireless settings Probably needed.", safety: "caution" },
- { pkg: "com.heytap.appplatform", label: "Appplatform", description: "Needed for OTA Updates also causes bootloop on some phones after uninstall.", safety: "keep" },
- { pkg: "com.heytap.browser", label: "Browser", description: "Oppo Browser Rebranded HeyTap browser for Oppo and OnePlus devices. Full of ads and spams you in notifications. You should never use this browser HeyTap's terrible privacy policy: https://brand.heytap.com/eu/privacy.html", safety: "safe" },
- { pkg: "com.heytap.cast", label: "Cast", description: "Screencast Phone casting (casting phone screen to other devices).", safety: "caution" },
- { pkg: "com.heytap.cloud", label: "Cloud", description: "HeyTap Cloud Bad privacy policy: https://muc.heytap.com/document/heytap/oversea/privacyPolicy/privacyPolicy_en-US.html Why does the app need `REQUEST_INSTALL_PACKAGES` (can install packages)? Pithus analysis: https://beta.pithus.org/report/dbf265db47f8632453bb83ef51ea1d921413c02a8d24c989345896de83704a75", safety: "safe", deps: ["com.heytap.mcs"] },
- { pkg: "com.heytap.colorfulengine", label: "Colorfulengine", description: "Useless frameworks for theming. Maybe needed for premium", safety: "safe" },
- { pkg: "com.heytap.datamigration", label: "Datamigration", description: "Some tools for stock browser (not Chrome), but it's Chinese and probably unused", safety: "safe" },
- { pkg: "com.heytap.habit.analysis", label: "Analysis", description: "Most likely used to track your habits from IoT HeyTap devices [TO BE CONFIRMED]", safety: "safe" },
- { pkg: "com.heytap.headset", label: "Headset", description: "HeyTap Melody App used to manage Oppo Bluetooth Earphones.", safety: "caution" },
- { pkg: "com.heytap.htms", label: "Htms", description: "Mobile Services Mobile services (removal may not be able to log in to OPPO account).", safety: "caution" },
- { pkg: "com.heytap.linker", label: "Linker", description: "DistUI Needed for broadcast", safety: "caution" },
- { pkg: "com.heytap.market", label: "Market", description: "Heytap/Oppo app store.There is no benefit of using this app store and you should not keep a privileged app with as many permissions. https://developers.oppomobile.com/newservice/capability?pagename=app_store Pithus analysis: https://beta.pithus.org/report/3a2a10af9310411d814fd6dd252adec1ab0c06adf32a675b7534c3edc0e534bf", safety: "safe", deps: ["com.heytap.mcs"] },
- { pkg: "com.heytap.mcs", label: "Mcs", description: "System messages with trackers", safety: "safe" },
- { pkg: "com.heytap.music", label: "Music", description: "Default Oppo Music App with insecure WebView Implementation (execution of user controlled code in WebView is an important security hole. Has also weird permissions (QUERY_ALL_PACKAGES and BLUETOOTH?) https://beta.pithus.org/report/befa0ec0616c553632379f069453b0ca74ee29fd1428b9fce19c1657e6f97d8b", safety: "safe" },
- { pkg: "com.heytap.mydevices", label: "Mydevices", description: "My devices My devices (showing headphones and such)", safety: "caution" },
- { pkg: "com.heytap.openid", label: "Openid", description: "OpenID Device logos and advertisements; uninstallation causes anomalies in cloud drive functionality", safety: "safe" },
- { pkg: "com.heytap.pictorial", label: "Pictorial", description: "Lock Screen Magazine Lock Screen Magazine provides high-quality wallpapers and allows users to customize their lock screens. Every time you wake your screen, the wallpaper automatically changes. https://play.google.com/store/apps/details?id=com.heytap.pictorial", safety: "safe" },
- { pkg: "com.heytap.quicksearchbox", label: "Quicksearchbox", description: "Global Search Realme. This will remove the single swipe from top to bottom search that has lots of Chinese in it.", safety: "safe" },
- { pkg: "com.heytap.speechassist", label: "Speechassist", description: "Breeno Voice Breeno assistant.", safety: "safe" },
- { pkg: "com.heytap.synergy", label: "Synergy", description: "HeySynergy Another thing related to broadcast", safety: "caution" },
- { pkg: "com.heytap.themestore", label: "Themestore", description: "Theme Store with 73 permissions! (including CAMERA, CALL_PHONE, READ_CONTACTS, REQUEST_INSTALL_PACKAGES...) and 2 trackers. Pithus analysis: https://beta.pithus.org/report/e8c4fc2bae420cf5f094ce914f25accdede5152f9d801db6eb32a4020a7726b2", safety: "safe" },
- { pkg: "com.heytap.usercenter", label: "Usercenter", description: "Login service for various HeyTap related services like HeyTap Cloud etc. Needed if you want to join Early Access Testing for new ColorOS/RealmeUI [APK NEEDED]", safety: "caution" },
- { pkg: "com.heytap.usercenter.overlay", label: "Overlay", description: "overlay needed to usercenter app has resources", safety: "caution" },
- { pkg: "com.heytap.yoli", label: "Yoli", description: "Video player with Chinese tracking.", safety: "safe" },
- { pkg: "com.nearme.atlas", label: "Atlas", description: "Secure payment", safety: "safe" },
- { pkg: "com.nearme.browser", label: "Browser", description: "Default web browser", safety: "safe" },
- { pkg: "com.nearme.deamon", label: "Deamon", description: "Package needed by com.nearme.statistics.rom to run service in background at every boot even though the app has been uninstalled", safety: "safe", neededBy: ["com.nearme.statistics.rom"] },
- { pkg: "com.nearme.gamecenter", label: "Gamecenter", description: "Game Center Acts like QooApp that has a game forum, news, etc. Contains trackers.", safety: "safe" },
- { pkg: "com.nearme.instant.platform", label: "Platform", description: "A lot of tracking for demo game ads", safety: "safe" },
- { pkg: "com.nearme.romupdate", label: "Romupdate", description: "Update Service Probably it's only for notifications. Anyway, better remove it if you want to remove updates too.", safety: "caution" },
- { pkg: "com.nearme.statistics.rom", label: "Rom", description: "User Experience Program Collect user data and sends them to Oppo. Intrusive and starts at boot See https://support.oppo.com/uk/answer/?aid=neu105 Note: removing it may break the search feature in the settings on some ColorOS versions. Pithus analysis: https://beta.pithus.org/report/5e06191ac6f8aefd39642f6341ee4897039815f5059dbe093a7bd2fe1e20c038", safety: "safe" },
- { pkg: "com.nearme.themespace", label: "Themespace", description: "Theme store", safety: "safe" },
- { pkg: "com.nearme.themestore", label: "Themestore", description: "Themes store", safety: "safe" },
- { pkg: "com.oneplus", label: "Oneplus", description: "Oneplus System Handles the Oneplus system framework? Possibly unsafe to disable, but please contribute information about what happens if you do.", safety: "caution" },
- { pkg: "com.oneplus.accessory", label: "Accessory", description: "Oneplus Link I'm guessing this has to do with connecting to Oneplus accessories, like the Oneplus Buds (wireless earbuds). Might wanna keep it enabled if you use oneplus accessory devices. Noticed no negative effects from disable after weeks of use.", safety: "safe" },
- { pkg: "com.oneplus.account", label: "Account", description: "OnePlus Account Enables Oneplus account login on device. Probably handles authentication for Oneplus apps. Safe to remove if you don't use them.", safety: "caution" },
+ { pkg: "com.oneplus.backuprestore", label: "Backuprestore", description: "OnePlus Switch (https://play.google.com/store/apps/details?id=com.oneplus.backuprestore)", safety: "safe" },
+ { pkg: "com.oneplus.brickmode", label: "Brickmode", description: "OnePlus Zen Mode (https://play.google.com/store/apps/details?id=com.oneplus.brickmode)", safety: "safe" },
+ { pkg: "com.oneplus.bttestmode", label: "Bttestmode", description: "OnePlus Bluetooth test mode", safety: "safe" },
+ { pkg: "com.oneplus.card", label: "Card", description: "Card Package", safety: "safe" },
+ { pkg: "com.oneplus.carrierlocation", label: "Carrierlocation", description: "Carrier Location Access", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.android", label: "Android", description: "Android System Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.com.android.networkstack.inprocess", label: "Inprocess", description: "Theming for Android system parts?", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.com.android.networkstack.inprocess.cn", label: "Cn", description: "Theming for Android system parts?", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.com.android.systemui", label: "Systemui", description: "System UI Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.com.android.wifi.resources", label: "Resources", description: "System Wi-Fi resources Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.com.google.android.networkstack", label: "Networkstack", description: "Network manager Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.com.google.android.networkstack.cn", label: "Cn", description: "Network manager Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.commonoverlay.com.oneplus", label: "Oneplus", description: "Oneplus System Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.communication.data", label: "Data", description: "Oneplus call recorder service. Feature accessible from the stock dialer app", safety: "caution" },
+ { pkg: "com.oneplus.cota", label: "Cota", description: "Carrier Update", safety: "caution" },
+ { pkg: "com.oneplus.engmode", label: "Engmode", description: "Some kind of Engineer mode? I've no clue.", safety: "caution" },
+ { pkg: "com.oneplus.factorymode", label: "Factorymode", description: "FactoryMode", safety: "safe" },
+ { pkg: "com.oneplus.factorymode.specialtest", label: "Specialtest", description: "Engineering Mode Special Test", safety: "safe" },
+ { pkg: "com.oneplus.gamespace", label: "Gamespace", description: "OnePlus Game Space", safety: "safe", deps: ["com.oplus.cosa"] },
+ { pkg: "com.oneplus.note", label: "Note", description: "OnePlus Notes app", safety: "caution" },
+ { pkg: "com.oneplus.opbugreportlite", label: "Opbugreportlite", description: "OPBugReportLite", safety: "safe" },
+ { pkg: "com.oneplus.productoverlay.android", label: "Android", description: "Android System Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.productoverlay.com.oneplus", label: "Oneplus", description: "Oneplus System Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.productoverlay.com.android.providers.settings", label: "Settings", description: "Settings Storage Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.providers.media", label: "Media", description: "OnePlus Media Storage", safety: "safe" },
+ { pkg: "com.oneplus.soundrecorder", label: "Soundrecorder", description: "Recorder", safety: "caution" },
+ { pkg: "net.oneplus.commonlogtool", label: "Commonlogtool", description: "OnePlus Common Log Tool", safety: "safe" },
+ { pkg: "net.oneplus.forums", label: "Forums", description: "OnePlus Community (https://play.google.com/store/apps/details?id=net.oneplus.forums)", safety: "safe" },
+ { pkg: "com.oneplus.opsports", label: "Opsports", description: "Cricket Scores (https://play.google.com/store/apps/details?id=com.oneplus.opsports)", safety: "safe" },
+ { pkg: "com.oneplus.orm", label: "Orm", description: "Seems to be Oneplus' Memory Management System according to a press-kit/-release they made for Android 11 (m...", safety: "caution" },
+ { pkg: "net.oneplus.odm.provider", label: "Provider", description: "Insight Provider", safety: "safe" },
+ { pkg: "net.oneplus.odm", label: "Odm", description: "\"OnePlus System Service\"", safety: "safe" },
+ { pkg: "net.oneplus.provider.appcategoryprovider", label: "Appcategoryprovider", description: "AppCategoryProvider", safety: "safe" },
+ { pkg: "net.oneplus.push", label: "Push", description: "Push", safety: "safe" },
+ { pkg: "net.oneplus.wallpaperresources", label: "Wallpaperresources", description: "Resources for some live wall papers? Not sure.", safety: "caution" },
+ { pkg: "net.oneplus.weather", label: "Weather", description: "OnePlus Weather (https://play.google.com/store/apps/details?id=net.oneplus.weather)", safety: "safe" },
+ { pkg: "net.oneplus.widget", label: "Widget", description: "OnePlus Widget", safety: "safe" },
+ { pkg: "com.oneplus.opshelf", label: "Opshelf", description: "OnePlus Shelf (https://play.google.com/store/apps/details?id=com.oneplus.opshelf)", safety: "safe" },
+ { pkg: "com.oneplus.iconpack.circle", label: "Circle", description: "OnePlus Icon Pack - Round (https://play.google.com/store/apps/details?id=com.oneplus.iconpack.circle)", safety: "caution" },
+ { pkg: "com.oneplus.iconpack.oneplus", label: "Oneplus", description: "OnePlus Icon Pack (https://play.google.com/store/apps/details?id=com.oneplus.iconpack.oneplus)", safety: "caution" },
+ { pkg: "com.oneplus.iconpack.square", label: "Square", description: "OnePlus Icon Pack - Square (https://play.google.com/store/apps/details?id=com.oneplus.iconpack.square)", safety: "caution" },
+ { pkg: "com.oneplus.filemanager", label: "Filemanager", description: "File manager", safety: "caution" },
+ { pkg: "com.oneplus", label: "Oneplus", description: "Oneplus System", safety: "caution" },
+ { pkg: "com.oneplus.accessory", label: "Accessory", description: "Oneplus Link", safety: "safe" },
+ { pkg: "com.oneplus.account", label: "Account", description: "OnePlus Account", safety: "caution" },
{ pkg: "com.oneplus.account.basiccolorblack.overlay", label: "Overlay", description: "Dark theme for Oneplus Account?", safety: "caution" },
{ pkg: "com.oneplus.account.basiccolorwhite.overlay", label: "Overlay", description: "Light theme for Oneplus Account?", safety: "caution" },
- { pkg: "com.oneplus.android.cellbroadcast.overlay", label: "Overlay", description: "Wireless emergency alerts Theme pack Guessing it's a pack of themes for the emergency alert UI, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.aod", label: "Aod", description: "Always On Display / Ambient Display Runs in the background. When enabled in settings it shows clock and notifications when you raise the phone or touch the screen. This is basically a lower-power lock-screen. It could in theory reduce power draw if you check notifications/clock often as OLED screens draw minimal power showing a mostly black screen(black = pixel off), but in practice the number of times you'll unintentionally trigger it will likely eat up any potential power savings and more. And if your device doesn't have an OLED screen this will draw way more power. Most of these power savings could be applied to your standard lock-screen simply by making your background image completely black.", safety: "safe" },
+ { pkg: "com.oneplus.android.cellbroadcast.overlay", label: "Overlay", description: "Wireless emergency alerts Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.aod", label: "Aod", description: "Always On Display / Ambient Display", safety: "safe" },
{ pkg: "com.oneplus.aod.basiccolorblack.overlay", label: "Overlay", description: "Theme overlay for AOD? (Always On Display)", safety: "caution" },
{ pkg: "com.oneplus.aod.basiccolorwhite.overlay", label: "Overlay", description: "Theme overlay for AOD? (Always On Display)", safety: "caution" },
- { pkg: "com.oneplus.aodnotification.overlay.gold", label: "Gold", description: "AOD notification gold", safety: "safe" },
- { pkg: "com.oneplus.aodnotification.overlay.purple", label: "Purple", description: "AOD notification purple", safety: "safe" },
- { pkg: "com.oneplus.aodnotification.overlay.red", label: "Red", description: "AOD notification red", safety: "safe" },
+ { pkg: "com.oneplus.aodnotification.overlay.gold", label: "Gold", description: "System UI Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.aodnotification.overlay.purple", label: "Purple", description: "System UI Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.aodnotification.overlay.red", label: "Red", description: "System UI Theme pack", safety: "caution" },
{ pkg: "com.oneplus.applocker", label: "Applocker", description: "Encrypts and locks apps behind password access.", safety: "caution" },
- { pkg: "com.oneplus.appupgrader", label: "Appupgrader", description: "Built-in App Updates Based on the name I'm guessing it's an upater for built-in Oneplus apps? Seems safe to disable, but only seems to run on boot, so there's little to be gained from disabling.", safety: "caution" },
- { pkg: "com.oneplus.asti", label: "Asti", description: "OPAI App Prediction Service, SarahService, bindsarah Its code is too difficult to understand, but it looks like AI training.", safety: "caution" },
- { pkg: "com.oneplus.backuprestore", label: "Backuprestore", description: "OnePlus Switch (https://play.google.com/store/apps/details?id=com.oneplus.backuprestore) Lets you migrate contacts, text messages, photos, and other data from one device to another. Can also backup data as a compressed archive.", safety: "safe" },
- { pkg: "com.oneplus.backuprestore.remoteservice", label: "Remoteservice", description: "Likely a backend service for OnePlus Switch(com.oneplus.backuprestore). I've never seen it run in the background. Probably safe to disable.", safety: "caution" },
- { pkg: "com.oneplus.brickmode", label: "Brickmode", description: "OnePlus Zen Mode (https://play.google.com/store/apps/details?id=com.oneplus.brickmode) Zen Mode helps you put down your phone and enjoy your life. In Zen Mode you will only be able to take photos and answer calls.", safety: "safe" },
- { pkg: "com.oneplus.bttestmode", label: "Bttestmode", description: "OnePlus Bluetooth test mode Type *#*#232339#*#* in the OnePlus dialer to access this hidden test menu.", safety: "safe" },
+ { pkg: "com.oneplus.appupgrader", label: "Appupgrader", description: "Built-in App Updates", safety: "caution" },
+ { pkg: "com.oneplus.backuprestore.remoteservice", label: "Remoteservice", description: "Likely a backend service for OnePlus Switch(com.oneplus.backuprestore).", safety: "caution" },
{ pkg: "com.oneplus.calculator", label: "Calculator", description: "Stock Oneplus Calculator app.", safety: "caution" },
{ pkg: "com.oneplus.calculator.basiccolorblack.overlay", label: "Overlay", description: "Theme overlay for Oneplus Calculator app?", safety: "caution" },
{ pkg: "com.oneplus.calendar.black.overlay", label: "Overlay", description: "Theme overlay for stock Calendar app?", safety: "caution" },
{ pkg: "com.oneplus.calendar.white.overlay", label: "Overlay", description: "Theme overlay for stock Calendar app?", safety: "caution" },
- { pkg: "com.oneplus.camera", label: "Camera", description: "Camera The stock Oneplus camera app.", safety: "caution" },
- { pkg: "com.oneplus.camera.pictureprocessing", label: "Pictureprocessing", description: "Is it for image processing?", safety: "caution" },
- { pkg: "com.oneplus.camera.service", label: "Service", description: "Runs in the background on some phones. Not sure what it does; camera functions fine without it. Could be related to photo backup? WARNING: may cause a bootloop when using a custom ROM on Android 14 (in this case, Nameless AOSP). Does not affect users running OxygenOS.", safety: "safe" },
- { pkg: "com.oneplus.card", label: "Card", description: "Card Package Widget which lets you add membership card in Shelf. You enter numbers for a club card or something and it'll store it and generate a barcode for you. Shelf is a page on your home screen that allows you to take memos, add widgets, gain access to your most-used apps, and get a quick glimpse of the weather. Swipe right (from the left edge of your home screen) to reveal it.", safety: "safe" },
+ { pkg: "com.oneplus.camera", label: "Camera", description: "Camera", safety: "caution" },
+ { pkg: "com.oneplus.camera.service", label: "Service", description: "Runs in the background on some phones.", safety: "safe" },
{ pkg: "com.oneplus.card.black.overlay", label: "Overlay", description: "Theme overlay for Oneplus Card package?", safety: "caution" },
{ pkg: "com.oneplus.card.white.overlay", label: "Overlay", description: "Theme overlay for Oneplus Card package?", safety: "caution" },
- { pkg: "com.oneplus.carrierlocation", label: "Carrierlocation", description: "Carrier Location Access Runs on boot, but not in the background beyond that. Not sure what this does. Could be related to detecting region to determine which radio frequencies to use? Noticed no ill effects from weeks of having it disabled.", safety: "caution" },
- { pkg: "com.oneplus.chargingpilar", label: "Chargingpilar", description: "Geolocates the phone to find OnePlus charging stations nearby. Connects to 'gateway.oneplus.net' Pithus analysis: https://beta.pithus.org/report/8c157eeec2931d3d1140aa8c452d7afa570e04c9d51e6cd5987dbb3ec43df4f9", safety: "safe" },
{ pkg: "com.oneplus.cloud.basiccolorblack.overlay", label: "Overlay", description: "Theme overlay for some Oneplus Cloud thing?", safety: "caution" },
{ pkg: "com.oneplus.cloud.basiccolorwhite.overlay", label: "Overlay", description: "Theme overlay for some Oneplus Cloud thing?", safety: "caution" },
- { pkg: "com.oneplus.collectiondata", label: "Collectiondata", description: "Collection data to telephony?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.android", label: "Android", description: "Needed for notifications? Status_bar?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.com.android.networkstack.inprocess", label: "Inprocess", description: "Needed for DHCP hostname?, captive portal HTTP URLs?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.com.android.networkstack.inprocess.cn", label: "Cn", description: "Needed for DHCP hostname?, captive portal HTTP URLs? Generate_204 Chinese Google?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.com.android.systemui", label: "Systemui", description: "Needed for wellbeing or notifications?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.com.android.wifi.resources", label: "Resources", description: "Wi-Fi configs?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.com.google.android.networkstack", label: "Networkstack", description: "Needed for DHCP hostname?, captive portal HTTP URLs?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.com.google.android.networkstack.cn", label: "Cn", description: "Needed for DHCP hostname?, captive portal HTTP URLs? Generate_204 Chinese Google?", safety: "caution" },
- { pkg: "com.oneplus.commonoverlay.com.oneplus", label: "Oneplus", description: "Testing things, debugging", safety: "safe" },
- { pkg: "com.oneplus.communication.data", label: "Data", description: "Oneplus call recorder service. Feature accessible from the stock dialer app", safety: "caution" },
- { pkg: "com.oneplus.config", label: "Config", description: "OPConfig Occasionally runs in the background. Package source is: OPOnlineConfig.apk Guessing it might handle communication certificates and general network config for Oneplus apps. Only has INTERNET and RECEIVE_BOOT_COMPLETED permissions. 'Tips & Support' will be removed from settings.", safety: "caution" },
- { pkg: "com.oneplus.contacts", label: "Contacts", description: "Oneplus Contacts", safety: "caution" },
+ { pkg: "com.oneplus.config", label: "Config", description: "OPConfig", safety: "caution" },
{ pkg: "com.oneplus.contacts.basiccolorblack.overlay", label: "Overlay", description: "Theme overlay for Oneplus Contacts?", safety: "caution" },
{ pkg: "com.oneplus.contacts.basiccolorwhite.overlay", label: "Overlay", description: "Theme overlay for Oneplus Contacts?", safety: "caution" },
- { pkg: "com.oneplus.coreservice", label: "Coreservice", description: "Android System Important system package for Oneplus phones? Runs in the background as part of the system. Contains broadcast dispatch and theme handler services. Probably unsafe to disable, but please contribute info about what happens if you do.", safety: "caution" },
- { pkg: "com.oneplus.cota", label: "Cota", description: "Carrier Update Runs in the background. cota = Carrier OTA. Handles carrier-specific OTA updates? Probably safe to disable if you didn't get your phone from a carrier; the normal System Update(com.oneplus.opbackup) should handle the OTA updates. I can confirm that I got an OTA notification even with this disabled.", safety: "caution" },
- { pkg: "com.oneplus.dataoptimization", label: "Dataoptimization", description: "OPDataOptimization Doesn't contain any services and I've never seen it run.", safety: "caution" },
- { pkg: "com.oneplus.deskclock", label: "Deskclock", description: "Clock The stock Oneplus clock app.", safety: "caution" },
+ { pkg: "com.oneplus.coreservice", label: "Coreservice", description: "Android System", safety: "caution" },
+ { pkg: "com.oneplus.dataoptimization", label: "Dataoptimization", description: "OPDataOptimization", safety: "caution" },
+ { pkg: "com.oneplus.deskclock", label: "Deskclock", description: "Clock", safety: "caution" },
{ pkg: "com.oneplus.deskclock.black.overlay", label: "Overlay", description: "Theme overlay for Oneplus Clock app?", safety: "caution" },
{ pkg: "com.oneplus.deskclock.white.overlay", label: "Overlay", description: "Theme overlay for Oneplus Clock app?", safety: "caution" },
- { pkg: "com.oneplus.diagnosemanager", label: "Diagnosemanager", description: "Logging app for diagnosis/troubleshooting when the SIM card state change. Only used on devices running OxygenOS 9 and lower. Runs at boot and triggers when SIM card state change. Pithus analysis: https://beta.pithus.org/report/f4c76054795bf55012edf1f60e992b6e339085b9ca2cbe685917a62dd07492c0", safety: "caution" },
- { pkg: "com.oneplus.dialer", label: "Dialer", description: "OnePlus Dialer used in OxygenOS 11 and lower. Note: don't forget to download another phone dialer app before removing this package.", safety: "caution" },
- { pkg: "com.oneplus.dirac.simplemanager", label: "Simplemanager", description: "Runs in the background. Main Dirac service. Audio fidelity improvement from the Swedish company Dirac. Attempts to achieve a flat frequency response curve(i.e: fidelity). Should mainly improve speaker fidelity as it can be pre-calculated and stored as a corrective EQ curve, something not possible for most devices connected through the 3.5mm jack; presets only exist for a very limited number of headphones. Change for non-preset 3.5mm jack devices is just a generic EQ curve that could decrease fidelity just as likely as it could increase it.", safety: "caution" },
+ { pkg: "com.oneplus.diagnosemanager", label: "Diagnosemanager", description: "Logging app for diagnosis/troubleshooting when the SIM card state change. Only used on devices running Oxyg...", safety: "caution" },
+ { pkg: "com.oneplus.dirac.simplemanager", label: "Simplemanager", description: "Runs in the background.", safety: "caution" },
{ pkg: "com.oneplus.dirac.simplemanager.basiccolorblack.overlay", label: "Overlay", description: "Theme overlay for Dirac?", safety: "caution" },
{ pkg: "com.oneplus.dirac.simplemanager.basiccolorwhite.overlay", label: "Overlay", description: "Theme overlay for Dirac?", safety: "caution" },
- { pkg: "com.oneplus.dm", label: "Dm", description: "Subscriber Device Management Has only privacy online agreement activity.", safety: "safe" },
- { pkg: "com.oneplus.engmode", label: "Engmode", description: "Some kind of Engineer mode? I've no clue. Contains a bunch of activities with\"info\" in their names. Contains an\"OpFloatViewService\", but I've never seen it run.", safety: "caution" },
- { pkg: "com.oneplus.faceunlock", label: "Faceunlock", description: "Face Unlock Runs in the background as part of the system. Unlock your device by simply looking at the display. Face unlock is bad for security and privacy: https://www.ubergizmo.com/2017/03/galaxy-s8-facial-unlock-photograph/ https://www.kaspersky.com/blog/face-unlock-insecurity/21618/ https://www.freecodecamp.org/news/why-you-should-never-unlock-your-phone-with-your-face-79c07772a28/", safety: "safe" },
- { pkg: "com.oneplus.factorymode", label: "Factorymode", description: "FactoryMode Used in the factory to test devices. Type *#808# in the OnePlus dialer to access the hidden menu. Potential security risk: https://web.archive.org/web/20211103134620/https://twitter.com/fs0c131y/status/930115188988182531 It's possible for an app to enable root access on any device with the APK pre-installed. For now, this only works in ADB, which requires local access to the device.", safety: "safe" },
- { pkg: "com.oneplus.factorymode.specialtest", label: "Specialtest", description: "Engineering Mode Special Test Used in the factory to test devices. See com.oneplus.factorymode", safety: "safe" },
- { pkg: "com.oneplus.filemanager", label: "Filemanager", description: "File manager Stock OnePlus file manager app.", safety: "caution" },
+ { pkg: "com.oneplus.faceunlock", label: "Faceunlock", description: "Face Unlock", safety: "safe" },
{ pkg: "com.oneplus.filemanager.black.overlay", label: "Overlay", description: "Theme overlay for Oneplus File manager app?", safety: "caution" },
{ pkg: "com.oneplus.filemanager.white.overlay", label: "Overlay", description: "Theme overlay for Oneplus File manager app?", safety: "caution" },
- { pkg: "com.oneplus.gallery", label: "Gallery", description: "Oneplus Gallery (https://play.google.com/store/apps/details?id=com.oneplus.gallery) Occasionally runs in the background. Some old versions of the app (like for Oneplus 3 on Android 9) don't run in the background.", safety: "caution" },
- { pkg: "com.oneplus.gamespace", label: "Gamespace", description: "OnePlus Game Space Occasionally runs in the background as part of the system. Allows you to launch your game library, check game stats(such as playtime), activate game overlay features, change performance settings to tweak game/battery performance during gaming. This is the only way to access the recording buffer functionality (records the last X seconds into RAM and saves them when you tap save), so keep enabled if you need that or any of the other features.", safety: "safe", deps: ["com.oplus.cosa"] },
+ { pkg: "com.oneplus.gallery", label: "Gallery", description: "Oneplus Gallery (https://play.google.com/store/apps/details?id=com.oneplus.gallery)", safety: "caution" },
{ pkg: "com.oneplus.gamespace.black.overlay", label: "Overlay", description: "Theme overlay for Game Space?", safety: "caution" },
{ pkg: "com.oneplus.gamespace.white.overlay", label: "Overlay", description: "Theme overlay for Game Space?", safety: "caution" },
- { pkg: "com.oneplus.geoiptime", label: "Geoiptime", description: "Sets the Timezone (it is not an NTP client). Automatically starts at boot and connects to `checkip.amazonaws.com` and `gateway.oneplus.com`. Pithus analysis: https://beta.pithus.org/report/5e375a6b8da588a1490e42266f4e33975ce73207d79755a109101bd5fb07cc7c", safety: "caution" },
- { pkg: "com.oneplus.iconpack.circle", label: "Circle", description: "OnePlus Icon Pack - Round (https://play.google.com/store/apps/details?id=com.oneplus.iconpack.circle)", safety: "caution" },
- { pkg: "com.oneplus.iconpack.oneplus", label: "Oneplus", description: "OnePlus Icon Pack (https://play.google.com/store/apps/details?id=com.oneplus.iconpack.oneplus)", safety: "caution" },
- { pkg: "com.oneplus.iconpack.oneplush2", label: "Oneplush2", description: "OnePlus Hydrogen Icon Pack", safety: "safe" },
- { pkg: "com.oneplus.iconpack.onepluso2", label: "Onepluso2", description: "OnePlus Oxygen Icon Pack", safety: "safe" },
- { pkg: "com.oneplus.iconpack.square", label: "Square", description: "OnePlus Icon Pack - Square (https://play.google.com/store/apps/details?id=com.oneplus.iconpack.square)", safety: "caution" },
- { pkg: "com.oneplus.ifaaservice", label: "Ifaaservice", description: "IFAA = (China’s) Internet Finance Authentication Alliance Provides biometric authentication for Alipay. Safe to disable if you don't use it.", safety: "safe" },
- { pkg: "com.oneplus.membership", label: "Membership", description: "Red Cable Club Battery drain if account added. https://play.google.com/store/apps/details?id=com.oneplus.membership", safety: "safe" },
- { pkg: "com.oneplus.minidumpoptimization", label: "Minidumpoptimization", description: "OPMinidumpOptimization Runs in the background. Not sure what it does, but haven't noticed any negative effects from weeks of having it disabled.", safety: "safe" },
- { pkg: "com.oneplus.mms", label: "Mms", description: "OnePlus Messages (https://play.google.com/store/apps/details?id=com.oneplus.mms) Only used on OnePlus 8 / 8 Pro according to the description. Probably safe to remove, just make sure to install another SMS app to not lose that functionality; QKSMS is a good FOSS replacement for basic SMS functionality and Google Messages is an option if you need full RCS support.", safety: "caution" },
+ { pkg: "com.oneplus.ifaaservice", label: "Ifaaservice", description: "IFAA = (China\u2019s) Internet Finance Authentication Alliance", safety: "safe" },
+ { pkg: "com.oneplus.minidumpoptimization", label: "Minidumpoptimization", description: "OPMinidumpOptimization", safety: "safe" },
+ { pkg: "com.oneplus.mms", label: "Mms", description: "OnePlus Messages (https://play.google.com/store/apps/details?id=com.oneplus.mms)", safety: "caution" },
{ pkg: "com.oneplus.mms.basiccolorblack.overlay", label: "Overlay", description: "Dark theme overlay for Oneplus Messages app?", safety: "caution" },
{ pkg: "com.oneplus.mms.basiccolorwhite.overlay", label: "Overlay", description: "Light theme overlay for Oneplus Messages app?", safety: "caution" },
- { pkg: "com.oneplus.note", label: "Note", description: "OnePlus Notes app", safety: "caution" },
{ pkg: "com.oneplus.note.black.overlay", label: "Overlay", description: "Dark theme overlay for Oneplus Notes app?", safety: "caution" },
{ pkg: "com.oneplus.note.white.overlay", label: "Overlay", description: "Light theme overlay for Oneplus Notes app?", safety: "caution" },
- { pkg: "com.oneplus.nroptimization", label: "Nroptimization", description: "Optimization telephony?", safety: "caution" },
- { pkg: "com.oneplus.odmoverlay.android", label: "Android", description: "Android System Theme pack Guessing it's a pack of themes for some Oneplus-specific system components, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.odmoverlay.com.android.settings", label: "Settings", description: "Settings Theme pack Guessing it's a pack of themes for the settings app, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.odmoverlay.com.android.systemui", label: "Systemui", description: "System UI Theme pack Guessing it's a pack of themes for some Oneplus-specific system component, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.odmoverlay.com.oneplus", label: "Oneplus", description: "Oneplus System Theme pack Guessing it's a pack of themes for Oneplus-specific system components, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.opbackup", label: "Opbackup", description: "System Update Runs in the background. Handles things related to OTA system updates. Safe to disable, but probably breaks system updates.", safety: "caution" },
+ { pkg: "com.oneplus.odmoverlay.android", label: "Android", description: "Android System Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.odmoverlay.com.oneplus", label: "Oneplus", description: "Oneplus System Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.odmoverlay.com.android.settings", label: "Settings", description: "Settings Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.odmoverlay.com.android.systemui", label: "Systemui", description: "System UI Theme pack", safety: "caution" },
+ { pkg: "com.oneplus.opbackup", label: "Opbackup", description: "System Update", safety: "caution" },
{ pkg: "com.oneplus.opbackup.black.overlay", label: "Overlay", description: "Theme overlay for System Update?", safety: "caution" },
{ pkg: "com.oneplus.opbackup.white.overlay", label: "Overlay", description: "Theme overlay for System Update?", safety: "caution" },
- { pkg: "com.oneplus.opbugreportlite", label: "Opbugreportlite", description: "OPBugReportLite Runs in the background. Runs as part of the system, even if disabled? Disabling does remove all RAM usage tho, and hopefully removes access to user data, as disable/uninstall should sever the connection to the Android user account. Silently sends, every 6 hours, battery stats, kernel panics, watchdogs, ANRs and all crashes of your device to Singapore. https://www.androidpit.com/oneplus-opbugreportlite-data-collection Source (yeah it's Elliot Alderson again :D): https://web.archive.org/web/20220520051328/https://twitter.com/fs0c131y/status/933037531066785797", safety: "safe" },
- { pkg: "com.oneplus.opshelf", label: "Opshelf", description: "OnePlus Shelf (https://play.google.com/store/apps/details?id=com.oneplus.opshelf) Widget panel accessible from swiping down on the top-right side of the screen allowing quick access to apps, meteo, spotify, memos... Pithus analysis: https://beta.pithus.org/report/a50f166c8c2fae1204650c7af1cb287e20ad5286a89b013ada787f4b1b90fc64.", safety: "safe" },
- { pkg: "com.oneplus.opsports", label: "Opsports", description: "Cricket Scores (https://play.google.com/store/apps/details?id=com.oneplus.opsports) Lets you access and follow cricket teams and tournaments.", safety: "safe" },
- { pkg: "com.oneplus.opwlb", label: "Opwlb", description: "Work-Life Balance Not present in most Oneplus phones? This functionality might have been superseded by other similar apps, like for example Zen Mode. Haven't tested, but probably safe to disable.", safety: "safe" },
+ { pkg: "com.oneplus.opwlb", label: "Opwlb", description: "Work-Life Balance", safety: "safe" },
{ pkg: "com.oneplus.opwlb.black.overlay", label: "Overlay", description: "Theme overlay for Oneplus Work-Life Balance?", safety: "caution" },
{ pkg: "com.oneplus.opwlb.white.overlay", label: "Overlay", description: "Theme overlay for Oneplus Work-Life Balance?", safety: "caution" },
- { pkg: "com.oneplus.orm", label: "Orm", description: "Seems to be Oneplus' Memory Management System according to a press-kit/-release they made for Android 11 (multiple sites wrote\"ORM Memory Management System\" word-for-word). Runs in the background as part of the system. Runs even if disabled? Doesn't use any RAM when disabled tho, vs ~50MB when enabled. Seems safe to disable, haven't noticed any negative effects in weeks of use, but I assume it breaks the\"RAM Boost\" feature (which is pointless anyway IMO). Apk file name: OPOmm, mm = Memory Management? Has 2 permissions: KILL_BACKGROUND_PROCESSES and SET_TIME_ZONE. Contains 2 services: OPManagerService and BackgroundCollectorService.", safety: "caution" },
- { pkg: "com.oneplus.overlay", label: "Overlay", description: "Package: com.oneplus.overlay", safety: "caution" },
- { pkg: "com.oneplus.productoverlay.android", label: "Android", description: "Android System Theme pack Guessing it's a pack of themes for some Android System component, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.productoverlay.com.android.providers.settings", label: "Settings", description: "Settings Storage Theme pack Guessing it's a pack of themes for Settings Storage, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.productoverlay.com.oneplus", label: "Oneplus", description: "Oneplus System Theme pack Guessing it's a pack of themes for Oneplus-specific system components, based on the name.", safety: "caution" },
- { pkg: "com.oneplus.providers.media", label: "Media", description: "OnePlus Media Storage Runs in the background. Seems to just add recycle bin functionality to your file management (file browsers). Keep enabled if you like that function. But safe to disable if you don't want it.", safety: "safe" },
- { pkg: "com.oneplus.screenrecord", label: "Screenrecord", description: "Screen Recorder The Android 11 screen recorder with some Oneplus modifications. Runs the\"SystemUITileService\" when you have it as one of the quicksettings tiles, but doesn't seem to run in the background outside of that. Doesn't have an app icon, but you can create a shortcut to it with the Activity Launcher app (to avoid the background service). https://f-droid.org/en/packages/de.szalkowski.activitylauncher/", safety: "caution" },
+ { pkg: "com.oneplus.screenrecord", label: "Screenrecord", description: "Screen Recorder", safety: "caution" },
{ pkg: "com.oneplus.screenrecord.black.overlay", label: "Overlay", description: "Theme overlay for Oneplus Screenrecord?", safety: "caution" },
{ pkg: "com.oneplus.screenrecord.white.overlay", label: "Overlay", description: "Theme overlay for Oneplus Screenrecord?", safety: "caution" },
- { pkg: "com.oneplus.screenshot", label: "Screenshot", description: "Needed for Power + Volume Down screenshot.", safety: "caution" },
- { pkg: "com.oneplus.sdcardservice", label: "Sdcardservice", description: "Needed for sdcard?", safety: "caution" },
- { pkg: "com.oneplus.security", label: "Security", description: "Dashboard Runs\"WidgetViewService\" and\"SecureService\" in the background. Manages widget data access? Noticed no apparent ill effects on disable in Android 9.", safety: "caution" },
+ { pkg: "com.oneplus.security", label: "Security", description: "Dashboard", safety: "caution" },
{ pkg: "com.oneplus.security.black.overlay", label: "Overlay", description: "Dark theme overlay for com.oneplus.security?", safety: "caution" },
{ pkg: "com.oneplus.security.white.overlay", label: "Overlay", description: "Light theme overlay for com.oneplus.security?", safety: "caution" },
- { pkg: "com.oneplus.ses", label: "Ses", description: "OPSes Apk file name: OPSesAuthentication. Contains a\"SesService\", but I've never seen it run. Related to Amazon SES?(Simple Email Service) https://aws.amazon.com/ses/", safety: "caution" },
- { pkg: "com.oneplus.setupwizard", label: "Setupwizard", description: "The Oneplus portion of the first-boot setup. Runs on boot, but not in the background beyond that.", safety: "safe" },
- { pkg: "com.oneplus.simcontacts", label: "Simcontacts", description: "SimContacts Manager Runs in the background. Manages contacts and sync to SIM? Noticed no apparent ill effects on disable in Android 9.", safety: "safe" },
+ { pkg: "com.oneplus.ses", label: "Ses", description: "OPSes", safety: "caution" },
+ { pkg: "com.oneplus.setupwizard", label: "Setupwizard", description: "The Oneplus portion of the first-boot setup.", safety: "safe" },
+ { pkg: "com.oneplus.simcontacts", label: "Simcontacts", description: "SimContacts Manager", safety: "safe" },
{ pkg: "com.oneplus.simcontacts.basiccolorblack.overlay", label: "Overlay", description: "Dark theme overlay for Oneplus SimContacts Manager app?", safety: "caution" },
{ pkg: "com.oneplus.simcontacts.basiccolorwhite.overlay", label: "Overlay", description: "Light theme overlay for Oneplus SimContacts Manager app?", safety: "caution" },
- { pkg: "com.oneplus.skin", label: "Skin", description: "Icon styles/themes/animations and visual effects", safety: "caution" },
- { pkg: "com.oneplus.sms.smscplugger", label: "Smscplugger", description: "Probably related to SMS based on the name? Contains no services and I've never seen it run.", safety: "caution" },
- { pkg: "com.oneplus.sound.tuner", label: "Tuner", description: "Dolby Atmos Runs in the background as part of the system. Runs even if disabled. Sound tuning for Atmos. Breaks the Dolby Atmos sound settings menu if disabled. Could in theory increase loudspeaker fidelity as it can be pre-calculated and stored as a corrective EQ curve, something not possible for headphones (they'd need a unique preset for each pair of headphones).", safety: "caution" },
- { pkg: "com.oneplus.soundrecorder", label: "Soundrecorder", description: "Recorder OnePlus sound recording app. Requires turning on\"Allow modifying system settings\" to use for some reason? Probably tied to recording phone-calls.", safety: "caution" },
{ pkg: "com.oneplus.soundrecorder.black.overlay", label: "Overlay", description: "Theme overlay for Soundrecorder app?", safety: "caution" },
{ pkg: "com.oneplus.soundrecorder.white.overlay", label: "Overlay", description: "Theme overlay for Soundrecorder app?", safety: "caution" },
- { pkg: "com.oneplus.store", label: "Store", description: "OnePlus Store Offers getting favorites OnePlus phones in good price. https://play.google.com/store/apps/details?id=com.oneplus.store", safety: "safe" },
- { pkg: "com.oneplus.telephonyoptimization", label: "Telephonyoptimization", description: "OPTelephonyOptimization Contains a service with the same name, but I've never seen it run.", safety: "caution" },
- { pkg: "com.oneplus.twspods", label: "Twspods", description: "OnePlus Buds (https://play.google.com/store/apps/details?id=com.oneplus.twspods) Companion app for Oneplus Buds. For updating firmware and changing settings.", safety: "safe" },
- { pkg: "com.oneplus.vendoroverlay.android", label: "Android", description: "Overlay to extra kbytes adjust?", safety: "caution" },
- { pkg: "com.oneplus.vendoroverlay.com.android.providers.settings", label: "Settings", description: "Default backup transport Google. Not needed for backup", safety: "safe" },
- { pkg: "com.oneplus.vendoroverlay.com.android.systemui", label: "Systemui", description: "It has nothing in the code.", safety: "caution" },
- { pkg: "com.oneplus.vendoroverlay.com.oneplus", label: "Oneplus", description: "Config to overheat?", safety: "caution" },
- { pkg: "com.oneplus.vendoroverlay.com.oneplus.wifiapsettings", label: "Wifiapsettings", description: "OP_white_mode?", safety: "caution" },
+ { pkg: "com.oneplus.telephonyoptimization", label: "Telephonyoptimization", description: "OPTelephonyOptimization", safety: "caution" },
+ { pkg: "com.oneplus.twspods", label: "Twspods", description: "OnePlus Buds (https://play.google.com/store/apps/details?id=com.oneplus.twspods)", safety: "safe" },
{ pkg: "com.oneplus.wallpaper", label: "Wallpaper", description: "Pack of live wallpapers from Oneplus.", safety: "caution" },
- { pkg: "com.oneplus.wifiapsettings", label: "Wifiapsettings", description: "Wi-Fi Access Point Settings? Runs on boot. Noticed no change after disabling; Wi-Fi and related menus still seem fully functional.", safety: "caution" },
+ { pkg: "com.oneplus.wifiapsettings", label: "Wifiapsettings", description: "Wi-Fi Access Point Settings?", safety: "caution" },
{ pkg: "com.oneplus.wifiapsettings.basiccolorblack.overlay", label: "Overlay", description: "Dark theme for Wi-Fi Access Point Settings?", safety: "caution" },
{ pkg: "com.oneplus.wifiapsettings.basiccolorwhite.overlay", label: "Overlay", description: "Light theme for Wi-Fi Access Point Settings?", safety: "caution" },
- { pkg: "com.oplus.account", label: "Account", description: "Account Center. Required for most OnePlus features. Removal gets rid of Login with OnePlus Account notification.", safety: "caution" },
- { pkg: "com.oplus.aicall", label: "Aicall", description: "Provides AI summaries in the ODialer app", safety: "caution" },
- { pkg: "com.oplus.aimemory", label: "Aimemory", description: "Mind Space (also called 'Breeno Memory') Saves and summarizes content using AI. Runs on the background, even though when you're not using it.", safety: "caution" },
- { pkg: "com.oplus.aipaint", label: "Aipaint", description: "AI Paint Unsure what it's used for but probably has to do with editing images.", safety: "safe" },
- { pkg: "com.oplus.aiunit", label: "Aiunit", description: "AIUnit System service related to the intelligence function. It's safe to remove but also breaks the Smart Cutout, AI Editor, and potentially other gallery features.", safety: "caution" },
- { pkg: "com.oplus.aiwriter", label: "Aiwriter", description: "AI Writer Pop-up for AI text generation, often appears in places that are not text input fields.", safety: "safe" },
- { pkg: "com.oplus.android.overlay.gmsconfig.common", label: "Common", description: "Overlay to vendor required apps? Theres google apps and some not important oppo apps on the lists, not needed.", safety: "caution" },
- { pkg: "com.oplus.android.overlay.modules.documentsui", label: "Documentsui", description: "Useless overlay to documentsui bools.xml: is_launcher_enabled true", safety: "safe" },
- { pkg: "com.oplus.aod", label: "Aod", description: "Aod Multiple sources say that AOD doesnt work without tons of extra services, but on some devices it works without extra services https://droidwin.com/remove-bloatware-debloat-oneplus-10-pro-no-root/#OnePlus_10_Pro_List_of_Bloatware_Apps", safety: "safe" },
- { pkg: "com.oplus.appdetail", label: "Appdetail", description: "Secure app installation", safety: "safe" },
- { pkg: "com.oplus.appplatform", label: "Appplatform", description: "App Services Might be renamed package of com.heytap.appplatform which is related to Oppo's Heytap account services. Provides a RomUpdateService. Probably not safe to remove. Pithus analysis: https://beta.pithus.org/report/2025ceb69d9379a01771de71ff00051eb0f0c7f44226a72c2066db9649b6dcd2 Causes bootloop on some phones after uninstall.", safety: "keep" },
- { pkg: "com.oplus.apprecover", label: "Apprecover", description: "Recover system apps", safety: "caution" },
- { pkg: "com.oplus.athena", label: "Athena", description: "OnePlus background process manager. It aggressively kills apps. Despite battery optimization settings it kills Chrome not in use within few seconds; and Tasker can't run long-time jobs. Removing it will disable the virtual ram expansion feature (swap RAM to disk) and the 'close all' button in the 'recent apps' page. Keep the app if you worry about battery life. Remove if your apps are killed. https://xdaforums.com/t/did-anyone-find-a-solution-against-the-agressive-background-killing-of-apps.4491351/post-87421063", safety: "caution" },
- { pkg: "com.oplus.atlas", label: "Atlas", description: "atlasService Separate app sound and individual app volumes. https://beta.pithus.org/report/6d0f9433431cd34a8e9aaef99b329b3623118a1699033be36032f64653dab3d0", safety: "caution" },
- { pkg: "com.oplus.audio.effectcenter", label: "Effectcenter", description: "Sound effects and EQ settings, Dolby support for Chinese apps and some Google. Remove if you aren't planning to use sound effects or EQ.", safety: "caution" },
- { pkg: "com.oplus.battery", label: "Battery", description: "Battery Needed for power managment in settings? https://xdaforums.com/t/how-to-fix-oneplus-11-thermal-throttling.4560085/post-89255314 Better test it.", safety: "caution" },
- { pkg: "com.oplus.batterywarning", label: "Batterywarning", description: "Battery warning. Uses accessbility, GPS and Wi-Fi.", safety: "caution", neededBy: ["com.oneplus.gamespace"] },
- { pkg: "com.oplus.blacklistapp", label: "Blacklistapp", description: "Block & filter Call blocking app that's tied with device caller app, contains fuction to look caller location on Google Maps, potentially untrusted.", safety: "caution" },
- { pkg: "com.oplus.blur", label: "Blur", description: "All the blur effects in the system UI will be removed and replaced with completely transparent if you remove this package.", safety: "caution" },
- { pkg: "com.oplus.bttestmode", label: "Bttestmode", description: "BTtestmode Bluetooth SAR Signaling, Scene Test", safety: "safe" },
- { pkg: "com.oplus.callrecorder", label: "Callrecorder", description: "Allows you to toggle call recording in the stock Dialer app. Safe to remove?", safety: "caution" },
- { pkg: "com.oplus.camera", label: "Camera", description: "Camera app", safety: "caution" },
- { pkg: "com.oplus.cast", label: "Cast", description: "Screencast Phone casting (casting phone screen to other devices).", safety: "caution" },
- { pkg: "com.oplus.cosa", label: "Cosa", description: "APP Enhancement Services If enabled, connects to OPPO servers (icosa-service-eu.allawnos.com) every time a new app is installed. Seems to be mostly focused on gaming performance optimisation according to the settings description: '[...] a service that optimises phone performance for specific apps and game scenarios. [...] frame rates, battery usage, touch sensitivity, network connection, vibration and gameplay assistance features.' Can be disabled via hidden setting (Settings -> Search 'App Enhancement Services' -> App Enhancement Services). Note: removing this package prevents the OnePlus Game Center to detect games. Cannot be uninstalled but it can be disabled. Note: removing this package prevents the OnePlus Game Center to detect games. Pithus analysis: https://beta.pithus.org/report/f55e935357865f4647e59c98afb5a3a46aba22a48844d80d2819d122781e3fde. Another note: the process is necessary for the GameEventServiceService which ensures that apps recognized as games have a fixed refresh rate, not an adaptive refresh rate; without it, refresh rates may be reduced from 120hz to 60hz. When there is not much going on on screen, there can even be drops in the refresh rate to 30hz and 1hz. There is no option to turn off adaptive refresh rate, so one is reliant on this OS service to undo its own damage. Without this, there also seems to be no way to display 120fps cloud gaming at 120hz (tested with Moonlight/Artemsi), as the OS does not exempt the streaming app from the adaptive refresh rate rule.", safety: "caution", neededBy: ["com.oneplus.gamespace"] },
- { pkg: "com.oplus.cota", label: "Cota", description: "Configuration Update Over The Air Needed for OTA updates. Likely needed to download and install system updates, device configuration, and carrier/enterprise customizations on OnePlus devices. It ensures your device stays up-to-date and compliant with carrier or company requirements, and interacts with the user only when necessary (e.g., update dialogs, legal statements).", safety: "caution" },
- { pkg: "com.oplus.crashbox", label: "Crashbox", description: "Sends system failure data to developers. Automatically runs at boot. Pithus analysis: https://beta.pithus.org/report/6031048af7434e9cfe3435244dd105ac70e3bfe1f25ecdcca9b2a40b356590a2", safety: "safe" },
- { pkg: "com.oplus.customize.coreapp", label: "Coreapp", description: "Useless frameworks", safety: "safe" },
- { pkg: "com.oplus.deepthinker", label: "Deepthinker", description: "Smart Capability Services seems to open some common apps in the background, which may increase power consumption. Remove it on ColorOS 12.0 or above will cause the battery menu to not show the power consumption curve. This can cause a bootloop.", safety: "caution" },
- { pkg: "com.oplus.dmp", label: "Dmp", description: "Deactivate Traffic Management Fusion search service?", safety: "safe" },
- { pkg: "com.oplus.eid", label: "Eid", description: "Eid-Service It's something about card chips or online identity? Useless. China.", safety: "safe" },
- { pkg: "com.oplus.encryption", label: "Encryption", description: "Private Safe After uninstalling, the option to use the file safe in the privacy settings disappears. There is also a section left in the settings that does nothing when clicked.", safety: "safe" },
- { pkg: "com.oplus.engineercamera", label: "Engineercamera", description: "EngineerCamera Testing camera things.", safety: "safe" },
- { pkg: "com.oplus.engineermode", label: "Engineermode", description: "EngineerMode Testing phone things(like audio, bluetooth, etc.).", safety: "safe" },
- { pkg: "com.oplus.engineermodeforflipkart", label: "Engineermodeforflipkart", description: "Engineermode2 This is app for get flipkartAddress and ShowSarImeiReceiver. I found some info: This phone is part of Flipkart Smart Plan and not eligible for release till any instant advance amount availed is repaid.", safety: "safe" },
- { pkg: "com.oplus.engineernetwork", label: "Engineernetwork", description: "EngineerNetwork Testing network things.", safety: "safe" },
- { pkg: "com.oplus.exserviceui", label: "Exserviceui", description: "Gesture Motion Services Is related to gesture navigation 'com.oplus.gesture'.", safety: "caution" },
- { pkg: "com.oplus.exsystemservice", label: "Exsystemservice", description: "Has a lot of permissions. The screenshot function will stop working when the app is disabled. Can cause bootloop on some phones https://gist.github.com/zxdawn/21771f89f0e6ee01bcb0bb740058e2a0 https://xdaforums.com/t/extreme-debloat-op12.4688984/ https://www.apkmirror.com/apk/oneplus-ltd/system-service-2/system-service-2-1-1-5-release/system-service-1-1-5-2-android-apk-download/", safety: "keep" },
- { pkg: "com.oplus.eyeprotect", label: "Eyeprotect", description: "Eye protection mode Safe to remove if you dont use this feature. It can be found in the settings.", safety: "safe" },
- { pkg: "com.oplus.framework.rro.oneplus", label: "Oneplus", description: "A runtime resource overlay (RRO) is a package that changes the resource values of a target package at runtime. For example, an app installed on the system image might change its behavior based upon the value of a resource. Rather than hardcoding the resource value at build time, an RRO installed on a different partition can change the values of the app's resources at runtime. RROs can be enabled or disabled. You can programmatically set the enable/disable state to toggle an RRO's ability to change resource values. RROs are disabled by default (however, static RROs are enabled by default). https://source.android.com/docs/core/runtime/rros", safety: "caution" },
- { pkg: "com.oplus.framework_bluetooth.overlay", label: "Overlay", description: "Needed to bluetooth?", safety: "caution" },
- { pkg: "com.oplus.games", label: "Games", description: "Games (https://play.google.com/store/apps/details?id=com.oplus.games) Occasionally runs in the background as part of the system. Allows you to launch your game library, check game stats(such as playtime), activate game overlay features and performance settings to tweak game/battery performance during gaming. This is the only way to access the recording buffer functionality (records the last X seconds into RAM and saves them when you tap save), so keep enabled if you need that or any of the other features.Note: new package name of com.oneplus.gamespace (since the merge between Oppo and OnePlus. Oplus = Oppo+OnePlus", safety: "safe" },
- { pkg: "com.oplus.gesture", label: "Gesture", description: "Always-on screen gestures.", safety: "caution" },
- { pkg: "com.oplus.hamlet", label: "Hamlet", description: "Vision Enhance Useless things about color maybe to wallpaper?", safety: "safe" },
- { pkg: "com.oplus.healthservice", label: "Healthservice", description: "healthservice Some health function, needed for correct work of fitness trackers and pedometer from realme. When deleted, it does not seem to affect the operation of the phone.", safety: "safe" },
- { pkg: "com.oplus.interconnectcollectkit", label: "Interconnectcollectkit", description: "InterconnectCollectKit It may have something to do with the device's fast connection by name. BUT I see only it collects system logs and it has something to com.heytap.accessory.", safety: "safe" },
- { pkg: "com.oplus.kekepay", label: "Kekepay", description: "Chinese pay service? Safe to remove but no documentation found online [APK NEEDED]", safety: "safe" },
- { pkg: "com.oplus.keyguard.clock.base", label: "Base", description: "The clock style available in the lock screen and the theme manager.", safety: "caution" },
- { pkg: "com.oplus.keyguard.clock.gallery", label: "Gallery", description: "The clock style available in the lock screen and the theme manager.", safety: "caution" },
- { pkg: "com.oplus.keyguard.clock.graffiti", label: "Graffiti", description: "The clock style available in the lock screen and the theme manager.", safety: "caution" },
- { pkg: "com.oplus.keyguard.clock.magazine", label: "Magazine", description: "The clock style available in the lock screen and the theme manager.", safety: "caution" },
- { pkg: "com.oplus.lfeh", label: "Lfeh", description: "Seems to be related to the the logging suite. Pithus analysis: https://beta.pithus.org/report/0542dbdbe10fd3a868ea497ec92670619670f574bbce37d949975dc109cd316f", safety: "safe" },
- { pkg: "com.oplus.linker", label: "Linker", description: "OPSynergy Used for the Synergy app to link your phone to your PC (it doesn't work well beyond controlling your phone from your PC). This app is a dependency of screencast. Disabling will cause the screencast app to break.", safety: "caution" },
- { pkg: "com.oplus.location", label: "Location", description: "Chinese location. Have China MCC. Useless", safety: "safe" },
- { pkg: "com.oplus.locationproxy", label: "Locationproxy", description: "Carrier Location Services Extra location telemetry, not related to any GPS functions.", safety: "safe" },
- { pkg: "com.oplus.logkit", label: "Logkit", description: "Logs service and bug reporting app Safe to remove if you don't report bugs to OEM", safety: "safe" },
- { pkg: "com.oplus.mediacontroller", label: "Mediacontroller", description: "Media Controller. Responsible for the Dynamic Island feature for music applications and showing the 'Now playing' notification on lockscreen.", safety: "caution", deps: ["com.oneplus.account", "com.oplus.ocs", "com.oplus.onet", "com.oplus.metis", "com.oplus.statistics.rom", "com.coloros.assistantscreen", "com.coloros.scenemode"] },
- { pkg: "com.oplus.melody", label: "Melody", description: "Wireless Earphones Wireless headset advanced configuration related (after uninstallation some Bluetooth headset setting options will be missing items, if you do not have headset setting problems, it is recommended to uninstall) https://play.google.com/store/apps/details?id=com.oplus.melody", safety: "caution" },
- { pkg: "com.oplus.metis", label: "Metis", description: "Metis User Behavior Records. Hidden with no activities. Collects data.", safety: "safe" },
- { pkg: "com.oplus.multiapp", label: "Multiapp", description: "App Cloner. Allows to clone an app. Have access to all installed apps. Is bundled with OnePlus analytics Pithus analysis: https://beta.pithus.org/report/8a1d0783debb405ebadb3fc52507de5f69ecb55f499732b7331dac74ad69ffd7", safety: "caution" },
- { pkg: "com.oplus.nas", label: "Nas", description: "NetworkAssistSys Needed for network I guess by dialogs found in code. Has location & phone permission, can read your call logs. Runs in background. After disabling, no issues occured (OxygenOS 14, OnePlus 11).", safety: "caution" },
- { pkg: "com.oplus.ndsf", label: "Ndsf", description: "DSF Provides the ability to authenticate your identity when you connect your device. For the 'Device Connection Security Service' to work properly, it needs to collect information about your HeyTap account to support automatic connection to different devices with the same account and connect to the Internet to verify the security of your HeyTap account.", safety: "caution" },
- { pkg: "com.oplus.nhs", label: "Nhs", description: "NetworkHealthService (Uninstallation may cause the power saving mode optimization option of turning off 5G to be disabled, only briefly, after which it will automatically return to 5G) needs more testing.", safety: "caution" },
- { pkg: "com.oplus.notificationmanager", label: "Notificationmanager", description: "Notification management will not work when uninstalled/disabled.", safety: "keep" },
- { pkg: "com.oplus.nrMode", label: "NrMode", description: "OplusNrModeControl Required for Smart 5G.", safety: "caution" },
- { pkg: "com.oplus.obrain", label: "Obrain", description: "OBrain Log component, domestic special, the key to a MIDAS service, looking at the dex content is also to catch log.", safety: "safe" },
- { pkg: "com.oplus.oca", label: "Oca", description: "Has something related to wallet smart card", safety: "safe" },
- { pkg: "com.oplus.ocar", label: "Ocar", description: "Car+ Related to Oppo's car app [APK NEEDED]", safety: "safe" },
- { pkg: "com.oplus.ocloud", label: "Ocloud", description: "Its not about cloud but a lot logs.", safety: "safe" },
- { pkg: "com.oplus.ocs", label: "Ocs", description: "OpenCapabilityService Chinese unique identifier privacy hazard.", safety: "safe" },
- { pkg: "com.oplus.olc", label: "Olc", description: "Olc Logger, a new appearance in F.05, the domestic special, and all say that they are log core.", safety: "safe" },
- { pkg: "com.oplus.omoji", label: "Omoji", description: "Omoji Avatar editing app.", safety: "safe" },
- { pkg: "com.oplus.onet", label: "Onet", description: "ONet Useless frameworks. To secure keyboard, grant permissions. It's not needed.", safety: "safe" },
- { pkg: "com.oplus.onetrace", label: "Onetrace", description: "OneTrace Logging component, may be used for feedback toolkit log capture, domestic specials.", safety: "safe" },
- { pkg: "com.oplus.oscenter", label: "Oscenter", description: "Useless frameworks security.", safety: "safe" },
- { pkg: "com.oplus.ota", label: "Ota", description: "Software update Provides System Updates.", safety: "caution" },
- { pkg: "com.oplus.ovoicemanager", label: "Ovoicemanager", description: "Voice assistant related", safety: "safe" },
- { pkg: "com.oplus.ovoicemanager.wakeup", label: "Wakeup", description: "Voice Assistant related. A component for com.oplus.ovoicemanager. https://www.apkmirror.com/apk/oneplus-ltd/ovoicemanagerskillservice-2/ovoicemanagerskillservice-1-1-13-release/ovoicemanagerskillservice-1-1-13-android-apk-download/", safety: "safe" },
- { pkg: "com.oplus.owkservice", label: "Owkservice", description: "Weird app that has time sync and start/stop Monitor Wifi Connectivity, also has oplus statistics component to tracking events.", safety: "caution" },
- { pkg: "com.oplus.padconnect", label: "Padconnect", description: "It has pad settings and multi-screen connect.", safety: "caution" },
- { pkg: "com.oplus.pantanal.ums", label: "Ums", description: "Ubiquitous Manager Service A service required for Fluid Cloud (Dynamic Island clone) feature in OxygenOS/ColorOS/RealmeUI (Android 14). Runs in background. After disabling, no issues occurred but there's a little empty space between clock and recent notification icons on the right.", safety: "caution" },
- { pkg: "com.oplus.pay", label: "Pay", description: "Secure Payment Lets you pay with your phone. Privacy issue aside, you should probably not trust their security: https://www.bitdefender.com/blog/hotforsecurity/hackers-attack-oneplus-again-this-time-stealing-customer-details some users cant uninstall this app", safety: "safe" },
- { pkg: "com.oplus.phonenoareainquire", label: "Phonenoareainquire", description: "Number Origin Not yet uninstalled but is related to phone calling function, need to check deeply...", safety: "caution" },
- { pkg: "com.oplus.portrait", label: "Portrait", description: "Canvas An additional feature for AOD that allows you to further personalize the disabled screen. If not used, you can delete it.", safety: "safe" },
- { pkg: "com.oplus.postmanservice", label: "Postmanservice", description: "Diagnostics For calibration of hardware", safety: "safe" },
- { pkg: "com.oplus.powermonitor", label: "Powermonitor", description: "Power monitor Logging component to upload temperature control logs.", safety: "safe" },
- { pkg: "com.oplus.pscanvas", label: "Pscanvas", description: "Open Canvas Split-screen feature, see: https://community.oneplus.com/thread/1484307668276346883.", safety: "caution" },
- { pkg: "com.oplus.qualityprotect", label: "Qualityprotect", description: "QualityProtect Logs about system usage, some apps, not useful.", safety: "safe" },
- { pkg: "com.oplus.romupdate", label: "Romupdate", description: "Update Service Responsible for installing updates.", safety: "caution" },
- { pkg: "com.oplus.safecenter", label: "Safecenter", description: "Security Center It breaks 'display over other apps' permission and also breaks screen lock on OnePlus Android 14", safety: "keep" },
- { pkg: "com.oplus.sau", label: "Sau", description: "System Upgrade Service Allows you to update your phone. Runs at boot and could cause bootloop when removed.", safety: "caution" },
- { pkg: "com.oplus.sauhelper", label: "Sauhelper", description: "SAUHelper It's very much a placeholder app with no real functionality, but it can't be uninstalled or deactivated, and it can be SUSPENDED.", safety: "safe" },
- { pkg: "com.oplus.screenrecorder", label: "Screenrecorder", description: "Screenrecorder", safety: "caution" },
- { pkg: "com.oplus.screenshot", label: "Screenshot", description: "Screenshot Needed for screenshots. Very useful app.", safety: "caution" },
- { pkg: "com.oplus.securitykeyboard", label: "Securitykeyboard", description: "Secure Keyboard Keyboard that appears only when typing a password on apps and webpages, if enabled on Keyboard and Input settings", safety: "safe" },
- { pkg: "com.oplus.securitypermission", label: "Securitypermission", description: "Permission manager If removed, in some players (and not only), it will not be possible to enable picture-in-picture capability due to lack of customization: Settings -> Manage apps -> Top of other apps.", safety: "keep" },
- { pkg: "com.oplus.smartengine", label: "Smartengine", description: "It appears to be an app used for testing, no internet access, very few intents, shouldn't have self-started, should run on demand. Some people have reported it as a support component for speedcards, some speedcards won't load after uninstalling.", safety: "caution" },
- { pkg: "com.oplus.sos", label: "Sos", description: "Emergency Alert service by clicking power button 5 times. It will automatically call contacts (and/or send a SMS) you designated as emergency contacts", safety: "caution" },
- { pkg: "com.oplus.statistics.rom", label: "Rom", description: "User Experience Program Intrusive telemetry. Runs at boot and constantly stays in background Pithus analysis: https://beta.pithus.org/report/7720549a5b4bc305a15e19b3e17ba6857a52e6e12db94006677c59f2fad84331", safety: "safe" },
- { pkg: "com.oplus.stdid", label: "Stdid", description: "StdID Needed for tracking battery usage on per app basis. Dependency for GameSpace [MORE INFO NEEDED / APK NEEDED]", safety: "caution", neededBy: ["com.oneplus.gamespace", "com.coloros.gamespace"] },
- { pkg: "com.oplus.stdsp", label: "Stdsp", description: "Device Security Service it's a basic service module that helps users discover security risks in their devices and generate appropriate security policies. Detect xposed, and log suite related, needless to say, deactivate.", safety: "safe" },
- { pkg: "com.oplus.studycenter", label: "Studycenter", description: "Study Center is an educational application officially developed by OPPO for children aged 0-12 in China. Ask for a lot of permissions. Has a lot of security issues: https://beta.pithus.org/report/e006d8b22e473e603ceb86c654889e08da460b73d609cd9b17642f49d530239a", safety: "safe" },
- { pkg: "com.oplus.subsys", label: "Subsys", description: "Its app for virtual communication. Depends on 'com.oplus.virtualcomm'.", safety: "caution" },
- { pkg: "com.oplus.synergy", label: "Synergy", description: "HeySynergy Provides the screencasting feature and OPPO's PC Connect (https://connect.oppo.com/). Don't bother downloading 'PC Connect Desktop' if the 'Phone Connect' Quick Settings tile isn't available on your phone. Pithus analysis: https://beta.pithus.org/report/16d9ea536683291fbffe46dedd3c655379b5fcfdb473ec1cab5290cf5af27fba", safety: "caution", deps: ["com.heytap.mcs", "com.heytap.accessory"] },
- { pkg: "com.oplus.themestore", label: "Themestore", description: "Theme Store To change fonts, wallpapers, etc. of your device. Note that you can download but you can't apply unless you have registered for/sign in with HeyTap account.", safety: "safe" },
- { pkg: "com.oplus.thirdkit", label: "Thirdkit", description: "Compatibility problem solving Third party related.", safety: "safe" },
- { pkg: "com.oplus.trafficmonitor", label: "Trafficmonitor", description: "OnePlus Data usage / OnePlus traffic monitor (monthly data usage, etc). If removed, the 'Data Usage' option under 'Mobile network' will not work. Also App Info screen's 'Data usage' option will disappear. Required to restrict an app from accessing the network via settings > app info.", safety: "caution" },
- { pkg: "com.oplus.uiengine", label: "Uiengine", description: "Needed for themes? I found a lot of gameloading things, Proguard?, lists of apps idk for what. Remove it not bricks anything probably.", safety: "caution" },
- { pkg: "com.oplus.uxdesign", label: "Uxdesign", description: "Wallpapers & style Needed for changing wallpaper.", safety: "caution" },
- { pkg: "com.oplus.vdc", label: "Vdc", description: "It's an app used to convert nearby devices into virtual hardware resources for the central device. Require internet to transfer data across devices.", safety: "caution" },
- { pkg: "com.oplus.viewtalk", label: "Viewtalk", description: "ViewTalk Application for recognizing text in an image and reading it out loud. Did not figure out how it works.", safety: "caution" },
- { pkg: "com.oplus.vip", label: "Vip", description: "My OPPO https://play.google.com/store/apps/details?id=com.oplus.vip", safety: "safe" },
- { pkg: "com.oplus.virtualcomm", label: "Virtualcomm", description: "It's probably virtual communications. Also about these it's in the code.", safety: "caution" },
- { pkg: "com.oplus.wallpapers", label: "Wallpapers", description: "Wallpapers Needed for wallpapers.", safety: "caution" },
- { pkg: "com.oplus.wifibackuprestore", label: "Wifibackuprestore", description: "Lets you backup your wifi credentials to the cloud and possibly local wifi access point backups with local backup and restore feature. This app has obviously access to your wifi credential and have the INTERNET permission. Pithus analysis: https://beta.pithus.org/report/76e43cf4dc55452f39d9b6117074f4072189d3c8ad9cb295a86e49438545f7aa WARNING: Removing this package may have similar effects of removing `com.coloros.wifibackuprestore` (see desc) as this could also break local wifi credential backups functionality without it. However, it's effects is only tested with ColorOS devices with similar package before Oneplus merge.", safety: "caution" },
- { pkg: "com.oplus.wifitest", label: "Wifitest", description: "wifitest Just a testing mode accessed through phone dialing code.", safety: "safe" },
- { pkg: "com.oplus.wirelesssettings", label: "Wirelesssettings", description: "DCSSDK Wireless settings.", safety: "keep" },
- { pkg: "com.oppo.atlas", label: "Atlas", description: "Useless frameworks", safety: "safe" },
- { pkg: "com.oppo.bttestmode", label: "Bttestmode", description: "Test BLE Tx and Rx channel", safety: "safe" },
- { pkg: "com.oppo.camera", label: "Camera", description: "Camera Oppo stock camera app", safety: "caution" },
- { pkg: "com.oppo.criticallog", label: "Criticallog", description: "I found logs in code. This app means nothing.", safety: "safe" },
- { pkg: "com.oppo.ctautoregist", label: "Ctautoregist", description: "Has something related to IMS SMS", safety: "caution" },
- { pkg: "com.oppo.customize", label: "Customize", description: "Only Hello world! found in app also things to com.orange.aura.oobe", safety: "safe" },
- { pkg: "com.oppo.em5g", label: "Em5g", description: "EM NR5G 5G Disable Mode, Probably needed for mobile data internet.", safety: "caution" },
- { pkg: "com.oppo.engineermode", label: "Engineermode", description: "Engineer mode (hardware tests), uses a dialer code, safe to disable", safety: "caution" },
- { pkg: "com.oppo.engineermode.camera", label: "Camera", description: "Related to com.oppo.engineermode. This application likely doesn't work without that app.", safety: "caution" },
- { pkg: "com.oppo.engineermode.network", label: "Network", description: "Related to com.oppo.engineermode. This application likely doesn't work without that app.", safety: "caution" },
+ { pkg: "net.oneplus.launcher", label: "Launcher", description: "Oneplus Launcher", safety: "caution" },
+ { pkg: "net.oneplus.launcher.black.overlay", label: "Overlay", description: "Theme overlay for the Oneplus Launcher?", safety: "caution" },
+ { pkg: "net.oneplus.launcher.white.overlay", label: "Overlay", description: "Theme overlay for the Oneplus Launcher?", safety: "caution" },
+ { pkg: "net.oneplus.weather.basiccolorblack.overlay", label: "Overlay", description: "Theme overlay for Oneplus Weather app?", safety: "caution" },
+ { pkg: "net.oneplus.weather.basiccolorwhite.overlay", label: "Overlay", description: "Theme overlay for Oneplus Weather app?", safety: "caution" },
+ { pkg: "com.coloros.appmanager", label: "Appmanager", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.assistantscreen", label: "Assistantscreen", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.backuprestore", label: "Backuprestore", description: "Most likely Oppo backup/restore feature", safety: "safe" },
+ { pkg: "com.coloros.childrenspace", label: "Childrenspace", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.cloud", label: "Cloud", description: "Oppo Cloud", safety: "safe" },
+ { pkg: "com.coloros.directui", label: "Directui", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.findmyphone", label: "Findmyphone", description: "Find my phone service", safety: "safe" },
+ { pkg: "com.coloros.gamespace", label: "Gamespace", description: "Game Space", safety: "safe" },
+ { pkg: "com.coloros.healthcheck", label: "Healthcheck", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.weather.service", label: "Service", description: "colorOS weather service. Removal seems to trigger a bootloop on some phones.", safety: "keep" },
+ { pkg: "com.coloros.weather2", label: "Weather2", description: "ColorOS weather app. Removal seems to trigger a bootloop on some phones. You should try, several users remo...", safety: "caution" },
+ { pkg: "com.coloros.mcs", label: "Mcs", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.ocrscanner", label: "Ocrscanner", description: "ColorOS Optical character recognition scanner", safety: "safe" },
+ { pkg: "com.coloros.oppomultiapp", label: "Oppomultiapp", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.phonenoareainquire", label: "Phonenoareainquire", description: "Number Origin", safety: "safe" },
+ { pkg: "com.coloros.smartdrive", label: "Smartdrive", description: "No description available", safety: "safe" },
+ { pkg: "com.coloros.soundrecorder", label: "Soundrecorder", description: "ColorOS Sound Recorder", safety: "caution" },
+ { pkg: "com.coloros.speechassist", label: "Speechassist", description: "ColorOS Speech Assistant", safety: "safe" },
+ { pkg: "com.coloros.widget.smallweather", label: "Smallweather", description: "No description available", safety: "safe" },
+ { pkg: "com.nearme.atlas", label: "Atlas", description: "Secure payment", safety: "safe" },
+ { pkg: "com.nearme.browser", label: "Browser", description: "Default web browser", safety: "safe" },
+ { pkg: "com.nearme.instant.platform", label: "Platform", description: "No description available", safety: "safe" },
+ { pkg: "com.nearme.themestore", label: "Themestore", description: "Themes store", safety: "safe" },
{ pkg: "com.oppo.fingerprints.fingerprintsensortest", label: "Fingerprintsensortest", description: "Fingerprint sensort test", safety: "safe" },
- { pkg: "com.oppo.freefallingmonitor", label: "Freefallingmonitor", description: "I found only: Hello World!. This app means nothing.", safety: "safe" },
- { pkg: "com.oppo.gmail.overlay", label: "Overlay", description: "I found in code only words Vodafone email, email setup wizard. Not needed overlay", safety: "caution" },
- { pkg: "com.oppo.healthservice", label: "Healthservice", description: "Some health function, needed for the correct work of fitness trackers and pedometers from realme. When deleted, it does not seem to affect the operation of the phone.", safety: "safe" },
- { pkg: "com.oppo.instant.local.service", label: "Service", description: "A lot of tracking for demo game ads", safety: "safe" },
- { pkg: "com.oppo.launcher", label: "Launcher", description: "OPPO Home Oppo stock launcher", safety: "caution" },
- { pkg: "com.oppo.lfeh", label: "Lfeh", description: "OppoLFEHer DCS service, another thing related to scanning. Bloated", safety: "safe" },
- { pkg: "com.oppo.localservice", label: "Localservice", description: "It's an app without activities, and in the code, I found it's for Set Mode Daemon Point, but how can we use that? I guess it's for testing, so remove it.", safety: "safe" },
- { pkg: "com.oppo.locationpicker", label: "Locationpicker", description: "Location works without.", safety: "safe" },
- { pkg: "com.oppo.logkit", label: "Logkit", description: "Package: com.oppo.logkit", safety: "safe" },
- { pkg: "com.oppo.logkitsdservice", label: "Logkitsdservice", description: "Hidden logs hardware without activities.", safety: "safe" },
- { pkg: "com.oppo.logkitservice", label: "Logkitservice", description: "Probably same as\"com.oem.oemlogkit\", which is a shady logging package on Oneplus devices.", safety: "safe" },
+ { pkg: "com.oppo.logkitservice", label: "Logkitservice", description: "Probably same as \"com.oem.oemlogkit\", which is a shady logging package on Oneplus devices.", safety: "safe" },
+ { pkg: "com.oppo.logkit", label: "Logkit", description: "No description available", safety: "safe" },
{ pkg: "com.oppo.market", label: "Market", description: "Oppo App Market", safety: "safe" },
- { pkg: "com.oppo.mimosiso", label: "Mimosiso", description: "Empty app. I only found: hello world!", safety: "safe" },
- { pkg: "com.oppo.multimedia.dolby", label: "Dolby", description: "Oppo Dolby service equalizer, but only for Chinese apps", safety: "safe" },
{ pkg: "com.oppo.music", label: "Music", description: "Oppo Music app", safety: "safe" },
- { pkg: "com.oppo.nw", label: "Nw", description: "RadioInfo Only has radioinfo activity. Not needed", safety: "safe" },
- { pkg: "com.oppo.operationManual", label: "OperationManual", description: "Oppo User Manual", safety: "safe" },
- { pkg: "com.oppo.oppopowermonitor", label: "Oppopowermonitor", description: "Battery monitoring", safety: "safe" },
- { pkg: "com.oppo.ota", label: "Ota", description: "Software update Software update OTA", safety: "caution" },
- { pkg: "com.oppo.ovoicemanager", label: "Ovoicemanager", description: "Voice wake-up manager?", safety: "safe" },
- { pkg: "com.oppo.partnerbrowsercustomizations", label: "Partnerbrowsercustomizations", description: "Oppo Bookmarks Oppo default browser customization. Injects Oppo bookmarks", safety: "safe" },
- { pkg: "com.oppo.qualityprotect", label: "Qualityprotect", description: "Useless logs", safety: "safe" },
+ { pkg: "com.oppo.ovoicemanager", label: "Ovoicemanager", description: "No description available", safety: "safe" },
+ { pkg: "com.oppo.oppopowermonitor", label: "Oppopowermonitor", description: "No description available", safety: "safe" },
{ pkg: "com.oppo.quicksearchbox", label: "Quicksearchbox", description: "Single swipe from top to bottom search that has lots of Chinese in it", safety: "safe" },
- { pkg: "com.oppo.resmonitor", label: "Resmonitor", description: "App has only icon and means nothing.", safety: "safe" },
- { pkg: "com.oppo.rftoolkit", label: "Rftoolkit", description: "Monitors the broadcast action events (BOOT_COMPLETED)", safety: "caution" },
{ pkg: "com.oppo.securepay", label: "Securepay", description: "Payment Protection", safety: "safe" },
- { pkg: "com.oppo.smartvolume", label: "Smartvolume", description: "This app means nothing. There's only logs.", safety: "safe" },
- { pkg: "com.oppo.sos", label: "Sos", description: "Emergency Alert service by clicking power button 5 times. It will automatically call contacts (and/or send a SMS) you designated as emergency contacts", safety: "caution" },
- { pkg: "com.oppo.tzupdate", label: "Tzupdate", description: "Useless time zone calibration", safety: "safe" },
- { pkg: "com.oppo.usageDump", label: "UsageDump", description: "After-sales service assistance tools", safety: "safe" },
- { pkg: "com.oppo.usercenter", label: "Usercenter", description: "Just bloatware for account details and marketing of OPPO. Cannot log into OPPO/HeyTap account after disabling. Safe to disable if OPPO account is not used.", safety: "caution" },
- { pkg: "com.oppo.webview", label: "Webview", description: "Oppo WebView enables Android apps to display web content within the app itself, based on Chrome. No root? Don't uninstall. Root? If you delete WebView, make sure to install a replacement. Many third-party apps, such as banks, VPNs, GitHub, Discord and Reddit use web-based content and will crash without it.", safety: "caution" },
- { pkg: "com.oppo.wifirf", label: "Wifirf", description: "Wifi Rf Test", safety: "safe" },
- { pkg: "com.oppo.wifitest", label: "Wifitest", description: "Wi-Fi RF, RX test", safety: "safe" },
- { pkg: "com.oppoex.afterservice", label: "Afterservice", description: "Have something to E-warranty card Chinese.", safety: "safe" },
- { pkg: "com.realme.as.music", label: "Music", description: "Realme Music app https://play.google.com/store/apps/details?id=com.realme.as.music", safety: "safe" },
+ { pkg: "com.coloros.wallet", label: "Wallet", description: "Oppo Wallet", safety: "safe" },
{ pkg: "com.realme.findphone.client2", label: "Client2", description: "Find my phone client app", safety: "safe" },
- { pkg: "com.realme.link", label: "Link", description: "RealMe Link (https://play.google.com/store/apps/details?id=com.realme.link) Companion app for various realme IoT devices. Useless if you don't have a realme watch/band", safety: "safe" },
- { pkg: "com.realme.logtool", label: "Logtool", description: "Hidden Logs App", safety: "safe" },
- { pkg: "com.realme.movieshot", label: "Movieshot", description: "Combine captions It's for partial screenshot, SaveLongshot.", safety: "caution" },
- { pkg: "com.realme.securitycheck", label: "Securitycheck", description: "Have useless ads and security checks. Why do we need more security when Play Protect is already good?", safety: "safe" },
- { pkg: "com.realme.wellbeing", label: "Wellbeing", description: "Sleep capsule Feature for your phone where apps are locked at night to help you get a good night's sleep. No one is probably using this.", safety: "safe" },
+ { pkg: "com.coloros.filemanager", label: "Filemanager", description: "ColorOS File Manager", safety: "caution" },
+ { pkg: "com.coloros.pictorial", label: "Pictorial", description: "LockscreenMagazine", safety: "keep" },
+ { pkg: "com.coloros.securitypermission", label: "Securitypermission", description: "Handles app permission management. DO NOT REMOVE THIS", safety: "keep" },
+ { pkg: "com.oppo.freefallingmonitor", label: "Freefallingmonitor", description: "Provides protection for camera slider in the event of a fall.", safety: "keep" },
+ { pkg: "com.oppo.webview", label: "Webview", description: "Oppo Webview", safety: "caution" },
+ { pkg: "com.oneplus.sound.tuner", label: "Tuner", description: "Dolby Atmos", safety: "caution" },
+ { pkg: "com.oplus.cosa", label: "Cosa", description: "App Enhancement Services", safety: "safe", neededBy: ["com.oneplus.gamespace"] },
+ { pkg: "com.oplus.synergy", label: "Synergy", description: "HeySynergy", safety: "caution", deps: ["com.heytap.mcs", "com.heytap.accessory"] },
+ { pkg: "com.oplus.games", label: "Games", description: "Games (https://play.google.com/store/apps/details?id=com.oplus.games)", safety: "safe" },
+ { pkg: "com.oppo.partnerbrowsercustomizations", label: "Partnerbrowsercustomizations", description: "Oppo Bookmarks", safety: "safe" },
+ { pkg: "com.nearme.deamon", label: "Deamon", description: "Package needed by com.nearme.statistics.rom to run service in background at every boot even though the app ...", safety: "safe", neededBy: ["com.nearme.statistics.rom"] },
+ { pkg: "com.nearme.statistics.rom", label: "Rom", description: "User Experience Program", safety: "safe" },
+ { pkg: "com.coloros.compass2", label: "Compass2", description: "ColorOS default compass app", safety: "caution" },
+ { pkg: "com.coloros.gamespaceui", label: "Gamespaceui", description: "GameSpace", safety: "safe" },
+ { pkg: "com.coloros.onekeylockscreen", label: "Onekeylockscreen", description: "Lock your phone if you click on the app icon. Completely useless unless your physical power button is damaged.", safety: "safe" },
+ { pkg: "com.coloros.oshare", label: "Oshare", description: "Oppo Share", safety: "caution" },
+ { pkg: "com.coloros.phonemanager", label: "Phonemanager", description: "Phone Manager", safety: "safe" },
+ { pkg: "com.coloros.securepay", label: "Securepay", description: "Payment system from Oppo allowing you to pay with your phone", safety: "safe" },
+ { pkg: "com.coloros.systemclone", label: "Systemclone", description: "System Cloner", safety: "caution" },
+ { pkg: "com.coloros.video", label: "Video", description: "Video Player", safety: "safe" },
+ { pkg: "com.oplus.kekepay", label: "Kekepay", description: "Chinese pay service? Safe to remove but no documentation found online", safety: "safe" },
+ { pkg: "com.oplus.logkit", label: "Logkit", description: "Logs service and bug reporting app", safety: "safe" },
+ { pkg: "com.oplus.multiapp", label: "Multiapp", description: "App Cloner. Allows to clone an app. Have access to all installed apps. Is bundled with OnePlus analytics", safety: "caution" },
+ { pkg: "com.oplus.pay", label: "Pay", description: "Secure Payment", safety: "safe" },
+ { pkg: "com.oplus.securitykeyboard", label: "Securitykeyboard", description: "Secure Keyboard", safety: "safe" },
+ { pkg: "com.oplus.statistics.rom", label: "Rom", description: "User Experience Program", safety: "safe" },
+ { pkg: "com.oplus.sos", label: "Sos", description: "Emergency Alert service by clicking power button 5 times. It will automatically call contacts (and/or send ...", safety: "caution" },
+ { pkg: "com.realme.link", label: "Link", description: "RealMe Link (https://play.google.com/store/apps/details?id=com.realme.link)", safety: "safe" },
+ { pkg: "com.realme.securitycheck", label: "Securitycheck", description: "Security Analysis", safety: "safe" },
+ { pkg: "com.oppo.operationManual", label: "Operationmanual", description: "Oppo User Manual", safety: "safe" },
+ { pkg: "com.oppo.sos", label: "Sos", description: "Emergency Alert service by clicking power button 5 times. It will automatically call contacts (and/or send ...", safety: "caution" },
+ { pkg: "com.oneplus.chargingpilar", label: "Chargingpilar", description: "Geolocates the phone to find OnePlus charging stations nearby. Connects to 'gateway.oneplus.net'", safety: "safe" },
+ { pkg: "com.coloros.activation", label: "Activation", description: "E-warranty card", safety: "caution" },
+ { pkg: "com.oplus.appplatform", label: "Appplatform", description: "App Services", safety: "caution" },
+ { pkg: "com.oplus.athena", label: "Athena", description: "OnePlus background process manager. Removing it will solve the notification delay you can have but will dis...", safety: "caution" },
+ { pkg: "com.oplus.atlas", label: "Atlas", description: "Atlas Service", safety: "caution" },
+ { pkg: "com.oplus.crashbox", label: "Crashbox", description: "Sends system failure data to developers. Automatically runs at boot.", safety: "safe" },
+ { pkg: "com.oplus.exsystemservice", label: "Exsystemservice", description: "[NEED MORE INFO / APK NEEDED] Lots of permissions. The screenshot function will stop working when the app i...", safety: "caution" },
+ { pkg: "com.oplus.stdid", label: "Stdid", description: "StdID", safety: "caution", neededBy: ["com.oneplus.gamespace", "com.coloros.gamespace"] },
+ { pkg: "com.oplus.lfeh", label: "Lfeh", description: "Seems to be related to the the logging suite.", safety: "safe" },
+ { pkg: "com.oplus.ocar", label: "Ocar", description: "Car+", safety: "safe" },
+ { pkg: "com.oplus.wifibackuprestore", label: "Wifibackuprestore", description: "Lets you backup your wifi credentials to the cloud. This app has obviously access to your wifi credential a...", safety: "safe" },
+ { pkg: "com.oneplus.geoiptime", label: "Geoiptime", description: "Sets the Timezone (it is not an NTP client). Automatically starts at boot and connects to `checkip.amazonaw...", safety: "caution" },
+ { pkg: "com.oneplus.dialer", label: "Dialer", description: "OnePlus Dialer used in OxygenOS 11 and lower.", safety: "caution" },
],
},
{
name: "Sony",
packages: [
- { pkg: "com.sony.dtv.calibrationmonitor", label: "Calibrationmonitor", description: "Screen calibration app https://play.google.com/store/apps/details/Calman%20for%20BRAVIA?id=com.sony.dtv.calibrationmonitor&hl=en_US Useful app, but can be removed if you don't need it.", safety: "caution" },
- { pkg: "com.sony.dtv.ecodashboard", label: "Ecodashboard", description: "Used to configure eco friendly settings. Breaks some options in the settings app if removed.", safety: "caution" },
- { pkg: "com.sony.dtv.livingfit", label: "Livingfit", description: "Turns your tv into an accessory by showing pictures. This is different to the screensaver and won't affect it. https://play.google.com/store/apps/details?id=com.sony.dtv.livingfit&hl=en_US", safety: "safe" },
- { pkg: "com.sony.dtv.notificationcenter", label: "Notificationcenter", description: "Notification app which reminds you to use apps from Sony's ecosystem. Can be removed safely without breaking other notifications", safety: "safe" },
- { pkg: "com.sony.dtv.osat.music", label: "Music", description: "Music app which streams from your files. https://play.google.com/store/apps/details?id=com.sonyericsson.music&hl=en_US Can be removed if you don't need it.", safety: "safe" },
- { pkg: "com.sony.dtv.promos", label: "Promos", description: "Sony's promotion app with offers. You need an account to use it", safety: "safe" },
- { pkg: "com.sony.dtv.recapp", label: "Recapp", description: "Allows you to view your reminders and timers but not add them? Can be removed safely", safety: "safe" },
- { pkg: "com.sony.dtv.seeds.iot", label: "Iot", description: "Allows you to control your TV with smart speaker e.g Alexa: https://play.google.com/store/apps/details?id=com.sony.dtv.seeds.iot&hl=en_US", safety: "safe" },
- { pkg: "com.sony.dtv.smarthelp", label: "Smarthelp", description: "App with documentation of how to use a smart TV. Removing it has no effect", safety: "safe" },
- { pkg: "com.sony.dtv.sonyselect", label: "Sonyselect", description: "Shows you bunch of popular subscription services and apps and redirects you to the play store. Better to use play store itself", safety: "safe" },
- { pkg: "com.sony.dtv.timers", label: "Timers", description: "Sony's clock app. Can be removed safely but on some Android Tv launchers it makes the Timer button not function. Not a deal breaker as the feature is pretty useless.", safety: "safe" },
- { pkg: "com.sony.dtv.tvx", label: "Tvx", description: "Handles input settings. HDMI stops working if this is removed.", safety: "caution" },
- { pkg: "com.sony.nfx.app.sfrc", label: "Sfrc", description: "Tied to Sony's recommendations and can be safely got rid of, maybe break suggestions/recommendations", safety: "caution" },
- { pkg: "com.sony.tvsideview.phone", label: "Phone", description: "Sony's TV remote control app https://play.google.com/store/apps/details?id=com.sony.tvsideview.phone", safety: "safe" },
- { pkg: "com.sony.tvsideview.videoph", label: "Videoph", description: "Video & TV SideView (replaced by https://play.google.com/store/apps/details?id=com.sony.tvsideview.phone) Lets you use your smartphone or tablet as a TV remote control for the home.", safety: "safe" },
- { pkg: "com.sonyericsson.advancedwidget.photo", label: "Photo", description: "Videos and photos, safe to remove: https://www.apkmirror.com/apk/sony-mobile-communications/photos-and-videos/photos-and-videos-2-2-a-0-8-release/photos-and-videos-2-2-a-0-8-android-apk-download", safety: "safe" },
- { pkg: "com.sonyericsson.album", label: "Album", description: "Sony gallery app (https://play.google.com/store/apps/details?id=com.sonyericsson.album)", safety: "caution" },
- { pkg: "com.sonyericsson.android.addoncamera.artfilter", label: "Artfilter", description: "Sony Creative effect Gives options for various photographic toning effects in the Sony camera app. I'm not 100% sure for this one. Can someone confirm ?", safety: "caution" },
- { pkg: "com.sonyericsson.android.bootinfo", label: "Bootinfo", description: "May break boot, bootloader checks. No removal tested", safety: "keep" },
- { pkg: "com.sonyericsson.android.camera", label: "Camera", description: "Sony's default camera app, can be replaced but you will lose camera features", safety: "caution" },
- { pkg: "com.sonyericsson.android.camera.product.res.overlay.enable.information.entry", label: "Entry", description: "Overlays default camera app, removing could break camera features. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.sonyericsson.android.camera.product.res.overlay.enable.scene.setting", label: "Setting", description: "Overlays default camera app, removing could break camera features. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.sonyericsson.android.camera3d", label: "Camera3d", description: "Sony camera app (on older phones)", safety: "caution" },
- { pkg: "com.sonyericsson.android.conversations", label: "Conversations", description: "Sony's default messages (SMS) app https://www.apkmirror.com/apk/sony-mobile-communications/messaging-sony-mobile-communications/messaging-sony-mobile-communications-29-3-a-6-12-release/messaging-29-3-a-6-12-android-apk-download", safety: "caution" },
- { pkg: "com.sonyericsson.android.drm.drmlicenseservice", label: "Drmlicenseservice", description: "Theres only Drm License Activity, only downloads license, also japanese", safety: "safe" },
- { pkg: "com.sonyericsson.android.omacp", label: "Omacp", description: "omacp = OMA Client Provisioning. It is a protocol specified by the Open Mobile Alliance (OMA). It is used by carrier to send\"configuration SMS\" which can setup network settings (such as APN). In my case, it was automatic and I never needed configuration messages. I'm pretty sure that in France this package is useless. Maybe it's useful if carriers change their APN... but you still can change it manually, it's not difficult. These special\"configuration SMS\" can be abused : https://www.zdnet.fr/actualites/les-smartphones-samsung-huawei-lg-et-sony-vulnerables-a-des-attaques-par-provisioning-39890045.htm https://www.csoonline.com/article/3435729/sms-based-provisioning-messages-enable-advanced-phishing-on-android-phones.html", safety: "caution" },
- { pkg: "com.sonyericsson.android.servicemenu", label: "Servicemenu", description: "Provides access to service menus for testing", safety: "caution" },
- { pkg: "com.sonyericsson.android.servicemenu.product.res.overlay.suzu", label: "Suzu", description: "Overlays service com.sonyericsson.android.servicemenu. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.sonyericsson.autopoweroffservice", label: "Autopoweroffservice", description: "This service helps safe shutdown, could cause negative effect by removing but system settings > apps > autopoweroff > lets you disable it", safety: "caution" },
- { pkg: "com.sonyericsson.cameraextension.permission", label: "Permission", description: "Provides third party apps access to AR effect and other plugins, removing will break camera functionality", safety: "caution" },
+ { pkg: "com.sony.tvsideview.videoph", label: "Videoph", description: "Video & TV SideView (replaced by https://play.google.com/store/apps/details?id=com.sony.tvsideview.phone)", safety: "safe" },
+ { pkg: "com.sonyericsson.android.addoncamera.artfilter", label: "Artfilter", description: "Sony Creative effect", safety: "caution" },
+ { pkg: "com.sonyericsson.android.omacp", label: "Omacp", description: "omacp = OMA Client Provisioning. It is a protocol specified by the Open Mobile Alliance (OMA).", safety: "caution" },
{ pkg: "com.sonyericsson.conversations.res.overlay", label: "Overlay", description: "Used to display a overlay notification (= on top of others app) when you receive a SMS with Sony SMS app ?", safety: "caution" },
- { pkg: "com.sonyericsson.conversations.res.overlay_305", label: "Overlay_305", description: "Used to display a overlay notification (= on top of others app) when you receive a SMS with Sony SMS app ?", safety: "caution" },
- { pkg: "com.sonyericsson.crashmonitor", label: "Crashmonitor", description: "Sony's crash monitor", safety: "caution" },
- { pkg: "com.sonyericsson.credentialmanagerservice", label: "Credentialmanagerservice", description: "Said to be Sony's custom credential storage and obsolete these days due to Google's storage manager", safety: "safe" },
- { pkg: "com.sonyericsson.customizedsettings", label: "Customizedsettings", description: "Settings that are customised by carriers for region specifics", safety: "caution" },
- { pkg: "com.sonyericsson.devicemonitor", label: "Devicemonitor", description: "Safe to remove if you don't use PC to manage device", safety: "caution" },
- { pkg: "com.sonyericsson.fmradio", label: "Fmradio", description: "Sony's FM radio app, safe to remove if you don't use it", safety: "safe" },
- { pkg: "com.sonyericsson.home", label: "Home", description: "Sony's default launcher, do not remove unless you have another launcher or you will brick your device", safety: "caution" },
- { pkg: "com.sonyericsson.home.product.res.overlay", label: "Overlay", description: "Launcher overlay, best left enabled. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.sonyericsson.home.res.overlay_305", label: "Overlay_305", description: "Launcher overlay, best left enabled. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.sonyericsson.idd.agent", label: "Agent", description: "Anonymous Usage Stats Used to send\"anonymous\" information about how you use your Sony Smartphone to Sony servers. It remains unclear exactly how this information is anonymized.", safety: "safe" },
- { pkg: "com.sonyericsson.lockscreen.uxpnxt", label: "Uxpnxt", description: "Sony lockscreen settings", safety: "caution" },
- { pkg: "com.sonyericsson.mtp", label: "Mtp", description: "MTP extension service Needed to transfer data from phone to PC through MTP? (Media Transfer Protocol)", safety: "caution" },
- { pkg: "com.sonyericsson.mtp.extension.backuprestore", label: "Backuprestore", description: "Backup/Restore Sony feature. Enables you to backup contacts, call logs, text messages, calendar, settings, bookmarks & media files. NOTE: I don't think this feature can backup your messages or calendars for instance if you don't use the Sony stock app. https://support.sonymobile.com/global-en/xperiaz2/userguide/backing-up-and-restoring-content-on-a-device/", safety: "caution" },
- { pkg: "com.sonyericsson.mtp.extension.factoryreset", label: "Factoryreset", description: "Sony phone says 'lock screen settings'. Removing it can cause bootloop", safety: "keep" },
- { pkg: "com.sonyericsson.mtp.extension.update", label: "Update", description: "Update service for MTP Extension. Updates something for the MTP extension?", safety: "caution" },
+ { pkg: "com.sonyericsson.idd.agent", label: "Agent", description: "Anonymous Usage Stats", safety: "safe" },
+ { pkg: "com.sonyericsson.mtp", label: "Mtp", description: "MTP extension service", safety: "caution" },
+ { pkg: "com.sonyericsson.mtp.extension.backuprestore", label: "Backuprestore", description: "Backup/Restore Sony feature.", safety: "caution" },
+ { pkg: "com.sonyericsson.mtp.extension.update", label: "Update", description: "Update service for MTP Extension.", safety: "caution" },
{ pkg: "com.sonyericsson.music", label: "Music", description: "Sony music player (https://play.google.com/store/apps/details?id=com.sonyericsson.music)", safety: "caution" },
- { pkg: "com.sonyericsson.omadl", label: "Omadl", description: "Provides carrier/APN updates and OTA in some cases. Sony phone says 'OMA download client', best left enabled", safety: "caution" },
- { pkg: "com.sonyericsson.organizer", label: "Organizer", description: "Tied to Sony calendar, deprecated by Google and other calendars", safety: "safe" },
- { pkg: "com.sonyericsson.photoeditor", label: "Photoeditor", description: "Sony's photo editor: https://www.apkmirror.com/apk/sony-mobile-communications/photo-editor", safety: "safe" },
- { pkg: "com.sonyericsson.providers.cnap", label: "Cnap", description: "Allows carriers to show incoming caller name instead of just the number via CNAP, best left enabled to see who is calling", safety: "caution" },
- { pkg: "com.sonyericsson.psm.sysmonservice", label: "Sysmonservice", description: "Power management, Stamina mode. Best left enabled", safety: "caution" },
- { pkg: "com.sonyericsson.settings", label: "Settings", description: "This is the system settings app, do not remove it", safety: "keep" },
- { pkg: "com.sonyericsson.settings.res.overlay_305", label: "Overlay_305", description: "Some overlay for settings? Overlays are usually themes.", safety: "caution" },
- { pkg: "com.sonyericsson.settings.res.overlay_310_311", label: "Overlay_310_311", description: "System settings overlay, do not remove. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "keep" },
- { pkg: "com.sonyericsson.setupwizard", label: "Setupwizard", description: "Onboarding that occurs after factory reset or first boot, safe to remove", safety: "caution" },
- { pkg: "com.sonyericsson.setupwizard.res.overlay_305", label: "Overlay_305", description: "Overlays setup wizard during first boot or after factory reset, safe to remove. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.sonyericsson.simdetection", label: "Simdetection", description: "Detects SIM connection, best left enabled", safety: "caution" },
- { pkg: "com.sonyericsson.soundenhancement", label: "Soundenhancement", description: "Not essential for audio to work but provides sound effects/enhancements such as Clear Audio+", safety: "caution" },
- { pkg: "com.sonyericsson.startupflagservice", label: "Startupflagservice", description: "Startup Flag Service Used during the production of the phone to verify that the touch input works. It can be triggered when a specific TA-parameter is not set. This should never be triggered and if it does well it doesn't have any use for you. TA means Timing Advance and its value correspond to the length of time a signal takes to reach the base station from a mobile phone. https://www.telecomhall.net/t/parameter-timing-advance-ta/6390", safety: "safe" },
- { pkg: "com.sonyericsson.suquashi.soundpicker", label: "Soundpicker", description: "Ringtone/notification/alarm time picker", safety: "keep" },
- { pkg: "com.sonyericsson.tetherentitlementcheck", label: "Tetherentitlementcheck", description: "Needed for tethering checks such as carrier conditions and regional restrictions, safe to remove if you don't tether/hotspot", safety: "caution" },
+ { pkg: "com.sonyericsson.settings.res.overlay_305", label: "Overlay 305", description: "Some overlay for settings? Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.sonyericsson.startupflagservice", label: "Startupflagservice", description: "Startup Flag Service", safety: "safe" },
{ pkg: "com.sonyericsson.textinput.chinese", label: "Chinese", description: "Sony chinese keyboard", safety: "safe" },
- { pkg: "com.sonyericsson.trackid.res.overlay", label: "Overlay", description: "Some overlay for TrackID. Overlays are usually themes. TrackID was(now discontinued) a music and audio search engine (like Shazam).", safety: "caution" },
- { pkg: "com.sonyericsson.trackid.res.overlay_305", label: "Overlay_305", description: "Overlay for TrackID. Overlays are usually themes. TrackID was(now discontinued) a music and audio search engine (like Shazam).", safety: "caution" },
- { pkg: "com.sonyericsson.unsupportedheadsetnotifier", label: "Unsupportedheadsetnotifier", description: "Given its name, I think it displays a notification when you insert a headset not compatible with your phone.", safety: "caution" },
- { pkg: "com.sonyericsson.updatecenter", label: "Updatecenter", description: "The system updater found on settings > about > software update, safe to remove if your device no longer receives updates", safety: "caution" },
- { pkg: "com.sonyericsson.updatecenter.res.overlay_305", label: "Overlay_305", description: "Overlay for updater found in Settings > about > system update, safe to remove if your device no longer gets updates", safety: "caution" },
- { pkg: "com.sonyericsson.usbux", label: "Usbux", description: "Provides the USB options such as MTP, PTP, charge only. Leave enabled", safety: "caution" },
- { pkg: "com.sonyericsson.wappush", label: "Wappush", description: "WAP Push Used to display annoying WAP push. WAP push is a type of text message that contains a direct link to a particular Web page. When a user is sent a WAP-push message, he receives an alert, once clicked, directs him to the Web page via his browser. Personally, I don't like this. URLs are now recognized by the SMS instant messaging apps and you just have to click on it.", safety: "safe" },
- { pkg: "com.sonyericsson.warrantytime", label: "Warrantytime", description: "Lets you see some info about your warranty and how long it will last.", safety: "safe" },
- { pkg: "com.sonyericsson.xhs", label: "Xhs", description: "Sony Xperia Lounge (discontinued by Sony on August 2019) The Xperia Lounge app was meant to provide loyal fans with various rewards for their Xperia smartphones, such as exclusive Xperia Themes and wallpapers, as well as competitions.", safety: "safe" },
- { pkg: "com.sonymobile.advancedlogging", label: "Advancedlogging", description: "Advanced Logging Sends logs to Sony Mobile. These logs contain a wide range of personal information such as unique device IDs, your location, details regarding running applications, and events/input leading up to a crash. Logging is only active for a short time and automatically disabled once logging has been completed. Logs are uploaded when connected to Wi-Fi and automatically deleted when the upload is complete.", safety: "safe" },
- { pkg: "com.sonymobile.advancedwidget.topcontacts", label: "Topcontacts", description: "Top Contacts widget It will show pictures of your most frequently used contacts right on your home screen. REMINDER : Widgets are small applications that you can use directly on the window screen. They also function as shortcuts", safety: "safe" },
- { pkg: "com.sonymobile.android.addoncamera.dual", label: "Dual", description: "Provides an addon to enable dual camera functionality, safe to remove if you don’t need camera add-ons", safety: "caution" },
- { pkg: "com.sonymobile.android.addoncamera.soundphoto", label: "Soundphoto", description: "Sony Sound Photo Lets you record a background sound and take a photo at the same time with the Sound Photo app.", safety: "safe" },
- { pkg: "com.sonymobile.android.contacts", label: "Contacts", description: "Sony contacts", safety: "caution" },
- { pkg: "com.sonymobile.android.contacts.res.overlay_305", label: "Overlay_305", description: "Overlay for Sony contacts. Overlays are usually themes.", safety: "caution" },
- { pkg: "com.sonymobile.android.externalkeyboard", label: "Externalkeyboard", description: "International keyboard layouts Useless if you use a latin keyboard", safety: "caution" },
+ { pkg: "com.sonyericsson.trackid.res.overlay_305", label: "Overlay 305", description: "Overlay for TrackID. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.sonyericsson.trackid.res.overlay", label: "Overlay", description: "Some overlay for TrackID. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.sonyericsson.unsupportedheadsetnotifier", label: "Unsupportedheadsetnotifier", description: "Given its name, I think it diplays a notification when you insert a headset not compatible with your phone.", safety: "caution" },
+ { pkg: "com.sonyericsson.wappush", label: "Wappush", description: "WAP Push", safety: "safe" },
+ { pkg: "com.sonyericsson.xhs", label: "Xhs", description: "Sony Xperia Lounge (discontinued by Sony on August 2019)", safety: "safe" },
+ { pkg: "com.sonymobile.advancedlogging", label: "Advancedlogging", description: "Advanced Logging", safety: "safe" },
+ { pkg: "com.sonymobile.advancedwidget.topcontacts", label: "Topcontacts", description: "Top Contacts widget", safety: "safe" },
+ { pkg: "com.sonymobile.android.addoncamera.soundphoto", label: "Soundphoto", description: "Sony Sound Photo", safety: "safe" },
+ { pkg: "com.sonymobile.androidapp.cameraaddon.areffect", label: "Areffect", description: "Old package for AR Effect (https://play.google.com/store/apps/details?id=com.sonymobile.androidapp.cameraad...", safety: "safe" },
+ { pkg: "com.sonymobile.android.externalkeyboard", label: "Externalkeyboard", description: "International keyboard layouts", safety: "caution" },
+ { pkg: "com.sonymobile.android.contacts.res.overlay_305", label: "Overlay 305", description: "Overlay for Sony contacts. Overlays are usually themes.", safety: "caution" },
{ pkg: "com.sonymobile.android.externalkeyboardjp", label: "Externalkeyboardjp", description: "Japanese layout for Sony keyboard.", safety: "caution" },
- { pkg: "com.sonymobile.androidapp.cameraaddon.areffect", label: "Areffect", description: "Old package for AR Effect (https://play.google.com/store/apps/details?id=com.sonymobile.androidapp.cameraaddon.areffect) Lets you add AR (Augmented Reality) effects to your pictures and videos.", safety: "safe" },
- { pkg: "com.sonymobile.anondata", label: "Anondata", description: "Anonymous Usage Stats (yes just as com.sonyericsson.idd.agent but it's for other phones) Used to send\"anonymous\" information about how you use your Sony Smartphone to Sony servers. It remains unclear exactly how this information is anonymized.", safety: "safe" },
- { pkg: "com.sonymobile.apnupdater", label: "Apnupdater", description: "Automatically updates APN settings if your carrier changes them? I thought that was the role of com.android.carrierconfig APN: https://tamingthedroid.com/what-apn-settings-mean", safety: "caution" },
- { pkg: "com.sonymobile.apnupdater.res.overlay_305", label: "Overlay_305", description: "Overlay for APN Updater. Overlays are usually themes.", safety: "caution" },
- { pkg: "com.sonymobile.aptx.notifier", label: "Notifier", description: "Aptx Notifier aptX (formerly apt-X) is a family of proprietary audio codec compression algorithms owned by Qualcomm. If you don't mind closed source codec, aptX has lower latency and is less of a drain on your battery than default codec (AAC) This package is used to display a notification when a device using aptX (bluetooth headphone typically) is connected. Its only use is to tell you that you use aptX bluetooth with the connected device.", safety: "caution" },
- { pkg: "com.sonymobile.assist", label: "Assist", description: "Xperia Assist (https://play.google.com/store/apps/details?id=com.sonymobile.assist) Learns how you use your phone.", safety: "safe" },
+ { pkg: "com.sonymobile.anondata", label: "Anondata", description: "Anonymous Usage Stats (yes just as com.sonyericsson.idd.agent but it's for other phones)", safety: "safe" },
+ { pkg: "com.sonymobile.apnupdater", label: "Apnupdater", description: "Automatically updates APN settings if your carrier changes them? I thought that was the role of com.android...", safety: "caution" },
+ { pkg: "com.sonymobile.apnupdater.res.overlay_305", label: "Overlay 305", description: "Overlay for APN Updater. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.sonymobile.aptx.notifier", label: "Notifier", description: "Aptx Notifier", safety: "caution" },
+ { pkg: "com.sonymobile.assist", label: "Assist", description: "Xperia Assist (https://play.google.com/store/apps/details?id=com.sonymobile.assist)", safety: "safe" },
{ pkg: "com.sonymobile.assist.persistent", label: "Persistent", description: "Related to Xperia Assist (see just above) but I don't know its purpose.", safety: "safe" },
- { pkg: "com.sonymobile.btidd", label: "Btidd", description: "Bluetooth stack identifier, may be tied to pairing/security. Best to keep enabled", safety: "caution" },
- { pkg: "com.sonymobile.cameracommon", label: "Cameracommon", description: "Shared library for Sony’s camera app and add-ons. Removing breaks camera functionality", safety: "keep" },
- { pkg: "com.sonymobile.cameracommon.wearablebridge", label: "Wearablebridge", description: "Camera Wearable bridge Lets you take pictures with your phone by using Sony SmartWatch.", safety: "safe" },
- { pkg: "com.sonymobile.cellbroadcast.notification", label: "Notification", description: "Cell information Cell broadcast is designed to deliver messages to multiple users in an area. This is notably used by ISP to send Emergency/Government alerts. https://en.wikipedia.org/wiki/Cell_Broadcast https://www.androidcentral.com/amber-alerts-and-android-what-you-need-know I think this package only handles notifications for broadcasts, not the implementation. It seems like broadcast SMS use normal notifications so there is a chance this package provides special notification for Sony SMS app?", safety: "caution" },
- { pkg: "com.sonymobile.coresettings", label: "Coresettings", description: "Contains Sony-specific customisations and settings overlays. Needed for Xperia custom features", safety: "caution" },
- { pkg: "com.sonymobile.coverapp2", label: "Coverapp2", description: "Style Cover Themes for lockscreen.", safety: "safe" },
- { pkg: "com.sonymobile.demoappchecker", label: "Demoappchecker", description: "Demo app checker Lets you enter/exit (in) the demonstration mode. https://en.wikipedia.org/wiki/Demo_mode", safety: "safe" },
- { pkg: "com.sonymobile.deviceconfigtool", label: "Deviceconfigtool", description: "Configuration agent Seems to do things cloud related but it's unclear. https://knowledge.protektoid.com/apps/com.sonymobile.deviceconfigtool/91e44f1e19b364411776d758ff3b27f703bd4b60c9399c43c124f37d0c30df27", safety: "safe" },
- { pkg: "com.sonymobile.devicesecurity.service", label: "Service", description: "DeviceSecurityService Not needed. Collects sim and network data.", safety: "safe" },
- { pkg: "com.sonymobile.dualshockmanager", label: "Dualshockmanager", description: "DUALSHOCK Provide PlayStation DualShock controller support for Android (Settings > Device connection > Dualshock)", safety: "safe" },
+ { pkg: "com.sonymobile.cameracommon.wearablebridge", label: "Wearablebridge", description: "Camera Wearable bridge", safety: "safe" },
+ { pkg: "com.sonymobile.cellbroadcast.notification", label: "Notification", description: "Cell information", safety: "caution" },
+ { pkg: "com.sonymobile.coverapp2", label: "Coverapp2", description: "Style Cover", safety: "safe" },
+ { pkg: "com.sonymobile.demoappchecker", label: "Demoappchecker", description: "Demo app checker", safety: "safe" },
+ { pkg: "com.sonymobile.deviceconfigtool", label: "Deviceconfigtool", description: "Configuration agent", safety: "safe" },
+ { pkg: "com.sonymobile.dualshockmanager", label: "Dualshockmanager", description: "DUALSHOCK", safety: "safe" },
{ pkg: "com.sonymobile.email", label: "Email", description: "Sony Email app", safety: "safe" },
- { pkg: "com.sonymobile.entrance", label: "Entrance", description: "What's New (discontinued in 2014) Provided news from Sony products through extremely annoying automated notifications.", safety: "safe" },
- { pkg: "com.sonymobile.getmore.client", label: "Client", description: "Xperia Tips (https://play.google.com/store/apps/details?id=com.sonymobile.getmore.client) Gives you tips for your Xperia device.", safety: "safe" },
- { pkg: "com.sonymobile.getset", label: "Getset", description: "Xperia Actions (discontinued) Lets you automate some actions (only a few) https://support.sonymobile.com/global-en/xperiaxz/userguide/xperia-actions/", safety: "safe" },
- { pkg: "com.sonymobile.getset.priv", label: "Priv", description: "Xperia Actions System Same thing as com.sonymobile.getset.", safety: "safe" },
- { pkg: "com.sonymobile.gettoknowit", label: "Gettoknowit", description: "Introduction to Xperia (discontinued) Introduces you the features of your phone.", safety: "safe" },
- { pkg: "com.sonymobile.glovemode", label: "Glovemode", description: "Sony Glove mode Lets you use your smart phone and touch the screen while wearing regular gloves.", safety: "safe" },
- { pkg: "com.sonymobile.googleanalyticsproxy", label: "Googleanalyticsproxy", description: "Google Analytics Proxy Allows you to publicly share your Google Analytics reporting data https://developers.google.com/analytics/solutions/google-analytics-super-proxy", safety: "safe" },
- { pkg: "com.sonymobile.home.product.res.overlay", label: "Overlay", description: "Package: com.sonymobile.home.product.res.overlay", safety: "caution" },
- { pkg: "com.sonymobile.indeviceintelligence", label: "Indeviceintelligence", description: "Xperia Intelligence Engine This app is supposed to understand how you use the phone, the apps you prefer, and will suggest tips and options based on app usage, how often you use an app, what time of day... For me this just looks like a AI bullshit app who has a huge list of permissions and launch in background at boot This app performs geofencing (check if your are located in a certain perimeter, near your home for instance) and this doesn't looks great privacy-wise (https://en.wikipedia.org/wiki/Geo-fence)", safety: "safe" },
- { pkg: "com.sonymobile.intelligent.backlight", label: "Backlight", description: "Smart backlight control Keeps the screen on as long as the device is held in your hand. Once you put down the device, the screen turns off according to your sleep setting.", safety: "safe" },
- { pkg: "com.sonymobile.intelligent.gesture", label: "Gesture", description: "Smart call handling Lets you handle incoming calls without touching the screen. https://support.sonymobile.com/global-en/xperiaxz/userguide/smart-call-handling/", safety: "safe" },
- { pkg: "com.sonymobile.intelligent.iengine", label: "Iengine", description: "According to a Sony user it is part of Smart Screen rotation (auto screen rotation based on the gyroscope). Doesn't seem reliable. Does it break the screen-rotation if removed? On Xperia 10VI: doesn't break rotation.", safety: "safe" },
- { pkg: "com.sonymobile.intelligent.observer", label: "Observer", description: "IntelligentObserver ???? (but intelligent stuff are safe to remove)", safety: "safe" },
- { pkg: "com.sonymobile.lifelog", label: "Lifelog", description: "Lifelog (https://play.google.com/store/apps/details?id=com.sonymobile.lifelog) Another activity tracker app.", safety: "safe" },
- { pkg: "com.sonymobile.moviecreator.rmm", label: "Rmm", description: "Movie Creator (https://play.google.com/store/apps/details?id=com.sonymobile.moviecreator.rmm) Automatically creates short movies using your photos and videos.", safety: "safe" },
- { pkg: "com.sonymobile.mtp.extension.fotaupdate", label: "Fotaupdate", description: "fota update service FOTA = Firmware Over-The-Air FOTA allows manufacturers to remotely install new software updates, features and services. Given there is\"mtp.extension\" in the package name, I think it lets you update your phone via your PC. What's weird is that it should be called SEUS then (https://www.mobilefun.co.uk/blog/2008/06/software-updates-sony-ericsson/)", safety: "caution" },
- { pkg: "com.sonymobile.music.googlelyricsplugin", label: "Googlelyricsplugin", description: "Google lyrics plugin Provides lyrics from Google in the sony music app", safety: "safe" },
+ { pkg: "com.sonymobile.entrance", label: "Entrance", description: "What's New (discontinued in 2014)", safety: "safe" },
+ { pkg: "com.sonymobile.getmore.client", label: "Client", description: "Xperia Tips (https://play.google.com/store/apps/details?id=com.sonymobile.getmore.client)", safety: "safe" },
+ { pkg: "com.sonymobile.getset", label: "Getset", description: "Xperia Actions (discontinued)", safety: "safe" },
+ { pkg: "com.sonymobile.getset.priv", label: "Priv", description: "Xperia Actions System", safety: "safe" },
+ { pkg: "com.sonymobile.gettoknowit", label: "Gettoknowit", description: "Introduction to Xperia (discontinued)", safety: "safe" },
+ { pkg: "com.sonymobile.glovemode", label: "Glovemode", description: "Sony Glove mode", safety: "safe" },
+ { pkg: "com.sonymobile.googleanalyticsproxy", label: "Googleanalyticsproxy", description: "Google Analytics Proxy", safety: "safe" },
+ { pkg: "com.sonymobile.intelligent.backlight", label: "Backlight", description: "Smart backlight control", safety: "safe" },
+ { pkg: "com.sonymobile.indeviceintelligence", label: "Indeviceintelligence", description: "Xperia Intelligence Engine", safety: "safe" },
+ { pkg: "com.sonymobile.intelligent.gesture", label: "Gesture", description: "Smart call handling", safety: "safe" },
+ { pkg: "com.sonymobile.intelligent.iengine", label: "Iengine", description: "According to a sony user it is part of Smart Screen rotation (auto screen rotation based on the gyroscope).", safety: "safe" },
+ { pkg: "com.sonymobile.intelligent.observer", label: "Observer", description: "IntelligentObserver", safety: "safe" },
+ { pkg: "com.sonymobile.lifelog", label: "Lifelog", description: "Lifelog (https://play.google.com/store/apps/details?id=com.sonymobile.lifelog)", safety: "safe" },
+ { pkg: "com.sonymobile.moviecreator.rmm", label: "Rmm", description: "Movie Creator (https://play.google.com/store/apps/details?id=com.sonymobile.moviecreator.rmm)", safety: "safe" },
+ { pkg: "com.sonymobile.mtp.extension.fotaupdate", label: "Fotaupdate", description: "fota update service", safety: "caution" },
+ { pkg: "com.sonymobile.music.googlelyricsplugin", label: "Googlelyricsplugin", description: "Google lyrics plugin", safety: "safe" },
{ pkg: "com.sonymobile.music.wikipediaplugin", label: "Wikipediaplugin", description: "Wikipedia plugin for sony music app", safety: "safe" },
{ pkg: "com.sonymobile.music.youtubekaraokeplugin", label: "Youtubekaraokeplugin", description: "YouTube karaoke plugin for sony music app", safety: "safe" },
{ pkg: "com.sonymobile.music.youtubeplugin", label: "Youtubeplugin", description: "YouTube plugin for sony music app", safety: "safe" },
- { pkg: "com.sonymobile.pip", label: "Pip", description: "Sony's PiP (Picture in Picture) Allows videos to shrink down to a small resizable window. Only useful on Android Oreo versions which provide native support for Pip ? https://developer.android.com/guide/topics/ui/picture-in-picture https://support.sonymobile.com/global-en/xperiaxz1compact/faq/apps-&-settings/8019307455ff6184015e92f63324005926/", safety: "safe" },
- { pkg: "com.sonymobile.pobox", label: "Pobox", description: "Xperia Japanese keyboard Package is named after POBox (Predictive Operation Based On eXample), a Japanese text entry technology and ambiguous retrieval, proposed in 1998 by Sony CSL fellow Toshiyuki Masuda. https://www.sonycsl.co.jp/project/402/", safety: "safe" },
- { pkg: "com.sonymobile.prediction", label: "Prediction", description: "Sony text prediction (for Sony keyboard) It's only a supposition. Can someone confirm ?", safety: "safe" },
- { pkg: "com.sonymobile.retaildemo", label: "Retaildemo", description: "Retail Demo Retail demonstration mode. https://en.wikipedia.org/wiki/Demo_mode", safety: "safe" },
- { pkg: "com.sonymobile.scan3d", label: "Scan3d", description: "Sony 3D Creator (https://play.google.com/store/apps/details?id=com.sonymobile.scan3d) Lets you capture your stuff in 3D, from your smartphone, and turn people and objects into high-resolution 3D avatars. https://www.sonymobile.com/global-en/apps-services/3d-creator/", safety: "safe" },
- { pkg: "com.sonymobile.simlockunlockapp", label: "Simlockunlockapp", description: "Sim Lock Provide menu (type *#*#7378423#*#* in dialer) to see if your device is locked to a network carrier It need confirmation because it also could be related to SIM network unlock code.", safety: "safe" },
- { pkg: "com.sonymobile.smartcharger", label: "Smartcharger", description: "Battery Care Detects your charging patterns and estimates the start and end time of your regular charging period. The rate of charging is controlled so that your battery reaches 100% just before you disconnect the charger. https://support.sonymobile.com/gb/xperiaxz/userguide/battery-and-power-management/", safety: "caution" },
- { pkg: "com.sonymobile.support", label: "Support", description: "Sony Support (https://play.google.com/store/apps/details?id=com.sonymobile.support) Useless support app.", safety: "safe" },
- { pkg: "com.sonymobile.swiqisystemservice", label: "Swiqisystemservice", description: "Package: com.sonymobile.swiqisystemservice", safety: "caution" },
- { pkg: "com.sonymobile.synchub", label: "Synchub", description: "Sony Backup & restore feature to/from Google drive ? Can someone confirm ? Does it impact com.sonyericsson.mtp.extension.backuprestore ? https://support.sonymobile.com/global-en/xperia10/faq/apps-&-settings/801930747866b72a016b307df3b6007faf/", safety: "safe" },
- { pkg: "com.sonymobile.telephony.extension", label: "Extension", description: "I have uninstalled it for the user 0 on my phone, and since then I haven't noticed any functionality drop. Cell signal is similar as before, also calls, SMSs and mobile data. I think it is not worth having this package installed because it uses a lot of wakelock time, but I cannot see any cell signal drop since I uninstalled it. In the code found some things: omadm, wifi calling, IMS. Its app for dual SIM reachability? Not sure if its app for debugging.", safety: "caution" },
+ { pkg: "com.sonymobile.pip", label: "Pip", description: "Sony pip (Picture in Picture)", safety: "safe" },
+ { pkg: "com.sonymobile.pobox", label: "Pobox", description: "Xperia Japanese keyboard", safety: "safe" },
+ { pkg: "com.sonymobile.prediction", label: "Prediction", description: "Sony text prediction (for Sony keyboard)", safety: "safe" },
+ { pkg: "com.sonymobile.retaildemo", label: "Retaildemo", description: "Retail Demo", safety: "safe" },
+ { pkg: "com.sonymobile.scan3d", label: "Scan3D", description: "Sony 3D Creator (https://play.google.com/store/apps/details?id=com.sonymobile.scan3d)", safety: "safe" },
+ { pkg: "com.sonymobile.simlockunlockapp", label: "Simlockunlockapp", description: "Sim Lock", safety: "safe" },
+ { pkg: "com.sonymobile.smartcharger", label: "Smartcharger", description: "Battery Care", safety: "safe" },
+ { pkg: "com.sonymobile.support", label: "Support", description: "Sony Support (https://play.google.com/store/apps/details?id=com.sonymobile.support)", safety: "safe" },
+ { pkg: "com.sonymobile.synchub", label: "Synchub", description: "Sony Backup & restore feature to/from Google drive ?", safety: "safe" },
+ { pkg: "com.sonymobile.themes.xperialoops2", label: "Xperialoops2", description: "Sony themes", safety: "caution" },
+ { pkg: "com.sonymobile.xperialounge.services", label: "Services", description: "Xperia\u2122 Lounge Pass service (discontinued)", safety: "safe" },
+ { pkg: "com.sonymobile.xperiaxlivewallpaper.product.res.overlay", label: "Overlay", description: "Some overlay for a live wallaper from Sony? Overlays are usually themes, but not sure about this one as the...", safety: "caution" },
+ { pkg: "com.sonymobile.xperiaservices", label: "Xperiaservices", description: "Xperia services", safety: "safe" },
+ { pkg: "com.sonymobile.xperiatransfermobile", label: "Xperiatransfermobile", description: "Xperia Transfer Mobile (https://play.google.com/store/apps/details?id=com.sonymobile.xperiatransfermobile)", safety: "safe" },
+ { pkg: "com.sonymobile.xperiaweather", label: "Xperiaweather", description: "Sony weather app (https://play.google.com/store/apps/details?id=com.sonymobile.xperiaweather)", safety: "safe" },
+ { pkg: "com.sonyericsson.album", label: "Album", description: "Sony gallery app (https://play.google.com/store/apps/details?id=com.sonyericsson.album)", safety: "caution" },
+ { pkg: "com.sonymobile.camera", label: "Camera", description: "Sony camera app", safety: "caution" },
+ { pkg: "com.sonyericsson.android.camera3d", label: "Camera3D", description: "Sony camera app (on older phones)", safety: "caution" },
+ { pkg: "com.sonymobile.android.contacts", label: "Contacts", description: "Sony contacts", safety: "caution" },
+ { pkg: "com.sonyericsson.conversations.res.overlay_305", label: "Overlay 305", description: "Used to display a overlay notification (= on top of others app) when you receive a SMS with Sony SMS app ?", safety: "safe" },
+ { pkg: "com.sonyericsson.warrantytime", label: "Warrantytime", description: "Lets you see some info about your warranty and how long it will last.", safety: "safe" },
{ pkg: "com.sonymobile.themes.sou.cid18.black", label: "Black", description: "Sony themes", safety: "caution" },
{ pkg: "com.sonymobile.themes.sou.cid19.silver", label: "Silver", description: "Sony themes", safety: "caution" },
{ pkg: "com.sonymobile.themes.sou.cid20.blue", label: "Blue", description: "Sony themes", safety: "caution" },
{ pkg: "com.sonymobile.themes.sou.cid21.pink", label: "Pink", description: "Sony themes", safety: "caution" },
- { pkg: "com.sonymobile.themes.xperialoops2", label: "Xperialoops2", description: "Sony themes", safety: "caution" },
- { pkg: "com.sonymobile.xperialounge.services", label: "Services", description: "Xperia™ Lounge Pass service (discontinued) The Xperia Lounge app was meant to provide loyal fans with various rewards for their Xperia smartphones, such as exclusive Xperia Themes and wallpapers, as well as competitions. https://www.phonearena.com/news/Sony-Xperia-Lounge-shutting-down_id118252", safety: "safe" },
- { pkg: "com.sonymobile.xperiaservices", label: "Xperiaservices", description: "Xperia services I guess it provides things for Sony apps but I don't know what. Safe to remove but it would good be to know what Sony apps work without it.", safety: "safe" },
- { pkg: "com.sonymobile.xperiatransfermobile", label: "Xperiatransfermobile", description: "Xperia Transfer Mobile (https://play.google.com/store/apps/details?id=com.sonymobile.xperiatransfermobile) Helps you move your contacts, messages, photos, and much more from your old Android, iOS or Windows Phone device to your new Xperia from Sony.", safety: "safe" },
- { pkg: "com.sonymobile.xperiaweather", label: "Xperiaweather", description: "Sony weather app (https://play.google.com/store/apps/details?id=com.sonymobile.xperiaweather) Note : Not all location are supported.", safety: "safe" },
- { pkg: "com.sonymobile.xperiaxlivewallpaper", label: "Xperiaxlivewallpaper", description: "Xperia Loops Useless and ugly live wallaper from Sony.", safety: "safe" },
- { pkg: "com.sonymobile.xperiaxlivewallpaper.product.res.overlay", label: "Overlay", description: "Some overlay for a live wallpaper from Sony? Overlays are usually themes, but not sure about this one as theming seems weird for live wallpapers. Could be that Sony automatically generates theme packages for all or most system apps, which might generate some unnecessary packages.", safety: "caution" },
+ { pkg: "com.sonymobile.xperiaxlivewallpaper", label: "Xperiaxlivewallpaper", description: "Xperia Loops", safety: "safe" },
],
},
{
name: "Motorola",
packages: [
- { pkg: "android.autoinstalls.config.motorola.layout", label: "Layout", description: "Device configuration for Motorola AutoInstalls a set of OEM apps on device setup (first boot/factory reset). A layout?", safety: "safe" },
- { pkg: "com.lmi.motorola.rescuesecurity", label: "Rescuesecurity", description: "Rescue Security by LogMeIn (https://www.logmeinrescue.com/) Remote support app. Motorola made a partnership with LogMeIn : https://www.logmeinrescue.com/customer-stories/motorola It enables motorola representatives to login and remotely control the device for technical support.", safety: "safe" },
- { pkg: "com.motorola.VirtualUiccPayment", label: "VirtualUiccPayment", description: "Virtual UICC Payment SIM Card Payment also NFC. Only useful in China by hidden image files. UICC stands for Universal Integrated Circuit Card. It is the physical and logical platform for the USIM and may contain additional USIMs and other applications. (U)SIM is an application on the UICC. https://bluesecblog.wordpress.com/2016/11/18/uicc-sim-usim/ I guess this package provides support for NFC payments. Note: The term SIM is widely used to refer to both SIMs and UICCs in the industry and among consumers. https://blog.velosiot.com/euicc-and-esim-are-they-the-same-thing", safety: "safe" },
- { pkg: "com.motorola.actions", label: "Actions", description: "Moto Actions (https://play.google.com/store/apps/details?id=com.motorola.actions) Allows you to perform specific gestures to perform certain tasks. Frontend to change settings provided by\"com.motorola.moto\".", safety: "safe" },
- { pkg: "com.motorola.actions.overlay", label: "Overlay", description: "Useless overlay config default to Moto Actions (com.motorola.actions)", safety: "safe" },
- { pkg: "com.motorola.aiservices", label: "Aiservices", description: "Moto AI Services Service to supply artificial intelligence models to Motorola apps https://play.google.com/store/apps/details?id=com.motorola.aiservices", safety: "safe" },
- { pkg: "com.motorola.android.connectivity.resources.overlay", label: "Overlay", description: "Configs to bad wifi better keep it.", safety: "keep" },
- { pkg: "com.motorola.android.coresettingsext.overlay.avatrn", label: "Avatrn", description: "This package is part of Motorola's custom overlay for system settings, specifically tailored for the Motorola Edge 2024 (codename 'avatrn').", safety: "caution" },
- { pkg: "com.motorola.android.coresettingsext.overlay.doubletap", label: "Doubletap", description: "Double tap to put display to sleep", safety: "safe" },
- { pkg: "com.motorola.android.coresettingsext.overlay.dubai", label: "Dubai", description: "Needed for support other refresh rate value?", safety: "caution" },
- { pkg: "com.motorola.android.fmradio", label: "Fmradio", description: "FMRadioService Required by\"com.motorola.fmplayer\"", safety: "safe" },
- { pkg: "com.motorola.android.fota", label: "Fota", description: "System Software Update", safety: "caution" },
- { pkg: "com.motorola.android.jvtcmd", label: "Jvtcmd", description: "Java Tcmd Helper tcmd = commands types. Seems to be a tools which help find Java commands types. Useless for normal user.", safety: "safe" },
- { pkg: "com.motorola.android.launcher.overlay.animation.scale", label: "Scale", description: "Overlay to transition_anim_scale? Maybe unused, not sure.", safety: "caution" },
- { pkg: "com.motorola.android.launcher.overlay.motolauncheroverlayna", label: "Motolauncheroverlayna", description: "This package is part of Motorola's custom launcher overlay, specifically tailored for their devices.", safety: "caution" },
- { pkg: "com.motorola.android.launcher.overlay.retail.global", label: "Global", description: "This package is part of Motorola's custom launcher overlay designed for retail or global versions of their devices.", safety: "caution" },
- { pkg: "com.motorola.android.nativedropboxagent", label: "Nativedropboxagent", description: "Native DropBox Agent. It is not related to Cloud Dropbox company but to Android logging. It is used during development. https://stackoverflow.com/questions/4434192/dropboxmanager-use-cases", safety: "safe" },
- { pkg: "com.motorola.android.networkstack.overlay.mcc460", label: "Mcc460", description: "This package is part of Motorola's custom network stack overlay, specifically related to the network configuration for a particular Mobile Country Code (MCC), in this case, MCC 460 (which corresponds to China).", safety: "caution" },
- { pkg: "com.motorola.android.networkstack.tethering.overlay.motCommon", label: "MotCommon", description: "This package is part of Motorola's custom overlay for the network stack, specifically related to tethering and hotspot functionalities.", safety: "caution" },
- { pkg: "com.motorola.android.overlay.common", label: "Common", description: "It has some important configs. Better don't risk.", safety: "keep" },
- { pkg: "com.motorola.android.overlay.crystaltalkai", label: "Crystaltalkai", description: "Enable crystal talk AI settings? I've never seen that.", safety: "safe" },
- { pkg: "com.motorola.android.overlay.deviceconfig.manaus", label: "Manaus", description: "Random configurations to basic things(powersaving, network, camera, etc.).", safety: "keep" },
- { pkg: "com.motorola.android.overlay.gabutton", label: "Gabutton", description: "\"Double press on power behavior\" 0 Not sure if useful, maybe it's another gesture.", safety: "caution" },
- { pkg: "com.motorola.android.overlay.lhbm", label: "Lhbm", description: "Not sure if its for high brightness mode, still unknown 'config_udfps_local_hbm_supported' 'true'", safety: "caution" },
- { pkg: "com.motorola.android.overlay.lpptoga", label: "Lpptoga", description: "This package is part of Motorola's custom overlay and is likely associated with specific visual or functional enhancements tailored for Motorola devices.", safety: "caution" },
- { pkg: "com.motorola.android.overlay.qcom.common", label: "Common", description: "This package is part of Motorola’s custom overlay and is associated with Qualcomm (Qcom) related functionality or optimizations.", safety: "caution" },
- { pkg: "com.motorola.android.overlay.wfd", label: "Wfd", description: "It has config to enable wifi display.", safety: "keep" },
- { pkg: "com.motorola.android.providers.chromehomepage", label: "Chromehomepage", description: "Seems to provide the\"Home\"-button functionality in Chrome. https://forum.xda-developers.com/android/apps-games/app-chrome-homepage-t3695804", safety: "safe" },
- { pkg: "com.motorola.android.providers.settings", label: "Settings", description: "Removal causes bootloop. Which is common with settings providers. Content providers encapsulate data, providing centralized management of data shared between apps. For example: the Settings provider. It stores the settings from your Settings app, which apps can query for info on whether you for example have Dark Mode turned on or off. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "keep" },
- { pkg: "com.motorola.android.providers.settings.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "This package is part of Motorola’s custom settings provider, and it likely includes resources or settings related to Motorola-specific customizations.", safety: "caution" },
- { pkg: "com.motorola.android.providers.settings.overlay.dppcamera", label: "Dppcamera", description: "This package is part of Motorola's custom settings overlay, specifically related to settings for the camera application.", safety: "caution" },
- { pkg: "com.motorola.android.providers.settings.overlay.dppnone", label: "Dppnone", description: "This package is part of Motorola's custom settings overlay, potentially dealing with settings or configurations that are applied when certain features or options are not in use.", safety: "caution" },
- { pkg: "com.motorola.android.provisioning", label: "Provisioning", description: "OMA Client Provisioning It is a protocol specified by the Open Mobile Alliance (OMA). It is used by carrier to send\"configuration SMS\" which can setup network settings (such as APN). In my case, it was automatic and I never needed configuration messages. I'm pretty sure that in France this package is useless. Maybe it's useful if carriers change their APN... but you still can change it manually, it's not difficult. # Note : These special\"confirguration SMS\" can be abused : https://www.zdnet.fr/actualites/les-smartphones-samsung-huawei-lg-et-sony-vulnerables-a-des-attaques-par-provisioning-39890045.htm https://www.csoonline.com/article/3435729/sms-based-provisioning-messages-enable-advanced-phishing-on-android-phones.html", safety: "caution" },
- { pkg: "com.motorola.android.settings.diag_mdlog", label: "Diag_mdlog", description: "Diag_mdlog is a small proprietary Qualcomm program which can store DIAG logs on the filesystem. No longer in Android 10 image", safety: "safe" },
- { pkg: "com.motorola.android.settings.modemdebug", label: "Modemdebug", description: "Provide modem debug settings menu ? No longer in Android 10 image", safety: "safe" },
- { pkg: "com.motorola.android.settings.overlay.eqs", label: "Eqs", description: "Overlay to refresh rate change in settings. Not sure if it's unused.", safety: "caution" },
- { pkg: "com.motorola.android.settings.overlay.fps.display", label: "Display", description: "Overlay to fps display.", safety: "caution" },
- { pkg: "com.motorola.android.settings.overlay.global", label: "Global", description: "This package is part of Motorola's custom settings overlay and is designed for global settings that apply across different regions or device configurations.", safety: "caution" },
- { pkg: "com.motorola.android.settings.overlay.lra", label: "Lra", description: "This package is part of Motorola’s custom settings overlay, likely related to specific regional or device configurations.", safety: "caution" },
- { pkg: "com.motorola.android.settings.overlay.power.bottom", label: "Bottom", description: "This package is part of Motorola’s custom settings overlay, specifically related to power management settings.", safety: "caution" },
- { pkg: "com.motorola.android.systemui.overlay.att", label: "Att", description: "This overlay needed for (com.motorola.attvowifi) I guess. It's for WiFi Calling.", safety: "caution" },
- { pkg: "com.motorola.android.systemui.overlay.sprint", label: "Sprint", description: "Needed for Moto Stats WiFi, it's useless.", safety: "safe" },
- { pkg: "com.motorola.android.systemui.overlay.tmo", label: "Tmo", description: "Needed for Moto Stats WiFi, it's useless.", safety: "safe" },
- { pkg: "com.motorola.android.systemui.overlay.usc", label: "Usc", description: "Needed for Moto Stats WiFi, it's useless.", safety: "safe" },
- { pkg: "com.motorola.android.systemui.overlay.vzw", label: "Vzw", description: "Needed for Moto Stats WiFi, it's useless.", safety: "safe" },
- { pkg: "com.motorola.appdirectedsmsproxy", label: "Appdirectedsmsproxy", description: "An Application directed SMS (or rather a Port directed SMS) is an SMS directed to a specific port. Apps need to listen to this port to get the SMS message. I don't know if this package allows port directed SMS or if it just provide a proxy feature.", safety: "safe" },
- { pkg: "com.motorola.appforecast", label: "Appforecast", description: "Performance Storage cleanup, RAM boost probably useless.", safety: "safe" },
- { pkg: "com.motorola.audiofx", label: "Audiofx", description: "/!\\ Removal causes bootloop on Moto G7 Power (Android 10) Audio effects Provide features like Equalizer, Surround sound...", safety: "keep" },
- { pkg: "com.motorola.audiorecorder", label: "Audiorecorder", description: "Audio recorder Stock Audio recorder for Motorola https://play.google.com/store/apps/details?id=com.motorola.audiorecorder", safety: "caution" },
- { pkg: "com.motorola.bach.modemstats", label: "Modemstats", description: "ModemStatsService Statistics and events logs from the modem activity.", safety: "safe" },
- { pkg: "com.motorola.batterycare", label: "Batterycare", description: "This package is part of Motorola's battery management system, specifically related to features or optimizations for battery care.", safety: "caution" },
- { pkg: "com.motorola.batterycare.overlay", label: "Overlay", description: "This package is part of Motorola’s custom battery care overlay and is likely responsible for providing Motorola-specific enhancements or visual elements related to battery management.", safety: "caution" },
- { pkg: "com.motorola.batterycare.overlay.appside", label: "Appside", description: "This package is part of Motorola's custom battery care overlay and is likely associated with specific enhancements or visual elements related to battery management on the app side of the user interface.", safety: "caution" },
- { pkg: "com.motorola.blur.service.blur", label: "Blur", description: "MOTOBLUR service Automatically syncs messages, emails, social status updates, contacts and pictures from your accounts straight to your Home screen. It's a serious privacy concern: https://www.beneaththewaves.net/Projects/Motorola_Is_Listening.html", safety: "caution" },
- { pkg: "com.motorola.brapps", label: "Brapps", description: "Motorola App Box (https://play.google.com/store/apps/details?id=com.motorola.brapps) Offers you a selection of applications developed by Brazilians and also apps selected for you.", safety: "safe" },
- { pkg: "com.motorola.bug2go", label: "Bug2go", description: "Bugs reporting app that sends info about crash report.", safety: "safe" },
- { pkg: "com.motorola.callredirectionservice", label: "Callredirectionservice", description: "Added in Android 10. Provide support for call redirection/cancellation if your Carrier supports it (when someone call. See https://motorola-global-portal.custhelp.com/app/answers/prod_answer_detail/a_id/140542 https://en.wikipedia.org/wiki/Call_forwarding", safety: "safe" },
- { pkg: "com.motorola.camera2", label: "Camera2", description: "Moto Camera 2 (https://play.google.com/store/apps/details?id=com.motorola.camera)", safety: "caution" },
- { pkg: "com.motorola.camera3", label: "Camera3", description: "Moto Camera 3 Moto camera app https://play.google.com/store/apps/details?id=com.motorola.camera3", safety: "caution" },
- { pkg: "com.motorola.camera3.consent.ai", label: "Ai", description: "Camera consent AI Camera consent AI? Artificial Intelligence models? Probably additonal features to camera app", safety: "caution" },
- { pkg: "com.motorola.camera3.content.ai", label: "Ai", description: "This package is related to Motorola's camera application, specifically focusing on AI (artificial intelligence) features.", safety: "caution" },
- { pkg: "com.motorola.carrierconfig", label: "Carrierconfig", description: "Carrier Services Needed for IMS, WiFi Calling.", safety: "caution" },
- { pkg: "com.motorola.carriersettingsext", label: "Carriersettingsext", description: "This is a WiFi calling app supported by AT&T, T-Mobile, Orange.", safety: "caution" },
- { pkg: "com.motorola.ccc.devicemanagement", label: "Devicemanagement", description: "Mobile Device Management (MDM) allows company’s IT department to reach inside your phone in the background, allowing them to ensure your device is secure, know where it is, and remotely erase your data if the phone is stolen. You should NEVER install a MDM tool on your phone. Never. https://onezero.medium.com/dont-put-your-work-email-on-your-personal-phone-ef7fef956c2f https://blog.cdemi.io/never-accept-an-mdm-policy-on-your-personal-phone/", safety: "safe" },
+ { pkg: "com.motorola.android.fmradio", label: "Fmradio", description: "FMRadioService", safety: "safe" },
+ { pkg: "com.motorola.android.jvtcmd", label: "Jvtcmd", description: "Java Tcmd Helper", safety: "safe" },
+ { pkg: "com.motorola.android.nativedropboxagent", label: "Nativedropboxagent", description: "Native DropBox Agent.", safety: "safe" },
+ { pkg: "com.motorola.android.providers.chromehomepage", label: "Chromehomepage", description: "Seems to provide the \"Home\"-button functionality in Chrome.", safety: "safe" },
+ { pkg: "com.motorola.android.provisioning", label: "Provisioning", description: "OMA Client Provisioning", safety: "caution" },
+ { pkg: "com.motorola.android.settings.diag_mdlog", label: "Diag Mdlog", description: "Diag_mdlog is a small proprietary Qualcomm program which can store DIAG logs on the filesystem.", safety: "safe" },
+ { pkg: "com.motorola.android.settings.modemdebug", label: "Modemdebug", description: "Provide modem debug settings menu ?", safety: "safe" },
+ { pkg: "com.motorola.appdirectedsmsproxy", label: "Appdirectedsmsproxy", description: "An Application directed SMS (or rather a Port directed SMS) is an SMS directed to a specific port.", safety: "safe" },
+ { pkg: "com.motorola.bach.modemstats", label: "Modemstats", description: "ModemStatsService", safety: "safe" },
+ { pkg: "com.motorola.brapps", label: "Brapps", description: "Motorola App Box (https://play.google.com/store/apps/details?id=com.motorola.brapps)", safety: "safe" },
+ { pkg: "com.motorola.bug2go", label: "Bug2Go", description: "Bugs reporting app that sends info about crash report.", safety: "safe" },
+ { pkg: "com.motorola.ccc.devicemanagement", label: "Devicemanagement", description: "Mobile Device Management (MDM) allows company\u2019s IT department to reach inside your phone in the background,...", safety: "safe" },
{ pkg: "com.motorola.ccc.mainplm", label: "Mainplm", description: "plm = Product Lifecycle Management ? No noticeable consequences after removal", safety: "safe" },
- { pkg: "com.motorola.ccc.notification", label: "Notification", description: "Motorola Notifications (https://play.google.com/store/apps/details?id=com.motorola.ccc.notification) If you opt-in, it sends periodic product-related information, including notifications on software updates, tips & tricks, survey and information about new Motorola products and services.", safety: "safe" },
- { pkg: "com.motorola.ccc.ota", label: "Ota", description: "Motorola Update Services Provide OTA system updates. OTA (Over-The-Air) updates allow manufacturers to remotely install new software updates, features and services.", safety: "caution" },
- { pkg: "com.motorola.comcast.settings.extensions", label: "Extensions", description: "Most likely provides a special settings menu for Comcast stuff. I think it's installed on Xfinity branded phones. Safe to remove (tested only on non-Comcast phone).", safety: "safe" },
- { pkg: "com.motorola.comcastext", label: "Comcastext", description: "See above. Provides special (useless) features from Comcast? App title is\"Activation\". Safe to remove (tested only on non-Comcast phone).", safety: "safe" },
- { pkg: "com.motorola.config.wifi", label: "Wifi", description: "Appears safe to remove. WPA config App Wi-Fi not affected after removal.", safety: "safe" },
- { pkg: "com.motorola.contacts.preloadcontacts", label: "Preloadcontacts", description: "Preloaded Contacts Provides contacts preset by carriers.", safety: "safe" },
- { pkg: "com.motorola.contacts.preloadcontacts.overlay.vzw", label: "Vzw", description: "Useless icon to Verizon Wireless app.", safety: "safe" },
- { pkg: "com.motorola.coresettingsext", label: "Coresettingsext", description: "Core Settings extension Safe to remove (no bootloop) but its usefulness remains unkown. It's an app for random settings, but it's unused?", safety: "caution" },
- { pkg: "com.motorola.dciservice", label: "Dciservice", description: "It's IMS Signal tests probably. Used for statistics. Code 3243.", safety: "safe" },
- { pkg: "com.motorola.demo", label: "Demo", description: "Moto Demo Mode Enable retail demonstration mode. https://source.android.com/devices/tech/display/retail-mode", safety: "safe" },
- { pkg: "com.motorola.demo.env", label: "Env", description: "Needed for Moto Demo Mode env = environment", safety: "safe" },
- { pkg: "com.motorola.discovery", label: "Discovery", description: "Moto Discovery Bubble Hint and suggestions. Useless.", safety: "safe" },
- { pkg: "com.motorola.dolby.dolbyui", label: "Dolbyui", description: "Dolby Atmos Audio enhancements.", safety: "caution" },
- { pkg: "com.motorola.dynamicvolume", label: "Dynamicvolume", description: "Adaptive volume It's for controlling the individual volume for multiple apps.", safety: "safe" },
- { pkg: "com.motorola.easyprefix", label: "Easyprefix", description: "Motorola Easy Prefix (https://play.google.com/store/apps/details?id=com.motorola.easyprefix) Auto add CSP (Service Provider code) prefix to your phone when you're abroad. https://en.wikipedia.org/wiki/List_of_country_calling_codes This seems to not work correctly and it's generally not a good idea to call home (via GSM) when you're abroad. It's better and cheaper to use chat apps like Signal/Wire)", safety: "safe" },
- { pkg: "com.motorola.email", label: "Email", description: "Motorola Easy Prefix (https://play.google.com/store/apps/details?id=com.motorola.easyprefix) Auto add CSP (Service Provider code) prefix to your phone when you're abroad. https://en.wikipedia.org/wiki/List_of_country_calling_codes This seems to not work correctly and it's generally not a good idea to call home (via GSM) when you're abroad. It's better and cheaper to use chat apps like Signal/Wire) Moto Email (https://play.google.com/store/apps/details?id=com.motorola.email)", safety: "safe" },
- { pkg: "com.motorola.enterprise.adapter.service", label: "Service", description: "Moto Thinkshield Additional security frameworks.", safety: "safe" },
- { pkg: "com.motorola.enterprise.service", label: "Service", description: "Moto Thinkshield Additional security.", safety: "safe" },
- { pkg: "com.motorola.entitlement", label: "Entitlement", description: "Enable WiFi tethering/hotspot functionality. What you can do is preventing the phone from notifying the carrier about when you use hotspot. It will bypass mobile carriers tethering restrictions. From an ADB shell : settings put global tether_dun_required 0", safety: "caution" },
- { pkg: "com.motorola.faceunlock", label: "Faceunlock", description: "Moto Face Unlock (https://play.google.com/store/apps/details?id=com.motorola.faceunlock) Unlock your device by simply looking at the display. Face unlock is bad for security and privacy: https://www.ubergizmo.com/2017/03/galaxy-s8-facial-unlock-photograph/ https://www.kaspersky.com/blog/face-unlock-insecurity/21618/ https://www.freecodecamp.org/news/why-you-should-never-unlock-your-phone-with-your-face-79c07772a28/", safety: "caution" },
- { pkg: "com.motorola.faceunlocktrustagent", label: "Faceunlocktrustagent", description: "Motorola Face Unlock Agent Trust agent is a service that notifies the system about whether it believes the environment of the device is trusted. The meaning of 'trusted' is up to the trust agent to define. The system lockscreen listens for trust events, it can change its behaviour based on the trust state of the current user (e.g detection of a trusted face) https://nelenkov.blogspot.com/2014/12/dissecting-lollipops-smart-lock.html", safety: "caution" },
- { pkg: "com.motorola.fmplayer", label: "Fmplayer", description: "FM Radio (https://play.google.com/store/apps/details?id=com.motorola.fmplayer) Radio app", safety: "safe" },
- { pkg: "com.motorola.frameworks.singlehand", label: "Singlehand", description: "Provide the Single/One hand mode I don't know why frameworks appears in the package name because it's not only the framework. https://support.motorola.com/us/en/documents/MS116403/", safety: "safe" },
- { pkg: "com.motorola.freeform", label: "Freeform", description: "Freeform Required for window app mode.", safety: "caution" },
- { pkg: "com.motorola.gamemode", label: "Gamemode", description: "Moto Gametime. Allows the user to block calls, quick screenshots, float social apps, etc when playing a game. https://play.google.com/store/apps/details?id=com.motorola.gamemode&gl=US", safety: "safe" },
- { pkg: "com.motorola.genie", label: "Genie", description: "Device Help (previously Moto Help) (https://play.google.com/store/apps/details?id=com.motorola.genie) An app that checks hardware status and gives the user contacts for support.", safety: "safe" },
+ { pkg: "com.motorola.ccc.notification", label: "Notification", description: "Motorola Notifications (https://play.google.com/store/apps/details?id=com.motorola.ccc.notification)", safety: "safe" },
+ { pkg: "com.motorola.contacts.preloadcontacts", label: "Preloadcontacts", description: "Preloaded Contacts", safety: "safe" },
+ { pkg: "com.motorola.demo", label: "Demo", description: "Moto Demo Mode", safety: "safe" },
+ { pkg: "com.motorola.demo.env", label: "Env", description: "Needed for Moto Demo Mode", safety: "safe" },
+ { pkg: "com.motorola.email", label: "Email", description: "Motorola Easy Prefix (https://play.google.com/store/apps/details?id=com.motorola.easyprefix)", safety: "safe" },
+ { pkg: "com.motorola.fmplayer", label: "Fmplayer", description: "FM Radio (https://play.google.com/store/apps/details?id=com.motorola.fmplayer)", safety: "safe" },
+ { pkg: "com.motorola.frameworks.singlehand", label: "Singlehand", description: "Provide the Single/One hand mode", safety: "safe" },
+ { pkg: "com.motorola.genie", label: "Genie", description: "Device Help (previously Moto Help) (https://play.google.com/store/apps/details?id=com.motorola.genie)", safety: "safe" },
{ pkg: "com.motorola.gesture", label: "Gesture", description: "Gesture navigation tutorial added in Android 10.", safety: "safe" },
- { pkg: "com.motorola.handwritingcalculator", label: "Handwritingcalculator", description: "Handwriting calculator it's not needed.", safety: "safe" },
- { pkg: "com.motorola.help", label: "Help", description: "Moto feedback (https://play.google.com/store/apps/details?id=com.motorola.help) Lets you rate your device and share feedback with Motorola.", safety: "safe" },
- { pkg: "com.motorola.help.extlog", label: "Extlog", description: "Moto Feedback Assistant This app only collects logs.", safety: "safe" },
+ { pkg: "com.motorola.help", label: "Help", description: "Moto feedback (https://play.google.com/store/apps/details?id=com.motorola.help)", safety: "safe" },
+ { pkg: "com.motorola.lifetimedata", label: "Lifetimedata", description: "Not 100% sure but it's most likely the Total Call Timer or more generally it handles info like the date of ...", safety: "safe" },
{ pkg: "com.motorola.hiddenmenuapp", label: "Hiddenmenuapp", description: "Added in Android 10. Safe to remove.", safety: "safe" },
- { pkg: "com.motorola.imagertuning_lake", label: "Imagertuning_lake", description: "Imager Tuning (https://play.google.com/store/apps/details?id=com.motorola.imagertuning_athene) Naming convention: imagertuning_[PHONE CODENAME] This is the custom camera image processing stack on Motorola devices. It's generally important for improving image quality. Playstore reviews indicate that it slows down the camera app significantly for some users (probably a bug).", safety: "caution" },
- { pkg: "com.motorola.imagertuning_u", label: "Imagertuning_u", description: "This package is associated with Motorola’s image tuning features, specifically designed to enhance or adjust image quality settings on Motorola devices.", safety: "caution" },
- { pkg: "com.motorola.imagetuning_V2", label: "Imagetuning_V2", description: "Camera Tuner It's Camera tuning Chromatix Comparison. I think it's needed for camera app.", safety: "caution" },
- { pkg: "com.motorola.installer", label: "Installer", description: "This package is used by Motorola for managing and installing system updates, custom apps, or other Motorola-specific applications.", safety: "caution" },
- { pkg: "com.motorola.invisiblenet", label: "Invisiblenet", description: "Invisible net App for Alias ID, Shortcut Installer(Most of the apps I have seen are Chinese apps). It's some kind of a stub application launcher, if you open any of it's activities it goes to the play store or to the browser.", safety: "safe" },
- { pkg: "com.motorola.iqimotmetrics", label: "Iqimotmetrics", description: "Hidden privacy policy: network diagnostics data.", safety: "safe" },
- { pkg: "com.motorola.launcher.secondarydisplay", label: "Secondarydisplay", description: "Appears to enable support for a secondary display with Moto's launcher. Trying to remove this packages returns\"Failure: package is non-disable\".", safety: "caution" },
- { pkg: "com.motorola.launcher3", label: "Launcher3", description: "Motorola system launcher A default home screen app, provides a layout and display for app icons and listing. WARNING: Do not remove this package if you did not switch to a 3rd-party launcher. Keep in mind that removing this package will break the `recent apps` button (even from another launcher).", safety: "caution" },
- { pkg: "com.motorola.launcherconfig", label: "Launcherconfig", description: "Google Launcher Config It's Partner Customization. Has a lot wallpapers in resources.", safety: "caution" },
- { pkg: "com.motorola.leanbacklauncher", label: "Leanbacklauncher", description: "Moto Experience Hub Most people hate this app. https://play.google.com/store/apps/details?id=com.motorola.leanbacklauncher", safety: "safe" },
- { pkg: "com.motorola.lifetimedata", label: "Lifetimedata", description: "It's most likely the Total Call Timer or more generally it handles info like the date of manufacture of your device, usage time since first boot etc... Total Call Timer gives you the time you spent calling. It's surely a hidden menu.", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3", label: "Livewallpaper3", description: "Moto interactive wallpapers Responds to your actions to bring your screen to life. https://play.google.com/store/apps/details?id=com.motorola.livewallpaper3", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.chroma_plume", label: "Chroma_plume", description: "Motorola Prebuilt themes Chroma Plume", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.cool_bamboo", label: "Cool_bamboo", description: "Motorola Prebuilt themes Cool Bamboo", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.lovely_peach", label: "Lovely_peach", description: "Motorola Prebuilt themes Lovely Peach", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.mysterious_amber", label: "Mysterious_amber", description: "Motorola Prebuilt themes Mysterious Amber", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.romantic_wisteria", label: "Romantic_wisteria", description: "Motorola Prebuilt themes Romantic Wisteria", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.titan", label: "Titan", description: "Motorola Prebuilt themes Cosmic journey", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.tranquil_whale", label: "Tranquil_whale", description: "Motorola Prebuilt themes Tranquil Whale", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.twilight_twist", label: "Twilight_twist", description: "Motorola Prebuilt themes Twilight twist", safety: "safe" },
- { pkg: "com.motorola.livewallpaper3.prebuilt.vibrant_sapling", label: "Vibrant_sapling", description: "Motorola Prebuilt themes Vibrant Sapling", safety: "safe" },
- { pkg: "com.motorola.mobiledesktop", label: "Mobiledesktop", description: "Ready For Connect to a PC to stream mobile apps and other things. https://play.google.com/store/apps/details?id=com.motorola.mobiledesktop", safety: "safe" },
- { pkg: "com.motorola.mobiledesktop.core", label: "Core", description: "Needed for Ready For (com.motorola.mobiledesktop) Connect to a PC to stream mobile apps and other things. DISABLE this app instead of Uninstall, because of anomalies with lockscreen and clock widget.", safety: "safe" },
- { pkg: "com.motorola.motcameradesktop", label: "Motcameradesktop", description: "Camera Desktop Settings Moto Webcam, video call effects.", safety: "safe" },
- { pkg: "com.motorola.moto", label: "Moto", description: "Moto (https://play.google.com/store/apps/details?id=com.motorola.moto) App providing Moto Actions, Moto Display, and other feature families that let you customize the way you interact with your device. Moto Actions is another app (https://play.google.com/store/apps/details?id=com.motorola.actions). Gestures set with\"Moto\" prior will continue to work provided\"Moto Actions\" remains installed.", safety: "safe" },
- { pkg: "com.motorola.motocare", label: "Motocare", description: "Moto Care was renamed in\"Moto Help\" and then in\"Device Help\" Provide support features. https://mobile.softpedia.com/blog/Moto-Care-App-Gets-Updated-Now-Called-Motorola-Help-432827.shtml However you can both have com.motorola.genie (Device Help) and this package so it's strange.", safety: "safe" },
- { pkg: "com.motorola.motocare.internal", label: "Internal", description: "Core stuff for the package above I guess.", safety: "safe" },
- { pkg: "com.motorola.motocit", label: "Motocit", description: "CQATest CQA = Custom Quality Assurance Hidden menu (accessible by typing *#*#2486#*#* in the Moto Dialer) which lets you run hardware tests.", safety: "safe" },
- { pkg: "com.motorola.motodisplay", label: "Motodisplay", description: "Moto Display (https://play.google.com/store/apps/details?id=com.motorola.motodisplay) Displays notifications with the screen off (like the Always On Display feature from other OEMs) https://support.motorola.com/uk/en/solution/ms108519", safety: "safe" },
- { pkg: "com.motorola.motofpstouch", label: "Motofpstouch", description: "Moto Power Touch. Allows the user to create custom actions depending on how the user presses the power button. https://play.google.com/store/apps/details?id=com.motorola.motofpstouch&gl=US", safety: "safe" },
- { pkg: "com.motorola.motointelligence.overlay", label: "Overlay", description: "Overlay to 'com.motorola.motointelligence', not needed? I didn't found this app.", safety: "caution" },
- { pkg: "com.motorola.motolights", label: "Motolights", description: "Moto Lights People recommend to remove it: https://xdaforums.com/t/debloat-instructions-for-edge-40-pro-rtwo.4590155/ Moto edge lights controller, hard to check this app but it has something to control display brightness in phone.", safety: "caution" },
- { pkg: "com.motorola.motosignature.app", label: "App", description: "This app has permissions descriptions, lab, game mode launch permissions, audio monitor descriptions. So it's permissions to system apps? Google search shows that it's on some lists that recommend removing this app.", safety: "caution" },
- { pkg: "com.motorola.motosignature2.app", label: "App", description: "Uses library 'com.motorola.motosignature', perm info to start gif maker, permlab moto trusted apps overlay and permlab monitor input.", safety: "caution" },
- { pkg: "com.motorola.mototour", label: "Mototour", description: "Moto Tour Helps you how to use motorola phone. https://play.google.com/store/apps/details?id=com.motorola.mototour", safety: "safe" },
- { pkg: "com.motorola.msimsettings", label: "Msimsettings", description: "Dual SIM Settings Provides Dual SIM feature.", safety: "keep" },
- { pkg: "com.motorola.msimsettings.overlay", label: "Overlay", description: "In code found: 'channel_force_single_sim'. Looks very unused.", safety: "caution" },
- { pkg: "com.motorola.mykey", label: "Mykey", description: "This package is related to Motorola’s 'MyKey' feature, which is a tool designed to manage key settings and restrictions for device usage.", safety: "caution" },
+ { pkg: "com.motorola.moto", label: "Moto", description: "Moto (https://play.google.com/store/apps/details?id=com.motorola.moto)", safety: "safe" },
+ { pkg: "com.motorola.motocare", label: "Motocare", description: "Moto Care was renamed in \"Moto Help\" and then in \"Device Help\"", safety: "safe" },
+ { pkg: "com.motorola.motocit", label: "Motocit", description: "CQATest", safety: "safe" },
+ { pkg: "com.motorola.motodisplay", label: "Motodisplay", description: "Moto Display (https://play.google.com/store/apps/details?id=com.motorola.motodisplay)", safety: "safe" },
+ { pkg: "com.motorola.paks", label: "Paks", description: "ADB: Package Protected.", safety: "safe" },
+ { pkg: "com.motorola.programmenu", label: "Programmenu", description: "Programming Menu", safety: "safe" },
+ { pkg: "com.motorola.ptt.prip", label: "Prip", description: "Prip (https://play.google.com/store/apps/details?id=com.motorola.ptt.prip)", safety: "safe" },
+ { pkg: "com.motorola.setup", label: "Setup", description: "Related to Motorola Account setup (only during first boot ?)", safety: "safe" },
+ { pkg: "com.motorola.slpc_sys", label: "Slpc Sys", description: "Motorola Slpc System", safety: "safe" },
+ { pkg: "com.motorola.timeweatherwidget", label: "Timeweatherwidget", description: "Provides time/weather widget on the home screen.", safety: "safe" },
+ { pkg: "com.motorola.camera2", label: "Camera2", description: "Moto Camera 2 (https://play.google.com/store/apps/details?id=com.motorola.camera)", safety: "caution" },
+ { pkg: "com.motorola.actions", label: "Actions", description: "Moto Actions (https://play.google.com/store/apps/details?id=com.motorola.actions)", safety: "safe" },
+ { pkg: "com.motorola.carriersettingsext", label: "Carriersettingsext", description: "Seems safe to remove for now.", safety: "safe" },
+ { pkg: "com.motorola.callredirectionservice", label: "Callredirectionservice", description: "Added in Android 10. Provide support for call redirection/cancellation if your Carrier supports it (when so...", safety: "safe" },
+ { pkg: "com.motorola.ccc.ota", label: "Ota", description: "Motorola Update Services", safety: "caution" },
+ { pkg: "com.motorola.comcast.settings.extensions", label: "Extensions", description: "Most likely provides a special settings menu for Comcast stuff.", safety: "safe" },
+ { pkg: "com.motorola.entitlement", label: "Entitlement", description: "Enable WiFi tethering/hotspot functionality.", safety: "caution" },
+ { pkg: "com.motorola.faceunlock", label: "Faceunlock", description: "Moto Face Unlock (https://play.google.com/store/apps/details?id=com.motorola.faceunlock)", safety: "caution" },
+ { pkg: "com.motorola.faceunlocktrustagent", label: "Faceunlocktrustagent", description: "Motorola Face Unlock Agent", safety: "caution" },
+ { pkg: "com.motorola.imagertuning_lake", label: "Imagertuning Lake", description: "Imager Tuning (https://play.google.com/store/apps/details?id=com.motorola.imagertuning_athene)", safety: "caution" },
+ { pkg: "com.motorola.invisiblenet", label: "Invisiblenet", description: "Invisible net", safety: "caution" },
+ { pkg: "com.motorola.launcher3", label: "Launcher3", description: "Motorola system launcher", safety: "caution" },
+ { pkg: "com.motorola.launcherconfig", label: "Launcherconfig", description: "Config file of the motorola launcher?", safety: "caution" },
+ { pkg: "com.motorola.launcher.secondarydisplay", label: "Secondarydisplay", description: "Appears to enable support for a secondary display with Moto's launcher.", safety: "caution" },
+ { pkg: "com.motorola.motosignature.app", label: "App", description: "Appears safe to remove.", safety: "caution" },
{ pkg: "com.motorola.nfc", label: "Nfc", description: "Support for NFC protocol.", safety: "caution" },
- { pkg: "com.motorola.nfwlocationattribution", label: "Nfwlocationattribution", description: "Useless Carrier Location Access. You can find it in settings location but it's not very useful.", safety: "safe" },
- { pkg: "com.motorola.odm.camera3", label: "Camera3", description: "Moto camera app?", safety: "caution" },
- { pkg: "com.motorola.om", label: "Om", description: "The package 'com.motorola.om' is associated with Motorola's operational management or device management tools.", safety: "caution" },
- { pkg: "com.motorola.omadm.service", label: "Service", description: "Appears safe to remove. Carrier Provisioning Service Provisioning involves the process of preparing and equipping a network to allow it to provide new services to its users. OMADM = OMA Device Management Basically, it handles configuration of the device (including first time use), enabling and disabling features provided by carriers. https://en.wikipedia.org/wiki/OMA_Device_Management Use case seems very limited : https://www.androidpolice.com/2015/03/10/android-5-1-includes-new-carrier-provisioning-api-allows-carriers-easier-methods-of-setting-up-services-on-devices-they-dont-control/", safety: "safe" },
- { pkg: "com.motorola.overlay.googleasi", label: "Googleasi", description: "Overlay to Android System Intelligence 'com.google.android.as', removal means that you cannot use the features of this app probably.", safety: "caution" },
- { pkg: "com.motorola.overlay.launcher3", label: "Launcher3", description: "Useless overlay config default to Launcher3 default launcher Moto (com.motorola.launcher3)", safety: "safe" },
- { pkg: "com.motorola.paks", label: "Paks", description: "ADB: Package Protected. My Q Paks Third-party application bundles https://www.financialmirror.com/2007/10/31/motorola-packs-moto-q-9h-global-smart-device-with-third-party-applications/", safety: "safe" },
- { pkg: "com.motorola.paks.notification", label: "Notification", description: "Notifications from (com.motorola.paks)", safety: "safe" },
- { pkg: "com.motorola.paramupdater", label: "Paramupdater", description: "I am not sure what this app is for. Collects systeminfo, time, has notification about update.", safety: "caution" },
- { pkg: "com.motorola.personalize", label: "Personalize", description: "Needed for theme edit.", safety: "caution" },
- { pkg: "com.motorola.pgmsystem2", label: "Pgmsystem2", description: "Appears safe to remove PGM System I didn't find info about this package. For Me PGM = Peak Gate Power (for MOSFET transistor) but I'm not convinced it has this meaning here.", safety: "safe" },
- { pkg: "com.motorola.photoeditor", label: "Photoeditor", description: "Photo Editor Moto Photo Editor.", safety: "caution" },
- { pkg: "com.motorola.programmenu", label: "Programmenu", description: "Programming Menu Hidden menu (accessible by typing ##7764726 in the dialer) providing additionnal features for developers.", safety: "safe" },
- { pkg: "com.motorola.ptt.prip", label: "Prip", description: "Prip (https://play.google.com/store/apps/details?id=com.motorola.ptt.prip) Push-To-Talk app. Allows to you send calls over any wireless carrier’s 3G or 4G networks or a WiFi connection. It offers unlimited calling between other users and Nextel phone owners, rather than universal calling credit, and works on a monthly subscription basis. https://prip.me/#get No longer in Android 10 image", safety: "safe" },
- { pkg: "com.motorola.rcsConfigService", label: "RcsConfigService", description: "RCS Config Service Needed for IMS, RCS. WiFi Calling.", safety: "caution" },
- { pkg: "com.motorola.revoker.services", label: "Services", description: "It's another component of setup wizard only used on first-boot setup.", safety: "safe" },
- { pkg: "com.motorola.safetycenter.resources.overlay", label: "Overlay", description: "Useless overlay to com.google.android.safetycenter.resources Network protection, ThinkShield.", safety: "safe" },
- { pkg: "com.motorola.screenshoteditor", label: "Screenshoteditor", description: "Screenshot Editor Edit and share your screenshots right away, or take screenshots longer than your screen such as full web pages or articles. Useful app. https://play.google.com/store/apps/details?id=com.motorola.screenshoteditor", safety: "caution" },
- { pkg: "com.motorola.securevault", label: "Securevault", description: "Secure Folder Normally unnecessary tools to keep device secure, however, removal may cause background issues - it should be safe to disable instead. https://play.google.com/store/apps/details?id=com.motorola.securevault", safety: "caution" },
- { pkg: "com.motorola.securityhub", label: "Securityhub", description: "Moto Secure Unnecessary tools to keep device secure. https://play.google.com/store/apps/details?id=com.motorola.securityhub", safety: "safe" },
- { pkg: "com.motorola.securityhubext", label: "Securityhubext", description: "This package is related to Motorola's Security Hub, an extension or enhancement for the device’s security features.", safety: "caution" },
- { pkg: "com.motorola.setup", label: "Setup", description: "Related to Motorola Account setup (only during first boot ?) WARNING: Removing this package breaks Google Play System Updates. Appears to be tied to Google's Play Store update mechanism on Motorola devices", safety: "caution" },
- { pkg: "com.motorola.setup.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "This package is involved in Motorola's setup process, particularly handling automatically generated resources related to the setup of the device.", safety: "caution" },
- { pkg: "com.motorola.setup.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "I found it's\"no sim anim\". It's another component of Motorola first-boot setup.", safety: "safe" },
- { pkg: "com.motorola.setup.overlay.amx", label: "Amx", description: "Useless component of (com.motorola.setup)", safety: "safe" },
- { pkg: "com.motorola.setup.overlay.dataenable", label: "Dataenable", description: "This package is used during the Motorola device setup process, specifically for managing or presenting settings related to mobile data.", safety: "caution" },
- { pkg: "com.motorola.setup.overlay.gabuttonrighttop", label: "Gabuttonrighttop", description: "Useless component of (com.motorola.setup)", safety: "safe" },
- { pkg: "com.motorola.setup.overlay.pai", label: "Pai", description: "Useless component of (com.motorola.setup)", safety: "safe" },
- { pkg: "com.motorola.setup.overlay.tracfone", label: "Tracfone", description: "Useless component of (com.motorola.setup)", safety: "safe" },
- { pkg: "com.motorola.slpc_sys", label: "Slpc_sys", description: "Motorola Slpc System Would be weird if it's not related to Motorola Modality Services (https://play.google.com/store/apps/details?id=com.motorola.slpc) Helps your Motorola phone respond more intelligently to motion, phone orientation (e.g. face up/down) and stowed state (e.g in/out-of-pocket). Has a noticeable impact on battery ? (https://forum.xda-developers.com/moto-x-2014/help/location-modality-services-battery-t2982752) FYI : It uses location services.", safety: "safe" },
- { pkg: "com.motorola.smart5g", label: "Smart5g", description: "Battery saving for 5G.", safety: "caution" },
- { pkg: "com.motorola.spaces", label: "Spaces", description: "Family Space Limits time spending on app for kids. https://play.google.com/store/apps/details?id=com.motorola.spaces", safety: "safe" },
- { pkg: "com.motorola.spectrum.setup.extensions", label: "Extensions", description: "Spectrum Setup Spectrum connectivity services. Useless and it's only setup.", safety: "safe" },
- { pkg: "com.motorola.sstservice", label: "Sstservice", description: "Spatial Sound Provides sst audio effects. I am not sure how to use this app. Code is too small, no activities only some frameworks in classes.dex", safety: "caution" },
- { pkg: "com.motorola.systemserver", label: "Systemserver", description: "Moto Service Experience, debugging app. Keep this package for consistent Moto Fast Flashlight Gesture Functionality.", safety: "safe" },
- { pkg: "com.motorola.systemui.desk", label: "Desk", description: "DesktopSystemUI it's for desktop maybe when connect to screen phone.", safety: "safe" },
- { pkg: "com.motorola.telprov", label: "Telprov", description: "It's needed for carrier O2 so it's useless for others.", safety: "caution" },
- { pkg: "com.motorola.thermalservice", label: "Thermalservice", description: "Motorola Thermal Service Turns off phone when it's too hot.", safety: "caution" },
- { pkg: "com.motorola.timeweatherwidget", label: "Timeweatherwidget", description: "Provides time/weather widget on the home screen. https://en.wikipedia.org/wiki/Widget", safety: "safe" },
- { pkg: "com.motorola.timezonedata", label: "Timezonedata", description: "/!\\ Causes bootloop on Moto G7 Power (Android 9/10) Time Zone Data (https://play.google.com/store/apps/details?id=com.motorola.timezonedata) Update timezone when traveling to foreign countries.", safety: "keep" },
- { pkg: "com.motorola.vzw.pco.extensions.pcoreceiver", label: "Pcoreceiver", description: "pcoreceiver VZW Carrier sim(Verizon). It's only for notifications. You can remove that if you don't use Verizon wireless or anything like that.", safety: "safe" },
- { pkg: "com.motorola.wifi.motowifimetrics", label: "Motowifimetrics", description: "Useless Wi-Fi daily stats.", safety: "safe" },
- { pkg: "com.summit.motorola.rcs", label: "Rcs", description: "Summit IMS Service A lot of logs and it's only for RCS messages. Anyway, it's a bad idea to use this app.", safety: "safe" },
+ { pkg: "com.motorola.omadm.service", label: "Service", description: "Appears safe to remove.", safety: "safe" },
+ { pkg: "com.motorola.pgmsystem2", label: "Pgmsystem2", description: "Appears safe to remove", safety: "safe" },
+ { pkg: "com.motorola.systemserver", label: "Systemserver", description: "Appears safe to remove. Maybe it's only needed for Motorola apps?", safety: "safe" },
+ { pkg: "com.motorola.VirtualUiccPayment", label: "Virtualuiccpayment", description: "Virtual UICC Payment", safety: "caution" },
+ { pkg: "com.motorola.config.wifi", label: "Wifi", description: "Appears safe to remove.", safety: "safe" },
+ { pkg: "com.motorola.coresettingsext", label: "Coresettingsext", description: "Core Settings extension", safety: "safe" },
+ { pkg: "com.motorola.android.providers.settings", label: "Settings", description: "Removal causes bootloop. Which is common with settings providers.", safety: "keep" },
+ { pkg: "com.motorola.msimsettings", label: "Msimsettings", description: "Dual SIM Settings", safety: "keep" },
+ { pkg: "com.motorola.timezonedata", label: "Timezonedata", description: "/!\\ Causes bootloop on Moto G7 Power (Android 9/10)", safety: "keep" },
+ { pkg: "com.motorola.audiofx", label: "Audiofx", description: "/!\\ Removal causes bootloop on Moto G7 Power (Android 10)", safety: "keep" },
+ { pkg: "com.motorola.easyprefix", label: "Easyprefix", description: "Motorola Easy Prefix (https://play.google.com/store/apps/details?id=com.motorola.easyprefix)", safety: "safe" },
+ { pkg: "com.motorola.motocare.internal", label: "Internal", description: "Core stuff for the package above I guess.", safety: "safe" },
+ { pkg: "com.motorola.comcastext", label: "Comcastext", description: "See above. Provides special (useless) features from Comcast? App title is \"Activation\". Safe to remove (tes...", safety: "safe" },
],
},
{
name: "LG",
packages: [
- { pkg: "android.autoinstalls.config.lge.device", label: "Device", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "com.lge", label: "Lge", description: "Main LG system framework. Do not remove, will bootloop your device.", safety: "keep" },
- { pkg: "com.lge.LGSetupView", label: "LGSetupView", description: "Setup View LG first setup (related to com.android.LGSetupWizard). The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device.", safety: "safe" },
- { pkg: "com.lge.NfcSettings", label: "NfcSettings", description: "NFC settings Likely in the settings.", safety: "caution" },
- { pkg: "com.lge.android.atservice", label: "Atservice", description: "Software Update It's probably the only component of software updates.", safety: "caution" },
- { pkg: "com.lge.animal.resource", label: "Resource", description: "AnimalResource Another thing for avatars.", safety: "safe" },
- { pkg: "com.lge.app.floating.res", label: "Res", description: "Multitasking framework Allows you to use multitasking features like multiple apps in one screen. Does not remove screen pinning feature. I don't know if this removes the floating windows feature that you have to enable with ADB (to make it look more like a desktop)", safety: "caution" },
- { pkg: "com.lge.appbox.client", label: "Client", description: "LG Application manager Installs/Updates LG related apps?", safety: "safe" },
- { pkg: "com.lge.appwidget.runningtaskbar", label: "Runningtaskbar", description: "Recent Task App Widget.", safety: "safe" },
- { pkg: "com.lge.arcamera", label: "Arcamera", description: "ARCamera This application requires google play services for ar. Not sure what for it is but probably for VR.", safety: "safe" },
- { pkg: "com.lge.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "It has important configs. Better don't risk.", safety: "keep" },
- { pkg: "com.lge.autosimlockservice", label: "Autosimlockservice", description: "Has reboot permissions and can check when SIM state is changed. Possibly used for carrier locking devices? No issues when removed.", safety: "safe" },
- { pkg: "com.lge.bluetoothsetting", label: "Bluetoothsetting", description: "Needed for Bluetooth.", safety: "caution" },
- { pkg: "com.lge.bnr", label: "Bnr", description: "LG Backup Can backup your mobile devices LG Home screen, device settings, apps, and contacts to your computer. https://www.lg.com/us/support/help-library/lg-android-backup-CT10000025-20150104708841", safety: "safe" },
- { pkg: "com.lge.bnr.launcher", label: "Launcher", description: "LG Mobile Switch Launcher This doesn't remove the default launchers. It is most likely to backup/restore the user's launcher configuration.", safety: "safe" },
- { pkg: "com.lge.calligraphydictionary", label: "Calligraphydictionary", description: "Calligraphy dictionary Looks useless.", safety: "safe" },
- { pkg: "com.lge.camera", label: "Camera", description: "Camera Stock camera app.", safety: "caution" },
- { pkg: "com.lge.camerasolution", label: "Camerasolution", description: "Needed for Stock camera app.", safety: "caution" },
- { pkg: "com.lge.cic.eden.service", label: "Service", description: "Memories album Gallery automatically creates a Memories album with pictures and videos saved in the phone. Memories is a virtual album of pictures saved in the phone or SD card. Source : https://www.lg.com/hk_en/support/product-help/CT30019000-1433767985158-others", safety: "safe" },
- { pkg: "com.lge.cinemagraph", label: "Cinemagraph", description: "Cine shot I think it's an optional app.", safety: "safe" },
- { pkg: "com.lge.clock", label: "Clock", description: "LG Clock app", safety: "caution" },
- { pkg: "com.lge.cmas", label: "Cmas", description: "Emergency Alerts it's only for alerts so it's safe to remove.", safety: "caution" },
- { pkg: "com.lge.concierge", label: "Concierge", description: "LG Smart Notice Provides a widget which has a clock, weather, lists notifications and much more, it's LG's version of Google Now.", safety: "caution" },
- { pkg: "com.lge.cota.blm.sf340_enabler", label: "Sf340_enabler", description: "I can't find any purpose for this app. Titled 'LG Conference Call Update', 'sf340' is part of the codename for the LG Stylo 3 Plus (full codename is sf340n), likely related to some discontinued LG service designed specifically for the Stylo 3 Plus.", safety: "safe" },
- { pkg: "com.lge.covertools", label: "Covertools", description: "Dual Screen Tool Needed for dual-screen I guess.", safety: "safe" },
- { pkg: "com.lge.displayfingerprint", label: "Displayfingerprint", description: "It's fingerprint testing. Secret code 346437.", safety: "safe" },
- { pkg: "com.lge.drive.activator", label: "Activator", description: "This app used to give you a free 100GB Google Drive storage for 5 years after buying an LG phone, however, Google no longer does this offer, and the app just gives an error now.", safety: "safe" },
- { pkg: "com.lge.drmservice", label: "Drmservice", description: "DRM Service Probably required for some forms of DRM; disabling might break things like Netflix streaming, which relies on DRM to function. https://en.wikipedia.org/wiki/Digital_rights_management", safety: "safe" },
- { pkg: "com.lge.dsmanager", label: "Dsmanager", description: "Dual Screen Updater If you dont use dual screen feature then it's safe to remove?", safety: "caution" },
- { pkg: "com.lge.dualscreenfirmware", label: "Dualscreenfirmware", description: "Shows error dialog for dual-screen firmware update.", safety: "safe" },
- { pkg: "com.lge.easyhome", label: "Easyhome", description: "LG EasyHome EasyHome is a more simplified version of the Home screen that you can choose to use on your phone. It displays the Home screen like a remote control device. T Source : https://www.lg.com/us/mobile-phones/VS985/Userguide/048.html", safety: "safe" },
- { pkg: "com.lge.effect", label: "Effect", description: "It's for lock screen effect.", safety: "safe" },
- { pkg: "com.lge.ellievision", label: "Ellievision", description: "Smart Cam & AI Tips Delete if not using default camera.", safety: "caution" },
- { pkg: "com.lge.eltest", label: "Eltest", description: "ELTest Device hardware tests settings", safety: "safe" },
+ { pkg: "com.lge.appbox.client", label: "Client", description: "LG Application manager", safety: "safe" },
+ { pkg: "com.lge.bnr", label: "Bnr", description: "LG Backup", safety: "safe" },
+ { pkg: "com.lge.cic.eden.service", label: "Service", description: "Memories album", safety: "safe" },
+ { pkg: "com.lge.drmservice", label: "Drmservice", description: "DRM Service", safety: "safe" },
+ { pkg: "com.lge.easyhome", label: "Easyhome", description: "LG EasyHome", safety: "safe" },
+ { pkg: "com.lge.eltest", label: "Eltest", description: "ELTest", safety: "safe" },
{ pkg: "com.lge.email", label: "Email", description: "LG Email app", safety: "safe" },
- { pkg: "com.lge.entitlementcheckservice", label: "Entitlementcheckservice", description: "It's for miracast and wifi hotspot probably.", safety: "caution" },
- { pkg: "com.lge.equalizer", label: "Equalizer", description: "Equalizer settings.", safety: "caution" },
- { pkg: "com.lge.eula", label: "Eula", description: "LG EULA (Terms of Use) accessible in the settings. EULA = https://en.wikipedia.org/wiki/End-user_license_agreement Needed by LG HD Audio Recorder or it will force close (maybe used by some other stock app?)", safety: "caution" },
- { pkg: "com.lge.eula.downloader", label: "Downloader", description: "Privacy Policy Update Not tested but probably safe to remove.", safety: "caution" },
- { pkg: "com.lge.eulaprovider", label: "Eulaprovider", description: "License Provider Needed by com.lge.eula. Needed by LG HD Audio Recorder or it will force close (maybe used by some other stock app?)", safety: "caution" },
- { pkg: "com.lge.exchange", label: "Exchange", description: "It looks like the Microsoft outlook/email in the logo. Believe this is some sort of microsoft integration. I don't 100% remember if I was able to add accounts to the phone still (eg. Nextcloud), I need to test that soon.", safety: "caution" },
- { pkg: "com.lge.faceglance.trustagent", label: "Trustagent", description: "Face Recognition Remove if you don't need it. If you want security I don't think this is a good idea to use it.", safety: "caution" },
- { pkg: "com.lge.filemanager", label: "Filemanager", description: "Stock file manager", safety: "caution" },
- { pkg: "com.lge.floatingbar", label: "Floatingbar", description: "LG Floating bar Lets you put shortcuts to apps or features, as well as quick access to contacts and music player controls on a\"floating bar\" on the Home screen. https://www.neowin.net/news/lg-v30-closer-look-floating-bar/", safety: "safe" },
+ { pkg: "com.lge.eula", label: "Eula", description: "LG EULA (Terms of Use) accessible in the settings.", safety: "safe" },
+ { pkg: "com.lge.eulaprovider", label: "Eulaprovider", description: "License Provider", safety: "safe" },
{ pkg: "com.lge.fmradio", label: "Fmradio", description: "FM radio app", safety: "safe" },
- { pkg: "com.lge.friendsmanager", label: "Friendsmanager", description: "LG Friends Manager (https://play.google.com/store/apps/details?id=com.lge.friendsmanager) WTF ? Completely useless app. Not sure but I think it enables you to download an app for a friend LG user.", safety: "safe" },
- { pkg: "com.lge.gallery.aodimagewidget", label: "Aodimagewidget", description: "Always-on display image LG Always-on display image", safety: "safe" },
- { pkg: "com.lge.gallery.collagewallpaper", label: "Collagewallpaper", description: "LG Collage Wallpapers Allows you to create patchwork wallpaper from several photos. https://www.lg.com/uk/support/product-help/CT00008356-20150332136499-others", safety: "safe" },
- { pkg: "com.lge.gallery.studio", label: "Studio", description: "GalleryStudio It's needed for gallery app probably.", safety: "caution" },
- { pkg: "com.lge.gallery.vr.wallpaper", label: "Wallpaper", description: "LG 360 Image Wallpaper Provides VR (360°) wallpapers.", safety: "safe" },
- { pkg: "com.lge.gamepad", label: "Gamepad", description: "LG Game Pad It's probably for TV. Not useful for games.", safety: "caution" },
- { pkg: "com.lge.gametools", label: "Gametools", description: "GameTools Not tested it's for probably useful for games.", safety: "caution" },
- { pkg: "com.lge.gametools.gamerecorder", label: "Gamerecorder", description: "Screen recording Screen recording for game tools.", safety: "caution" },
- { pkg: "com.lge.gametuner", label: "Gametuner", description: "Settings/features for games, such as resolution and frame rate limiting. A little side note, any games installed in the work profile can't use gametuner (maybe if you install this package into the work profile it'll work)", safety: "caution" },
- { pkg: "com.lge.gba.android", label: "Android", description: "Needed for proper VoLTE functionality on LG devices.", safety: "caution" },
- { pkg: "com.lge.gcuv", label: "Gcuv", description: "GCUV Not 100% sure but @siraltus from XDA thinks it refers to\"Gauce Components\" which seems to be the LG's version of CSC (carrier sales code - automatic carrier-specific customization). It gets run on first boot after factory reset, sets up the ROM features based on which carrier and country code is specified in the build.prop, and then gets frozen so it doesn't reconfigure things on subsequent boots. It's basically the only person to mention\"Gauce components\" on the web (other than restricted LG webpages when using Google dorks). https://forum.xda-developers.com/tmobile-lg-v10/development/rom-lg-v10-h901-10c-debranded-debloated-t3277305/page12/page12", safety: "safe" },
- { pkg: "com.lge.gdec.client", label: "Client", description: "Another component of OTA Updates but here I found it's for App Updates.", safety: "caution" },
- { pkg: "com.lge.gestureanswering", label: "Gestureanswering", description: "Answer me 2.0 Allows you to bring the phone to your ear to answer an incoming call automatically. https://www.lg.com/us/mobile-phones/VS980/Userguide/109-1.html", safety: "safe" },
- { pkg: "com.lge.gnss.airtest", label: "Airtest", description: "GNSS Air Test GNSS test, used to test... GNSS. Not needed, and GPNSS will continue to work. NOTE : GNSS = Global Navigation Satellite System and is the standard generic term for satellite navigation systems. This term includes e.g. the GPS, GLONASS, Galileo, Beidou and other regional systems.", safety: "safe" },
- { pkg: "com.lge.gnsslogcat", label: "Gnsslogcat", description: "GNSS Logcat Used to dump GNSS logs.", safety: "safe" },
- { pkg: "com.lge.gnsslogsetting", label: "Gnsslogsetting", description: "GNSS LOG LEVEL SETTING. It's for debug.", safety: "safe" },
- { pkg: "com.lge.gnsspostest", label: "Gnsspostest", description: "GNSS Position test GNSS test again.", safety: "safe" },
- { pkg: "com.lge.gnsstest", label: "Gnsstest", description: "GNSS Test Woh ! Why does LG need so many GNSS test packages?!", safety: "safe" },
- { pkg: "com.lge.hiddenmenu", label: "Hiddenmenu", description: "Hidden testing menu on LG devices.", safety: "safe" },
- { pkg: "com.lge.hiddenpersomenu", label: "Hiddenpersomenu", description: "Used to unlock LG phones remotely, from carriers like Sprint.", safety: "caution" },
+ { pkg: "com.lge.friendsmanager", label: "Friendsmanager", description: "LG Friends Manager (https://play.google.com/store/apps/details?id=com.lge.friendsmanager)", safety: "safe" },
+ { pkg: "com.lge.gallery.collagewallpaper", label: "Collagewallpaper", description: "LG Collage Wallpapers", safety: "safe" },
+ { pkg: "com.lge.gallery.vr.wallpaper", label: "Wallpaper", description: "LG 360 Image Wallpaper", safety: "safe" },
+ { pkg: "com.lge.gcuv", label: "Gcuv", description: "GCUV", safety: "safe" },
+ { pkg: "com.lge.gestureanswering", label: "Gestureanswering", description: "Answer me 2.0", safety: "safe" },
+ { pkg: "com.lge.gnss.airtest", label: "Airtest", description: "GNSS Air Test", safety: "safe" },
+ { pkg: "com.lge.gnsslogcat", label: "Gnsslogcat", description: "GNSS Logcat", safety: "safe" },
+ { pkg: "com.lge.gnsspostest", label: "Gnsspostest", description: "GNSS Position test", safety: "safe" },
+ { pkg: "com.lge.gnsstest", label: "Gnsstest", description: "GNSS Test", safety: "safe" },
{ pkg: "com.lge.hifirecorder", label: "Hifirecorder", description: "LG Audio Recorder", safety: "safe" },
- { pkg: "com.lge.homeselector", label: "Homeselector", description: "LG Home selector This is the settings menu for the home launcher (present in the settings app as\"Home launcher\") If you remove this app, the Home screen settings menu is gone from settings app. (not needed if you use external launcher) You can still switch between installed launchers, the package name is a bit misleading.", safety: "safe" },
- { pkg: "com.lge.hotspotlauncher", label: "Hotspotlauncher", description: "LG Mobile Hotspot Provides hotspot feature enabling you to share the phone’s 4G data connection with any Wi-Fi capable devices.", safety: "caution" },
- { pkg: "com.lge.hotspotprovision", label: "Hotspotprovision", description: "Needed for hotspot 3G?", safety: "caution" },
- { pkg: "com.lge.ia.task.incalagent", label: "Incalagent", description: "InCalAgent Related to interface while you're in a call. Seems also related to tasks list stuff. Can someone tell me what happens when you delete it ? I think it is safe.", safety: "safe" },
- { pkg: "com.lge.ia.task.informant", label: "Informant", description: "I only found that it's for feed favorite contacts and this app uses Korean language. Hidden, useless.", safety: "safe" },
- { pkg: "com.lge.ia.task.smartcare", label: "Smartcare", description: "LIA SmartDoctor Engine Needed by SmartDoctor (com.lge.phonemanagement) ?", safety: "safe" },
- { pkg: "com.lge.ia.task.smartsetting", label: "Smartsetting", description: "SmartSetting Turns on/off or changes features, settings and more according to where you are or what you do. https://www.lg.com/us/support/help-library/lg-android-smart-settings-CT10000025-20150103623722", safety: "safe" },
- { pkg: "com.lge.icecontacts", label: "Icecontacts", description: "Emergency and video calling things.", safety: "caution" },
- { pkg: "com.lge.iftttmanager", label: "Iftttmanager", description: "LG Smart settings IFTTT = “if this, then that.”. Smart Settings can be seens as IFTTT. Some events automatically triggers actions.", safety: "safe" },
- { pkg: "com.lge.ime", label: "Ime", description: "LG Stock Keyboard Do not remove if you don't have an alternate keyboard available. Personally, I keep the stock keyboard just in case the keyboard app crash/fails (this happened to me once) locking me out of entering password.", safety: "caution" },
+ { pkg: "com.lge.hotspotlauncher", label: "Hotspotlauncher", description: "LG Mobile Hotspot", safety: "caution" },
+ { pkg: "com.lge.ia.task.incalagent", label: "Incalagent", description: "InCalAgent", safety: "safe" },
+ { pkg: "com.lge.ia.task.smartcare", label: "Smartcare", description: "LIA SmartDoctor Engine", safety: "safe" },
+ { pkg: "com.lge.ia.task.smartsetting", label: "Smartsetting", description: "SmartSetting", safety: "safe" },
+ { pkg: "com.lge.iftttmanager", label: "Iftttmanager", description: "LG Smart settings", safety: "safe" },
+ { pkg: "com.lge.ime", label: "Ime", description: "LG Stock Keyboard", safety: "caution" },
{ pkg: "com.lge.ime.solution.handwriting", label: "Handwriting", description: "Handwriting feature on the LG keyboard", safety: "safe" },
- { pkg: "com.lge.ime.solution.text", label: "Text", description: "XT9 Text predicting and correction for the LG keyboard. For your culture (if you're young) : https://en.wikipedia.org/wiki/XT9 WARNING: On LG G6 (and maybe on other LG phones) removing this may cause the LG keyboard to stop inputing characters. Make sure to use another keyboard before removing this package.", safety: "caution" },
- { pkg: "com.lge.ims", label: "Ims", description: "LG IMS It's not a good app because it has a lot of debugging stuff. Breaks calls.", safety: "caution" },
- { pkg: "com.lge.ims.chatbotinfoprovider", label: "Chatbotinfoprovider", description: "It's a component of (com.lge.ims), not very useful because it's for debugging app.", safety: "safe" },
- { pkg: "com.lge.ims.rcsprovider", label: "Rcsprovider", description: "Needed for IMS, RCS but com.lge.ims = debugging app.", safety: "safe" },
- { pkg: "com.lge.imsvt", label: "Imsvt", description: "Video Call, another component of com.lge.ims = debugging app.", safety: "safe" },
- { pkg: "com.lge.inputdevices", label: "Inputdevices", description: "Completely empty package. Safe to remove", safety: "safe" },
- { pkg: "com.lge.ipprovider", label: "Ipprovider", description: "Completely empty package. Safe to remove", safety: "safe" },
- { pkg: "com.lge.ipservice", label: "Ipservice", description: "Needed for Wi-Fi calling on LG T-Mobile devices.", safety: "caution" },
- { pkg: "com.lge.launcher2", label: "Launcher2", description: "LG Home (v2) Stock launcher It's basically the home screen, the way icons apps are organized and displayed. DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER! NOTE : Yeah there is another package described as\"launcher\". Normally, you only have one of them on your phone.", safety: "caution" },
+ { pkg: "com.lge.ime.solution.text", label: "Text", description: "XT9", safety: "caution" },
{ pkg: "com.lge.launcher2.theme.optimus", label: "Optimus", description: "\"Optimus\" theme for the LG launcher (v2)", safety: "caution" },
- { pkg: "com.lge.launcher3", label: "Launcher3", description: "LG Home (v3) Stock launcher It's basically the home screen, the way icons apps are organized and displayed. DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER! NOTE : Yeah there is 3 packages described as\"launcher\". Normally, you only have one of them on your phone.", safety: "caution" },
- { pkg: "com.lge.leccp", label: "Leccp", description: "LG Connectivity Service It has only Alert Dialogs.", safety: "safe" },
- { pkg: "com.lge.lgaccount", label: "Lgaccount", description: "LG Account Enables you to create and manage your completely useless LG account.", safety: "safe" },
- { pkg: "com.lge.lgbroadcastradioservice", label: "Lgbroadcastradioservice", description: "Broadcast radio? No one needs that.", safety: "safe" },
- { pkg: "com.lge.lgcontentsetting", label: "Lgcontentsetting", description: "Wallpaper & theme Needed for theme settings.", safety: "caution" },
- { pkg: "com.lge.lgdataphone", label: "Lgdataphone", description: "It's for test and debug Data connection.", safety: "safe" },
- { pkg: "com.lge.lgdmsclient", label: "Lgdmsclient", description: "Actual\"Software Update\" App client I think you won't receive updates without this.", safety: "caution" },
- { pkg: "com.lge.lgdrm.permission", label: "Permission", description: "Handle permissions for LG DRM (com.lge.drmservice). Why does LG need a whole package for this?", safety: "caution" },
- { pkg: "com.lge.lgfmservice", label: "Lgfmservice", description: "Wifi Hotspot service REMINDER : Hotspot enable you to share the phone’s 4G data connection with any Wi-Fi capable devices. It is not the Hotspot feature. Only the widget ! Dual SIM status widget Probably only present in dual sim LG phone variants. Does not remove the persistent notification or dual SIM functionality. Service menus. I believe if you remove the last one the secret code you can dial doesn't work anymore (who needs it anyway..?) LG support App remote access You probably don't want that to happen LAOP test [MORE INFO NEEDED] I don't know what LAOP is. I could not find information about it. It's a test so it's probably fine. I have removed it.", safety: "caution" },
- { pkg: "com.lge.lgfota.permission", label: "Permission", description: "FOTA Test.", safety: "safe" },
- { pkg: "com.lge.lginstallservies", label: "Lginstallservies", description: "LG Install Service Used by LG to install some of its apps on the phone. Not needed unless you use the LG apps manager.", safety: "safe" },
- { pkg: "com.lge.lgmapui", label: "Lgmapui", description: "LGMapUI User Interface (UI) for displaying location tracking reccord on the Health app (com.lge.lifetracker) ?", safety: "safe" },
- { pkg: "com.lge.lgworld", label: "Lgworld", description: "LG SmartWorld LG Store. Enables you to install LG apps, theme, keyboard layout, fonts...", safety: "safe" },
- { pkg: "com.lge.lifetracker", label: "Lifetracker", description: "LG Health (https://play.google.com/store/apps/details?id=com.lge.lifetracker) According to users reviews, it is a very bad activity tracking app. Privacy wise, you should never use this kind of thing obviously. https://www.lg.com/us/support/help-library/lg-android-lg-health-CT30013120-20150103629401", safety: "safe" },
- { pkg: "com.lge.livemessage", label: "Livemessage", description: "Draw chat Not needed for chats.", safety: "safe" },
- { pkg: "com.lge.lms2", label: "Lms2", description: "Needed for LG account.", safety: "caution" },
- { pkg: "com.lge.lockscreen.livewallpaper.kaleidoscope", label: "Kaleidoscope", description: "The Kaleidoscope Live Wallpaper used in the lockscreen. Safe to remove but make sure it's not set as the Wallpaper.", safety: "caution" },
- { pkg: "com.lge.lockscreensettings", label: "Lockscreensettings", description: "LockScreenSettings Lock Screen Settings.", safety: "keep" },
- { pkg: "com.lge.mirrorlink", label: "Mirrorlink", description: "MirrorLink Enables you to connect your phone to a car to provide audio streaming, GPS navigation... https://www.lg.com/ca_en/support/product-help/CT30014940-1440413573040-others https://mirrorlink.com/", safety: "safe" },
- { pkg: "com.lge.mlt", label: "Mlt", description: "LG MLT Run in background all the time and probably serves purpose to help LG remote support. The thing is this acts as a good spyware. It tries to track all your activity and logs GPS position together with the details gathered, and that includes calls, apps starting etc... All data is collected and placed on /mpt partition, it seems not to be per reboot, but actually kept during flash and upgrades. # https://forum.xda-developers.com/showthread.php?t=2187920", safety: "safe" },
- { pkg: "com.lge.mtalk.sf", label: "Sf", description: "Voice Mate Speech Pack Voice Mate (now Q Vocie) is the LG Personal assistant (https://en.wikipedia.org/wiki/Voice_Mate) This package provides speech pack. Is it the main Q-voice package ? I don't think so but I need confirmation.", safety: "safe" },
- { pkg: "com.lge.music", label: "Music", description: "Stock music player", safety: "safe" },
- { pkg: "com.lge.musiccontroller", label: "Musiccontroller", description: "Music controller widget also Test activity.", safety: "safe" },
- { pkg: "com.lge.musicpicker", label: "Musicpicker", description: "Audio It has Drm Popup, Music Picker, Audio Preview.", safety: "safe" },
- { pkg: "com.lge.musicshare", label: "Musicshare", description: "LG Audio Share Enables you to connect two devices so that you can share the sound from music or video files with another LG devices. https://www.lg.com/hk_en/support/product-help/CT30007700-20150123957406-others", safety: "safe" },
- { pkg: "com.lge.myplace", label: "Myplace", description: "My Place Analyses the place you stay the most and recognises it as My Place (or your home) automatically. https://www.lg.com/uk/support/product-help/CT00008356-1433767701724-setting", safety: "safe" },
- { pkg: "com.lge.myplace.engine", label: "Engine", description: "My Places Engine Needed by com.lge.myplace. See above.", safety: "safe" },
- { pkg: "com.lge.networksettings", label: "Networksettings", description: "Sim network settings It can be found in settings.", safety: "keep" },
- { pkg: "com.lge.nextcapture", label: "Nextcapture", description: "Needed for screenshots?", safety: "caution" },
- { pkg: "com.lge.onehandcontroller", label: "Onehandcontroller", description: "Needed for One-Handed Controller, Miniview.", safety: "safe" },
- { pkg: "com.lge.operator.hiddenmenu", label: "Hiddenmenu", description: "Operator HiddenMenu Hidden tests.", safety: "safe" },
- { pkg: "com.lge.penprime", label: "Penprime", description: "Pen settings No one using them.", safety: "safe" },
- { pkg: "com.lge.phonemanagement", label: "Phonemanagement", description: "Smart Doctor App Enables you to shut down idle apps and delete temporary files. Lets you also see phone battery, mobile data, apps, network status and usage patterns. On the paper it seems good but in practise, Android handle 8+ handles very well idles apps. https://www.lg.com/ca_en/support/product-help/CT20098088-20150129256824-others", safety: "safe" },
- { pkg: "com.lge.pickme", label: "Pickme", description: "PickMe Needed for camera app or face unlock?", safety: "caution" },
- { pkg: "com.lge.privacylock", label: "Privacylock", description: "LG Content lock You can lock the LG Gallery with a password or pattern. When connected to a PC, Content Lock prevents file previews. https://www.lg.com/us/support/help-library/lg-g4-content-lock-CT10000027-1432774759427", safety: "safe" },
- { pkg: "com.lge.provider.lockscreensettings", label: "Lockscreensettings", description: "Needed for lock screen.", safety: "keep" },
- { pkg: "com.lge.provider.signboard", label: "Signboard", description: "Needed for Always on display. NOTE: May crash Settings app after removal.", safety: "caution" },
- { pkg: "com.lge.provider.systemui", label: "Systemui", description: "Not sure if iths important app.", safety: "caution" },
- { pkg: "com.lge.qhelp", label: "Qhelp", description: "Quick Help App which provides you with support articles (FAQ section that walks you through most of the major features of the phone). You can request support via email or request a call from LG. https://www.lg.com/us/support/help-library/lg-android-quick-help-CT10000026-20150103624836", safety: "safe" },
- { pkg: "com.lge.qhelp.application", label: "Application", description: "Quick Help application I think this package is the real Quick Help app. The package above only provides help contents IMO.", safety: "safe" },
- { pkg: "com.lge.qmemoplus", label: "Qmemoplus", description: "LG QuickMemo+ Allows you to capture screen shots and use them to create memos. You can also insert a reminder, location information, image, video, and audio. https://www.lg.com/us/support/help-library/lg-android-quickmemo-CT10000025-20150103629575", safety: "safe" },
- { pkg: "com.lge.quicktools", label: "Quicktools", description: "Quick Tools Quick Tools widget configure.", safety: "safe" },
- { pkg: "com.lge.rcs.sharedsketch", label: "Sharedsketch", description: "I have no idea what it is, maybe some drawing program related to rcs. I removed it.", safety: "caution" },
- { pkg: "com.lge.remote.lgairdrive", label: "Lgairdrive", description: "LG AirDrive Lets you to control files in your device via a wireless connection. To use it, you need to sign in to your LG account on both the PC and mobile device. https://www.lg.com/africa/support/product-help/CT20080025-1436354408798-others LG AirDrive settings See package below.", safety: "safe" },
- { pkg: "com.lge.remote.setting", label: "Setting", description: "LG AirDrive Lets you to control files in your device via a wireless connection. To use it, you need to sign in to your LG account on both the PC and mobile device. https://www.lg.com/africa/support/product-help/CT20080025-1436354408798-others LG AirDrive settings See package above.", safety: "safe" },
- { pkg: "com.lge.screenplus.touchpad", label: "Touchpad", description: "Screen+ Desktop Touchpad.", safety: "safe" },
- { pkg: "com.lge.screenplus.uiservice", label: "Uiservice", description: "Screen+ I don't know what Screen+ probably connects to PC screen.", safety: "safe" },
- { pkg: "com.lge.sdencryption", label: "Sdencryption", description: "Encryption devices like SD card.", safety: "safe" },
- { pkg: "com.lge.seamlesswallpaper.circular.reactive.darkspace", label: "Darkspace", description: "Live wallpapers resources.", safety: "caution" },
- { pkg: "com.lge.seamlesswallpaper.circular.reactive.space", label: "Space", description: "Live wallpapers resources.", safety: "caution" },
- { pkg: "com.lge.secondlauncher", label: "Secondlauncher", description: "It's needed for wallpaper choose and multi-app.", safety: "caution" },
- { pkg: "com.lge.servicemenu", label: "Servicemenu", description: "Hidden testing hardware things.", safety: "safe" },
- { pkg: "com.lge.shutdownmonitor", label: "Shutdownmonitor", description: "Shows the shut down animation when powering off or rebooting LG devices.", safety: "caution" },
- { pkg: "com.lge.signboard", label: "Signboard", description: "Always On Display. Probably a battery killer without an OLED screen. Disabling will remove the connected menu in the settings app.", safety: "caution" },
- { pkg: "com.lge.sizechangable.musicwidget.music", label: "Music", description: "Music widget It breaks when LG Music is removed.", safety: "caution" },
- { pkg: "com.lge.sizechangable.musicwidget.widget", label: "Widget", description: "LG Music widget. There are much better music apps available.", safety: "safe" },
- { pkg: "com.lge.sizechangable.weather", label: "Weather", description: "Music widget Not sure if it only manages Music widget for the launcher or also for the lockscreen. Weather widget for the home screen.", safety: "safe" },
- { pkg: "com.lge.sizechangable.weather.platform", label: "Platform", description: "Weather Service Provide weather data for the weather app/widget.", safety: "safe" },
+ { pkg: "com.lge.leccp", label: "Leccp", description: "LG Connectivity Service", safety: "safe" },
+ { pkg: "com.lge.lgaccount", label: "Lgaccount", description: "LG Account", safety: "safe" },
+ { pkg: "com.lge.lgdrm.permission", label: "Permission", description: "Handle permissions for LG DRM (com.lge.drmservice).", safety: "caution" },
+ { pkg: "com.lge.lginstallservies", label: "Lginstallservies", description: "LG Install Service", safety: "safe" },
+ { pkg: "com.lge.lgmapui", label: "Lgmapui", description: "LGMapUI", safety: "safe" },
+ { pkg: "com.lge.LGSetupView", label: "Lgsetupview", description: "Setup View", safety: "safe" },
+ { pkg: "com.lge.lgworld", label: "Lgworld", description: "LG SmartWorld", safety: "safe" },
+ { pkg: "com.lge.lifetracker", label: "Lifetracker", description: "LG Health (https://play.google.com/store/apps/details?id=com.lge.lifetracker)", safety: "safe" },
+ { pkg: "com.lge.mirrorlink", label: "Mirrorlink", description: "MirrorLink", safety: "safe" },
+ { pkg: "com.lge.mlt", label: "Mlt", description: "LG MLT", safety: "safe" },
+ { pkg: "com.lge.mtalk.sf", label: "Sf", description: "Voice Mate Speech Pack", safety: "safe" },
+ { pkg: "com.lge.musicshare", label: "Musicshare", description: "LG Audio Share", safety: "safe" },
+ { pkg: "com.lge.myplace", label: "Myplace", description: "My Place", safety: "safe" },
+ { pkg: "com.lge.myplace.engine", label: "Engine", description: "My Places Engine", safety: "safe" },
+ { pkg: "com.lge.phonemanagement", label: "Phonemanagement", description: "Smart Doctor App", safety: "safe" },
+ { pkg: "com.lge.privacylock", label: "Privacylock", description: "LG Content lock", safety: "safe" },
+ { pkg: "com.lge.qhelp", label: "Qhelp", description: "Quick Help", safety: "safe" },
+ { pkg: "com.lge.qhelp.application", label: "Application", description: "Quick Help application", safety: "safe" },
+ { pkg: "com.lge.qmemoplus", label: "Qmemoplus", description: "LG QuickMemo+", safety: "safe" },
+ { pkg: "com.lge.remote.setting", label: "Setting", description: "LG AirDrive", safety: "safe" },
+ { pkg: "com.lge.sizechangable.weather", label: "Weather", description: "Music widget", safety: "safe" },
+ { pkg: "com.lge.sizechangable.weather.platform", label: "Platform", description: "Weather Service", safety: "safe" },
{ pkg: "com.lge.sizechangable.weather.theme.optimus", label: "Optimus", description: "\"Optimus\" theme for the weather app/widget.", safety: "caution" },
- { pkg: "com.lge.smartdoctor.webview", label: "Webview", description: "Smart Doctor Webview REMINDER : A WebView is acomponent that allows Android apps to display content from the web directly inside an application.", safety: "safe" },
- { pkg: "com.lge.smartenabler", label: "Smartenabler", description: "It's for OTA Updates.", safety: "caution" },
- { pkg: "com.lge.smartshare", label: "Smartshare", description: "SmartShare Feature that uses DLNA technology to stream multimedia contents between DLNA devices. DLNA is a non-profit trade organisation which defines standards that enable devices to share stuff with each other. Basically LG provides a way to stream multimedia contents from your phone to your smart TV (or via a DLNA plugin) https://www.lg.com/ca_en/support/product-help/CT31903570-1428542236040-file-media-transfer-pictures-music-etc", safety: "safe" },
- { pkg: "com.lge.smartshare.provider", label: "Provider", description: "Provider for Smart Share. Needed by com.lge.smartshare. REMINDER : content providers help an application manage access to data stored by itself, stored by other apps, and provide a way to share data with other apps. They encapsulate the data, and provide mechanisms for defining data security", safety: "safe" },
- { pkg: "com.lge.smartsharepush", label: "Smartsharepush", description: "Smart Share Push Obviously related to Smart Share but I don't know its exact purpose.", safety: "safe" },
- { pkg: "com.lge.snappage", label: "Snappage", description: "Snap Page Part of the QuickMemo+ app, lets you capture the text/images/URL from a web page without grabbing ads. It’s much like instapaper or pocket app, but it works locally, like reading mode on some browsers, saving only the body of the article. http://www.lg.com/us/mobile-phones/g4/display", safety: "safe" },
- { pkg: "com.lge.springcleaning", label: "Springcleaning", description: "Smart cleaning Displays the space in use and free space in your phone and allows you to selectively clean up your files. https://www.lg.com/us/mobile-phones/VS986/Userguide/339.html", safety: "safe" },
- { pkg: "com.lge.sui.widget", label: "Widget", description: "Removing this package causes the clock app to crash when trying to set an alarm for a specific date instead of a day of the week.", safety: "caution" },
- { pkg: "com.lge.sync", label: "Sync", description: "LG Bridge Service Used to backup, restore, update your LG phone, and transfer files wirelessly between computer and LG phone. You will need to install LG Bridge software on your PC. NOTE: causes noticeable battery drain.", safety: "safe" },
- { pkg: "com.lge.systemservice", label: "Systemservice", description: "System Server Not sure if iths important app.", safety: "caution" },
- { pkg: "com.lge.task", label: "Task", description: "LG Tasks Needed by LG Calendar or it will force close.", safety: "caution" },
- { pkg: "com.lge.theme.black", label: "Black", description: "LG Black theme. Safe to remove, but also probably pointless to do so as most theme packages are just data containers. Make sure you don't delete the package for the theme you're currently using, I don't know what will happen then.", safety: "caution" },
- { pkg: "com.lge.theme.blackgold", label: "Blackgold", description: "LG Black Bold theme. Safe to remove, but also probably pointless to do so as most theme packages are just data containers. Make sure you don't delete the package for the theme you're currently using. I don't know what will happen then.", safety: "caution" },
- { pkg: "com.lge.theme.highcontrast", label: "Highcontrast", description: "LG High Contrast theme. Safe to remove, but also probably pointless to do so as most theme packages are just data containers. Make sure you don't delete the package for the theme you're currently using, I don't know what will happen then.", safety: "caution" },
- { pkg: "com.lge.theme.titan", label: "Titan", description: "LG Titan theme (labelled 'Platinum' in the theming app). Safe to remove, but also probably pointless to do so as most theme packages are just data containers. Make sure you don't delete the package for the theme you're currently using. I don't know what will happen then.", safety: "caution" },
- { pkg: "com.lge.theme.white", label: "White", description: "LG White theme. Safe to remove, but also probably pointless to do so as most theme packages are just data containers. Make sure you don't delete the package for the theme you're currently using, I don't know what will happen then.", safety: "caution" },
- { pkg: "com.lge.themeinstaller", label: "Themeinstaller", description: "Needed to install themes.", safety: "caution" },
- { pkg: "com.lge.themeservice", label: "Themeservice", description: "Needed to apply themes.", safety: "caution" },
- { pkg: "com.lge.themesquare", label: "Themesquare", description: "Change the theme on LG UX.", safety: "caution" },
- { pkg: "com.lge.touchcontrol", label: "Touchcontrol", description: "I have never seen this menu in the settings app. I say it's safe to remove. I can't think of any use case for this setting, it just allows you to change where you're allowed to touch the screen", safety: "caution" },
- { pkg: "com.lge.update", label: "Update", description: "LG Update Center for updating your LG device. LG's OTA server shut down on June 30, 2025, so this app now has no purpose.", safety: "safe" },
- { pkg: "com.lge.updatecenter", label: "Updatecenter", description: "LG Update Center Provide Android upgrade and LG updates (Settings --> System --> Update Center) I believe you won't receive any updates if this packages is deleted.", safety: "caution" },
- { pkg: "com.lge.upsell", label: "Upsell", description: "Contains dialogs from different carriers about upgrading the mobile plan Should be safe to remove?", safety: "caution" },
- { pkg: "com.lge.video.vr.wallpaper", label: "Wallpaper", description: "Video Wallpaper LG 360° VR Wallpapers", safety: "safe" },
- { pkg: "com.lge.videoplayer", label: "Videoplayer", description: "LG Video Player NB : This is a bad one. VLC is much better.", safety: "safe" },
- { pkg: "com.lge.videostudio", label: "Videostudio", description: "Quick Video Editor Allows you to create and edit video files using the videos (and photos) stored on the phone. https://www.lg.com/us/mobile-phones/VS980/Userguide/281.html", safety: "safe" },
- { pkg: "com.lge.voicecare", label: "Voicecare", description: "LG Voice care Allows you to use your device if the touch screen or display is damaged. You must agree to location-based information use and personal information collection to use Voice Care. https://www.lg.com/hk_en/support/product-help/CT20136018-20150122834174-others", safety: "safe" },
- { pkg: "com.lge.voicerecorder", label: "Voicerecorder", description: "LG Voice Recorder Simple voice recording app. Safe to remove.", safety: "caution" },
- { pkg: "com.lge.vrplayer", label: "Vrplayer", description: "LG VR player Enables you to watch 360° pictures/videos.", safety: "safe" },
- { pkg: "com.lge.wallpaperpicker", label: "Wallpaperpicker", description: "Wallpaper Needed for wallpaper preview.", safety: "caution" },
+ { pkg: "com.lge.smartdoctor.webview", label: "Webview", description: "Smart Doctor Webview", safety: "safe" },
+ { pkg: "com.lge.smartshare", label: "Smartshare", description: "SmartShare", safety: "safe" },
+ { pkg: "com.lge.smartshare.provider", label: "Provider", description: "Provider for Smart Share.", safety: "safe" },
+ { pkg: "com.lge.smartsharepush", label: "Smartsharepush", description: "Smart Share Push", safety: "safe" },
+ { pkg: "com.lge.snappage", label: "Snappage", description: "Snap Page", safety: "safe" },
+ { pkg: "com.lge.springcleaning", label: "Springcleaning", description: "Smart cleaning", safety: "safe" },
+ { pkg: "com.lge.sync", label: "Sync", description: "LG Bridge Service", safety: "safe" },
+ { pkg: "com.lge.video.vr.wallpaper", label: "Wallpaper", description: "Video Wallpaper", safety: "safe" },
+ { pkg: "com.lge.videoplayer", label: "Videoplayer", description: "LG Video Player", safety: "safe" },
+ { pkg: "com.lge.videostudio", label: "Videostudio", description: "Quick Video Editor", safety: "safe" },
+ { pkg: "com.lge.voicecare", label: "Voicecare", description: "LG Voice care", safety: "safe" },
+ { pkg: "com.lge.vrplayer", label: "Vrplayer", description: "LG VR player", safety: "safe" },
+ { pkg: "com.lge.wernicke", label: "Wernicke", description: "QVoice Engine", safety: "safe" },
+ { pkg: "com.lge.wernicke.nlp", label: "Nlp", description: "Natural-language processing for LG intelligent assistant.", safety: "safe" },
+ { pkg: "com.lge.wfd.spmirroring.source", label: "Source", description: "Provide wifi-direct feature", safety: "caution" },
+ { pkg: "com.lge.wfds.service.v3", label: "V3", description: "Wifi-direct service (v3)", safety: "caution" },
+ { pkg: "com.lge.wifi.p2p", label: "P2P", description: "LG P2p Service", safety: "safe" },
+ { pkg: "com.lge.lgfmservice", label: "Lgfmservice", description: "Wifi Hotspot service", safety: "caution" },
+ { pkg: "com.lge.bnr.launcher", label: "Launcher", description: "LG Mobile Switch Launcher", safety: "safe" },
+ { pkg: "com.lge.clock", label: "Clock", description: "LG Clock app", safety: "caution" },
+ { pkg: "com.lge.filemanager", label: "Filemanager", description: "Stock file manager", safety: "caution" },
+ { pkg: "com.lge.homeselector", label: "Homeselector", description: "LG Home selector", safety: "safe" },
+ { pkg: "com.lge.launcher2", label: "Launcher2", description: "LG Home (v2)", safety: "caution" },
+ { pkg: "com.lge.launcher3", label: "Launcher3", description: "LG Home (v3)", safety: "caution" },
+ { pkg: "com.lge.music", label: "Music", description: "Stock music player", safety: "safe" },
+ { pkg: "com.lge.floatingbar", label: "Floatingbar", description: "LG Floating bar", safety: "safe" },
+ { pkg: "com.lge.theme.titan", label: "Titan", description: "LG Titan theme (labelled 'Platinum' in the theming app).", safety: "caution" },
+ { pkg: "com.lge.updatecenter", label: "Updatecenter", description: "LG Update Center", safety: "caution" },
+ { pkg: "com.lge.theme.black", label: "Black", description: "LG Black theme.", safety: "caution" },
+ { pkg: "com.lge.theme.white", label: "White", description: "LG White theme.", safety: "caution" },
+ { pkg: "com.lge.theme.highcontrast", label: "Highcontrast", description: "LG High Contrast theme.", safety: "caution" },
+ { pkg: "com.lge.signboard", label: "Signboard", description: "Always On Display.", safety: "caution" },
+ { pkg: "com.lge.equalizer", label: "Equalizer", description: "Equalizer settings.", safety: "caution" },
+ { pkg: "com.lge.exchange", label: "Exchange", description: "It looks like the Microsoft outlook/email in the logo. Believe this is some sort of microsoft integration.", safety: "caution" },
+ { pkg: "com.lge.task", label: "Task", description: "Task storage", safety: "caution" },
+ { pkg: "com.lge.gametuner", label: "Gametuner", description: "Settings/features for games, such as resolution and frame rate limiting.", safety: "caution" },
+ { pkg: "com.lge.touchcontrol", label: "Touchcontrol", description: "I have never seen this menu in the settings app. I say its safe to remove. I can't think of any use case fo...", safety: "caution" },
{ pkg: "com.lge.wapservice", label: "Wapservice", description: "Icon looks like email configuration. I'd say it's safe to remove. Probably related to the stock email app.", safety: "caution" },
- { pkg: "com.lge.wernicke", label: "Wernicke", description: "QVoice Engine Needed by Q-voice (the LG Q Voice voice assistant) to work.", safety: "safe" },
- { pkg: "com.lge.wernicke.nlp", label: "Nlp", description: "Natural-language processing for LG intelligent assistant. Used to understand what a human is saying when they speak. Needed by QVoice", safety: "safe" },
- { pkg: "com.lge.wfd.spmirroring.source", label: "Source", description: "Provide wifi-direct feature Note : Wifi-direct is Wi-Fi standard enabling devices to easily connect with each other without requiring a wireless access point. It allows allows two devices to establish a direct Wi-Fi connection without requiring a wireless router https://en.wikipedia.org/wiki/Wi-Fi_Direct spmirroring = ??? screen p... mirroring ?", safety: "caution" },
- { pkg: "com.lge.wfds.service.v3", label: "V3", description: "Wifi-direct service (v3) See above.", safety: "caution" },
- { pkg: "com.lge.wifi.p2p", label: "P2p", description: "LG P2p Service Wifi-drect P2P allows the device to discover the services of nearby devices directly, without being connected to a network. Needed for LG Wifi-direct feature. https://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct", safety: "safe" },
- { pkg: "com.lge.wificall", label: "Wificall", description: "Needed for Wi-Fi Calling on LG devices.", safety: "caution" },
- { pkg: "com.lge.wifisettings", label: "Wifisettings", description: "WiFi settings It can be found in settings.", safety: "keep" },
- { pkg: "com.rsupport.rs.activity.lge.allinone", label: "Allinone", description: "LG RemoteCall service app Used to get support from LG, safe to remove.", safety: "safe" },
- { pkg: "product.lge.data.server.LgDataServiceMain", label: "LgDataServiceMain", description: "Needed for iwlan? Very unknown app.", safety: "caution" },
+ { pkg: "com.lge.rcs.sharedsketch", label: "Sharedsketch", description: "I have no idea what it is, maybe some drawing program related to rcs. I removed it.", safety: "caution" },
+ { pkg: "com.lge.faceglance.trustagent", label: "Trustagent", description: "Face Recognition", safety: "caution" },
+ { pkg: "com.lge.app.floating.res", label: "Res", description: "Multitasking framework", safety: "caution" },
],
},
{
name: "Nokia/HMD",
packages: [
- { pkg: "com.evenwell.AprUploadService", label: "AprUploadService", description: "Apr Upload Service ???? [MORE INFO NEEDED]", safety: "caution" },
- { pkg: "com.evenwell.AprUploadService.data.overlay.base", label: "Base", description: "Theme overlay for Apr Upload Service?", safety: "caution" },
- { pkg: "com.evenwell.AprUploadService.data.overlay.base.s600id", label: "S600id", description: "Theme overlay for Apr Upload Service?", safety: "caution" },
- { pkg: "com.evenwell.AprUploadService.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Apr Upload Service?", safety: "caution" },
- { pkg: "com.evenwell.CPClient", label: "CPClient", description: "CP = Client Provisioning. Surely used to push new carrier internet/MMS settings automatically Maybe it's useful if carriers change their APN... but you still can change it manually, it's not difficult.", safety: "caution" },
- { pkg: "com.evenwell.CPClient.overlay.base", label: "Base", description: "Theme overlay for CPClient?", safety: "caution" },
- { pkg: "com.evenwell.CPClient.overlay.base.s600id", label: "S600id", description: "Theme overlay for CPClient?", safety: "caution" },
- { pkg: "com.evenwell.CPClient.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for CPClient?", safety: "caution" },
- { pkg: "com.evenwell.DbgCfgTool", label: "DbgCfgTool", description: "Debug Config Tool?", safety: "safe" },
- { pkg: "com.evenwell.DbgCfgTool.overlay.base", label: "Base", description: "Theme overlay for Debug Config Tool?", safety: "caution" },
- { pkg: "com.evenwell.DbgCfgTool.overlay.base.s600id", label: "S600id", description: "Theme overlay for Debug Config Tool?", safety: "caution" },
- { pkg: "com.evenwell.DbgCfgTool.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Debug Config Tool?", safety: "caution" },
- { pkg: "com.evenwell.DeviceMonitorControl", label: "DeviceMonitorControl", description: "Some form of device monitoring?", safety: "caution" },
- { pkg: "com.evenwell.DeviceMonitorControl.data.overlay.base", label: "Base", description: "Theme overlay for Device Monitor Control?", safety: "caution" },
- { pkg: "com.evenwell.DeviceMonitorControl.data.overlay.base.s600id", label: "S600id", description: "Theme overlay for Device Monitor Control?", safety: "caution" },
- { pkg: "com.evenwell.DeviceMonitorControl.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Device Monitor Control?", safety: "caution" },
- { pkg: "com.evenwell.OTAUpdate.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for OTA Update UI?", safety: "caution" },
- { pkg: "com.evenwell.PowerMonitor", label: "PowerMonitor", description: "Drains more battery than it saves.", safety: "safe" },
- { pkg: "com.evenwell.PowerMonitor.overlay.base", label: "Base", description: "Theme overlay for Power Monitor?", safety: "caution" },
- { pkg: "com.evenwell.PowerMonitor.overlay.base.s600id", label: "S600id", description: "Theme overlay for Power Monitor?", safety: "caution" },
- { pkg: "com.evenwell.PowerMonitor.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Power Monitor?", safety: "caution" },
- { pkg: "com.evenwell.SettingsUtils", label: "SettingsUtils", description: "Settings utils (crappy) Audio rendering. See https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/9#note_369056538", safety: "safe" },
- { pkg: "com.evenwell.SettingsUtils.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for SettingsUtils?", safety: "caution" },
- { pkg: "com.evenwell.SetupWizard", label: "SetupWizard", description: "The first-boot device setup wizard for new/factory reset devices.", safety: "safe" },
- { pkg: "com.evenwell.SetupWizard.overlay.base", label: "Base", description: "Theme overlay for Setup Wizard?", safety: "caution" },
- { pkg: "com.evenwell.SetupWizard.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Setup Wizard?", safety: "caution" },
- { pkg: "com.evenwell.SetupWizard.overlay.d.base.s600ww", label: "S600ww", description: "Theme overlay for Setup Wizard?", safety: "caution" },
- { pkg: "com.evenwell.UsageStatsLogReceiver", label: "UsageStatsLogReceiver", description: "Logging stuff", safety: "caution" },
- { pkg: "com.evenwell.UsageStatsLogReceiver.data.overlay.back.s600id", label: "S600id", description: "Theme overlay for Usage Stats Log?", safety: "caution" },
- { pkg: "com.evenwell.UsageStatsLogReceiver.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Usage Stats Log?", safety: "caution" },
- { pkg: "com.evenwell.apnwidget.overlay.base.s600ww", label: "S600ww", description: "Some overlay for an APN widget. Overlays are usually themes. APN means Access Point Name and must be configured with carrier values in order for your device to acess the carrier's network.", safety: "caution" },
- { pkg: "com.evenwell.autoregistration", label: "Autoregistration", description: "Spyware app which sends warranty details to China https://milankragujevic.com/the-trade-of-privacy-for-convenience https://archive.is/https://nitter.privacydev.net/drwetter/status/1108801189662130176", safety: "safe" },
- { pkg: "com.evenwell.autoregistration.overlay.base", label: "Base", description: "Theme overlay for a Spyware app?", safety: "caution" },
- { pkg: "com.evenwell.autoregistration.overlay.base.s600id", label: "S600id", description: "Theme overlay for a Spyware app?", safety: "caution" },
- { pkg: "com.evenwell.autoregistration.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for a Spyware app?", safety: "caution" },
- { pkg: "com.evenwell.autoregistration.overlay.d.base.s600id", label: "S600id", description: "Theme overlay for a Spyware app?", safety: "caution" },
- { pkg: "com.evenwell.autoregistration.overlay.d.base.s600ww", label: "S600ww", description: "Theme overlay for a Spyware app?", safety: "caution" },
- { pkg: "com.evenwell.batteryprotect", label: "Batteryprotect", description: "Battery protect is advertised to improve battery performance, but in practice it drains your battery and kills apps aggressively. https://dontkillmyapp.com/nokia Nokia decided to stop using this app-killer in the future: https://www.androidpolice.com/2019/08/27/nokia-hmd-phones-disable-evenwell-background-process-app-killer/", safety: "safe" },
- { pkg: "com.evenwell.batteryprotect.overlay.base", label: "Base", description: "Theme overlay for Battery Protect?", safety: "caution" },
- { pkg: "com.evenwell.batteryprotect.overlay.base.s600id", label: "S600id", description: "Theme overlay for Battery Protect?", safety: "caution" },
- { pkg: "com.evenwell.batteryprotect.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Battery Protect?", safety: "caution" },
- { pkg: "com.evenwell.batteryprotect.overlay.d.base.s600e0", label: "S600e0", description: "Theme overlay for Battery Protect?", safety: "caution" },
- { pkg: "com.evenwell.bboxsbox", label: "Bboxsbox", description: "??? [MORE INFO NEEDED]", safety: "safe" },
- { pkg: "com.evenwell.bboxsbox.app", label: "App", description: "????", safety: "safe" },
- { pkg: "com.evenwell.bokeheditor", label: "Bokeheditor", description: "Probably related to adding fake bokeh (a focus blur effect) to photos.", safety: "caution" },
- { pkg: "com.evenwell.bokeheditor.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Bokeh Editor?", safety: "caution" },
- { pkg: "com.evenwell.camera2", label: "Camera2", description: "Nokia camera by evenwell (https://play.google.com/store/apps/details?id=com.evenwell.camera2)", safety: "caution" },
- { pkg: "com.evenwell.custmanager", label: "Custmanager", description: "Customer manager Given its name I'd say it is useless but I don't have more info.", safety: "caution" },
- { pkg: "com.evenwell.custmanager.data.overlay.base", label: "Base", description: "Theme overlay for Customer Manager?", safety: "caution" },
- { pkg: "com.evenwell.custmanager.data.overlay.base.s600id", label: "S600id", description: "Theme overlay for Customer Manager?", safety: "caution" },
- { pkg: "com.evenwell.custmanager.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Customer Manager?", safety: "caution" },
- { pkg: "com.evenwell.customerfeedback.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Customer Feedback?", safety: "caution" },
- { pkg: "com.evenwell.dataagent", label: "Dataagent", description: "Data agent Used for backup/restore? [MORE INFO NEEDED]", safety: "caution" },
- { pkg: "com.evenwell.dataagent.overlay.base", label: "Base", description: "Theme overlay for Data Agent?", safety: "caution" },
- { pkg: "com.evenwell.dataagent.overlay.base.s600id", label: "S600id", description: "Theme overlay for Data Agent?", safety: "caution" },
- { pkg: "com.evenwell.dataagent.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Data Agent?", safety: "caution" },
- { pkg: "com.evenwell.defaultappconfigure.overlay.base.s600ww", label: "S600ww", description: "A theme overlay for selecting default apps or something?", safety: "caution" },
- { pkg: "com.evenwell.email.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for email app?", safety: "caution" },
- { pkg: "com.evenwell.factorywizard", label: "Factorywizard", description: "Likely part of the first-boot device setup (new/factory reset device).", safety: "safe" },
- { pkg: "com.evenwell.factorywizard.overlay.base", label: "Base", description: "Theme overlay for setup wizard?", safety: "caution" },
- { pkg: "com.evenwell.factorywizard.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for setup wizard?", safety: "caution" },
- { pkg: "com.evenwell.fmradio.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Nokia radio app?", safety: "caution" },
- { pkg: "com.evenwell.foxlauncher.partner", label: "Partner", description: "Partner Launcher Customization Related to the Nokia launcher", safety: "safe" },
- { pkg: "com.evenwell.fqc", label: "Fqc", description: "FQC is a secret test menu. It lets you test the hardware (touch screen, speakers, SD card, SIM card, camera...) You need to type *#*#372733#*#* in the Nokia dialer", safety: "safe" },
- { pkg: "com.evenwell.hdrservice", label: "Hdrservice", description: "HDR Service (https://play.google.com/store/apps/details?id=com.evenwell.hdrservice) Enhances contrast and sharpness for normal photos, games and videos dynamically.", safety: "caution" },
- { pkg: "com.evenwell.legalterm", label: "Legalterm", description: "Provides terms and conditions (legal notice)", safety: "safe" },
- { pkg: "com.evenwell.legalterm.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for some terms and conditions?", safety: "caution" },
- { pkg: "com.evenwell.managedprovisioning", label: "Managedprovisioning", description: "Nokia implementation of com.android.managedprovisioning? If so it manages Android user accounts, allowing you to add extra accounts. The typical use-case is setting up a corporate profile that is controlled by the employer on an employee's personal device, to keep personal and work data separate.", safety: "caution" },
- { pkg: "com.evenwell.managedprovisioning.overlay.base", label: "Base", description: "Theme overlay for Managed Provisioning?", safety: "caution" },
- { pkg: "com.evenwell.managedprovisioning.overlay.base.s600id", label: "S600id", description: "Theme overlay for Managed Provisioning?", safety: "caution" },
- { pkg: "com.evenwell.managedprovisioning.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Managed Provisioning?", safety: "caution" },
- { pkg: "com.evenwell.mappartner", label: "Mappartner", description: "????", safety: "safe" },
- { pkg: "com.evenwell.nps", label: "Nps", description: "Net Promoter Score Preinstalled survey.", safety: "safe" },
- { pkg: "com.evenwell.nps.overlay.base", label: "Base", description: "Theme overlay for Net Promoter Score?", safety: "caution" },
- { pkg: "com.evenwell.nps.overlay.base.s600id", label: "S600id", description: "Theme overlay for Net Promoter Score?", safety: "caution" },
- { pkg: "com.evenwell.nps.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Net Promoter Score?", safety: "caution" },
- { pkg: "com.evenwell.pandorasbox", label: "Pandorasbox", description: "WTF is this? [MORE INFO NEEDED]", safety: "safe" },
- { pkg: "com.evenwell.pandorasbox.app", label: "App", description: "WTF is this?", safety: "safe" },
- { pkg: "com.evenwell.partnerbrowsercustomizations", label: "Partnerbrowsercustomizations", description: "Adds something (Nokia-)partner-related to your browser? Probably adds bookmarks.", safety: "safe" },
- { pkg: "com.evenwell.partnerbrowsercustomizations.overlay.base", label: "Base", description: "Theme overlay for some browser customization?", safety: "caution" },
- { pkg: "com.evenwell.partnerbrowsercustomizations.overlay.base.s600id", label: "S600id", description: "Theme overlay for some browser customization?", safety: "caution" },
- { pkg: "com.evenwell.partnerbrowsercustomizations.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for some browser customization?", safety: "caution" },
- { pkg: "com.evenwell.permissiondetection", label: "Permissiondetection", description: "???? [MORE INFO NEEDED]", safety: "caution" },
- { pkg: "com.evenwell.permissiondetection.overlay.base.s600ww", label: "S600ww", description: "A theme overlay for some\"permissiondetection\" package?", safety: "caution" },
- { pkg: "com.evenwell.phone.overlay.base", label: "Base", description: "Some overlay for the dialer app? Overlays are usually themes.", safety: "caution" },
- { pkg: "com.evenwell.phone.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for the dialer app?", safety: "caution" },
- { pkg: "com.evenwell.powersaving.g3.overlay.d.base.s600e0", label: "S600e0", description: "Theme overlay for Power Saving?", safety: "caution" },
- { pkg: "com.evenwell.providers.downloads.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for the downloads app?", safety: "caution" },
- { pkg: "com.evenwell.providers.downloads.ui.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for the downloads app?", safety: "caution" },
- { pkg: "com.evenwell.providers.partnerbookmarks.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Partner Bookmarks?", safety: "caution" },
- { pkg: "com.evenwell.providers.weather", label: "Weather", description: "Provider for the Nokia weather app. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "safe" },
- { pkg: "com.evenwell.providers.weather.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for weather provider?", safety: "caution" },
- { pkg: "com.evenwell.pushagent", label: "Pushagent", description: "Related to push notifications for Nokia apps?", safety: "safe" },
- { pkg: "com.evenwell.pushagent.overlay.base", label: "Base", description: "Theme overlay for pushagent?", safety: "caution" },
- { pkg: "com.evenwell.pushagent.overlay.base.s600id", label: "S600id", description: "Theme overlay for pushagent?", safety: "caution" },
- { pkg: "com.evenwell.pushagent.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for pushagent?", safety: "caution" },
- { pkg: "com.evenwell.retaildemoapp", label: "Retaildemoapp", description: "Nokia retail demonstration mode https://en.wikipedia.org/wiki/Demo_mode", safety: "safe" },
- { pkg: "com.evenwell.retaildemoapp.overlay.base", label: "Base", description: "Theme overlay for Nokia retail demonstration mode? https://en.wikipedia.org/wiki/Demo_mode", safety: "caution" },
- { pkg: "com.evenwell.retaildemoapp.overlay.base.s600id", label: "S600id", description: "Theme overlay for Nokia retail demonstration mode? https://en.wikipedia.org/wiki/Demo_mode", safety: "caution" },
- { pkg: "com.evenwell.retaildemoapp.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Nokia retail demonstration mode? https://en.wikipedia.org/wiki/Demo_mode", safety: "caution" },
- { pkg: "com.evenwell.screenlock.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for the lock-screen?", safety: "caution" },
- { pkg: "com.evenwell.settings.data.overlay.base", label: "Base", description: "Overlay related to settings. Overlays are usually themes.", safety: "caution" },
- { pkg: "com.evenwell.settings.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for settings?", safety: "caution" },
- { pkg: "com.evenwell.setupwizard.btl.s600ww.overlay", label: "Overlay", description: "Theme overlay for Setup Wizard?", safety: "caution" },
- { pkg: "com.evenwell.stbmonitor", label: "Stbmonitor", description: "Apparently used to stabilize phone usage. Seems to drain battery.", safety: "safe" },
- { pkg: "com.evenwell.stbmonitor.data.overlay.base", label: "Base", description: "Theme overlay for STB Monitor?", safety: "caution" },
- { pkg: "com.evenwell.stbmonitor.data.overlay.base.s600id", label: "S600id", description: "Theme overlay for STB Monitor?", safety: "caution" },
- { pkg: "com.evenwell.stbmonitor.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for STB Monitor?", safety: "caution" },
- { pkg: "com.evenwell.telecom.data.overlay.base", label: "Base", description: "Overlay related to Telecom data? Overlays are usually themes.", safety: "caution" },
- { pkg: "com.evenwell.telecom.data.overlay.base.s600id", label: "S600id", description: "Theme overlay for something telecom-related?", safety: "caution" },
- { pkg: "com.evenwell.telecom.data.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for something telecom-related?", safety: "caution" },
- { pkg: "com.evenwell.weather.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for the Nokia weather app?", safety: "caution" },
- { pkg: "com.evenwell.weatherservice", label: "Weatherservice", description: "Service for the weather app", safety: "safe" },
- { pkg: "com.evenwell.weatherservice.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for weather service?", safety: "caution" },
- { pkg: "com.evenwell.whitebalance", label: "Whitebalance", description: "Package: com.evenwell.whitebalance", safety: "caution" },
- { pkg: "com.evenwell.whitebalance.overlay.base", label: "Base", description: "Package: com.evenwell.whitebalance.overlay.base", safety: "caution" },
+ { pkg: "com.hmdglobal.datago.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for a Nokia telemetry package?", safety: "caution" },
+ { pkg: "com.hmdglobal.support", label: "Support", description: "My Phone (https://play.google.com/store/apps/details?id=com.hmdglobal.support)", safety: "safe" },
{ pkg: "com.hmdglobal.camera2", label: "Camera2", description: "Nokia camera (https://play.google.com/store/apps/details?id=com.hmdglobal.camera2)", safety: "caution" },
{ pkg: "com.hmdglobal.datago", label: "Datago", description: "Sends diagnostic data to HMD (Company behind Nokia)?", safety: "safe" },
{ pkg: "com.hmdglobal.datago.overlay.base", label: "Base", description: "Theme overlay for a Nokia telemetry package?", safety: "caution" },
- { pkg: "com.hmdglobal.datago.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for a Nokia telemetry package?", safety: "caution" },
- { pkg: "com.hmdglobal.enterprise.api", label: "Api", description: "I can't find this app on the internet, but I heard it has telemetry.", safety: "safe" },
- { pkg: "com.hmdglobal.support", label: "Support", description: "My Phone (https://play.google.com/store/apps/details?id=com.hmdglobal.support) Lets you join the Nokia phones community, get app recommendations, explore your phone’s user guide and more.", safety: "safe" },
],
},
{
name: "Asus",
packages: [
- { pkg: "android.autoinstalls.config.asus.pai", label: "Pai", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "com.asus.UpdateLauncher", label: "UpdateLauncher", description: "Updater Launcher Remove if you dont need it Launcher updates.", safety: "safe" },
- { pkg: "com.asus.alwayson", label: "Alwayson", description: "Always-on Display AOD will be not available after remove.", safety: "safe" },
- { pkg: "com.asus.alwayson.res.overlay", label: "Overlay", description: "Not needed gif to Always-on Display", safety: "caution" },
- { pkg: "com.asus.appupdater", label: "Appupdater", description: "ASUS Config Updater It may have something to do with app updater but no activities.", safety: "caution" },
- { pkg: "com.asus.asusbacktap", label: "Asusbacktap", description: "Back tap it's for Accessibility component feature. Back tap will not be available in settings after remove.", safety: "safe" },
- { pkg: "com.asus.asusoptiflex", label: "Asusoptiflex", description: "ASUS Opti Flex it's something for settings? Still unknown.", safety: "caution" },
- { pkg: "com.asus.asussettingsbackuphelper", label: "Asussettingsbackuphelper", description: "Settings ASUS Backup Can be removed if ASUS Backup are not used.", safety: "safe" },
- { pkg: "com.asus.atd.smmitest", label: "Smmitest", description: "SMMI TEST Testing hardware things.", safety: "safe" },
- { pkg: "com.asus.audiowizard", label: "Audiowizard", description: "ASUS AudioWizard Needed for sound effects.", safety: "safe" },
- { pkg: "com.asus.calculator", label: "Calculator", description: "Calculator - unit converter (https://play.google.com/store/apps/details?id=com.asus.calculator) Has more permissions than a Calculator app reasonably should have. Connects to a few Google and currency exchange-rate servers. https://beta.pithus.org/report/817514371bbdb76ec52da4c8456bbc116deec179603099deabbe6fcce6f6ccdb", safety: "safe" },
- { pkg: "com.asus.camera", label: "Camera", description: "Stock ASUS camera app. It has Google Analytics, so better disable internet for this app.", safety: "caution" },
- { pkg: "com.asus.cellbroadcastreceiver.overlay", label: "Overlay", description: "useless overlay for cellbroadcast", safety: "caution" },
- { pkg: "com.asus.cellbroadcastservice.overlay", label: "Overlay", description: "useless overlay for cellbroadcast", safety: "caution" },
- { pkg: "com.asus.configupdater", label: "Configupdater", description: "ASUS Config Updater Some people have removed this. Needed for ASUS autoupdate apps probably, also found debugging code.", safety: "safe" },
- { pkg: "com.asus.contacts", label: "Contacts", description: "ASUS Contacts Stock ASUS Contacts app. Contains Google trackers.", safety: "caution" },
- { pkg: "com.asus.deskclock", label: "Deskclock", description: "ASUS Digital Clock & Widget Contains google analytics.", safety: "caution" },
- { pkg: "com.asus.dialer", label: "Dialer", description: "ASUS Dialer Contains Google trackers.", safety: "caution" },
- { pkg: "com.asus.dm", label: "Dm", description: "System update System updates for ASUS", safety: "caution" },
- { pkg: "com.asus.easylauncher", label: "Easylauncher", description: "Asus Easy Mode (https://play.google.com/store/apps/details?id=com.asus.easylauncher) Alternative launcher with bigger icons and simpler interface", safety: "safe" },
- { pkg: "com.asus.ephotoburst", label: "Ephotoburst", description: "ASUS Burst shot viewer ASUS Photo viewer, Trim Service. Contains Google Analytics.", safety: "safe" },
- { pkg: "com.asus.faceunlockservice", label: "Faceunlockservice", description: "ASUS Face Unlock Service Needed for face unlock. Face unlock will not work after remove.", safety: "caution" },
- { pkg: "com.asus.filemanager", label: "Filemanager", description: "File Manager Stock ASUS file manager app.", safety: "caution" },
- { pkg: "com.asus.focusapplistener", label: "Focusapplistener", description: "Focus app Needed for optimization, probably.", safety: "caution" },
- { pkg: "com.asus.gallery", label: "Gallery", description: "Stock Gallery app. Contains Google Analytics.", safety: "safe" },
- { pkg: "com.asus.gamewidget", label: "Gamewidget", description: "Game genie Probably useful for gaming. https://play.google.com/store/apps/details?id=com.asus.gamewidget", safety: "caution" },
- { pkg: "com.asus.gamewidget.service", label: "Service", description: "Game genie service Game genie service needed for (`com.asus.gamewidget`) It's probably useful for gaming.", safety: "caution" },
- { pkg: "com.asus.hardwarestub", label: "Hardwarestub", description: "HardwareStub Services Has components for optimization game.", safety: "caution" },
- { pkg: "com.asus.hbm", label: "Hbm", description: "High Brightness Mode It can be found probably in settings. Still unknown.", safety: "caution" },
- { pkg: "com.asus.ia.asusapp", label: "Asusapp", description: "My Asus (https://play.google.com/store/apps/details?id=com.asus.ia.asusapp) Asus service center (support + store)", safety: "safe" },
- { pkg: "com.asus.imagesearch", label: "Imagesearch", description: "Image search it's so bloated.", safety: "safe" },
- { pkg: "com.asus.ims.benchmarkblocker", label: "Benchmarkblocker", description: "Founded debugs and benchmark blocker.", safety: "safe" },
- { pkg: "com.asus.ims.brightnessservice", label: "Brightnessservice", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.configmanager", label: "Configmanager", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.devicepolicymanager", label: "Devicepolicymanager", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.evtlog", label: "Evtlog", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.extdispctrl", label: "Extdispctrl", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.forcedark", label: "Forcedark", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.freeform", label: "Freeform", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.observer", label: "Observer", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.packageinstallerproxy", label: "Packageinstallerproxy", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.phykeyctrl", label: "Phykeyctrl", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.pointerproxy", label: "Pointerproxy", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.powerctrl", label: "Powerctrl", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.rogproxy", label: "Rogproxy", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.smartread", label: "Smartread", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.twinapps", label: "Twinapps", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.ims.watermark", label: "Watermark", description: "Not needed, unused frameworks", safety: "safe" },
- { pkg: "com.asus.inadvertentTouch", label: "InadvertentTouch", description: "Not needed 'Do not cover the top of the screen'", safety: "safe" },
- { pkg: "com.asus.key_status", label: "Key_status", description: "KeyStatusTool KeyStatusTool? All of this code means nothing.", safety: "safe" },
- { pkg: "com.asus.launcher", label: "Launcher", description: "ASUS Launcher Contains Google Firebase Analytics.", safety: "caution" },
- { pkg: "com.asus.livedemoservice", label: "Livedemoservice", description: "Demo Mode Enables retail demonstration mode. it's not a feature for normal users.", safety: "safe" },
- { pkg: "com.asus.lockscreen2", label: "Lockscreen2", description: "Lockscreen It should be important for lockscreen.", safety: "caution" },
- { pkg: "com.asus.loguploader", label: "Loguploader", description: "Log Tool Captured logs, Generate Log, Report Log.", safety: "safe" },
- { pkg: "com.asus.loguploaderproxy", label: "Loguploaderproxy", description: "Bug Reporter Proxy Logs without activity. Not needed another logs from loguploader.", safety: "safe" },
- { pkg: "com.asus.mlmodel", label: "Mlmodel", description: "Unused frameworks? AI optimization? Resources have vision_model and something encrypted. This app is large (338MB).", safety: "caution" },
- { pkg: "com.asus.mobilemanager", label: "Mobilemanager", description: "Mobile Manager Not sure to keep it or not. https://play.google.com/store/apps/details?id=com.asus.mobilemanager", safety: "caution" },
- { pkg: "com.asus.mobilemanagerservice", label: "Mobilemanagerservice", description: "Mobile Manager Service Looks like a unused framework, but not sure.", safety: "caution" },
- { pkg: "com.asus.nextapp", label: "Nextapp", description: "NextApp Unused frameworks? It has something to training AI? everything is encrypted.", safety: "caution" },
- { pkg: "com.asus.nextappcore", label: "Nextappcore", description: "NextAppCore Useless frameworks? It has something to training AI? everything is encrypted.", safety: "caution" },
- { pkg: "com.asus.openbeta2", label: "Openbeta2", description: "OpenBeta2 Beta program server that collects a lot of data.", safety: "safe" },
- { pkg: "com.asus.powersaver", label: "Powersaver", description: "Power Master It's for power-saving and may be important. Important app to powersaving.", safety: "keep" },
- { pkg: "com.asus.sarprotection", label: "Sarprotection", description: "SAR Protection Security thing.", safety: "safe" },
- { pkg: "com.asus.screenrecorder", label: "Screenrecorder", description: "Screen recorder App for screen recording.", safety: "caution" },
- { pkg: "com.asus.setupwizard", label: "Setupwizard", description: "Setup Wizard It's needed only for first-boot setup.", safety: "safe" },
- { pkg: "com.asus.smartcover", label: "Smartcover", description: "SmartCover Used for smart features.", safety: "safe" },
- { pkg: "com.asus.smartkey", label: "Smartkey", description: "Smart key Used for smart features.", safety: "safe" },
- { pkg: "com.asus.smartreading", label: "Smartreading", description: "Smart Reading It's app for smart reading", safety: "safe" },
- { pkg: "com.asus.soundrecorder", label: "Soundrecorder", description: "ASUS Sound recorder (https://play.google.com/store/apps/details?id=com.asus.soundrecorder) Connects to Google Analytics and some Asus servers, which is a bit sketchy for a sound recording app.. https://beta.pithus.org/report/f4cf38e1c35a04c3579fa198d2abd3ef1ff7be79633d6d3f2bc69c8a69164e1d", safety: "safe" },
- { pkg: "com.asus.splendid", label: "Splendid", description: "Asus Splendid Optional app for adjust your screen for your own viewing pleasure. https://play.google.com/store/apps/details?id=com.asus.splendid", safety: "safe" },
- { pkg: "com.asus.stitchimage.service", label: "Service", description: "Stitch image It's for the stock gallery app.", safety: "safe" },
- { pkg: "com.asus.sysmonitor", label: "Sysmonitor", description: "Device Health Device Health? It collects your data.", safety: "safe" },
- { pkg: "com.asus.system.api", label: "Api", description: "AsusBoost It's probably an important app. It has booster services and memory cleaner service.", safety: "caution" },
- { pkg: "com.asus.systemcolor", label: "Systemcolor", description: "System color scheme Needed for changing wallpapers?", safety: "caution" },
- { pkg: "com.asus.taskwidget", label: "Taskwidget", description: "ASUS Task Manager widget Task manager widget to System optimization", safety: "safe" },
- { pkg: "com.asus.teleserv.overlay.odm", label: "Odm", description: "overlay to default config ims.", safety: "caution" },
- { pkg: "com.asus.theme.color.asusui", label: "Asusui", description: "Theme AsusUI Stock System Theme System may not work after removing it.", safety: "keep" },
- { pkg: "com.asus.theme.color.rog", label: "Rog", description: "Rog Theme Stock System Theme System may not work after removing it.", safety: "keep" },
- { pkg: "com.asus.themeservice", label: "Themeservice", description: "Needed for change theme apps?", safety: "caution" },
- { pkg: "com.asus.tips", label: "Tips", description: "Tips Tips for smart features and more.", safety: "safe" },
- { pkg: "com.asus.twinapps", label: "Twinapps", description: "Twin Apps for duplicate apps.", safety: "safe" },
- { pkg: "com.asus.twinappsservice", label: "Twinappsservice", description: "Twin Apps Service Needed for Twin Apps for duplicate apps.", safety: "safe" },
- { pkg: "com.asus.userfeedback", label: "Userfeedback", description: "ZenUI Help (https://play.google.com/store/apps/details?id=com.asus.userfeedback) Customer service app that provides FAQs, Mobile care service, user feedback, and public forums. Lots of telemetry (insecure on top of that): https://beta.pithus.org/report/e80a1fa70adc097fc9817720b5c8c81cfd156a76e6d062759b2bc3d6937a97e7", safety: "safe" },
- { pkg: "com.asus.visualmaster", label: "Visualmaster", description: "Tru2Life it's app for color modes.", safety: "caution" },
- { pkg: "com.asus.weathertime", label: "Weathertime", description: "ASUS Weather it's for weather. Have Firebase Analytics.", safety: "safe" },
- { pkg: "com.asus.wifi.resources.overlay", label: "Overlay", description: "overlay to wifi configs better dont risk. Important configs to WiFi.", safety: "keep" },
- { pkg: "com.asus.zenmotion", label: "Zenmotion", description: "Gestures Needed for Gestures.", safety: "safe" },
+ { pkg: "com.asus.calculator", label: "Calculator", description: "Calculator - unit converter (https://play.google.com/store/apps/details?id=com.asus.calculator)", safety: "safe" },
+ { pkg: "com.asus.ia.asusapp", label: "Asusapp", description: "My Asus (https://play.google.com/store/apps/details?id=com.asus.ia.asusapp)", safety: "safe" },
+ { pkg: "com.asus.soundrecorder", label: "Soundrecorder", description: "ASUS Sound recorder (https://play.google.com/store/apps/details?id=com.asus.soundrecorder)", safety: "safe" },
+ { pkg: "com.asus.easylauncher", label: "Easylauncher", description: "Asus Easy Mode (https://play.google.com/store/apps/details?id=com.asus.easylauncher)", safety: "safe" },
+ { pkg: "com.asus.userfeedback", label: "Userfeedback", description: "ZenUI Help (https://play.google.com/store/apps/details?id=com.asus.userfeedback)", safety: "safe" },
],
},
{
name: "Carriers",
packages: [
- { pkg: "ca.bell.selfserve.mybellmobile", label: "Mybellmobile", description: "Bell's 'award winning' (no source) app for managing your Bell account and services. Useless, especially if you don't use Bell. (https://play.google.com/store/apps/details?id=ca.bell.selfserve.mybellmobile). Note that Bell violates section F.1 of the Canadian Wireless Code by selling locked devices. If you use Bell, switch carriers if possible! Don't support lawbreaking companies.", safety: "safe" },
- { pkg: "ca.bell.wt.android.tunesappswidget", label: "Tunesappswidget", description: "App Widget Developped by Bell Canada, it is a home screen widget which shows advertisements, promotions, news, sports & entertainment. https://play.google.com/store/apps/details?id=ca.bell.wt.android.tunesappswidget", safety: "safe" },
- { pkg: "com.LogiaGroup.LogiaDeck", label: "LogiaDeck", description: "Mobile Services Manager Seems to be a spyware. Good explanation from someone who worked for carrier : https://www.reddit.com/r/lgv20/comments/6u0wnf/what_is_mobile_services_manager_did_i_catch_a/", safety: "safe" },
- { pkg: "com.Rogers.MyRogersTab", label: "MyRogersTab", description: "Appears to be the tablet version of MyRogers (https://play.google.com/store/apps/details?id=com.fivemobile.myaccount), an app to manage your account with Canadian carrier Rogers.", safety: "safe" },
- { pkg: "com.aetherpal.attdh.se", label: "Se", description: "Device Help for AT&T Samsung device Developed by Aetherpal, a company which sells smart remote controls tools (https://en.wikipedia.org/wiki/AetherPal) I guess this app is used for tech support.", safety: "safe" },
- { pkg: "com.aetherpal.attdh.zte", label: "Zte", description: "Device Help for AT&T ZTE devices. Developed by Aetherpal, a company which sells smart remote controls tools (https://en.wikipedia.org/wiki/AetherPal) I guess this app is used for tech support.", safety: "safe" },
- { pkg: "com.altice.android.myapps", label: "Myapps", description: "MyApps it's probably for install apps but it's useless.", safety: "safe" },
- { pkg: "com.americanexpress.plenti", label: "Plenti", description: "Plenti Get points and promos with your American Express card", safety: "safe" },
- { pkg: "com.android.partnerbrowsercustomizations.tmobile", label: "Tmobile", description: "The proprietary application of the mobile operator T-Mobile, presumably displays ads, is responsible for the operation of some of the operator's settings", safety: "safe" },
- { pkg: "com.android.provision.carrieroverlay.kddi", label: "Kddi", description: "Useless Japanese overlay app.", safety: "caution" },
- { pkg: "com.android.sprint.hiddenmenuapp", label: "Hiddenmenuapp", description: "Lets you access hidden features tests/settings (you need to type a special code in the dialer) https://bestcellular.com/dial-codes/", safety: "safe" },
- { pkg: "com.asurion.android.mobilerecovery.att", label: "Att", description: "AT&T Protect Plus (discontinued. Replaced by AT&T ProTech : com.asurion.android.protech.att) Help and support app. Lets you call or chat with a live U.S.-based AT&T ProTech support expert Note : This app is developed by Asurion, a US company whose business is to sell insurances. All US carriers use Asurion for the phone insurances.", safety: "safe" },
- { pkg: "com.asurion.android.mobilerecovery.sprint", label: "Sprint", description: "Sprint Protect Support app (see com.asurion.android.protech.att)", safety: "safe" },
- { pkg: "com.asurion.android.mobilerecovery.sprint.vpl", label: "Vpl", description: "Sprint Protect Support app (see com.asurion.android.protech.att)", safety: "safe" },
- { pkg: "com.asurion.android.protech.att", label: "Att", description: "AT&T ProTech (https://play.google.com/store/apps/details?id=com.asurion.android.protech.att) Help and support app. Lets you call or chat with a live U.S.-based AT&T ProTech support\"expert\". Note : This app is developed by Asurion, a US company whose business is to sell insurances. All US carriers use Asurion for the phone insurances.", safety: "safe" },
- { pkg: "com.asurion.android.verizon.vms", label: "Vms", description: "Verizon Digital Secure (https://play.google.com/store/apps/details?id=com.asurion.android.verizon.vms) Note : This app is developed by Asurion, a US company whose business is to sell insurances. All US carriers use Asurion for the phone insurances.", safety: "safe" },
- { pkg: "com.asurion.home.sprint", label: "Sprint", description: "Sprint Protect Support app (see com.asurion.android.protech.att) Sprint Complete (https://play.google.com/store/apps/details?id=com.asurion.home.sprint) Lets you call or chat with live tech experts ! Maybe you will find the love of your life ! Note : See note above.", safety: "safe" },
- { pkg: "com.asurion.home.sprint.vpl", label: "Vpl", description: "Tech Expert (for VPL devices/employees) ? Now\"Sprint Complete\" (see below). Note : This app is developed by Asurion, a US company whose business is to sell insurances. All US carriers use Asurion for the phone insurances.", safety: "safe" },
- { pkg: "com.att.android.attsmartwifi", label: "Attsmartwifi", description: "AT&T Smart Wi-Fi (https://play.google.com/store/apps/details?id=com.att.android.attsmartwifi) Finds and auto-connects to available hotspots to minimize cellular data consumption. Auto-connects is not a good idea. Worth reading : https://www.europol.europa.eu/activities-services/public-awareness-and-prevention-guides/risks-of-using-public-wi-fi https://www.eff.org/deeplinks/2020/01/why-public-wi-fi-lot-safer-you-think You are ok if you go on HTTPS websites. Use a VPN if you want to hide the domain names you visit, avoid usage restriction (no P2P, blacklisted websites...) and encrypt HTTP traffic. ==> https://thatoneprivacysite.net/choosing-the-best-vpn-for-you/", safety: "safe" },
- { pkg: "com.att.callprotect", label: "Callprotect", description: "AT&T Call Protect (https://play.google.com/store/apps/details?id=com.att.callprotect) Spam call blocking app provided by Hiya NOTE : You should never trust spam blocking apps (https://itmunch.com/robocall-caught-sending-customers-confidential-data-without-consent/)", safety: "safe" },
- { pkg: "com.att.csoiam.mobilekey", label: "Mobilekey", description: "AT&T Sign in Helper (https://play.google.com/store/apps/details?id=com.att.csoiam.mobilekey) Allows AT&T applications to securely authenticate on Android devices", safety: "safe" },
- { pkg: "com.att.deviceunlock", label: "Deviceunlock", description: "Device Unlock Useless app from AT&T. it's only for unlock device.", safety: "safe" },
- { pkg: "com.att.dh", label: "Dh", description: "Device Help (https://play.google.com/store/apps/details?id=com.att.dh) Troubleshooting app.", safety: "safe" },
- { pkg: "com.att.dtv.shaderemote", label: "Shaderemote", description: "DIRECTV Remote App (https://play.google.com/store/apps/details?id=com.att.dtv.shaderemote) Lets you control DIRECTV HD receivers in your home that are connected to Internet, from your phone. FYI : DIRECTV is a subsidiary of AT&T Worth reading : https://en.wikipedia.org/wiki/DirecTV#Consumer_protection_lawsuits_and_violations", safety: "safe" },
- { pkg: "com.att.iqi", label: "Iqi", description: "Carrier IQ / Device Health Gathers, stores and forwards diagnostic measurements on its behalf (see https://en.wikipedia.org/wiki/Carrier_IQ) Great ! A rootkit : https://en.wikipedia.org/wiki/Carrier_IQ#Rootkit_discovery_and_media_attention", safety: "safe" },
- { pkg: "com.att.mobile.android.vvm", label: "Vvm", description: "AT&T Visual Voicemail (https://play.google.com/store/apps/details?id=com.att.mobile.android.vvm) Lets you manage your voicemail directly from the app without the need to dial into your mailbox.", safety: "safe" },
- { pkg: "com.att.mobilesecurity", label: "Mobilesecurity", description: "AT&T Mobile Security (https://play.google.com/store/apps/details?id=com.att.mobilesecurity) AT&T android antivirus.", safety: "safe" },
- { pkg: "com.att.mobiletransfer", label: "Mobiletransfer", description: "AT&T Mobile Transfer Lets you transfert user data from an older AT&T phone to a new one.", safety: "safe" },
- { pkg: "com.att.myWireless", label: "MyWireless", description: "My AT&T (https://play.google.com/store/apps/details?id=com.att.myWireless) Lets you manage your AT&T account.", safety: "safe" },
- { pkg: "com.att.personalcloud", label: "Personalcloud", description: "AT&T Personal Cloud (https://play.google.com/store/apps/details?id=com.att.personalcloud) Note: it's a paid extra feature and data are obviously not E2EE (i.e AT&T can access them) Don't keep this app. It's a privacy nightmare and was poorly coded: https://beta.pithus.org/report/bc54b5e2446ace90d9f992278d0ec320befe4983a76cb4fdcf47e565366e67b6", safety: "safe" },
- { pkg: "com.att.tv", label: "Tv", description: "AT&T TV (https://play.google.com/store/apps/details?id=com.att.tv) Lets you Stream TV live and on demand from your phone.", safety: "safe" },
- { pkg: "com.att.tv.watchtv", label: "Watchtv", description: "AT&T WatchTV (https://play.google.com/store/apps/details?id=com.att.tv.watchtv) Lets you stream TV live and VOD form your phone. No it's not the same thing than AT&T TV. Yes it's a mess. Differences with AT&T TV : https://www.cordcuttersnews.com/att-tv-vs-att-tv-now-whats-the-difference/", safety: "safe" },
- { pkg: "com.aura.jet.att", label: "Att", description: "AT&T Hub App from AT&T. Installs apps on oobe and its maded by advertising company 'ironSource'.", safety: "safe" },
- { pkg: "com.aura.oobe.att", label: "Att", description: "AppCloud App from AT&T. Installs apps on oobe and its maded by advertising company 'ironSource'.", safety: "safe" },
- { pkg: "com.aura.oobe.deutsche", label: "Deutsche", description: "Provides an Out Of The Box experience. You can disable it via Settings > Apps > Three dots > Show system > App selector. It has a T-Mobile icon", safety: "safe" },
- { pkg: "com.aura.oobe.kddi", label: "Kddi", description: "AppCloud Seems to exist to try to get you to download games and another testimonial.", safety: "safe" },
- { pkg: "com.aura.oobe.motorola", label: "Motorola", description: "MotoApps It's something to install apps, but it's an advertising company.", safety: "safe" },
- { pkg: "com.aura.oobe.ntt", label: "Ntt", description: "Aura from Unity Persistent notification until you click on it and agree to install games. Sort of game cloud pre-installed in some docomo carrier phones Safe to remove.", safety: "safe" },
- { pkg: "com.aura.oobe.rakuten", label: "Rakuten", description: "Aura from Unity Persistent notification until you click on it and agree to install games. Sort of game cloud pre-installed in some Rakuten Mobile carrier phones Safe to remove.", safety: "safe" },
- { pkg: "com.aura.oobe.samsung", label: "Samsung", description: "AppCloud It offers the\"Aura Out-Of-the-Box Experience\" (OOBE) It is some kind of post-install recommended apps setup from the carrier. Asks for your age and gender and then recommends you to install popular apps. Developed by IronSource, an Israeli advertising company (now owned by the American company Unity). https://en.wikipedia.org/wiki/IronSource https://aura.ironsrc.com/tools/drive-app-downloads/ https://arxiv.org/pdf/2010.10088.pdf Has way too many permissions. See https://github.com/0x192/universal-android-debloater/issues/278 https://docs.samsungknox.com/admin/knox-platform-for-enterprise/knox-service-plugin/kbas/kba-954-unable-to-access-home-screen/ https://smex.org/invasive-israeli-software-is-harvesting-data-from-samsung-users-in-wana/ https://investors.unity.com/news/news-details/2022/Unity-Announces-Merger-Agreement-with-ironSource/default.aspx https://beta.pithus.org/report/9f8ff7db0924711be9a8a238beafecde84f42f3f249dfd9acfbe6cab390994b5 https://www.virustotal.com/gui/file/9f8ff7db0924711be9a8a238beafecde84f42f3f249dfd9acfbe6cab390994b5", safety: "safe" },
- { pkg: "com.aura.oobe.samsung.gl", label: "Gl", description: "AppCloud It offers the\"Aura Out-Of-the-Box Experience\" (OOBE) It is some kind of post-install recommended apps setup from the carrier. Asks for your age and gender and then recommends you to install popular apps. Developed by IronSource, an Israeli advertising company (now owned by the American company Unity). https://en.wikipedia.org/wiki/IronSource https://aura.ironsrc.com/tools/drive-app-downloads/ https://arxiv.org/pdf/2010.10088.pdf Has way too many permissions. See https://github.com/0x192/universal-android-debloater/issues/278 https://docs.samsungknox.com/admin/knox-platform-for-enterprise/knox-service-plugin/kbas/kba-954-unable-to-access-home-screen/ https://smex.org/invasive-israeli-software-is-harvesting-data-from-samsung-users-in-wana/ https://investors.unity.com/news/news-details/2022/Unity-Announces-Merger-Agreement-with-ironSource/default.aspx", safety: "safe" },
- { pkg: "com.aura.oobe.softbank", label: "Softbank", description: "Aura from Unity Persistent notification until you click on it and agree to install games. Sort of game cloud pre-installed in some SoftBank carrier phones Safe to remove.", safety: "safe" },
- { pkg: "com.aura.oobe.vodafone", label: "Vodafone", description: "Vodafone AppBox It is some kind of post-install recommended apps setup from the carrier. Asks for your age and gender and then recommends you to install popular apps. Developped by IronSource, an Israeli advertising company.", safety: "safe" },
- { pkg: "com.bc360.android.service", label: "Service", description: "Verizon Adaptive Sound Provides Voice Enhance, but according to the carrier. Does the same thing as the 'com.bc360.control' app.", safety: "safe" },
- { pkg: "com.bc360.control", label: "Control", description: "Verizon Adaptive Sound Provides Voice Enhance, but according to the carrier.", safety: "safe" },
- { pkg: "com.bell.ptt", label: "Ptt", description: "Bell Push to Talk app. Apparently the 'most advanced carrier-grade Push-to-talk coomunicates technology available today.' (doubt). Realistically, no one is using this, safe to remove. https://play.google.com/store/apps/details?id=com.bell.ptt", safety: "safe" },
- { pkg: "com.claroColombia.contenedor", label: "Contenedor", description: "Claro It's something to install apps, but it's an advertising company.", safety: "safe" },
- { pkg: "com.communitake.remotecontrolservice", label: "Remotecontrolservice", description: "Remote management app installed by Bell on some devices. Has access to almost every permission so probably best to remove this.", safety: "safe" },
- { pkg: "com.cricketwireless.minus", label: "Minus", description: "Cricket partner tab? better remove it. It probably have news or partner customization to chrome.", safety: "safe" },
- { pkg: "com.customermobile.preload.vzw", label: "Vzw", description: "Verizon Store/Retail Demo Mode This application requires a lot of permissions and downloads a remote configuration file from an AWS-hosted domain over plain-text HTTP. This leaves the overall device and configuration vulnerable. https://thehackernews.com/2024/08/google-pixel-devices-shipped-with.html", safety: "safe" },
- { pkg: "com.digitalturbine.android.apps.news.att", label: "Att", description: "Essentials This application results in fullscreen advertisements upon unlocking the device. https://play.google.com/store/apps/details?id=com.digitalturbine.android.apps.news.att&hl=en_US https://www.virustotal.com/gui/file/a7625586ea2d21efcb76b528c5ad66c9cf77e74a52029cabcd415deff5b5107d/details https://reports.exodus-privacy.eu.org/en/reports/com.digitalturbine.android.apps.news.att/latest/", safety: "safe" },
- { pkg: "com.directv.promo.shade", label: "Shade", description: "DIRECTV Remote Official app from DIRECTV (subsidiary of AT&T). With the DIRECTV Remote for AT&T Samsung devices, control of your favorite DIRECTV shows is just a swipe away. Swipe down from the status bar at the top of your screen to automatically connect and control your DIRECTV receivers, it's that simple.", safety: "safe" },
- { pkg: "com.dot.app.sancharsaathi", label: "Sancharsaathi", description: "Spyware billed as citizen-centric safety tool that is required by Goverment of India be pre-installed. https://www.reuters.com/sustainability/boards-policy-regulation/what-is-indias-politically-contentious-sanchar-saathi-cyber-safety-app-2025-12-02", safety: "safe" },
- { pkg: "com.dti.amx", label: "Amx", description: "it's used to choose app install? A lot trackers, permissions. Useless.", safety: "safe" },
- { pkg: "com.dti.att", label: "Att", description: "AT&T App Select I guess it lets you choose AT&T apps to install. It has a LOT of permissions : https://knowledge.protektoid.com/apps/com.dti.att/7a36d4f5f00bae044566221400719c75ea2f4f33bc2578a7f8210f36d718a8d6 Someone knows what\"dti\" is/means ?", safety: "safe" },
- { pkg: "com.dti.bouyguestelecom", label: "Bouyguestelecom", description: "Bouygues AppCloud it's probably for install apps but it's useless and have ads and a lot permissions.", safety: "safe" },
- { pkg: "com.dti.cricket", label: "Cricket", description: "it's app for installing recommended apps? it's only used on first-boot setup and it's useless.", safety: "safe" },
- { pkg: "com.dti.motorola", label: "Motorola", description: "Mobile Services Manager it's something for install apps but it's useless and a lot permissions.", safety: "safe" },
- { pkg: "com.dti.samsung", label: "Samsung", description: "Mobile Services Manager Digital Turbine app, pre-install some apps/games to your phone and its made by advertising company.", safety: "safe" },
- { pkg: "com.dti.telefonica", label: "Telefonica", description: "O2 & Telefonica carrier bloat. Runs in background, updates, maintains and installs Telefonica carrier apps and services, and is totally useless if you don't use this carrier. O2 and Telefonica are only available in Latin America, Brazil, Spain, Germany and UK, but it's often preinstalled on EU, Global and possibly other ROMs, as countries where this carrier is present use these ROMs. Safe to delete. Presumably works together with com.xiaomi.entitlement.o2. It's also a package safe to remove if you don't use the carriers mentioned earlier.", safety: "safe" },
- { pkg: "com.dti.tim", label: "Tim", description: "Mobile Service Manager It's a system app that can't be opened but keeps running in the background. It can install/uninstall apps without notifying you, access internet, run at the boot of the system, kill background processes, ads and other permissions. it's only bloatware, OTA updates work the same without it. Uninstalling didn't give any negative side-effects.", safety: "safe" },
- { pkg: "com.dti.tracfone", label: "Tracfone", description: "Installs sponsored apps automatically on Tracfone and affiliated carriers (Straight Talk, Total Wireless, etc)", safety: "safe" },
- { pkg: "com.fivemobile.myaccount", label: "Myaccount", description: "App for managing your Rogers account. Rogers violates section F.1 of Canada's Wireless Code, they refuse to unlock devices sold before December 1, 2017, even if it doesn't affect you, don't support practices like this! Switch to another carrier (such as Telus) if possible.", safety: "safe" },
- { pkg: "com.google.omadm.trigger", label: "Trigger", description: "OemDmTrigger OMA Device Managment Verizon.", safety: "safe" },
- { pkg: "com.gsma.rcs", label: "Rcs", description: "RCS Hidden RCS Messaging? or only Frameworks? Feature code:184501 Carrier name: GSM Association.", safety: "caution" },
- { pkg: "com.hyperlync.Sprint.Backup", label: "Backup", description: "Sprint Backup\" (https://play.google.com/store/apps/details?id=com.hyperlync.Sprint.Backup) Lets you backup your phone’s content to your Sprint Backup account. FYI : This app is developped by Hyperlync Technologies an Israel-based company which provide cyber-security solutions. It is now owned by Edition Ltd a big Singapour based company (https://www.reuters.com/companies/EDITol.SI)", safety: "safe" },
- { pkg: "com.hyperlync.Sprint.CloudBinder", label: "CloudBinder", description: "Sprint Cloud Binder (https://play.google.com/store/apps/details?id=com.hyperlync.Sprint.CloudBinder) Hub for all you cloud accounts. See package above.", safety: "safe" },
- { pkg: "com.inmobi.installer", label: "Installer", description: "it's installer advertising company app.", safety: "safe" },
- { pkg: "com.ironsource.appcloud.oobe.hutchison", label: "Hutchison", description: "AppCloud (discontinued) from ironSource, an advertising company. Worth reading: https://en.wikipedia.org/wiki/IronSource", safety: "safe" },
- { pkg: "com.jrd.verizonuriintentservice", label: "Verizonuriintentservice", description: "Package: com.jrd.verizonuriintentservice", safety: "caution" },
- { pkg: "com.kddi.android.cmail", label: "Cmail", description: "+Message A Japanese messaging and e-mail app. https://play.google.com/store/apps/details?id=com.kddi.android.cmail", safety: "safe" },
- { pkg: "com.kmsjp", label: "Kmsjp", description: "Kaspersky Anti-virus pre-installed on some Huawei phone's in Japanese.", safety: "safe" },
- { pkg: "com.kuackmedia.orange", label: "Orange", description: "Altice Music It's a music application that allows you to stream music, but it comes pre-installed. https://play.google.com/store/apps/details?id=com.kuackmedia.orange", safety: "safe" },
- { pkg: "com.lge.SprintHiddenMenu", label: "SprintHiddenMenu", description: "Hidden diagnostic menu for Sprint LG devices.", safety: "safe" },
- { pkg: "com.locationlabs.cni.att", label: "Att", description: "AT&T Smart Limits Parental Control tool. https://m.att.com/shopmobile/wireless/features/smart-limits.html", safety: "safe" },
- { pkg: "com.locationlabs.finder.sprint", label: "Sprint", description: "Sprint Family Locator (https://play.google.com/store/apps/details?id=com.locationlabs.finder.sprint) Lets you locate any phone registered under the Sprint family plan Location labs is owned by AGV which is owned by Avast. You shouldn't trust Avast. FYI : https://www.google.com/search?hl=en&q=avast+privacy+nightmare https://www.vice.com/en_us/article/qjdkq7/avast-antivirus-sells-user-browsing-data-investigation https://www.pcmag.com/news/the-cost-of-avasts-free-antivirus-companies-can-spy-on-your-clicks", safety: "safe" },
- { pkg: "com.locationlabs.finder.sprint.vpl", label: "Vpl", description: "Sprint Family Locator (https://play.google.com/store/apps/details?id=com.locationlabs.finder.sprint) Lets you locate any phone registered under the Sprint family plan Location labs is owned by AGV which is owned by Avast. You shouldn't trust Avast. FYI : https://www.google.com/search?hl=en&q=avast+privacy+nightmare https://www.vice.com/en_us/article/qjdkq7/avast-antivirus-sells-user-browsing-data-investigation https://www.pcmag.com/news/the-cost-of-avasts-free-antivirus-companies-can-spy-on-your-clicks", safety: "safe" },
- { pkg: "com.matchboxmobile.wisp", label: "Wisp", description: "AT&T Hot Spots Run in background. Automatically connects you to a free AT&T wifi hotspot at one of their participating partner locations such as Starbucks.", safety: "safe" },
- { pkg: "com.miui.carrierinstructions", label: "Carrierinstructions", description: "Manual Shortcut to the carrier's online manual.", safety: "safe" },
- { pkg: "com.mobitv.client.sprinttvng", label: "Sprinttvng", description: "Sprint TV & Movies provided by mobitv (https://en.wikipedia.org/wiki/MobiTV) Lets you watch live TV and VOD.", safety: "safe" },
- { pkg: "com.mobitv.client.tmobiletvhd", label: "Tmobiletvhd", description: "T-Mobile TV (discontinued, replaced by nl.tmobiletv.vinson) provided by mobitv (https://en.wikipedia.org/wiki/MobiTV) https://play.google.com/store/apps/details?id=nl.tmobiletv.vinson&hl=en", safety: "safe" },
- { pkg: "com.mobolize.sprint.securewifi", label: "Securewifi", description: "Secure Wifi (https://play.google.com/store/apps/details?id=com.mobolize.sprint.securewifi) Sprint VPN app provided by Mobolize. You need to pay for using it. You'd better use a reliable third-party VPN if you really need to use one. This one runs in background all time and every time it sees a\"unsecured network\" it will popup to encourage you to pay for this VPN. Best ressources I know for choosing a VPN: https://www.privacytools.io/providers/vpn/", safety: "safe" },
- { pkg: "com.motorola.att.phone.extensions", label: "Extensions", description: "AT&T Phone Extension Provides access to AT&T extensions in your dialer. https://asecare.att.com/tutorials/adding-and-deleting-an-extension-on-your-officehand-mobile-app-2990/?product=AT&T%20Office@Hand", safety: "safe" },
- { pkg: "com.motorola.attvowifi", label: "Attvowifi", description: "AT&T Wifi-calling https://www.att.com/shop/wireless/features/wifi-calling.html", safety: "safe" },
- { pkg: "com.motorola.ltebroadcastservices_vzw", label: "Ltebroadcastservices_vzw", description: "LTE Broadcast services from Verizon. Allows your phone to receive broadcast message from Verizon?", safety: "safe" },
- { pkg: "com.motorola.mot5gmod", label: "Mot5gmod", description: "5G Moto Mod (https://play.google.com/store/apps/details?id=com.motorola.mot5gmod)", safety: "safe" },
- { pkg: "com.motorola.omadm.sprint", label: "Sprint", description: "Configuration of the device (including first time use), enabling and disabling features provided by carriers. I believe it's only useful if you want to use a Sprint service with a non branded phone (not sure at all) https://www.androidpolice.com/2015/03/10/android-5-1-includes-new-carrier-provisioning-api-allows-carriers-easier-methods-of-setting-up-services-on-devices-they-dont-control/ Displays annoying notifications if you unlocked your bootloader", safety: "safe" },
- { pkg: "com.motorola.omadm.usc", label: "Usc", description: "OMA Device Management for Verizon Handles configuration of the device (including first time use), enabling and disabling features provided by carriers. https://en.wikipedia.org/wiki/OMA_Device_Management I believe it's only useful if you want to use a Verizon service with a non branded phone (not sure at all) https://www.androidpolice.com/2015/03/10/android-5-1-includes-new-carrier-provisioning-api-allows-carriers-easier-methods-of-setting-up-services-on-devices-they-dont-control/ Displays annoying notifications if you unlocked your bootloader", safety: "safe" },
- { pkg: "com.motorola.omadm.vzw", label: "Vzw", description: "OMA Device Management for Verizon Handles configuration of the device (including first time use), enabling and disabling features provided by carriers. https://en.wikipedia.org/wiki/OMA_Device_Management I believe it's only useful if you want to use a Verizon service with a non branded phone (not sure at all) https://www.androidpolice.com/2015/03/10/android-5-1-includes-new-carrier-provisioning-api-allows-carriers-easier-methods-of-setting-up-services-on-devices-they-dont-control/ Displays annoying notifications if you unlocked your bootloader", safety: "safe" },
- { pkg: "com.motorola.service.vzw.entitlement", label: "Entitlement", description: "Deleting this package whill disable Hotspot functionality if you're a Verizon client. What you can do is preventing the phone from notifying the carrier about when you use hotspot : https://android.stackexchange.com/questions/226580/how-is-verizon-suddenly-tracking-my-hot-spot-usage-on-android-and-how-do-i-disab", safety: "caution" },
- { pkg: "com.motorola.sprintwfc", label: "Sprintwfc", description: "Sprint Wifi Calling Provides wifi calling to Sprint customers.", safety: "safe" },
- { pkg: "com.motorola.visualvoicemail", label: "Visualvoicemail", description: "Verizon Visual Voicemail (https://play.google.com/store/apps/details?id=com.motorola.visualvoicemail) On non-Verizon phones it has a generic\"Voicemail\" name and icon, and doesn't seem to active.", safety: "caution" },
- { pkg: "com.motorola.vzw.cloudsetup", label: "Cloudsetup", description: "Cloud setup", safety: "safe" },
- { pkg: "com.motorola.vzw.loader", label: "Loader", description: "???? Doesn't seem to break anything once removed.", safety: "safe" },
- { pkg: "com.motorola.vzw.mot5gmod", label: "Mot5gmod", description: "5G Moto Mod (https://play.google.com/store/apps/details?id=com.motorola.mot5gmod)", safety: "safe" },
- { pkg: "com.motorola.vzw.phone.extensions", label: "Extensions", description: "Free HD wallpaper from verizon", safety: "safe" },
- { pkg: "com.motorola.vzw.provider", label: "Provider", description: "???? Doesn't seem to break anything once removed.", safety: "safe" },
- { pkg: "com.motricity.verizon.ssodownloadable", label: "Ssodownloadable", description: "Verizon Login by Motricity (now Voltari) Voltari provides relevance-driven mobile advertising, mobile marketing, mobile merchandising, and predictive analytics solutions. Needed for My Verizon. https://en.wikipedia.org/wiki/Voltari https://www.lightreading.com/motricity-holds-on-to-verizon-account/d/d-id/678478?", safety: "safe" },
- { pkg: "com.naviexpert.NaviExpert", label: "NaviExpert", description: "Navigation T-Mobile https://play.google.com/store/apps/details?id=com.naviexpert.NaviExpert", safety: "safe" },
- { pkg: "com.nextbit.app", label: "App", description: "docomo LIVE UX backup it's on some japanese phones", safety: "safe" },
- { pkg: "com.nhl.gcl.canada", label: "Canada", description: "Rogers NHL app. Just opens a 404 page in the web browser. Useless.", safety: "safe" },
- { pkg: "com.nim.rogers", label: "Rogers", description: "Texture, a digital magazine service created by Rogers Media. Discontinued in 2019.", safety: "safe" },
- { pkg: "com.nttdocomo.android.anmane2", label: "Anmane2", description: "Likely a placeholder for docomo's corporate MDM service. Empty package and disabled by default on consumer devices.", safety: "safe" },
- { pkg: "com.nttdocomo.android.anshinsecurity", label: "Anshinsecurity", description: "Anshin-security (https://www.docomo.ne.jp/service/anshin_security/) docomo's security suite providing virus scanning, spam call/email prevention and so on. Safe to remove, but you may want to check https://mydocomo.docomo.ne.jp for subscriptions. Frequently bundled with device insurance service.", safety: "safe" },
- { pkg: "com.nttdocomo.android.apnsw", label: "Apnsw", description: "APN switching control Resource-only stub. Safe to remove. May potentially cause tethering issues on legacy (pre-2016) models due to docomo's APN-switching requirements?", safety: "safe" },
- { pkg: "com.nttdocomo.android.applicationmanager", label: "Applicationmanager", description: "docomo Application Manager Manages installation and updates of docomo-specific app. Safe to remove if you don't use any docomo service. NOTE: After reinstall, reboot needed to launch in some cases.", safety: "caution", neededBy: ["com.nttdocomo.android.homezozo", "com.nttdocomo.android.dhome"] },
- { pkg: "com.nttdocomo.android.databackup", label: "Databackup", description: "Backup feature for application of docomo's service, mainly provides schedule/memo's cloud sync function.", safety: "safe", neededBy: ["com.nttdocomo.android.schedulememo"] },
- { pkg: "com.nttdocomo.android.devicehelp", label: "Devicehelp", description: "Recommended usage tips Intrusive. Provide \"helpful hints\" based on user activity, but behaving like adware by showing frequent pop-ups. Requires high-level permissions such as Accessibility and \"Draw over other apps\" (overlay) to monitor user actions. It's not enabled by default, but uninstalling recommended for a cleaner, more private experience.", safety: "safe" },
- { pkg: "com.nttdocomo.android.dhome", label: "Dhome", description: "Legacy docomo LIVE UX docomo's default home screen (launcher). Safe to remove ONLY IF another launcher is installed. Certain devices such as dtab may not have any other home screen apps preinstalled. docomo application manager (com.nttdocomo.android.applicationmanager) must be installed to use this.", safety: "caution", deps: ["com.nttdocomo.android.applicationmanager"] },
- { pkg: "com.nttdocomo.android.dmenu2", label: "Dmenu2", description: "d-menu Web page shortcut and notification receiver.", safety: "safe" },
- { pkg: "com.nttdocomo.android.docomoset", label: "Docomoset", description: "docomo service/cloud Settings Adds a \"docomo service/cloud\" entry to the system Settings app. Simple navigation screen providing entry points to docomo-specific app settings, such as d-account and docomo application manager. Essential for launching d-account settings. Safe to remove if you don't use any docomo service.", safety: "caution", neededBy: ["com.nttdocomo.android.idmanager"] },
- { pkg: "com.nttdocomo.android.homezozo", label: "Homezozo", description: "docomo LIVE UX docomo's default home screen (launcher). Safe to remove ONLY IF another launcher is installed. Certain devices such as dtab may not have any other home screen apps preinstalled. docomo application manager (com.nttdocomo.android.applicationmanager) must be installed to use this.", safety: "caution", deps: ["com.nttdocomo.android.applicationmanager"] },
- { pkg: "com.nttdocomo.android.iconcier_contents", label: "Iconcier_contents", description: "Diagnostics things only in this japanese app", safety: "safe" },
- { pkg: "com.nttdocomo.android.idmanager", label: "Idmanager", description: "d ACCOUNT Settings Account Settings for d-account, includes an authentication component for other docomo apps. Safe to remove if you don't use any docomo services, but ensure you check your login method as you may need this app for two-step authentication when logging in from other devices.", safety: "caution", deps: ["com.nttdocomo.android.docomoset"] },
- { pkg: "com.nttdocomo.android.initialization", label: "Initialization", description: "DOCOMO initialization OOBE (Initial setup) component for docomo devices. Safe to remove. Tips: Apps deleted here will be restored when you factory reset the device!", safety: "safe" },
- { pkg: "com.nttdocomo.android.mascot", label: "Mascot", description: "my daiz (https://www.docomo.ne.jp/service/mydaiz/) docomo's information (e.g. weather, news) app. Also displays a mascot (looks like tofu) on docomo LIVE UX. Requires lots of permissions.", safety: "safe" },
- { pkg: "com.nttdocomo.android.msg", label: "Msg", description: "+Message A messaging app using a carrier-customized RCS implementation by Softbank, au, and docomo. It adds LINE-like features to the standard SMS/RCS. Safe to remove, but recommended to have an alternative SMS app for OTPs. Google Messages is a simpler and more standard alternative.", safety: "safe" },
- { pkg: "com.nttdocomo.android.mymagazine", label: "Mymagazine", description: "SmartNews for docomo News app. Special version of SmartNews for docomo user.", safety: "safe" },
- { pkg: "com.nttdocomo.android.networkservice", label: "Networkservice", description: "Office Link Settings Provides \"Office Link\" service (docomo's enterprise internal line service). Typically accessed through the settings menu of the OEM Phone app. Safe to remove.", safety: "safe" },
- { pkg: "com.nttdocomo.android.pf.dcmippushaggregator", label: "Dcmippushaggregator", description: "A background platform service that manages docomo's proprietary IP push notification system. Safe to remove if you don't need to receive docomo's service notifications.", safety: "safe" },
- { pkg: "com.nttdocomo.android.remotelock", label: "Remotelock", description: "Omakase-lock (https://www.docomo.ne.jp/service/lock/) Remote device lock service. Allows docomo customer support to lock your device upon request. Safe to remove. Google's \"Find Hub\" are better-integrated alternatives including NFC (=FeliCa) remote lock. NOTE: To uninstall this, open settings > App permission > Special app access > Device admin apps and disable this app (May vary depending on your device). For FeliCa remote lock, a separate package (com.nttdocomo.android.felicaremotelock) is used.", safety: "safe", deps: ["com.nttdocomo.android.felicaremotelock"] },
- { pkg: "com.nttdocomo.android.rwpushcontroller", label: "Rwpushcontroller", description: "rwpushcontroller Another FeliCa Networks app, with japanese language Useless frameworks", safety: "safe" },
- { pkg: "com.nttdocomo.android.schedulememo", label: "Schedulememo", description: "Schedule & Memo 2 different apps in one package; docomo's schedule and memo apps.", safety: "safe" },
- { pkg: "com.nttdocomo.android.store", label: "Store", description: "d-Point Market Web page shortcut and notification receiver.", safety: "safe" },
- { pkg: "com.nttdocomo.android.wipe", label: "Wipe", description: "Remote Wipe (https://www.docomo.ne.jp/service/initialization/) Allows docomo customer support to wipe your device upon request. This does NOT clear data inside the FeliCa chip. Safe to remove. Google's \"Find Hub\" or oem provided services are better-integrated alternatives. NOTE: To uninstall this, open settings > App permission > Special app access > Device admin apps and disable this app (May vary depending on your device).", safety: "safe" },
- { pkg: "com.oem.euiccpartnerapp", label: "Euiccpartnerapp", description: "EuiccPartnerApp Needed for eSIM (eUICC)? I think it's useless.", safety: "safe" },
- { pkg: "com.orange.aura.oobe", label: "Oobe", description: "Orange Manual Selector Makes unnecessary notifications", safety: "safe" },
- { pkg: "com.orange.mail.fr", label: "Fr", description: "Mail Orange (https://play.google.com/store/apps/details?id=com.orange.mail.fr)", safety: "safe" },
- { pkg: "com.orange.miorange", label: "Miorange", description: "Lets you access to your Orange account", safety: "safe" },
- { pkg: "com.orange.mylivebox.fr", label: "Fr", description: "Ma Livebox (https://play.google.com/store/apps/details?id=com.orange.mylivebox.fr) Lets you manage your livebox from your phone.", safety: "safe" },
- { pkg: "com.orange.mysosh", label: "Mysosh", description: "My Sosh (https://play.google.com/store/apps/details?id=com.orange.mysosh) Lets you access to your Sosh account", safety: "safe" },
- { pkg: "com.orange.orangeetmoi", label: "Orangeetmoi", description: "Orange Et Moi (https://play.google.com/store/apps/details?id=com.orange.orangeetmoi) Orange customer space", safety: "safe" },
- { pkg: "com.orange.owtv", label: "Owtv", description: "TV d'Orange (https://play.google.com/store/apps/details?id=com.orange.owtv) Lets you watch TV/VOD on your phone.", safety: "safe" },
- { pkg: "com.orange.tdd", label: "Tdd", description: "Transfert de données (https://play.google.com/store/apps/details?id=com.orange.tdd) Lets you transfer wirelessly: contacts, SMS, call log, calendar, photos, videos, audio files, etc., all from your old Android", safety: "safe" },
- { pkg: "com.orange.update", label: "Update", description: "Handles Orange apps updates.", safety: "safe" },
- { pkg: "com.orange.update.OrangeUpdateApplication", label: "OrangeUpdateApplication", description: "Obviously related to update...", safety: "safe" },
- { pkg: "com.orange.vvm", label: "Vvm", description: "Messagerie vocale visuelle (https://play.google.com/store/apps/details?id=com.orange.vvm) Lets you manage your voicemail with an app.", safety: "safe" },
- { pkg: "com.orange.wifiorange", label: "Wifiorange", description: "Mon Réseau (https://play.google.com/store/apps/details?id=com.orange.wifiorange) Lets you measure your speed connection and find better Orange wifi hotspots. Informs you also about near network incidents.", safety: "safe" },
- { pkg: "com.ptc.osp.gnc", label: "Gnc", description: "Playing the Waiting Game by T-Mobile. This app is maded for listening to music.", safety: "safe" },
- { pkg: "com.quickplay.android.bellmediaplayer", label: "Bellmediaplayer", description: "App for watching your Bell Fibe TV on the go. Useless, especially if you don't use Bell. (https://play.google.com/store/apps/details?id=com.quickplay.android.bellmediaplayer). Note that Bell violates section F.1 of the Canadian Wireless Code by selling locked devices. If you use Bell, switch carriers if possible! Don't support lawbreaking companies.", safety: "safe" },
- { pkg: "com.rogers.npd.appzone", label: "Appzone", description: "An app store just for Rogers bloat. Why the hell would you want this?", safety: "safe" },
- { pkg: "com.samsung.attvvm", label: "Attvvm", description: "Visual Voicemail Simple GUI for voicemail", safety: "safe" },
- { pkg: "com.samsung.huxextension", label: "Huxextension", description: "Hux Extension Verizon activation, registration", safety: "safe" },
- { pkg: "com.samsung.slsi.telephony.oem.oemrilhookservice", label: "Oemrilhookservice", description: "Part of the Samsung cellular modem infrastructure used by the OS to provide cellular support.", safety: "caution" },
- { pkg: "com.samsung.slsi.telephony.oemril", label: "Oemril", description: "Part of the Samsung cellular modem infrastructure used by the OS to provide cellular support.", safety: "caution" },
- { pkg: "com.samsung.sprint.chameleon", label: "Chameleon", description: "Chameleon service which is a service designed to store sprint-specific properties (customizes some apps).", safety: "safe" },
- { pkg: "com.sec.android.app.ewidgetatt", label: "Ewidgetatt", description: "Entertainment Widget AT&T Widget for OneUI", safety: "safe" },
- { pkg: "com.sec.android.app.tfstatus", label: "Tfstatus", description: "Tracfone app, function unknown", safety: "caution" },
- { pkg: "com.sec.android.app.tfunlock", label: "Tfunlock", description: "The unlocking interface and process when unlocking a Tracfone-based phone. Probably needed for unlocking your carrier status. probably needed if you want to unlock your phone from a Tracfone service.", safety: "caution" },
- { pkg: "com.sec.omadm", label: "Omadm", description: "OMADM Open Mobile Alliance Device Management. A protocol for management of mobile devices. https://en.wikipedia.org/wiki/OMA_Device_Management", safety: "caution" },
- { pkg: "com.sec.omadmspr.syncmlphoneif", label: "Syncmlphoneif", description: "OMADM Phone Interface? OMADM = Open Mobile Alliance Device Management. A protocol for management of mobile devices. https://en.wikipedia.org/wiki/OMA_Device_Management", safety: "caution" },
- { pkg: "com.sec.sprint.wfcstub", label: "Wfcstub", description: "Seems to be related to Wifi-Calling on Samsung phone.", safety: "safe" },
- { pkg: "com.securityandprivacy.android.verizon.vms", label: "Vms", description: "Digital Secure (https://play.google.com/store/apps/details?id=com.securityandprivacy.android.verizon.vms&hl=en) I don't know why this apps is released twice on the Play store under 2 different package name.", safety: "safe" },
- { pkg: "com.sfr.android.moncompte", label: "Moncompte", description: "SFR & Moi (https://play.google.com/store/apps/details?id=com.sfr.android.moncompte) Lets you manage your SFR account", safety: "safe" },
- { pkg: "com.sfr.android.sfrcloud", label: "Sfrcloud", description: "SFR Cloud (https://play.google.com/store/apps/details?id=com.sfr.android.sfrcloud) Cloud provided by SFR", safety: "safe" },
- { pkg: "com.sfr.android.sfrjeux", label: "Sfrjeux", description: "My Games it's not useful app for games and better uninstall it", safety: "safe" },
- { pkg: "com.sfr.android.sfrmail", label: "Sfrmail", description: "SFR Mail (https://play.google.com/store/apps/details?id=com.sfr.android.sfrmail)", safety: "safe" },
- { pkg: "com.sfr.android.sfrplay", label: "Sfrplay", description: "SFR Play (https://play.google.com/store/apps/details?id=com.sfr.android.sfrplay) VOD streaming from SFR.", safety: "safe" },
- { pkg: "com.sfr.android.vvm", label: "Vvm", description: "SFR Répondeur + (https://play.google.com/store/apps/details?id=com.sfr.android.vvm) Lets you use your voice mail and manage your inbox without dialing into your voicemail.", safety: "safe" },
- { pkg: "com.shannon.imsservice", label: "Imsservice", description: "Verizon IMS service.", safety: "caution" },
- { pkg: "com.shannon.rcsservice", label: "Rcsservice", description: "Verizon RCS service.", safety: "caution" },
- { pkg: "com.sprint.android.musicplus2033", label: "Musicplus2033", description: "Sprint Music Plus (https://play.google.com/store/apps/details?id=com.sprint.android.musicplus2033) Sprint’s official Music Store and player.", safety: "safe" },
- { pkg: "com.sprint.android.musicplus2033.vpl", label: "Vpl", description: "Sprint Music Plus (https://play.google.com/store/apps/details?id=com.sprint.android.musicplus2033) Sprint’s official Music Store and player", safety: "safe" },
- { pkg: "com.sprint.care", label: "Care", description: "My Sprint (https://play.google.com/store/apps/details?id=com.sprint.care) Lets you manage your Sprint Account and pay your bill.", safety: "safe" },
- { pkg: "com.sprint.ce.updater", label: "Updater", description: "Mobile Installer Used by Sprint to (force) install/update Sprint apps. https://community.sprint.com/t5/Samsung/How-to-stop-quot-Mobile-Installer-quot-from-pushing-apps-to/td-p/1036387", safety: "safe" },
- { pkg: "com.sprint.ecid", label: "Ecid", description: "Enhanced Caller ID Enable you to hide name and phone number when you make phone calls https://www.sprint.com/en/support/solutions/services/restrict-your-caller-id-information.html", safety: "safe" },
- { pkg: "com.sprint.fng", label: "Fng", description: "Sprint Spot (https://play.google.com/store/apps/details?id=com.sprint.fng) Provides Sprint customers a way to discover and access apps, services, games, TV & video, music, and more.", safety: "safe" },
- { pkg: "com.sprint.international.message", label: "Message", description: "Sprint Worldwide Just an help page for international travelers.", safety: "safe" },
- { pkg: "com.sprint.ms.cdm", label: "Cdm", description: "Sprint Device Manager Mobile Device Management (MDM) allows company’s IT department to reach inside your phone in the background, allowing them to ensure your device is secure, know where it is, and remotely erase your data if the phone is stolen. You should NEVER install a MDM tool on your phone. Never. https://onezero.medium.com/dont-put-your-work-email-on-your-personal-phone-ef7fef956c2f https://blog.cdemi.io/never-accept-an-mdm-policy-on-your-personal-phone/", safety: "safe" },
- { pkg: "com.sprint.ms.cnap", label: "Cnap", description: "Caller ID cnap = Caller Name Presentation (https://en.wikipedia.org/wiki/Calling_Name_Presentation) Lets you change the name that is displayed on caller ID when making a call. Strange is it the same thing than\"com.sprint.ecid\" ?", safety: "safe" },
- { pkg: "com.sprint.ms.smf.services", label: "Services", description: "Sprint Hub (https://play.google.com/store/apps/details?id=com.sprint.ms.smf.services) Enables Sprint features (including Wifi calling) and products for devices operating on the Sprint network.", safety: "safe" },
- { pkg: "com.sprint.psdg.sw", label: "Sw", description: "Carrier Setup Wizard The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device. Here it handles the setup of Sprint features/services.", safety: "safe" },
- { pkg: "com.sprint.safefound", label: "Safefound", description: "Safe & Found (https://play.google.com/store/apps/details?id=com.sprint.safefound) Mobile safety and security application that helps protect and locate your\"loved ones\". You have the ability to track and manage smartphones, tablets and Tracker all in one app. https://www.sprint.com/en/support/solutions/services/safe-and-found.html", safety: "safe" },
- { pkg: "com.sprint.safefound.vpl", label: "Vpl", description: "Safe & Found (https://play.google.com/store/apps/details?id=com.sprint.safefound) Mobile safety and security application that helps protect and locate your\"loved ones\". You have the ability to track and manage smartphones, tablets and Tracker all in one app. https://www.sprint.com/en/support/solutions/services/safe-and-found.html", safety: "safe" },
- { pkg: "com.sprint.topup", label: "Topup", description: "Doesn't exist anymore? Now Sprint Pay (https://play.google.com/store/apps/details?id=com.sprintpay)", safety: "safe" },
- { pkg: "com.sprint.w.installer", label: "Installer", description: "Sprint ID Provides mobile ID Packs featuring apps, ringers, wallpapers, widgets and more. Can (and do) force install apps you disabled.", safety: "safe" },
- { pkg: "com.sprint.w.v8", label: "V8", description: "Old app Discover App (discontinued / new package name) Lets you discover Sprint apps?", safety: "safe" },
- { pkg: "com.sprint.zone", label: "Zone", description: "My Sprint Launcher? Apparently helps the user find new apps, in addition to some carrier-specific functionality.", safety: "safe" },
- { pkg: "com.synchronoss.dcs.att.r2g", label: "R2g", description: "AT&T Ready2Go (discontinued) Its purpose was to help you migrating your data to your new Android device.", safety: "safe" },
- { pkg: "com.tcl.vzwintents", label: "Vzwintents", description: "Package: com.tcl.vzwintents", safety: "caution" },
- { pkg: "com.tct.vzwwifioffload", label: "Vzwwifioffload", description: "Package: com.tct.vzwwifioffload", safety: "caution" },
- { pkg: "com.telcel.contenedor", label: "Contenedor", description: "Telcel app, Advertising company to get promotions. https://play.google.com/store/apps/details?id=com.telcel.contenedor", safety: "safe" },
- { pkg: "com.telecomsys.directedsms.android.SCG", label: "SCG", description: "Verizon Location Agent Location tracking (does not impact GPS function if deleted, don't worry)", safety: "safe" },
- { pkg: "com.telenav.app.android.bell", label: "Bell", description: "Bell Navigator app. It works, but there are much better Maps apps available. https://play.google.com/store/apps/details?id=com.telenav.app.android.bell", safety: "safe" },
- { pkg: "com.telus.checkup", label: "Checkup", description: "Checkup app (from Mobile Klinik; a Canadian store for buying, selling, and repairing smartphones) Mainly used to run device-health diagnostics, estimate device value post-diagnostics (for re-selling at a Mobile Klinik location), and finding nearby Mobile Klinik locations to book appointments for device repair. Also contains ads and promotions for new devices and accessories. Generally regarded as bloatware because diagnostics are generic at best, and is eager to request many unnecessary and potentially invasive device permissions. Safe to remove if you don't use it, and can be re-downloaded from the Google Play Store at any time.", safety: "safe" },
- { pkg: "com.telus.featuredapps", label: "Featuredapps", description: "Recommended apps from Telus. Now discontinued and doesn't show any apps.", safety: "safe" },
- { pkg: "com.telus.myaccount", label: "Myaccount", description: "My TELUS app It's used for managing your telus account Safe to remove if you don't use it", safety: "safe" },
- { pkg: "com.tmobile.pr.adapt", label: "Adapt", description: "Diagnostic tool. This app can see all your installed apps, that you have allowed unknown sources on, that your rooted, and will deny your warranty saying your rooted. It constantly runs in the background.", safety: "safe" },
+ { pkg: "com.mobitv.client.tmobiletvhd", label: "Tmobiletvhd", description: "T-Mobile TV (discontinued, replaced by nl.tmobiletv.vinson) provided by mobitv (https://en.wikipedia.org/wi...", safety: "safe" },
+ { pkg: "com.tmobile.pr.adapt", label: "Adapt", description: "Diagnostic tool.", safety: "safe" },
{ pkg: "com.tmobile.pr.mytmobile", label: "Mytmobile", description: "T-mobile app (https://play.google.com/store/apps/details?id=com.tmobile.pr.mytmobile)", safety: "safe" },
- { pkg: "com.tmobile.services.nameid", label: "Nameid", description: "Name ID T-Mobile (powered by Hiya or cequint if on Samsung devices) NOTE : Never trust a company which promotes call ID/spam blocking features. https://techcrunch.com/2019/08/09/many-robocall-blocking-apps-send-your-private-data-without-permission/", safety: "safe" },
- { pkg: "com.tmobile.simlock", label: "Simlock", description: "Device Unlock. Allows you to request and apply a mobile device unlock directly from the device. https://support.t-mobile.com/docs/DOC-14011", safety: "safe" },
- { pkg: "com.tmobile.vvm.application", label: "Application", description: "T-Mobile Visual VoiceMail (https://play.google.com/store/apps/details?id=com.tmobile.vvm.application) Lets you use your voice mail and manage your inbox without dialing into your voicemail.", safety: "safe" },
- { pkg: "com.tracfone.preload.accountservices", label: "Accountservices", description: "TracPhone / StraightTalk application. It just shows IMEI, SIM, and phone number, as well as a way to see device properties. Comes preinstalled with any TracPhone or StraightTalk device. It can be downloaded from the playstore if needed for whatever reason. Has Approximate and Precise location permissions, and Device ID permission. Runs in the background for them to collect data.", safety: "safe" },
+ { pkg: "com.tmobile.services.nameid", label: "Nameid", description: "Name ID T-Mobile (powered by Hiya or cequint if on Samsung devices)", safety: "safe" },
+ { pkg: "com.tmobile.simlock", label: "Simlock", description: "Device Unlock.", safety: "safe" },
+ { pkg: "com.tmobile.vvm.application", label: "Application", description: "T-Mobile Visual VoiceMail (https://play.google.com/store/apps/details?id=com.tmobile.vvm.application)", safety: "safe" },
+ { pkg: "com.whitepages.nameid.tmobile", label: "Tmobile", description: "T-mobile NAME ID by WhitePages (https://www.whitepages.com/)", safety: "safe" },
+ { pkg: "us.com.dt.iq.appsource.tmobile", label: "Tmobile", description: "App Source (discontinued)", safety: "safe" },
+ { pkg: "com.asurion.android.verizon.vms", label: "Vms", description: "Verizon Digital Secure (https://play.google.com/store/apps/details?id=com.asurion.android.verizon.vms)", safety: "safe" },
+ { pkg: "com.customermobile.preload.vzw", label: "Vzw", description: "Verizon Store/Retail Demo Mode", safety: "safe" },
+ { pkg: "com.LogiaGroup.LogiaDeck", label: "Logiadeck", description: "Mobile Services Manager", safety: "safe" },
+ { pkg: "com.motricity.verizon.ssodownloadable", label: "Ssodownloadable", description: "Verizon Login by Motricity (now Voltari)", safety: "safe" },
+ { pkg: "com.securityandprivacy.android.verizon.vms", label: "Vms", description: "Digital Secure (https://play.google.com/store/apps/details?id=com.securityandprivacy.android.verizon.vms&hl...", safety: "safe" },
+ { pkg: "com.telecomsys.directedsms.android.SCG", label: "Scg", description: "Verizon Location Agent", safety: "safe" },
{ pkg: "com.vcast.mediamanager", label: "Mediamanager", description: "Verizon Cloud (https://play.google.com/store/apps/details?id=com.vcast.mediamanager)", safety: "safe" },
- { pkg: "com.verizon.cloudsetupwizard", label: "Cloudsetupwizard", description: "Package: com.verizon.cloudsetupwizard", safety: "safe" },
{ pkg: "com.verizon.llkagent", label: "Llkagent", description: "Used for Verizon store demo mode.", safety: "safe" },
- { pkg: "com.verizon.loginengine.unbranded", label: "Unbranded", description: "Carrier Login Engine Needed for wifi-calling. (To be confirmed)", safety: "safe" },
+ { pkg: "com.verizon.loginengine.unbranded", label: "Unbranded", description: "Carrier Login Engine", safety: "safe" },
{ pkg: "com.verizon.messaging.vzmsgs", label: "Vzmsgs", description: "Verizon Messages (https://play.google.com/store/apps/details?id=com.verizon.messaging.vzmsgs)", safety: "safe" },
- { pkg: "com.verizon.mips.services", label: "Services", description: "My Verizon Services Related to My Verizon app. Required for hotspot", safety: "caution" },
- { pkg: "com.verizon.obdm", label: "Obdm", description: "It's a set of metrics-related modules. Google Play uses the version of the Telemetry module to determine if updates are available for metrics-related modules and which security patch version to display to the end user. This module doesn’t contain active code and has no functionality on its own. Removing modules-related packages may not be safe since Android 11 https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/27#note_410012436", safety: "safe" },
- { pkg: "com.verizon.obdm_permissions", label: "Obdm_permissions", description: "D-MAT. Has a LOT of permissions! (https://knowledge.protektoid.com/apps/com.verizon.obdm/d48680955d8d58bade2e6620ccb1e30b9bf23cb8e50055e10de3466da558c0ee) DMAT Account ? It is used to hold shares and securities in dematerialised/electronic format. Seems weird that Verizon provide this so it's likely not this.", safety: "safe" },
- { pkg: "com.verizon.permissions.appdirectedsms", label: "Appdirectedsms", description: "Custom permissions for some verizon stuff?", safety: "safe" },
+ { pkg: "com.verizon.mips.services", label: "Services", description: "My Verizon Services", safety: "caution" },
+ { pkg: "com.verizon.obdm_permissions", label: "Obdm Permissions", description: "D-MAT.", safety: "safe" },
{ pkg: "com.verizon.permissions.vzwappapn", label: "Vzwappapn", description: "Custom permissions used to set Verizon APN?", safety: "safe" },
- { pkg: "com.verizon.remoteSimlock", label: "RemoteSimlock", description: "VZWRemoteSimlockService Remote SimLock lock, unlock, looks more danger than useful app.", safety: "safe" },
- { pkg: "com.verizon.services", label: "Services", description: "AppDirectedSMS OMA Device Management for Verizon. it's for wifi calling, sms", safety: "caution" },
{ pkg: "com.verizon.vzwavs", label: "Vzwavs", description: "Has a scary list of permissions. Does seems to break anything if removed", safety: "safe" },
{ pkg: "com.verizontelematics.verizonhum", label: "Verizonhum", description: "Hum Family Locator (https://play.google.com/store/apps/details?id=com.verizontelematics.verizonhum)", safety: "safe" },
{ pkg: "com.vznavigator.Generic", label: "Generic", description: "VZ Navigator (GPS app) (https://play.google.com/store/apps/details?id=com.vznavigator.Generic)", safety: "safe" },
- { pkg: "com.vzw.apnlib", label: "Apnlib", description: "Kind of library for Verizon APN ? REMINDER : https://developer.android.com/reference/android/telephony/data/ApnSetting After uninstall phone won't allow to call or text(breaks WiFi calling), On Auto Optimization it cause auto reboots.", safety: "caution" },
- { pkg: "com.vzw.apnservice", label: "Apnservice", description: "APN Services. REMINDER : https://developer.android.com/reference/android/telephony/data/ApnSetting", safety: "caution" },
- { pkg: "com.vzw.easvalidation", label: "Easvalidation", description: "Package: com.vzw.easvalidation", safety: "caution" },
- { pkg: "com.vzw.ecid", label: "Ecid", description: "Verizon Call Filter (https://play.google.com/store/apps/details?id=com.vzw.ecid) NOTE : Never trust a company which promotes call ID/spam blocking features.", safety: "safe" },
- { pkg: "com.vzw.hss.myverizon", label: "Myverizon", description: "MyVerizon app", safety: "safe" },
- { pkg: "com.vzw.hss.widgets.infozone.large", label: "Large", description: "My InfoZone Widget Gives weekly tips, access to device info and account information. https://www.droid-life.com/2013/02/12/verizon-introduces-my-infozone-widget-allows-easy-access-to-tips-device-info-and-account-information/", safety: "safe" },
+ { pkg: "com.vzw.apnlib", label: "Apnlib", description: "Kind of library for Verizon APN ?", safety: "safe" },
+ { pkg: "com.vzw.apnservice", label: "Apnservice", description: "APN Services.", safety: "caution" },
+ { pkg: "com.vzw.hss.myverizon", label: "Myverizon", description: "Verizon Call Filter (https://play.google.com/store/apps/details?id=com.vzw.ecid)", safety: "safe" },
+ { pkg: "com.vzw.hss.widgets.infozone.large", label: "Large", description: "My InfoZone Widget", safety: "safe" },
{ pkg: "com.vzw.qualitydatalog", label: "Qualitydatalog", description: "Logging stuff", safety: "safe" },
- { pkg: "com.wavemarket.waplauncher", label: "Waplauncher", description: "AT&T Secure Family (https://play.google.com/store/apps/details?id=com.wavemarket.waplauncher) Parental control app. 7 trackers + 16 permissions (https://reports.exodus-privacy.eu.org/en/reports/com.wavemarket.waplauncher/latest/)", safety: "safe" },
- { pkg: "com.whitepages.nameid.tmobile", label: "Tmobile", description: "T-mobile NAME ID by WhitePages (https://www.whitepages.com/) Discontinued. Replaced by com.tmobile.services.nameid https://www.fiercewireless.com/wireless/t-mobile-to-offer-name-id-service-from-whitepages https://www.geekwire.com/2016/whitepages-spins-caller-id-spam-blocking-app-startup-hiya/", safety: "safe" },
- { pkg: "de.telekom.tsc", label: "Tsc", description: "AppEnabler tsc = Telecom Service Center Used to display ads in notifications panel. )", safety: "safe" },
- { pkg: "fr.bouyguestelecom.ecm.android", label: "Android", description: "Espace Client (https://play.google.com/store/apps/details?id=fr.bouyguestelecom.ecm.android) Lets you manage your Bouygues account.", safety: "safe" },
- { pkg: "fr.bouyguestelecom.tv.android", label: "Android", description: "B.tv (https://play.google.com/store/apps/details?id=fr.bouyguestelecom.tv.android) Lets you watch TV from your phone.", safety: "safe" },
- { pkg: "fr.bouyguestelecom.vvmandroid", label: "Vvmandroid", description: "This app wants to inject ads into your gallery. Found only ads and crashlytics components.", safety: "safe" },
- { pkg: "fr.orange.cineday", label: "Cineday", description: "Orange cineday (https://play.google.com/store/apps/details?id=fr.orange.cineday) Useless app but cineday is pretty nice. Every tuesday you can invite the person of your choice in movies (within the limit of available seats). You can just use https://cineday.orange.fr/cineday/", safety: "safe" },
- { pkg: "hdopen.vivicitta", label: "Vivicitta", description: "Companion App for training, so bloated and from T-Mobile", safety: "safe" },
- { pkg: "hu.telekom.telekomapp", label: "Telekomapp", description: "Telekom App for subscriptions, so bloated (a lot spying) and from T-Mobile", safety: "safe" },
- { pkg: "hu.telekom.telekomtv", label: "Telekomtv", description: "Mobile shopping App for watch tv on phone, so bloated (a lot spying) and from T-Mobile", safety: "safe" },
- { pkg: "jp.co.daj.consumer.ifilter.aflauncher", label: "Aflauncher", description: "Something Japanese with useless code.", safety: "safe" },
- { pkg: "jp.co.nttdocomo.anshinmode", label: "Anshinmode", description: "Anshin-Filter for docomo (https://www.docomo.ne.jp/service/anshin_filter/0) Carrier-provided parental controls. Terrible. Causes excessive battery drain on both parent and child devices due to heavy background polling, and a ton of other issues. If you care about your child's better well-being, digital experience and parent-child relationships, consider using alternative services such as Google Family link. Strongly recommended to uninstall.", safety: "safe" },
- { pkg: "jp.co.nttdocomo.carriermail", label: "Carriermail", description: "docomo mail Carrier mail app. Safe to remove.", safety: "safe" },
- { pkg: "jp.co.nttdocomo.lcsapp", label: "Lcsapp", description: "docomo location information Provides \"Keitai-Osagashi Service\" (Mobile Phone Finder Service) and \"imadoco search\" (parental tracking) by docomo. com.nttdocomo.android.docomoset is needed to launch settings screen. Safe to remove, but you may want to check https://mydocomo.docomo.ne.jp for subscriptions and \"imadoco search\" Opt-Out at https://spf.spmode.ne.jp/location/posinfo_sp (spf.spmode.ne.jp is only accessible via mobile network). Google's \"Find Hub\" and \"Family Link\" are free and better alternatives integrated with Android.", safety: "safe", deps: ["com.nttdocomo.android.docomoset"] },
- { pkg: "jp.co.nttdocomo.saigaiban", label: "Saigaiban", description: "Disaster kit (https://www.docomo.ne.jp/info/disaster/disaster_kit/) A dedicated app for docomo's safety registration service used during major emergencies. It allows users to post and search for safety status. NOTE: This is not related to the core functionality of Area Mail (early warning). For checking Area Mail history, you can find it in system settings. Safe to remove; use web171.jp, Disaster Message Dial (171) or LINE's safety status feature instead for about safety status.", safety: "safe" },
- { pkg: "jp.co.omronsoft.iwnnime.ml", label: "Ml", description: "iWnn IME Japanese keyboard pre-installed on some Huawei and Kyocera phones. Some phones cannot be unlocked without it.", safety: "keep" },
- { pkg: "jp.co.omronsoft.wnnext.skin.std_dark_type2_HW", label: "Std_dark_type2_HW", description: "Skin Dark mode to Japanese Keyboard.", safety: "safe" },
- { pkg: "jp.co.omronsoft.wnnext.skin.std_light_type2_HW", label: "Std_light_type2_HW", description: "Skin Light mode to Japanese Keyboard.", safety: "safe" },
- { pkg: "jp.co.yahoo.android.ebookjapan.preinstall", label: "Preinstall", description: "eBookJapan Not needed japanese.", safety: "safe" },
- { pkg: "net.aetherpal.device", label: "Device", description: "AT&T Remote Support provided by aetherpal (was acquired by VMware) Allows an AT&T Advanced Support representative to assist you by accessing your device remotely.", safety: "safe" },
- { pkg: "pl.tmobile.miboa", label: "Miboa", description: "My T-Mobile Has login activity and MailBox. A lot metrics, analytics.", safety: "safe" },
- { pkg: "pl.tmobile.panel", label: "Panel", description: "MyBox Require sim card to run app it's app store(discontinued?)", safety: "safe" },
- { pkg: "ro.cosmote.aps.wnwlite", label: "Wnwlite", description: "TopApps(discontinued) it's non english app. Installs recommended apps? I can't launch the app because it displays an error that it can't connect to the Internet, even when Wi-Fi is on.", safety: "safe" },
- { pkg: "telekom.hu.android.mobilvasarlas", label: "Mobilvasarlas", description: "Mobile shopping App for shopping or paying, so bloated and from T-Mobile", safety: "safe" },
- { pkg: "tmobile.hu.android.epgmiab", label: "Epgmiab", description: "Newsreel Another app to tv things, so bloated and from T-Mobile, not needed", safety: "safe" },
- { pkg: "uk.co.ee.myee", label: "Myee", description: "Myee app (https://play.google.com/store/apps/details?id=uk.co.ee.myee) Lets you control your EE pay monthly, pay as you go and WiFi devices. Check your data, bills, packs and more, and keep an eye on your spending. Contains unnecessary analytics and most of the things the app does can be done by texting 150 from your mobile. See https://ee.co.uk/help/help-new/billing-usage-and-top-up/call-text-and-data-charges/how-can-i-get-help-by-texting-150-on-pay-as-you-go-or-flex Exodus & Pithus reports: https://reports.exodus-privacy.eu.org/fr/reports/uk.co.ee.myee/latest/ https://beta.pithus.org/report/6e8de7e02aba34c4f02dc966b39002f60b0852f55da923cdccc4ba4c09ed4a4a", safety: "safe" },
- { pkg: "us.com.dt.iq.appsource.tmobile", label: "Tmobile", description: "App Source (discontinued) This app aimed at organizing all of your existing apps on the phone by category and helping you discover new apps through search and recommendations.", safety: "safe" },
+ { pkg: "com.motorola.vzw.mot5gmod", label: "Mot5Gmod", description: "5G Moto Mod (https://play.google.com/store/apps/details?id=com.motorola.mot5gmod)", safety: "safe" },
+ { pkg: "com.motorola.vzw.phone.extensions", label: "Extensions", description: "Free HD wallpaper from verizon", safety: "safe" },
+ { pkg: "com.motorola.service.vzw.entitlement", label: "Entitlement", description: "Deleting this package whill disable Hotspot functionality if you're a Verizon client.", safety: "caution" },
+ { pkg: "com.motorola.vzw.cloudsetup", label: "Cloudsetup", description: "Cloud setup", safety: "safe" },
+ { pkg: "com.motorola.ltebroadcastservices_vzw", label: "Ltebroadcastservices Vzw", description: "LTE Broadcast services from Verizon. Allows your phone to receive broadcast message from Verizon?", safety: "safe" },
+ { pkg: "com.motorola.vzw.loader", label: "Loader", description: "????", safety: "safe" },
+ { pkg: "com.motorola.omadm.vzw", label: "Vzw", description: "OMA Device Management for Verizon", safety: "safe" },
+ { pkg: "com.motorola.vzw.provider", label: "Provider", description: "????", safety: "safe" },
+ { pkg: "com.motorola.visualvoicemail", label: "Visualvoicemail", description: "Verizon Visual Voicemail (https://play.google.com/store/apps/details?id=com.motorola.visualvoicemail)", safety: "caution" },
+ { pkg: "com.android.sprint.hiddenmenuapp", label: "Hiddenmenuapp", description: "Lets you access hidden features tests/settings (you need to type a special code in the dialer)", safety: "safe" },
+ { pkg: "com.asurion.home.sprint.vpl", label: "Vpl", description: "Tech Expert (for VPL devices/employees) ?", safety: "safe" },
+ { pkg: "com.asurion.home.sprint", label: "Sprint", description: "Sprint Protect", safety: "safe" },
+ { pkg: "com.hyperlync.Sprint.Backup", label: "Backup", description: "Sprint Backup\" (https://play.google.com/store/apps/details?id=com.hyperlync.Sprint.Backup)", safety: "safe" },
+ { pkg: "com.hyperlync.Sprint.CloudBinder", label: "Cloudbinder", description: "Sprint Cloud Binder (https://play.google.com/store/apps/details?id=com.hyperlync.Sprint.CloudBinder)", safety: "safe" },
+ { pkg: "com.locationlabs.finder.sprint", label: "Sprint", description: "Sprint Family Locator (https://play.google.com/store/apps/details?id=com.locationlabs.finder.sprint)", safety: "safe" },
+ { pkg: "com.mobitv.client.sprinttvng", label: "Sprinttvng", description: "Sprint TV & Movies provided by mobitv (https://en.wikipedia.org/wiki/MobiTV)", safety: "safe" },
+ { pkg: "com.motorola.omadm.sprint", label: "Sprint", description: "Configuration of the device (including first time use), enabling and disabling features provided by carriers.", safety: "safe" },
+ { pkg: "com.motorola.sprintwfc", label: "Sprintwfc", description: "Sprint Wifi Calling", safety: "safe" },
+ { pkg: "com.sec.sprint.wfcstub", label: "Wfcstub", description: "Seems to be related to Wifi-Calling on Samsung phone.", safety: "safe" },
+ { pkg: "com.sprint.android.musicplus2033.vpl", label: "Vpl", description: "Sprint Music Plus (https://play.google.com/store/apps/details?id=com.sprint.android.musicplus2033)", safety: "safe" },
+ { pkg: "com.sprint.ecid", label: "Ecid", description: "Enhanced Caller ID", safety: "safe" },
+ { pkg: "com.sprint.care", label: "Care", description: "My Sprint (https://play.google.com/store/apps/details?id=com.sprint.care)", safety: "safe" },
+ { pkg: "com.sprint.ce.updater", label: "Updater", description: "Mobile Installer", safety: "safe" },
+ { pkg: "com.sprint.fng", label: "Fng", description: "Sprint Spot (https://play.google.com/store/apps/details?id=com.sprint.fng)", safety: "safe" },
+ { pkg: "com.sprint.international.message", label: "Message", description: "Sprint Worldwide", safety: "safe" },
+ { pkg: "com.sprint.psdg.sw", label: "Sw", description: "Carrier Setup Wizard", safety: "safe" },
+ { pkg: "com.sprint.ms.cdm", label: "Cdm", description: "Sprint Device Manager", safety: "safe" },
+ { pkg: "com.sprint.ms.cnap", label: "Cnap", description: "Caller ID", safety: "safe" },
+ { pkg: "com.sprint.ms.smf.services", label: "Services", description: "Sprint Hub (https://play.google.com/store/apps/details?id=com.sprint.ms.smf.services)", safety: "safe" },
+ { pkg: "com.sprint.safefound.vpl", label: "Vpl", description: "Safe & Found (https://play.google.com/store/apps/details?id=com.sprint.safefound)", safety: "safe" },
+ { pkg: "com.sprint.topup", label: "Topup", description: "Doesn't exist anymore? Now Sprint Pay (https://play.google.com/store/apps/details?id=com.sprintpay)", safety: "safe" },
+ { pkg: "com.sprint.w.installer", label: "Installer", description: "Sprint ID", safety: "safe" },
+ { pkg: "com.sprint.w.v8", label: "V8", description: "Old app Discover App (discontinued / new package name)", safety: "safe" },
+ { pkg: "com.sprint.zone", label: "Zone", description: "My Sprint Launcher?", safety: "safe" },
+ { pkg: "com.aetherpal.attdh.se", label: "Se", description: "Device Help for AT&T Samsung device", safety: "safe" },
+ { pkg: "com.aetherpal.attdh.zte", label: "Zte", description: "Device Help for AT&T ZTE devices.", safety: "safe" },
+ { pkg: "net.aetherpal.device", label: "Device", description: "AT&T Remote Support provided by aetherpal (was acquired by VMware)", safety: "safe" },
+ { pkg: "com.asurion.android.mobilerecovery.att", label: "Att", description: "AT&T Protect Plus (discontinued. Replaced by AT&T ProTech : com.asurion.android.protech.att)", safety: "safe" },
+ { pkg: "com.asurion.android.protech.att", label: "Att", description: "AT&T ProTech (https://play.google.com/store/apps/details?id=com.asurion.android.protech.att)", safety: "safe" },
+ { pkg: "com.att.android.attsmartwifi", label: "Attsmartwifi", description: "AT&T Smart Wi-Fi (https://play.google.com/store/apps/details?id=com.att.android.attsmartwifi)", safety: "safe" },
+ { pkg: "com.att.callprotect", label: "Callprotect", description: "AT&T Call Protect (https://play.google.com/store/apps/details?id=com.att.callprotect)", safety: "safe" },
+ { pkg: "com.att.csoiam.mobilekey", label: "Mobilekey", description: "AT&T Sign in Helper (https://play.google.com/store/apps/details?id=com.att.csoiam.mobilekey)", safety: "safe" },
+ { pkg: "com.att.dh", label: "Dh", description: "Device Help (https://play.google.com/store/apps/details?id=com.att.dh)", safety: "safe" },
+ { pkg: "com.att.dtv.shaderemote", label: "Shaderemote", description: "DIRECTV Remote App (https://play.google.com/store/apps/details?id=com.att.dtv.shaderemote)", safety: "safe" },
+ { pkg: "com.att.iqi", label: "Iqi", description: "Carrier IQ / Device Health", safety: "safe" },
+ { pkg: "com.att.mobiletransfer", label: "Mobiletransfer", description: "AT&T Mobile Transfer", safety: "safe" },
+ { pkg: "com.att.myWireless", label: "Mywireless", description: "My AT&T (https://play.google.com/store/apps/details?id=com.att.myWireless)", safety: "safe" },
+ { pkg: "com.att.mobilesecurity", label: "Mobilesecurity", description: "AT&T Mobile Security (https://play.google.com/store/apps/details?id=com.att.mobilesecurity)", safety: "safe" },
+ { pkg: "com.att.mobile.android.vvm", label: "Vvm", description: "AT&T Visual Voicemail (https://play.google.com/store/apps/details?id=com.att.mobile.android.vvm)", safety: "safe" },
+ { pkg: "com.att.personalcloud", label: "Personalcloud", description: "AT&T Personal Cloud (https://play.google.com/store/apps/details?id=com.att.personalcloud)", safety: "safe" },
+ { pkg: "com.att.tv", label: "Tv", description: "AT&T TV (https://play.google.com/store/apps/details?id=com.att.tv)", safety: "safe" },
+ { pkg: "com.att.tv.watchtv", label: "Watchtv", description: "AT&T WatchTV (https://play.google.com/store/apps/details?id=com.att.tv.watchtv)", safety: "safe" },
+ { pkg: "com.matchboxmobile.wisp", label: "Wisp", description: "AT&T Hot Spots", safety: "safe" },
+ { pkg: "com.dti.att", label: "Att", description: "AT&T App Select", safety: "safe" },
+ { pkg: "com.locationlabs.cni.att", label: "Att", description: "AT&T Smart Limits", safety: "safe" },
+ { pkg: "com.motorola.att.phone.extensions", label: "Extensions", description: "Provide acess to AT&T extensions in you dialer. I'm not sure tho. It's only a supposition.", safety: "safe" },
+ { pkg: "com.motorola.attvowifi", label: "Attvowifi", description: "AT&T Wifi-calling", safety: "safe" },
+ { pkg: "com.wavemarket.waplauncher", label: "Waplauncher", description: "AT&T Secure Family (https://play.google.com/store/apps/details?id=com.wavemarket.waplauncher)", safety: "safe" },
+ { pkg: "com.samsung.attvvm", label: "Attvvm", description: "Visual Voicemail", safety: "safe" },
+ { pkg: "com.sec.android.app.ewidgetatt", label: "Ewidgetatt", description: "Entertainment Widget", safety: "safe" },
+ { pkg: "com.sec.omadm", label: "Omadm", description: "OMADM", safety: "caution" },
+ { pkg: "com.sec.omadmspr.syncmlphoneif", label: "Syncmlphoneif", description: "OMADM Phone Interface?", safety: "caution" },
+ { pkg: "com.synchronoss.dcs.att.r2g", label: "R2G", description: "AT&T Ready2Go (discontinued)", safety: "safe" },
+ { pkg: "fr.bouyguestelecom.ecm.android", label: "Android", description: "Espace Client (https://play.google.com/store/apps/details?id=fr.bouyguestelecom.ecm.android)", safety: "safe" },
+ { pkg: "fr.bouyguestelecom.tv.android", label: "Android", description: "B.tv (https://play.google.com/store/apps/details?id=fr.bouyguestelecom.tv.android)", safety: "safe" },
+ { pkg: "fr.bouyguestelecom.vvmandroid", label: "Vvmandroid", description: "No description available", safety: "safe" },
+ { pkg: "com.orange.aura.oobe", label: "Oobe", description: "Orange Manual Selector", safety: "safe" },
+ { pkg: "com.orange.mail.fr", label: "Fr", description: "Mail Orange (https://play.google.com/store/apps/details?id=com.orange.mail.fr)", safety: "safe" },
+ { pkg: "com.orange.miorange", label: "Miorange", description: "Lets you access to your Orange account", safety: "safe" },
+ { pkg: "com.orange.mylivebox.fr", label: "Fr", description: "Ma Livebox (https://play.google.com/store/apps/details?id=com.orange.mylivebox.fr)", safety: "safe" },
+ { pkg: "com.orange.mysosh", label: "Mysosh", description: "My Sosh (https://play.google.com/store/apps/details?id=com.orange.mysosh)", safety: "safe" },
+ { pkg: "com.orange.orangeetmoi", label: "Orangeetmoi", description: "Orange Et Moi (https://play.google.com/store/apps/details?id=com.orange.orangeetmoi)", safety: "safe" },
+ { pkg: "com.orange.owtv", label: "Owtv", description: "TV d'Orange (https://play.google.com/store/apps/details?id=com.orange.owtv)", safety: "safe" },
+ { pkg: "com.orange.tdd", label: "Tdd", description: "Transfert de donn\u00e9es (https://play.google.com/store/apps/details?id=com.orange.tdd)", safety: "safe" },
+ { pkg: "com.orange.update", label: "Update", description: "Handles Orange apps updates.", safety: "safe" },
+ { pkg: "com.orange.update.OrangeUpdateApplication", label: "Orangeupdateapplication", description: "Obviously related to update...", safety: "safe" },
+ { pkg: "com.orange.vvm", label: "Vvm", description: "Messagerie vocale visuelle (https://play.google.com/store/apps/details?id=com.orange.vvm)", safety: "safe" },
+ { pkg: "com.orange.wifiorange", label: "Wifiorange", description: "Mon R\u00e9seau (https://play.google.com/store/apps/details?id=com.orange.wifiorange)", safety: "safe" },
+ { pkg: "fr.orange.cineday", label: "Cineday", description: "Orange cineday (https://play.google.com/store/apps/details?id=fr.orange.cineday)", safety: "safe" },
+ { pkg: "com.sfr.android.moncompte", label: "Moncompte", description: "SFR & Moi (https://play.google.com/store/apps/details?id=com.sfr.android.moncompte)", safety: "safe" },
+ { pkg: "com.sfr.android.sfrcloud", label: "Sfrcloud", description: "SFR Cloud (https://play.google.com/store/apps/details?id=com.sfr.android.sfrcloud)", safety: "safe" },
+ { pkg: "com.sfr.android.sfrmail", label: "Sfrmail", description: "SFR Mail (https://play.google.com/store/apps/details?id=com.sfr.android.sfrmail)", safety: "safe" },
+ { pkg: "com.sfr.android.sfrplay", label: "Sfrplay", description: "SFR Play (https://play.google.com/store/apps/details?id=com.sfr.android.sfrplay)", safety: "safe" },
+ { pkg: "com.sfr.android.vvm", label: "Vvm", description: "SFR R\u00e9pondeur + (https://play.google.com/store/apps/details?id=com.sfr.android.vvm)", safety: "safe" },
+ { pkg: "de.telekom.tsc", label: "Tsc", description: "AppEnabler", safety: "safe" },
+ { pkg: "com.aura.oobe.samsung.gl", label: "Gl", description: "AppCloud", safety: "safe" },
+ { pkg: "com.aura.oobe.samsung", label: "Samsung", description: "AppCloud", safety: "safe" },
+ { pkg: "com.verizon.obdm", label: "Obdm", description: "It's a set of metrics-related modules. Google Play uses the version of the Telemetry module to determine", safety: "safe" },
+ { pkg: "com.verizon.permissions.appdirectedsms", label: "Appdirectedsms", description: "Custom permissions for some verizon stuff?", safety: "safe" },
+ { pkg: "com.vzw.ecid", label: "Ecid", description: "Verizon Call Filter (https://play.google.com/store/apps/details?id=com.vzw.ecid)", safety: "safe" },
+ { pkg: "com.motorola.mot5gmod", label: "Mot5Gmod", description: "5G Moto Mod (https://play.google.com/store/apps/details?id=com.motorola.mot5gmod)", safety: "safe" },
+ { pkg: "com.motorola.vzw.pco.extensions.pcoreceiver", label: "Pcoreceiver", description: "Protocol Configuration Options.", safety: "safe" },
+ { pkg: "com.asurion.android.mobilerecovery.sprint.vpl", label: "Vpl", description: "Sprint Protect", safety: "safe" },
+ { pkg: "com.asurion.android.mobilerecovery.sprint", label: "Sprint", description: "Sprint Protect", safety: "safe" },
+ { pkg: "com.locationlabs.finder.sprint.vpl", label: "Vpl", description: "Sprint Family Locator (https://play.google.com/store/apps/details?id=com.locationlabs.finder.sprint)", safety: "safe" },
+ { pkg: "com.mobolize.sprint.securewifi", label: "Securewifi", description: "Secure Wifi (https://play.google.com/store/apps/details?id=com.mobolize.sprint.securewifi)", safety: "safe" },
+ { pkg: "com.sprint.android.musicplus2033", label: "Musicplus2033", description: "Sprint Music Plus (https://play.google.com/store/apps/details?id=com.sprint.android.musicplus2033)", safety: "safe" },
+ { pkg: "com.sprint.safefound", label: "Safefound", description: "Safe & Found (https://play.google.com/store/apps/details?id=com.sprint.safefound)", safety: "safe" },
+ { pkg: "uk.co.ee.myee", label: "Myee", description: "Myee app (https://play.google.com/store/apps/details?id=uk.co.ee.myee)", safety: "safe" },
+ { pkg: "ca.bell.wt.android.tunesappswidget", label: "Tunesappswidget", description: "App Widget (https://play.google.com/store/apps/details?id=ca.bell.wt.android.tunesappswidget)", safety: "safe" },
],
},
{
name: "AOSP",
packages: [
- { pkg: "android", label: "Android", description: "Android System Android system framework? Apk file name: framework-res Could be THE core of the android system. Probably very unsafe to disable.", safety: "keep" },
- { pkg: "android.aosp.overlay", label: "Overlay", description: "Refers to the Runtime Resource Overlay (RRO) framework that is built into the AOSP. RRO allows for the dynamic modification of an app's resources at runtime, Enabling the customization of the app's appearance and behavior without modifying its source code https://source.android.com/docs/core/runtime/rros", safety: "keep" },
- { pkg: "android.aosp.overlay.telephony", label: "Telephony", description: "Likely an important overlay for telephony services and com.android.providers.telephony. Not safe to delete.", safety: "keep" },
- { pkg: "android.auto_generated_rro__", label: "Auto_generated_rro__", description: "rro = Runtime Resources Overlay. Changes values of a package config, based in the overlay definitions (heavily used by OEMs to customize the look and feel of Android) Link: https://source.android.com/devices/architecture/rros and https://code.tutsplus.com/tutorials/quick-tip-theme-android-with-the-runtime-resource-overlay-framework--cms-29708", safety: "safe" },
- { pkg: "android.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "RRO = Runtime Resources Overlay. Used by OEMs to customize look and feel of certain applications. https://source.android.com/devices/architecture/rros https://code.tutsplus.com/tutorials/quick-tip-theme-android-with-the-runtime-resource-overlay-framework--cms-29708", safety: "caution" },
- { pkg: "android.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "RRO = Runtime Resources Overlay. Used by OEMs to customize look and feel of certain applications. https://source.android.com/devices/architecture/rros https://code.tutsplus.com/tutorials/quick-tip-theme-android-with-the-runtime-resource-overlay-framework--cms-29708", safety: "caution" },
- { pkg: "android.auto_generated_vendor_", label: "Auto_generated_vendor_", description: "Auto generated vendor's stuff for Android Auto (https://www.android.com/intl/en_en/auto/) Note: You don't need this if you don't use Android auto", safety: "safe" },
- { pkg: "android.ext.shared", label: "Shared", description: "Android Shared Library, removing may cause a bootloop.", safety: "keep" },
- { pkg: "android.overlay.common", label: "Common", description: "It has some important settings and configurations related to Android.", safety: "keep" },
- { pkg: "android.overlay.target", label: "Target", description: "It has some important settings and configurations related to Android.", safety: "keep" },
- { pkg: "android.qvaoverlay.common", label: "Common", description: "This app has no code and is safe to remove.", safety: "caution" },
- { pkg: "android.ui.overlay.ct", label: "Ct", description: "An overlay that customizes Android UI for the China Telecom operator (3rd largest operator in China). Safe to remove if you don't live in china or don't use/plan to use this carrier. Often present on ROMs and devices outside of China.", safety: "caution" },
- { pkg: "com.android.adservices.api", label: "Api", description: "Android AdServices. Introduced in Android 13 privacy sandbox beta components disabled on default. https://source.android.com/docs/core/ota/modular-system/adservices", safety: "safe" },
- { pkg: "com.android.apps.tag", label: "Tag", description: "Support for NFC tags interactions (5 permissions, Contacts/Phone On by default). NFC Tags are for instance used in buses to validate your transport card with your phone. Other example: https://en.wikipedia.org/wiki/TecTile You will still be able to connect to a NFC device (e.g a speaker) with this disabled.", safety: "caution" },
- { pkg: "com.android.avatarpicker", label: "Avatarpicker", description: "Lets you assign pictures to contacts. It has two options: take picture from the camera, or choose from the gallery. Source code: https://android.googlesource.com/platform/packages/apps/AvatarPicker", safety: "caution" },
- { pkg: "com.android.backupconfirm", label: "Backupconfirm", description: "Restores Google settings with Google Backup restore. Displays confirmation popup when doing ADB backup. Disabling this package breaks ADB Backup.", safety: "caution" },
- { pkg: "com.android.basicsmsreceiver", label: "Basicsmsreceiver", description: "Gets SMS and creates notifications: https://android.googlesource.com/platform/packages/apps/BasicSmsReceiver/+/jb-dev/src/com/android/basicsmsreceiver/BasicSmsReceiverApp.java", safety: "caution" },
+ { pkg: "com.android.bluetoothmidiservice", label: "Bluetoothmidiservice", description: "Provides classes for using the MIDI protocol over Bluetooth. Safe to remove if you don't plan to connect MI...", safety: "safe" },
+ { pkg: "com.android.bookmarkprovider", label: "Bookmarkprovider", description: "Only exists for compatibility reasons to prevent apps querying it from getting null cursors they do not exp...", safety: "caution" },
+ { pkg: "com.android.carrierdefaultapp", label: "Carrierdefaultapp", description: "This package is a generic solution that allows carriers to indicate when a device has run OOB(Out Of Balanc...", safety: "caution" },
+ { pkg: "com.android.companiondevicemanager", label: "Companiondevicemanager", description: "Companion Device Manager", safety: "caution" },
+ { pkg: "com.android.dreams.basic", label: "Basic", description: "Daydream (not Google Daydream VR) is an interactive screensaver mode built into Android.", safety: "caution" },
+ { pkg: "com.android.dreams.phototable", label: "Phototable", description: "Photographic screensavers", safety: "safe" },
+ { pkg: "com.android.dreams.phototable.overlay", label: "Overlay", description: "Overlay for the phototable daydream? Overlays are usually themes, but not sure about this one.", safety: "caution" },
+ { pkg: "com.android.egg", label: "Egg", description: "Android's easter egg feature (spam-tap on the android version in the settings)", safety: "safe" },
+ { pkg: "com.android.galaxy4", label: "Galaxy4", description: "Built-in Dynamic wallpaper", safety: "safe" },
+ { pkg: "com.android.htmlviewer", label: "Htmlviewer", description: "Allows apps to load URLs into the WebView, which allows web content to be displayed directly in the app..", safety: "caution" },
+ { pkg: "com.android.magicsmoke", label: "Magicsmoke", description: "\"Magic smoke\" Live wallpaper.", safety: "safe" },
+ { pkg: "com.android.musicvis", label: "Musicvis", description: "Music Visualization Wallpapers", safety: "safe" },
+ { pkg: "com.android.noisefield", label: "Noisefield", description: "\"Noise filed\" live wallpaper.", safety: "safe" },
+ { pkg: "com.android.phasebeam", label: "Phasebeam", description: "\"Phase beam\" live wallpaper", safety: "safe" },
+ { pkg: "com.android.providers.partnerbookmarks", label: "Partnerbookmarks", description: "Provides bookmarks about partners of Google in Chrome.", safety: "safe" },
+ { pkg: "com.android.runintest.ddrtest", label: "Ddrtest", description: "DDR Test", safety: "safe" },
+ { pkg: "com.android.simappdialog", label: "Simappdialog", description: "Sim App Dialog", safety: "caution" },
+ { pkg: "com.android.soundrecorder", label: "Soundrecorder", description: "AOSP Sound recorder. OEMs often use their own solution", safety: "caution" },
+ { pkg: "com.android.stk2", label: "Stk2", description: "SIM toolkit", safety: "caution" },
+ { pkg: "com.android.stk", label: "Stk", description: "SIM toolkit", safety: "caution" },
+ { pkg: "com.android.traceur", label: "Traceur", description: "System Tracing", safety: "safe" },
+ { pkg: "com.android.wallpaper.holospiral", label: "Holospiral", description: "\"Holo spiral\" Live wallpaper.", safety: "caution" },
+ { pkg: "com.android.wallpaper.livepicker.overlay", label: "Overlay", description: "Overlay for live wallpaper picker? Overlays are usually themes, but not sure about this one.", safety: "caution" },
+ { pkg: "com.android.wallpapercropper", label: "Wallpapercropper", description: "Wallpaper cropper.", safety: "caution" },
+ { pkg: "com.example.android.notepad", label: "Notepad", description: "(Bad) notepad app.", safety: "caution" },
+ { pkg: "android.auto_generated_vendor_", label: "Auto Generated Vendor ", description: "Auto generated vendor's stuff for Android Auto (https://www.android.com/intl/en_en/auto/)", safety: "safe" },
+ { pkg: "android.auto_generated_rro__", label: "Auto Generated Rro ", description: "rro = Runtime Resources Overlay.", safety: "safe" },
+ { pkg: "com.android.apps.tag", label: "Tag", description: "Support for NFC tags interactions (5 permissions, Contacts/Phone On by default).", safety: "caution" },
+ { pkg: "com.android.backupconfirm", label: "Backupconfirm", description: "Restores Google settings with Google Backup restore.", safety: "caution" },
{ pkg: "com.android.bio.face.service", label: "Service", description: "Handles facial regognition.", safety: "caution" },
- { pkg: "com.android.bips", label: "Bips", description: "Disabling this can cause Settings app to crash and general device slowness. Tested on Sony Xperia X, Fairphone 4 and Lenovo Yoga tab. Default Print Service. Generic printing service that should work with most printers. Will break printing functionality if disabled, but other replacement print services can be downloaded from the Play Store.", safety: "caution" },
- { pkg: "com.android.bluetooth", label: "Bluetooth", description: "Bluetooth service Handles all Bluetooth functionality including device discovery, pairing, and data transfer. Removing this will completely break Bluetooth functionality on the device.", safety: "caution" },
- { pkg: "com.android.bluetooth.overlay.common", label: "Common", description: "Overlays are usually themes.", safety: "caution" },
- { pkg: "com.android.bluetoothmidiservice", label: "Bluetoothmidiservice", description: "Provides classes for using the MIDI protocol over Bluetooth. Safe to remove if you don't plan to connect MIDI devices.", safety: "caution" },
- { pkg: "com.android.bookmarkprovider", label: "Bookmarkprovider", description: "Only exists for compatibility reasons to prevent apps querying it from getting null cursors they do not expect and crash. Disabling this on LDPlayer emulator crashes the default browser (`com.android.browser`).", safety: "caution" },
- { pkg: "com.android.browser", label: "Browser", description: "Mi Browser and browser for the LDPlayer emulator You really should use something else. FYI https://www.xda-developers.com/xiaomi-mi-web-browser-pro-mint-collecting-browsing-data-incognito-mode/", safety: "caution" },
- { pkg: "com.android.browser.provider", label: "Provider", description: "Old package (2014). Chrome bookmarks provider? Injects Picasa URL (http://picasaweb.google.com) in the Chrome browser's bookmarks in the browser.", safety: "caution" },
- { pkg: "com.android.calculator2", label: "Calculator2", description: "AOSP calculator app NOTE: Some OEMs (like Huawei & Xiaomi) use the same package name for their app.", safety: "caution" },
- { pkg: "com.android.calendar", label: "Calendar", description: "AOSP Calendar app NOTE: Some OEMs (like Huawei & Xiaomi) use the same package name for their app.", safety: "caution" },
- { pkg: "com.android.calllogbackup", label: "Calllogbackup", description: "Call Logs Backup/Restore feature. Runs in the background. https://android.googlesource.com/platform/packages/providers/CallLogProvider/+/refs/heads/master/src/com/android/calllogbackup", safety: "caution" },
- { pkg: "com.android.camera", label: "Camera", description: "The stock AOSP camera app on many phones. However, on some Xiaomi phones, it is actually the Xiaomi Camera app. Deleting this will result in no camera app. Try Open Camera as an open source alternative: https://play.google.com/store/apps/details?id=net.sourceforge.opencamera&hl=en&gl=US", safety: "caution" },
- { pkg: "com.android.captiveportallogin", label: "Captiveportallogin", description: "Support for captive portal: https://en.wikipedia.org/wiki/Captive_portal A captive portal login is a web page where users have to log in or accept terms of use. Common for public wifi networks.", safety: "caution" },
- { pkg: "com.android.carrierconfig", label: "Carrierconfig", description: "Dynamically provides configuration for the carrier network. The config contains: Roaming networks, Voicemail settings, SMS/MMS settings, VoLTE/IMS settings, and more. If a carrier app is installed it will be queried for overrides to these settings. Seems to run on boot and when you swap SIM? https://source.android.com/devices/tech/config/carrier https://cs.android.com/android/platform/superproject/+/master:packages/apps/CarrierConfig/src/com/android/carrierconfig/DefaultCarrierConfigService.java", safety: "caution" },
- { pkg: "com.android.carrierconfig.overlay.common", label: "Common", description: "Needed for (com.android.carrierconfig).", safety: "caution" },
- { pkg: "com.android.carrierdefaultapp", label: "Carrierdefaultapp", description: "This package is a generic solution that allows carriers to indicate when a device has run OOB(Out Of Balance). Android devices that are OOB need carrier mitigation protocols to allow select data through(like to notify users their data/balance is out, or allow them to buy more data through the carrier app). Will probably break that functionality if disabled, but is otherwise safe to disable(should only affect users that are out of data/balance?). https://source.android.com/devices/tech/connect/oob-users", safety: "caution" },
- { pkg: "com.android.cellbroadcastreceiver", label: "Cellbroadcastreceiver", description: "Cell broadcast is designed to deliver messages to multiple users in an area. This is notably used by ISPs to send Emergency/Government alerts. Runs at boot time and is also triggered after exiting airplane mode. https://en.wikipedia.org/wiki/Cell_Broadcast https://www.androidcentral.com/amber-alerts-and-android-what-you-need-know https://android.googlesource.com/platform/packages/apps/CellBroadcastReceiver/+/refs/heads/master/src/com/android/cellbroadcastreceiver", safety: "caution" },
+ { pkg: "com.android.bluetooth", label: "Bluetooth", description: "Bluetooth service", safety: "caution" },
+ { pkg: "com.android.browser", label: "Browser", description: "Mi Browser", safety: "caution" },
+ { pkg: "com.android.browser.provider", label: "Provider", description: "Old package (2014). Chrome bookmarks provider? Injects Picasa URL (http://picasaweb.google.com) in the Chro...", safety: "caution" },
+ { pkg: "com.android.calendar", label: "Calendar", description: "AOSP Calendar app", safety: "caution" },
+ { pkg: "com.android.calculator2", label: "Calculator2", description: "AOSP calculator app", safety: "caution" },
+ { pkg: "com.android.calllogbackup", label: "Calllogbackup", description: "Call Logs Backup/Restore feature.", safety: "safe" },
+ { pkg: "com.android.captiveportallogin", label: "Captiveportallogin", description: "Support for captive portal: https://en.wikipedia.org/wiki/Captive_portal", safety: "caution" },
+ { pkg: "com.android.carrierconfig", label: "Carrierconfig", description: "Dynamically provides configuration for the carrier network.", safety: "caution" },
+ { pkg: "com.android.cellbroadcastreceiver", label: "Cellbroadcastreceiver", description: "Cell broadcast is designed to deliver messages to multiple users in an area.", safety: "caution" },
+ { pkg: "com.android.contacts", label: "Contacts", description: "AOSP Contacts", safety: "caution" },
+ { pkg: "com.android.cts.priv.ctsshim", label: "Ctsshim", description: "Compatibility Test Service. Verifies certain upgrade scenarios. Disabling could mess with OTA updates.", safety: "caution" },
+ { pkg: "com.android.deskclock", label: "Deskclock", description: "AOSP Clock app", safety: "caution" },
+ { pkg: "com.android.email", label: "Email", description: "Xiaomi closed-source email app based on the AOSP version. Really confusing package name.", safety: "caution" },
+ { pkg: "com.android.emergency", label: "Emergency", description: "Emergency rescue", safety: "caution" },
+ { pkg: "com.android.exchange", label: "Exchange", description: "Handles all aspects of starting, maintaining, and stopping the various sync adapters for the email accounts.", safety: "caution" },
+ { pkg: "com.android.facelock", label: "Facelock", description: "Face Unlock", safety: "caution" },
+ { pkg: "com.android.gallery3d", label: "Gallery3D", description: "Xiaomi Gallery app", safety: "caution" },
+ { pkg: "com.android.hotspot2", label: "Hotspot2", description: "Provides wifi tethering (lets you share your mobile device's Internet connection with other devices)", safety: "caution" },
+ { pkg: "com.android.inputdevices", label: "Inputdevices", description: "Only contains a receiver named \"Android keyboard\", possibly for an external keyboard.", safety: "caution" },
+ { pkg: "com.android.inputmethod.latin", label: "Latin", description: "AOSP keyboard (not Google Keyboard)", safety: "caution" },
+ { pkg: "com.android.internal.display.cutout.emulation.corner", label: "Corner", description: "Display cutout variant", safety: "caution" },
+ { pkg: "com.android.internal.display.cutout.emulation.double", label: "Double", description: "Display cutout variant", safety: "caution" },
+ { pkg: "com.android.internal.display.cutout.emulation.hole", label: "Hole", description: "Display cutout variant", safety: "caution" },
+ { pkg: "com.android.internal.display.cutout.emulation.noCutout", label: "Nocutout", description: "Display cutout variant", safety: "caution" },
+ { pkg: "com.android.internal.display.cutout.emulation.tall", label: "Tall", description: "Display cutout variant", safety: "caution" },
+ { pkg: "com.android.internal.display.cutout.emulation.waterfall", label: "Waterfall", description: "Display cutout variant", safety: "caution" },
+ { pkg: "com.android.internal.systemui.navbar.gestural", label: "Gestural", description: "Gesture navigation", safety: "caution" },
+ { pkg: "com.android.internal.systemui.navbar.gestural_extra_wide_back", label: "Gestural Extra Wide Back", description: "Enables a setting increasing how far you need to move your finger to trigger the back gesture.", safety: "caution" },
+ { pkg: "com.android.internal.systemui.navbar.gestural_narrow_back", label: "Gestural Narrow Back", description: "Enables a setting decreasing how far you need to move your finger to trigger the back gesture.", safety: "caution" },
+ { pkg: "com.android.internal.systemui.navbar.gestural_wide_back", label: "Gestural Wide Back", description: "Enables a setting increasing how far you need to move your finger to trigger the back gesture.", safety: "caution" },
+ { pkg: "com.android.internal.systemui.navbar.twobutton", label: "Twobutton", description: "Enables a setting for using just 2 buttons in the system navbar?", safety: "caution" },
+ { pkg: "com.android.internal.systemui.navbar.threebutton", label: "Threebutton", description: "The default system navbar? It's what you use when you don't use gesture navigation.", safety: "caution" },
+ { pkg: "com.android.musicfx", label: "Musicfx", description: "Audio EQ(equalizer). Some 3rd-party music apps can use it to provide you EQ features.", safety: "caution" },
+ { pkg: "com.android.mms", label: "Mms", description: "AOSP SMS app.", safety: "safe" },
+ { pkg: "com.android.nfc", label: "Nfc", description: "NFC Service", safety: "caution" },
+ { pkg: "com.android.ons", label: "Ons", description: "Opportunistic Network Service", safety: "caution" },
+ { pkg: "com.android.managedprovisioning", label: "Managedprovisioning", description: "Work Setup/Work profile setup", safety: "caution" },
+ { pkg: "com.android.otaprovisioningclient", label: "Otaprovisioningclient", description: "OTA Access Point Configuration", safety: "caution" },
+ { pkg: "com.android.pacprocessor", label: "Pacprocessor", description: "PAC (Proxy Auto-Config) is a file which defines how an app can automatically find the correct proxy server ...", safety: "caution" },
+ { pkg: "com.android.phone.recorder", label: "Recorder", description: "AOSP Call recorder function. Most of the time OEM use their own code for this.", safety: "caution" },
+ { pkg: "com.android.printservice.recommendation", label: "Recommendation", description: "Recommends 3rd-party print services apps in the PlayStore. Printing will probably still works without (by u...", safety: "caution" },
+ { pkg: "com.android.printspooler", label: "Printspooler", description: "Print Spooler", safety: "caution" },
+ { pkg: "com.android.providers.blockednumber", label: "Blockednumber", description: "Handles blocked number storage.", safety: "caution" },
+ { pkg: "com.android.providers.calendar", label: "Calendar", description: "Calendar Storage", safety: "caution" },
+ { pkg: "com.android.providers.drm", label: "Drm", description: "DRM Protected Content Storage", safety: "caution" },
+ { pkg: "com.android.providers.userdictionary", label: "Userdictionary", description: "Handles user dictionary for keyboard apps.", safety: "caution" },
+ { pkg: "com.android.proxyhandler", label: "Proxyhandler", description: "Handles proxy config.", safety: "caution" },
+ { pkg: "com.android.quicksearchbox", label: "Quicksearchbox", description: "Google quick search box.", safety: "safe" },
+ { pkg: "com.android.se", label: "Se", description: "SecureElementApplication", safety: "caution" },
+ { pkg: "com.android.settings.intelligence", label: "Intelligence", description: "Settings Suggestions", safety: "caution" },
+ { pkg: "com.android.sharedstoragebackup", label: "Sharedstoragebackup", description: "Used during backup. Backs up the shared storage? (files accessible by every app with STORAGE permission)", safety: "caution" },
+ { pkg: "com.android.smspush", label: "Smspush", description: "This service is used to push/send specially formatted SMS messages that display an alert message to the use...", safety: "caution" },
+ { pkg: "com.android.systemui.theme.dark", label: "Dark", description: "Enables you to use Android dark theme.", safety: "caution" },
+ { pkg: "com.android.theme.icon_pack.rounded.systemui", label: "Systemui", description: "Android icons pack [Rounded].", safety: "caution" },
+ { pkg: "com.android.timezone.updater", label: "Updater", description: "Time Zone Updater", safety: "caution" },
+ { pkg: "com.android.voicedialer", label: "Voicedialer", description: "AOSP Voice dialer. Lets you call someone or open an app with your voice from the dialer.", safety: "caution" },
+ { pkg: "com.android.wallpaperpicker", label: "Wallpaperpicker", description: "Enables you to pick a wallpaper.", safety: "caution" },
+ { pkg: "com.android.wallpaperbackup", label: "Wallpaperbackup", description: "Backup your wallapaper and load this backup instead of the original file in case you delete it.", safety: "caution" },
+ { pkg: "com.android.webview", label: "Webview", description: "AOSP webview", safety: "caution" },
+ { pkg: "com.android.certinstaller", label: "Certinstaller", description: "Certificate installer", safety: "keep" },
+ { pkg: "com.android.defcontainer", label: "Defcontainer", description: "Package Access Helper", safety: "keep" },
+ { pkg: "com.android.documentsui", label: "Documentsui", description: "Same as com.google.android.documentsui? Here's that description:", safety: "caution" },
+ { pkg: "com.android.documentsui.a_overlay", label: "A Overlay", description: "Some overlay for for \"Files\"?", safety: "caution" },
+ { pkg: "com.android.dynsystem", label: "Dynsystem", description: "Dynamic System Updates", safety: "keep" },
+ { pkg: "com.android.externalstorage", label: "Externalstorage", description: "Needed by apps to access external storage (like memory cards).", safety: "caution" },
+ { pkg: "com.android.keychain", label: "Keychain", description: "Enables apps to use system wide credential KeyChain (shared credentials between apps)", safety: "keep" },
+ { pkg: "com.android.localtransport", label: "Localtransport", description: "Backup transport for stashing stuff into a known location on disk, and later restoring from there.", safety: "keep" },
+ { pkg: "com.android.location.fused", label: "Fused", description: "Manages underlying location technologies, such as GPS and Wi-Fi.", safety: "keep" },
+ { pkg: "com.android.mms.service", label: "Service", description: "Provides support for sending MMS.", safety: "keep" },
+ { pkg: "com.android.mtp", label: "Mtp", description: "MTP Host", safety: "keep" },
+ { pkg: "com.android.packageinstaller", label: "Packageinstaller", description: "Handles installation, upgrade, and removal of applications.", safety: "keep" },
+ { pkg: "com.android.provision", label: "Provision", description: "Provisioning is the process of setting up a network connection that will allow new users.", safety: "keep" },
+ { pkg: "com.android.phone.a_overlay", label: "A Overlay", description: "AOSP code for dialer app features.", safety: "keep" },
+ { pkg: "com.android.providers.applications", label: "Applications", description: "Provides a list of installed applications.", safety: "keep" },
+ { pkg: "com.android.providers.contacts", label: "Contacts", description: "Contacts Storage", safety: "caution" },
+ { pkg: "com.android.providers.downloads", label: "Downloads", description: "Downloads Manager", safety: "keep" },
+ { pkg: "com.android.providers.downloads.ui", label: "Ui", description: "Downloads", safety: "keep" },
+ { pkg: "com.android.providers.media", label: "Media", description: "Provider of media files (images, videos and such).", safety: "caution" },
+ { pkg: "com.android.providers.settings", label: "Settings", description: "Provider for settings app data.", safety: "keep" },
+ { pkg: "com.android.providers.telephony", label: "Telephony", description: "Provider for telephony data.", safety: "keep" },
+ { pkg: "com.android.server.telecom", label: "Telecom", description: "Manages calls via your network provider or SIM and controls the phone modem?", safety: "keep" },
+ { pkg: "com.android.server.telecom.a_overlay", label: "A Overlay", description: "Overlay for com.android.server.telecom?", safety: "keep" },
+ { pkg: "com.android.settings", label: "Settings", description: "AOSP Settings app.", safety: "keep" },
+ { pkg: "com.android.shell", label: "Shell", description: "Shell", safety: "keep" },
+ { pkg: "com.android.statementservice", label: "Statementservice", description: "Intent Filter Verification Service", safety: "keep" },
+ { pkg: "com.android.storagemanager", label: "Storagemanager", description: "Storage manager (Maintenance/Storage panel in the settings)", safety: "keep" },
+ { pkg: "com.android.systemui", label: "Systemui", description: "Everything you see in Android that's not an app. User interface of Android", safety: "keep" },
+ { pkg: "com.android.vpndialogs", label: "Vpndialogs", description: "Provide VPN support to Android", safety: "caution" },
+ { pkg: "com.android.protips", label: "Protips", description: "Home screen tips", safety: "safe" },
+ { pkg: "com.android.dialer", label: "Dialer", description: "AOSP Dialer/Phone app", safety: "caution" },
{ pkg: "com.android.cellbroadcastreceiver.basiccolorblack.overlay", label: "Overlay", description: "Dark theme overlay for com.android.cellbroadcastreceiver", safety: "caution", deps: ["com.android.cellbroadcastreceiver"] },
{ pkg: "com.android.cellbroadcastreceiver.basiccolorwhite.overlay", label: "Overlay", description: "Light theme overlay for com.android.cellbroadcastreceiver", safety: "caution", deps: ["com.android.cellbroadcastreceiver"] },
- { pkg: "com.android.cellbroadcastreceiver.module", label: "Module", description: "Same as com.android.cellbroadcastreceiver. Cell broadcasting used to send emergency alerts. https://en.wikipedia.org/wiki/Cell_Broadcast.", safety: "caution", deps: ["com.android.cellbroadcastreceiver"] },
- { pkg: "com.android.cellbroadcastreceiver.overlay.common", label: "Common", description: "In code I found unused things: show_brazil_settings, show_cmas_settings, show_etws_settings. it's unavailable and useless.", safety: "caution" },
- { pkg: "com.android.cellbroadcastservice", label: "Cellbroadcastservice", description: "is designed to deliver messages to multiple users in an area. This is notably used by ISPs to send Emergency/Government alerts. Runs in the background. https://en.wikipedia.org/wiki/Cell_Broadcast https://www.androidcentral.com/amber-alerts-and-android-what-you-need-know", safety: "caution" },
- { pkg: "com.android.certinstaller", label: "Certinstaller", description: "Certificate installer Used for accepting and revoking Internet certificates. Certificates identify ownership of public keys, for use in secure communications. Breaks Wi-Fi if disabled.", safety: "keep" },
- { pkg: "com.android.companiondevicemanager", label: "Companiondevicemanager", description: "Companion Device Manager This handles connections to nearby (usually not remote) devices, desktop Operating Systems, etc... WARNING: removing this package may result in the inability to read the SD card from your computer's file manager (via USB).", safety: "caution" },
- { pkg: "com.android.connectivity.resources", label: "Resources", description: "Network connectivity resources. Cause BOOTLOOP.", safety: "keep" },
- { pkg: "com.android.contacts", label: "Contacts", description: "AOSP Contacts Some OEMs(for example Xiaomi) use the same package name for their app.", safety: "caution" },
- { pkg: "com.android.credentialmanager", label: "Credentialmanager", description: "Credential Manager Manages with Passwords, passkeys.", safety: "caution" },
- { pkg: "com.android.cts.ctsshim", label: "Ctsshim", description: "Compatibility Test Suite Used by manufacturer to test your copy of the device for performance. It just exists and doesn't run in background. More info: https://source.android.com/docs/compatibility/cts", safety: "caution" },
- { pkg: "com.android.cts.priv.ctsshim", label: "Ctsshim", description: "Compatibility Test Service. Verifies certain upgrade scenarios. Disabling could mess with OTA updates. A shim is basically a compatibility layer for an API, that makes sure anything that uses the API does so correctly. https://android.googlesource.com/platform/frameworks/base/+/51e458e/packages/CtsShim https://en.wikipedia.org/wiki/Shim_(computing)", safety: "caution" },
- { pkg: "com.android.defcontainer", label: "Defcontainer", description: "Package Access Helper Determines the recommended install location for packages and if there is enough free space for the package.", safety: "keep" },
- { pkg: "com.android.deskclock", label: "Deskclock", description: "AOSP Clock app Some OEMs (like Huawei & Xiaomi) use the same package name for their app.", safety: "caution" },
- { pkg: "com.android.devicelockcontroller", label: "Devicelockcontroller", description: "This app can't be uninstalled or disabled. Can restrict this device if the owner doesn't make payments per month for the new phone.", safety: "keep" },
- { pkg: "com.android.dialer", label: "Dialer", description: "AOSP Dialer/Phone app Default phone app on some older phones(like Oneplus 3). WARNING: Uninstalling it may break the entire phone app; emergency calls; SIM card detection, and the software update screen on Samsung.", safety: "caution" },
- { pkg: "com.android.dialer.basiccolorblack.overlay", label: "Overlay", description: "Dark theme overlay for AOSP Dialer?", safety: "caution" },
- { pkg: "com.android.dialer.basiccolorwhite.overlay", label: "Overlay", description: "Light theme overlay for AOSP Dialer?", safety: "caution" },
- { pkg: "com.android.documentsui", label: "Documentsui", description: "Occasionally runs in the background. File selector for other apps. Storage Access Framework (SAF) will break if this is disabled.", safety: "keep" },
- { pkg: "com.android.documentsui.a_overlay", label: "A_overlay", description: "Some overlay for for\"Files\"?", safety: "caution" },
- { pkg: "com.android.dreams.basic", label: "Basic", description: "Daydream (not Google Daydream VR) is an interactive screensaver mode built into Android. With it turned on, it activates and shows the screensaver of your choice when you dock or charge your device. Can display the time, weather, quotes, photos, news, tweets, or anything else Daydream app developers can think of. https://developer.android.com/reference/android/service/dreams/DreamService", safety: "caution" },
- { pkg: "com.android.dreams.phototable", label: "Phototable", description: "Photographic screensavers Daydream stuff, see com.android.dreams.basic", safety: "caution" },
- { pkg: "com.android.dreams.phototable.overlay", label: "Overlay", description: "Overlay for the phototable daydream? Overlays are usually themes, but not sure about this one.", safety: "caution" },
- { pkg: "com.android.dynsystem", label: "Dynsystem", description: "Dynamic System Updates Runs on boot, but doesn't seem to run in the background beyond that. Treble gives the ability to boot an AOSP Generic System Image (GSI) on any supported device. Dynamic System Updates allows to boot into a Generic System Image (GSI) without interfering with the current installation. That means the bootloader doesn’t need to be unlocked and the user data doesn’t need to be wiped. https://developer.android.com/topic/dsu", safety: "caution" },
- { pkg: "com.android.egg", label: "Egg", description: "Android's easter egg feature (spam-tap on the android version in the settings)", safety: "safe" },
- { pkg: "com.android.email", label: "Email", description: "Xiaomi closed-source email app based on the AOSP version. Really confusing package name.", safety: "safe" },
- { pkg: "com.android.email.partnerprovider", label: "Partnerprovider", description: "Lets Google partners (OEM in most of the case) to customize the default email settings. The manufacturer often changes the default signature displayed at the end of each of your mail (e.g\"Sent from my Nokia phone\")", safety: "safe" },
- { pkg: "com.android.emergency", label: "Emergency", description: "Emergency rescue Shows emergency info on lockscreen and power menu. Safe to disable if you don't want it. Loads on device unlock/lockscreen and power menu, so it's basically always cached in RAM, but shouldn't use much/any battery, so the main thing gained from disabling this package is the ~9MB RAM it uses. Removing this will break Safety and Emergency in Settings and you will miss SOS alerts.", safety: "caution" },
- { pkg: "com.android.emergency.basiccolorblack.overlay", label: "Overlay", description: "Dark theme for Emergency rescue?", safety: "caution" },
- { pkg: "com.android.emergency.basiccolorwhite.overlay", label: "Overlay", description: "Dark theme for Emergency rescue?", safety: "caution" },
- { pkg: "com.android.exchange", label: "Exchange", description: "Handles all aspects of starting, maintaining, and stopping the various sync adapters for the email accounts. Is it only needed for the email stock app?", safety: "caution" },
- { pkg: "com.android.ext.adservices.api", label: "Api", description: "Another component of Android AdServices. Introduced in Android 14. https://source.android.com/docs/core/ota/modular-system/adservices", safety: "safe" },
- { pkg: "com.android.externalstorage", label: "Externalstorage", description: "Needed by apps to access external storage (like memory cards).", safety: "caution" },
- { pkg: "com.android.facelock", label: "Facelock", description: "Face Unlock Safe to remove if you don't use Face Unlock.", safety: "caution" },
- { pkg: "com.android.federatedcompute.services", label: "Services", description: "FederatedCompute Another component of OnDevicePersonalization. But this app learns things about users. Introduced in Android 14(`com.google.android.federatedcompute` Introduced in Android 13). https://source.android.com/docs/core/ota/modular-system/ondevicepersonalization", safety: "safe" },
- { pkg: "com.android.fmradio", label: "Fmradio", description: "FM Radio Plug in Head phones & listen to the Radio! Uninstalling will break FM Radio until reinstalled, and no other FM apps can be downloaded from app stores", safety: "caution" },
- { pkg: "com.android.frameworkhwext.dark", label: "Dark", description: "Required components of the androidhwext. Basic functionality of Huawei Phones.", safety: "keep" },
- { pkg: "com.android.frameworkhwext.honor", label: "Honor", description: "Required components of the androidhwext. Basic functionality of Huawei Phones.", safety: "keep" },
- { pkg: "com.android.frameworkres.overlay", label: "Overlay", description: "Runtime Resource Overlay This framework provides the ability to replace application resources while the application is running. More info: https://source.android.com/docs/core/runtime/rros", safety: "caution" },
- { pkg: "com.android.galaxy4", label: "Galaxy4", description: "Built-in Dynamic wallpaper", safety: "safe" },
- { pkg: "com.android.gallery3d", label: "Gallery3d", description: "Huawei Gallery app and the AOSP Gallery app It may appear on Chinese OEMs as documented.", safety: "caution" },
- { pkg: "com.android.health.connect.backuprestore", label: "Backuprestore", description: "Backups data from Health Connect app.", safety: "caution" },
- { pkg: "com.android.healthconnect.controller", label: "Controller", description: "Health Connect Manage the health and fitness data on your phone, and control which apps can access it.", safety: "caution" },
- { pkg: "com.android.hotspot2", label: "Hotspot2", description: "Provides wifi tethering (lets you share your mobile device's Internet connection with other devices) https://en.wikipedia.org/wiki/Tethering)", safety: "caution" },
- { pkg: "com.android.hotspot2.osulogin", label: "Osulogin", description: "The sole purpose of the OsuLogin App is to provision credentials from the Wi-Fi network to the device and allow them to connect to Wi-Fi Hotspot 2.0. See https://hackanons.com/2021/07/osulogin-android-everything-you-need-to-know.html for more information.", safety: "caution" },
- { pkg: "com.android.hotwordenrollment.okgoogle", label: "Okgoogle", description: "\"OK Google\" detection service.", safety: "safe" },
- { pkg: "com.android.hotwordenrollment.xgoogle", label: "Xgoogle", description: "\"OK Google\" detection service.", safety: "safe" },
- { pkg: "com.android.htmlviewer", label: "Htmlviewer", description: "Allows apps to load URLs into the WebView, which allows web content to be displayed directly in the app. WARNING: Removing this causes a bootloop on some MIUI 12.5.4+ phones.", safety: "caution" },
- { pkg: "com.android.inputdevices", label: "Inputdevices", description: "Only contains a receiver named\"Android keyboard\", possibly for an external keyboard. Locates available keyboard layouts. Apps can offer additional keyboard layouts to the user by declaring a suitable broadcast receiver in their manifest. WARNING: If you are using the default Samsung keyboard, then deleting this package on some phones may cause the keyboard to completely stop working. You may get locked out of your phone if the only method to authenticate yourself is using password.", safety: "caution" },
- { pkg: "com.android.inputmethod.latin", label: "Latin", description: "The AOSP keyboard app Mame sure you have another installed before you disable.", safety: "caution" },
- { pkg: "com.android.intentresolver", label: "Intentresolver", description: "'Share' functionality will be disabled after uninstalling this package on Android 14 and up. Additionally, motion photos will become broken.", safety: "caution" },
- { pkg: "com.android.internal.display.cutout.emulation.corner", label: "Corner", description: "Display cutout variant https://developer.android.com/guide/topics/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.display.cutout.emulation.double", label: "Double", description: "Display cutout variant https://developer.android.com/guide/topics/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.display.cutout.emulation.hole", label: "Hole", description: "Display cutout variant https://developer.android.com/guide/topics/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.display.cutout.emulation.narrow", label: "Narrow", description: "Display cutout variant https://developer.android.com/develop/ui/views/layout/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.display.cutout.emulation.noCutout", label: "NoCutout", description: "Display cutout variant https://developer.android.com/guide/topics/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.display.cutout.emulation.tall", label: "Tall", description: "Display cutout variant https://developer.android.com/guide/topics/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.display.cutout.emulation.waterfall", label: "Waterfall", description: "Display cutout variant https://developer.android.com/guide/topics/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.display.cutout.emulation.wide", label: "Wide", description: "Display cutout variant https://developer.android.com/guide/topics/display-cutout https://source.android.com/devices/tech/display/display-cutouts Cause bootloop after removal.", safety: "keep" },
- { pkg: "com.android.internal.systemui.navbar.gestural", label: "Gestural", description: "Gesture navigation Lets you use swipes and other actions to navigate your device, rather than buttons. https://android-developers.googleblog.com/2019/08/gesture-navigation-backstory.html", safety: "caution" },
- { pkg: "com.android.internal.systemui.navbar.gestural_extra_wide_back", label: "Gestural_extra_wide_back", description: "Enables a setting increasing how far you need to move your finger to trigger the back gesture.", safety: "caution" },
- { pkg: "com.android.internal.systemui.navbar.gestural_narrow_back", label: "Gestural_narrow_back", description: "Enables a setting decreasing how far you need to move your finger to trigger the back gesture.", safety: "caution" },
- { pkg: "com.android.internal.systemui.navbar.gestural_wide_back", label: "Gestural_wide_back", description: "Enables a setting increasing how far you need to move your finger to trigger the back gesture.", safety: "caution" },
- { pkg: "com.android.internal.systemui.navbar.hidegestural", label: "Hidegestural", description: "Allows 'Gesture hint' to be disabled in Navigation bar > Swipe gestures.", safety: "caution" },
- { pkg: "com.android.internal.systemui.navbar.threebutton", label: "Threebutton", description: "The default system navbar? It's what you use when you don't use gesture navigation.", safety: "caution" },
- { pkg: "com.android.internal.systemui.navbar.transparent", label: "Transparent", description: "Allows 'Transparent navigation bar' to be enabled in Developer options.", safety: "caution" },
- { pkg: "com.android.internal.systemui.navbar.twobutton", label: "Twobutton", description: "Enables a setting for using just 2 buttons in the system navbar?", safety: "caution" },
- { pkg: "com.android.internal.systemui.onehanded.gestural", label: "Gestural", description: "one-handed mode, which can be found in the settings. one-handed mode will not work. Safe to remove if you dont use these setting.", safety: "caution" },
- { pkg: "com.android.keychain", label: "Keychain", description: "Enables apps to use system wide credential KeyChain (shared credentials between apps) https://security.stackexchange.com/questions/216716/android-keychain-what-is-a-system-wide-credential", safety: "keep" },
- { pkg: "com.android.launcher3", label: "Launcher3", description: "The AOSP launcher. OEMs frequently use this to deliver their own launcher. You need to install another launcher before removing it.", safety: "caution" },
- { pkg: "com.android.localtransport", label: "Localtransport", description: "Backup transport for stashing stuff into a known location on disk, and later restoring from there. Needed for storing backup data locally on a device? This package also provides the backup confirmation UI. https://developer.android.com/guide/topics/data/testingbackup", safety: "keep" },
- { pkg: "com.android.location.fused", label: "Fused", description: "Manages underlying location technologies, such as GPS and Wi-Fi. Uninstalling it may unlikely cause a bootloop, although, you probably shouldn't uninstall it unless you deleted Google Play Services, and don't have a GPS sensor.", safety: "caution" },
- { pkg: "com.android.magicsmoke", label: "Magicsmoke", description: "\"Magic smoke\" Live wallpaper.", safety: "safe" },
- { pkg: "com.android.managedprovisioning", label: "Managedprovisioning", description: "Work Setup/Work profile setup Manages Android user account profiles. The typical use-case is setting up a corporate profile that is controlled by the employer on an employee's personal device, to keep personal and work data separate. https://support.google.com/work/android/answer/6191949? https://developers.google.com/android/work/requirements/work-profile Needed for sandbox's apps like Shelter/Island.", safety: "caution" },
- { pkg: "com.android.mms", label: "Mms", description: "AOSP SMS app. Occasionally runs in the background. Some OEMs (like Huawei, Xiaomi, Vivo, Oppo) use the same package name for their app. QKSMS is a good FOSS replacement: https://f-droid.org/en/packages/com.moez.QKSMS/", safety: "caution" },
- { pkg: "com.android.mms.service", label: "Service", description: "Provides support for sending MMS. It doesn't cause bootloop.", safety: "caution" },
- { pkg: "com.android.modulemetadata", label: "Modulemetadata", description: "It's used to manage and store metadata about installed modules, and is accessed by the system server. Breaks some core functionality if disabled.", safety: "keep" },
- { pkg: "com.android.mtp", label: "Mtp", description: "MTP Host Handles MTP(Media Transfer Protocol), a protocol for transfering files between the device and a connected PC.", safety: "keep" },
- { pkg: "com.android.musicfx", label: "Musicfx", description: "Audio EQ(equalizer). Some 3rd-party music apps can use it to provide you EQ features.", safety: "caution" },
- { pkg: "com.android.musicvis", label: "Musicvis", description: "Music Visualization Wallpapers", safety: "safe" },
- { pkg: "com.android.nearby.halfsheet", label: "Halfsheet", description: "Useless frameworks to Wi-Fi connections, USB tethering, auto, usage. Every version has random code and the app is not running in the background.", safety: "safe" },
- { pkg: "com.android.networkstack.inprocess", label: "Inprocess", description: "Related to the Network Stack module, which is an updatable Mainline module that ensures Android can adapt to evolving network standards and allows for interoperability with new implementations https://source.android.com/docs/core/ota/modular-system/networking", safety: "keep" },
- { pkg: "com.android.networkstack.inprocess.overlay", label: "Overlay", description: "Related to the Network Stack module, which is an updatable Mainline module that ensures Android can adapt to evolving network standards and allows for interoperability with new implementations https://source.android.com/docs/core/ota/modular-system/networking", safety: "keep" },
- { pkg: "com.android.networkstack.overlay", label: "Overlay", description: "WiFi will not work after remove.", safety: "keep" },
- { pkg: "com.android.networkstack.permissionconfig", label: "Permissionconfig", description: "Network Stack Permission Configuration Defines a permission that enables modules to perform network-related tasks. https://source.android.com/devices/architecture/modular-system/networking", safety: "keep" },
- { pkg: "com.android.networkstack.tethering.inprocess.overlay", label: "Overlay", description: "Related to the Tethering module, which allows an Android device to share its internet connection with other connected client devices. This package contains classes and components that are used for in-process overlay functionality within the Tethering module. https://source.android.com/docs/core/ota/modular-system/tethering", safety: "caution" },
- { pkg: "com.android.networkstack.tethering.overlay", label: "Overlay", description: "Component of the Network, Tethering module. Package is not a publicly documented.", safety: "caution" },
- { pkg: "com.android.nfc", label: "Nfc", description: "NFC Service Runs in the background as part of the System. I assume NFC breaks when disabled. Will probably run even if disabled, like most system packages. So disabling/uninstalling is probably pointless.", safety: "caution" },
- { pkg: "com.android.noisefield", label: "Noisefield", description: "\"Noise filed\" live wallpaper.", safety: "safe" },
- { pkg: "com.android.ondevicepersonalization.services", label: "Services", description: "OnDevicePersonalization. Another thing to AdServices privacy sandbox. Introduced in Android 13. https://source.android.com/docs/core/ota/modular-system/ondevicepersonalization", safety: "safe" },
- { pkg: "com.android.onetimeinitializer", label: "Onetimeinitializer", description: "Needed for first time setup. Due to how UAD works, the package will be restored on factory reset, so it's safe to disable. No purpose to keep it after setup. Better to disable; not uninstall", safety: "safe" },
- { pkg: "com.android.ons", label: "Ons", description: "Opportunistic Network Service From what I can glean in the source code it seems like this provides a list of available networks and assigns each network a priority. I've never seen it run on its own, so this might be part of some automatic network switching setting that I have turned off. https://cs.android.com/android/platform/superproject/+/master:packages/services/AlternativeNetworkAccess/src/com/android/ons/OpportunisticNetworkService.java https://developer.android.com/reference/android/telephony/AvailableNetworkInfo https://cs.android.com/android/platform/superproject/+/master:frameworks/base/telephony/java/android/telephony/AvailableNetworkInfo.java", safety: "caution" },
- { pkg: "com.android.otaprovisioningclient", label: "Otaprovisioningclient", description: "OTA Access Point Configuration OTA (Over the air) is the method used by OEMs to push updates to your device. An OTA access point is used to run system software updates over a special gateway. This package is most likely customized by your OEM.", safety: "caution" },
- { pkg: "com.android.overlay.circletosearch", label: "Circletosearch", description: "An overlay likely deeply tied with system ui, because it causes a soft brick (all system apps suddenly crashing and inability to launch any app or process after that) on HyperOS 2.0. Will most likely also bootloop your device. Totally NOT safe to delete.", safety: "keep" },
- { pkg: "com.android.overlay.systemui", label: "Systemui", description: "On some phones, it is an overlay to app\"com.google.android.apps.safetyhub\". Check out this app code and think about it.", safety: "caution" },
- { pkg: "com.android.packageinstaller", label: "Packageinstaller", description: "Handles installation, upgrade, and removal of applications.", safety: "keep" },
- { pkg: "com.android.pacprocessor", label: "Pacprocessor", description: "PAC (Proxy Auto-Config) is a file which defines how an app can automatically find the correct proxy server for fetching an URL. Should be safe to remove if you don't use Auto-proxy (with PAC file config) https://en.wikipedia.org/wiki/Proxy_auto-config", safety: "caution" },
- { pkg: "com.android.phasebeam", label: "Phasebeam", description: "\"Phase beam\" live wallpaper", safety: "safe" },
- { pkg: "com.android.phasebeamorange", label: "Phasebeamorange", description: "\"Sun Beam\" live wallpaper. Just Phase Beam but orange.", safety: "safe" },
- { pkg: "com.android.phone", label: "Phone", description: "AOSP Dialer Removing this package breaks the software update/download and install screen on Samsung. WARNING: for me, it breaks the phone app completely with call routing enabled. Not sure about other cases.", safety: "caution" },
- { pkg: "com.android.phone.a_overlay", label: "A_overlay", description: "AOSP code for dialer app features. SIM card will not be detected if disabled.", safety: "keep" },
- { pkg: "com.android.phone.basiccolorblack.overlay", label: "Overlay", description: "Dark theme for phone app?", safety: "caution" },
- { pkg: "com.android.phone.basiccolorwhite.overlay", label: "Overlay", description: "Light theme for phone app?", safety: "caution" },
- { pkg: "com.android.phone.overlay.common", label: "Common", description: "Location and dialer things.", safety: "keep" },
- { pkg: "com.android.phone.recorder", label: "Recorder", description: "AOSP Call recorder function. Most of the time OEM use their own code for this. NOTE: Some OEMs (like Huawei & Xiaomi) use the same package name for their app.", safety: "caution" },
- { pkg: "com.android.printservice.recommendation", label: "Recommendation", description: "Recommends 3rd-party print services apps in the PlayStore. Printing will probably still works without (by using the default print service).", safety: "caution" },
- { pkg: "com.android.printspooler", label: "Printspooler", description: "Print Spooler Manages the printing process. Runs on boot, but not beyond that. WARNING: Disabling breaks the connection preferences submenu in the settings app on most devices, but other than that it only breaks printing functionality and is safe to disable.", safety: "caution" },
- { pkg: "com.android.protips", label: "Protips", description: "Home screen tips Runs on boot. The tip popups you get on the homescreen.", safety: "safe" },
- { pkg: "com.android.providers.applications", label: "Applications", description: "Provides a list of installed applications. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "keep" },
- { pkg: "com.android.providers.blockednumber", label: "Blockednumber", description: "Handles blocked number storage. On some devices this seems to be tied to the recent apps menu (see https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/6) Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "caution" },
- { pkg: "com.android.providers.calendar", label: "Calendar", description: "Calendar Storage Necessary for the stock Calendar app to work correctly. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "caution" },
- { pkg: "com.android.providers.contacts", label: "Contacts", description: "Contacts Storage Provider for contact data. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html Breaks contact functionality if disabled. Not recommended to disable if you plan to use your device as a phone. On POCO Pad M1, disabling this will cause Bluetooth to malfunction, turning on and off continuously.", safety: "caution" },
- { pkg: "com.android.providers.downloads", label: "Downloads", description: "Downloads Manager Provider for downloaded files. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "keep" },
- { pkg: "com.android.providers.downloads.ui", label: "Ui", description: "Downloads User interface for downloads. On some OEM's this app has ads, tracking things.", safety: "caution" },
- { pkg: "com.android.providers.drm", label: "Drm", description: "DRM Protected Content Storage Manages DRM storage on the device? Probably required for some forms of DRM; disabling might break things like Netflix streaming, which relies on DRM to function. https://en.wikipedia.org/wiki/Digital_rights_management", safety: "caution" },
- { pkg: "com.android.providers.media", label: "Media", description: "Provider of media files (images, videos and such). Scans the device for media files and allows permitted apps access to them. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "caution" },
- { pkg: "com.android.providers.partnerbookmarks", label: "Partnerbookmarks", description: "Provides bookmarks about partners of Google in Chrome.", safety: "safe" },
- { pkg: "com.android.providers.partnerbrowsercustomizations", label: "Partnerbrowsercustomizations", description: "Provides browser customizations from partners (for chrome only). Total bloatware, especialy useless if you use another browser than Chrome.", safety: "safe" },
- { pkg: "com.android.providers.settings", label: "Settings", description: "Provider for settings app data. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "keep" },
- { pkg: "com.android.providers.settings.overlay", label: "Overlay", description: "Required for com.android.providers.settings. Not safe to delete.", safety: "keep" },
- { pkg: "com.android.providers.telephony", label: "Telephony", description: "Provider for telephony data. Handles phone-related data such as text messages, APN list, etc. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "keep" },
- { pkg: "com.android.providers.userdictionary", label: "Userdictionary", description: "Handles user dictionary for keyboard apps. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html. WARNING: Removing this package may cause settings menu to crash on some Huawei phones", safety: "caution" },
- { pkg: "com.android.provision", label: "Provision", description: "Provisioning is the process of setting up a network connection that will allow new users. This service is for example needed when the user's phone moves from one cell-tower to another.", safety: "keep" },
- { pkg: "com.android.proxyhandler", label: "Proxyhandler", description: "Handles proxy config. Safe to remove if you don't use a proxy.", safety: "caution" },
- { pkg: "com.android.quicksearchbox", label: "Quicksearchbox", description: "Google quick search box. OEMs (e.g. Xiaomi) can modify this for their use.", safety: "safe" },
- { pkg: "com.android.remoteprovisioner", label: "Remoteprovisioner", description: "RemoteProvisioner. Have random stuff: security, notifications, accessibility, test modes, data usage, metrics, logs. Its something new introduced in Android 13. At this time this app is not available for users. And looks very useless.", safety: "safe" },
- { pkg: "com.android.rkpdapp", label: "Rkpdapp", description: "The Remote Provisioner app. Provisions cryptographic keys remotely from google servers instead of generating them only on-device. It's likely to break security apps and services, such as bank apps, payment services, authentication, and other security-requiring operations if removed, as they won't work without cryptographic keys. Play Integrity is also likely fail.", safety: "caution" },
- { pkg: "com.android.safetycenter.resources", label: "Resources", description: "Google/AOSP Safety Center resources. . Uninstalling this will change the configuration to revert back the\"Security & privacy\" look to the old style. Does not contain code, just the configuration for code that lives in another package.", safety: "caution" },
- { pkg: "com.android.sdksandbox", label: "Sdksandbox", description: "Introduced in Android 13 privacy sandbox beta disabled on default. Causes bootloop. Maybe this component is not only for privacy... (I think it's for testing privacy sandbox using Android Studio.) https://source.android.com/docs/core/ota/modular-system/adservices Cause BOOTLOOP.", safety: "keep" },
- { pkg: "com.android.se", label: "Se", description: "SecureElementApplication Runs in the background as part of the system. NOTE: ColorOS password lock requires this package. Underlying implementation for the OMAPI SE service. Enables apps to use the OpenMobile API to access secure elements(SE) to enable smart-card payments and other secure services. An SE is a special chip (e.g SIM-card) for storing cryptographic secrets in a way that makes illicit use hard. The Open Mobile Alliance (OPA) is a standards organization which develops open standards for the mobile phone industry.", safety: "caution" },
- { pkg: "com.android.se.overlay.target", label: "Target", description: "Looks like needed to 'com.android.se'.", safety: "caution" },
- { pkg: "com.android.server.NetworkPermissionConfig", label: "NetworkPermissionConfig", description: "Network configurations.", safety: "keep" },
- { pkg: "com.android.server.telecom", label: "Telecom", description: "Manages calls via your network provider or SIM and controls the phone modem?", safety: "keep" },
- { pkg: "com.android.server.telecom.a_overlay", label: "A_overlay", description: "Overlay for com.android.server.telecom?", safety: "keep" },
- { pkg: "com.android.server.telecom.basiccolorblack.overlay", label: "Overlay", description: "Dark theme for something related to call network management?", safety: "caution" },
- { pkg: "com.android.server.telecom.basiccolorwhite.overlay", label: "Overlay", description: "Light theme for something related to call network management?", safety: "caution" },
- { pkg: "com.android.server.telecom.overlay.common", label: "Common", description: "Location and dialer things.", safety: "keep" },
- { pkg: "com.android.settings", label: "Settings", description: "AOSP Settings app.", safety: "keep" },
- { pkg: "com.android.settings.basiccolorblack.overlay", label: "Overlay", description: "Dark theme overlay for the Settings app?", safety: "caution" },
- { pkg: "com.android.settings.basiccolorwhite.overlay", label: "Overlay", description: "Light theme overlay for the Settings app?", safety: "caution" },
- { pkg: "com.android.settings.intelligence", label: "Intelligence", description: "Settings Suggestions Handles the search and suggestions features in the settings app. Disabling this package makes the Settings app crash when you tap on search. Doesn't run in the background, so there's little benefit in disabling. Uses location, nearby devices, notifications permissions by default https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/51", safety: "caution" },
- { pkg: "com.android.settings.intelligence.basiccolorblack.overlay", label: "Overlay", description: "Dark theme overlay for the search functionality in the Settings app?", safety: "caution" },
- { pkg: "com.android.settings.intelligence.basiccolorwhite.overlay", label: "Overlay", description: "Light theme overlay for the search functionality in the Settings app?", safety: "caution" },
- { pkg: "com.android.sharedstoragebackup", label: "Sharedstoragebackup", description: "Used during backup. Backs up the shared storage? (files accessible by every app with STORAGE permission) Things have changed with Android 10. Don't know if this package is still relevant for new phones. https://blog.mindorks.com/understanding-the-scoped-storage-in-android.", safety: "caution" },
- { pkg: "com.android.shell", label: "Shell", description: "Shell Unix shell that receives ADB commands sent from a PC. This is what UAD-ng uses to execute commands on Android devices. Probably a bad idea to disable ;)", safety: "keep" },
- { pkg: "com.android.simappdialog", label: "Simappdialog", description: "Sim App Dialog Creates a pop-up asking if the user wants to install the carrier app when a SIM is inserted. Seems to be event-triggered, i.e: doesn't run in the background. https://android.googlesource.com/platform/frameworks/base/+/master/packages/SimAppDialog/src/com/android/simappdialog/InstallCarrierAppActivity.java", safety: "caution" },
- { pkg: "com.android.smspush", label: "Smspush", description: "This service is used to push/send specially formatted SMS messages that display an alert message to the user, and give them the option of connecting directly to a particular app. For instance, an SMS notifying the user of a new e-mail, with a URL link to connect directly to the e-mail app. https://web.archive.org/web/20200915164901/https://www.nowsms.com/doc/submitting-sms-messages/sending-wap-push-messages", safety: "caution" },
- { pkg: "com.android.soundrecorder", label: "Soundrecorder", description: "AOSP Sound recorder OEMs often use their own solution NOTE: On some phones, Huawei & Xiaomi also use this package name for their own browser app.", safety: "caution" },
- { pkg: "com.android.statementservice", label: "Statementservice", description: "Intent Filter Verification Service A Statement protocol allows websites to certify that some assets represent them. Android package can to subscribe to handling chosen URIs. This package will then be called to query the website and verify that it allows this. Android package can subscribe to handling chosen URIs. This package will then be called to query the website and verify that it allows this. Sources: - https://developer.android.com/reference/android/content/Intent - https://developer.android.com/guide/components/intents-filters - https://android.stackexchange.com/questions/191163/what-does-the-intent-filter-verification-service-app-from-google-do - https://github.com/google/digitalassetlinks/blob/master/well-known/details.md - https://android.googlesource.com/platform/frameworks/base/+/6a34bb2", safety: "keep" },
- { pkg: "com.android.stk", label: "Stk", description: "SIM toolkit Enables carriers to initiate\"value-added services\". Basically, some operators provide SIM-cards with applications installed on them. https://en.wikipedia.org/wiki/SIM_Application_Toolkit#cite_note-CellularZA-1 Has been abused: - SimJacker: https://thehackernews.com/2019/09/simjacker-mobile-hacking.html - WIBattack: https://www.zdnet.com/article/new-sim-card-attack-disclosed-similar-to-simjacker/ WARNING: do mind that disabling/uninstalling this package will break mobile identity management which could be used by apps (for example your Bank) to authenticate you. See https://en.wikipedia.org/wiki/Mobile_identity_management NOTE: removing this package removes the launcher icon. `com.android.stk` relies on `com.android.stk2` and vice-versa.", safety: "caution" },
- { pkg: "com.android.stk2", label: "Stk2", description: "SIM toolkit Special package for dual-sim devices? Enables carriers to initiate\"value-added services\". Basically, some operators provide SIM-cards with applications installed on them. https://en.wikipedia.org/wiki/SIM_Application_Toolkit#cite_note-CellularZA-1 Has been abused: - SimJacker: https://thehackernews.com/2019/09/simjacker-mobile-hacking.html - WIBattack: https://www.zdnet.com/article/new-sim-card-attack-disclosed-similar-to-simjacker/ WARNING: do mind that disabling/uninstalling this package will break mobile identity management which could be used by apps (for example your Bank) to authenticate you. See https://en.wikipedia.org/wiki/Mobile_identity_management NOTE: removing this package removes the launcher icon. `com.android.stk2` relies on `com.android.stk` and vice-versa.", safety: "caution" },
- { pkg: "com.android.storagemanager", label: "Storagemanager", description: "Storage manager (Maintenance/Storage panel in the settings) Clean up unused files, show size of files regrouped by categories...", safety: "caution" },
- { pkg: "com.android.systemui", label: "Systemui", description: "Everything you see in Android that's not an app. User interface of Android", safety: "keep" },
- { pkg: "com.android.systemui.accessibility.accessibilitymenu", label: "Accessibilitymenu", description: "Hidden menu that only shows 2 buttons: Large buttons - that increases size of accessibility menu buttons, and Help - that redirects to support google com site accessibility.", safety: "safe" },
- { pkg: "com.android.systemui.accessibility.accessibilitymenu.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Product RRO for Accessibility menu.", safety: "caution" },
- { pkg: "com.android.systemui.gesture.line.overlay", label: "Overlay", description: "Configurations to navigation bar.", safety: "keep" },
- { pkg: "com.android.systemui.icon.overlay", label: "Overlay", description: "In code found configs icon mask.", safety: "caution" },
- { pkg: "com.android.systemui.navigation.bar.overlay", label: "Overlay", description: "Configurations to navigation bar.", safety: "keep" },
- { pkg: "com.android.systemui.overlay", label: "Overlay", description: "System UI Overlay. DO NOT remove this.", safety: "keep" },
- { pkg: "com.android.systemui.theme.dark", label: "Dark", description: "Enables you to use Android dark theme.", safety: "caution" },
- { pkg: "com.android.theme.font.notoserifsource", label: "Notoserifsource", description: "Noto Serif / Source Sans Pro", safety: "safe" },
- { pkg: "com.android.theme.icon.circle", label: "Circle", description: "Android icon shape only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.icon.pebble", label: "Pebble", description: "Android icon shape only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.icon.square", label: "Square", description: "Android icon shape only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.icon.taperedrect", label: "Taperedrect", description: "Android icon shape only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.icon.vessel", label: "Vessel", description: "Android icon shape only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.icon_pack.rounded.systemui", label: "Systemui", description: "Android icons pack [Rounded]. Safe to remove if you don't use them, but there's no point in doing so as they are simple data containers with no permissions.", safety: "safe" },
- { pkg: "com.android.theme.icon_pack.rounded.themepicker", label: "Themepicker", description: "Obviously related to the\"rounded\" icon pack but the full package is strange. A themepicker class only for a specific icon package? Safe to remove if you don't use them, but there's no point in doing so.", safety: "safe" },
- { pkg: "com.android.timezone.updater", label: "Updater", description: "Time Zone Updater Automatically updates the clock to correspond to your current time zone This *may* cause a bootloop if removed. Timezone packages often causes that.", safety: "caution" },
- { pkg: "com.android.traceur", label: "Traceur", description: "System Tracing Recording device activity over a short period of time is known as system tracing. System tracing produces a trace file that can be used to generate a system report. Not useful if you're not a developer. https://developer.android.com/topic/performance/tracing", safety: "safe" },
- { pkg: "com.android.uwb.resources", label: "Resources", description: "Uninstalling will cause bootloop on certain devices. Seems to be not affected by whether the hardware supports UWB or not. Ultra-wideband (UWB) communication feature. UWB is a radio technology that enables precise ranging between devices, allowing accurate location measurements with an accuracy of 10 cm. See https://developer.android.com/develop/connectivity/uwb https://source.android.com/docs/core/connect/uwb Only supported on a currently narrow amount of devices, primarily high-end devices. But the app itself is often preinstalled even if your phone doesn't have any UWB hardware, especially on newer Android versions.", safety: "keep" },
- { pkg: "com.android.uwb.resources.overlay.common", label: "Common", description: "Overlay for UWB (Ultra-Wideband) resources. Used for device-to-device ranging and location features.", safety: "caution" },
- { pkg: "com.android.virtualmachine.res", label: "Res", description: "Empty app with no code that declares permissions to Use, Manage, Debug: Virtual Machine for use by other apps. Deleting this app may cause potential security issues because another app could redefine the permissions with lower restriction level. Nothing to gain by removing. Introduced in Android 14.", safety: "caution" },
- { pkg: "com.android.voicedialer", label: "Voicedialer", description: "AOSP Voice dialer. Lets you call someone or open an app with your voice from the dialer. OEM often use their own code (embeded in their voice-controlled digital assistant) NOTE: On some phones Huawei & Xiaomi also use this package name for their own voice dialer app.", safety: "caution" },
- { pkg: "com.android.vpndialogs", label: "Vpndialogs", description: "Provide VPN support to Android https://en.wikipedia.org/wiki/Dialog_(software) Safe to remove if you don't plan to use a VPN.", safety: "caution" },
- { pkg: "com.android.wallpaper.holospiral", label: "Holospiral", description: "\"Holo spiral\" Live wallpaper.", safety: "caution" },
- { pkg: "com.android.wallpaper.livepicker", label: "Livepicker", description: "Enables you to pick a live wallpaper. Removing it will break some weather applications (especially ones with widgets) and wallpaper applications like Muzei.", safety: "caution" },
- { pkg: "com.android.wallpaper.livepicker.overlay", label: "Overlay", description: "Overlay for live wallpaper picker? Overlays are usually themes, but not sure about this one.", safety: "caution" },
- { pkg: "com.android.wallpaperbackup", label: "Wallpaperbackup", description: "Wallpaper Backup Backs up and restores wallpaper and metadata related to it. This agent has its own package because it does full backup as opposed to SystemBackupAgent which does key/value backup. This class stages wallpaper files for backup by copying them into its own directory because of the following reasons: Non-system users don't have permission to read the directory that the system stores the wallpaper files in BackupAgent enforces that backed up files must live inside the package's getFilesDir() There are 3 files to back up: The\"wallpaper info\" file which contains metadata like the crop applied to the wallpaper or the live wallpaper component name. The\"system\" wallpaper file. An optional\"lock\" wallpaper, which is shown on the lockscreen instead of the system wallpaper if set. On restore, the metadata file is parsed and WallpaperManager APIs are used to set the wallpaper. Note that if there's a live wallpaper, the live wallpaper package name will be part of the metadata file and the wallpaper will be applied when the package it's installed. https://android.googlesource.com/platform/frameworks/base/+/master/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java", safety: "caution" },
- { pkg: "com.android.wallpapercropper", label: "Wallpapercropper", description: "Wallpaper cropper.", safety: "caution" },
- { pkg: "com.android.wallpaperpicker", label: "Wallpaperpicker", description: "Enables you to pick a wallpaper.", safety: "caution" },
- { pkg: "com.android.webview", label: "Webview", description: "Android System WebView (https://play.google.com/store/apps/details?id=com.google.android.webview) enables Android apps to display web content within the app itself, based on Chrome. No root? Don't uninstall. Root? If you delete WebView, make sure to install a replacement. Many third-party apps, such as banks, VPNs, GitHub, Discord and Reddit use web-based content and will crash without it.", safety: "caution" },
- { pkg: "com.android.wifi.dialog", label: "Dialog", description: "Needed for wifi dialogs. Can brick basic functionality android.", safety: "keep" },
- { pkg: "com.android.wifi.mainline.resources.overlay", label: "Overlay", description: "Related to the Wi-Fi module in the AOSP. The Wi-Fi module is a part of Project Mainline, Which allows for updates to specific system components outside of the normal Android release cycle. The package contains resources and overlays that are used to customize the Wi-Fi module. These overlays can be used to override default configurations and customize the behavior of the Wi-Fi module https://source.android.com/docs/core/ota/modular-system/wifi https://www.xda-developers.com/android-project-mainline-modules-explanation", safety: "keep" },
- { pkg: "com.android.wifi.resources", label: "Resources", description: "System Wi-Fi resources", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay", label: "Overlay", description: "Contains resources that can be overlaid or customized to modify the behavior of the Wi-Fi module. https://source.android.com/docs/core/ota/modular-system/wifi", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.WifiResScanCountryCode", label: "WifiResScanCountryCode", description: "Related to overlay for Wi-Fi scanning for country code.", safety: "caution" },
- { pkg: "com.android.wifi.system.mainline.resources.overlay", label: "Overlay", description: "Related to the Wi-Fi module and its resources overlay. The Wi-Fi module in Android is updatable, meaning it can receive updates to functionality outside of the normal Android release cycle. The module provides a consistent Wi-Fi experience across Android devices and allows for fixes to interoperability issues through module updates https://source.android.com/docs/core/ota/modular-system/wifi", safety: "caution" },
- { pkg: "com.android.wifi.system.resources.overlay", label: "Overlay", description: "Contains resources that can be overlaid to customize the Wi-Fi module's behavior. https://source.android.com/docs/core/ota/modular-system/wifi", safety: "caution" },
- { pkg: "com.example.android.notepad", label: "Notepad", description: "(Bad) notepad app.", safety: "caution" },
- { pkg: "com.google.android.adservices.api", label: "Api", description: "Introduced in Android 13 privacy sandbox beta components disabled on default. https://source.android.com/docs/core/ota/modular-system/adservices", safety: "safe" },
- { pkg: "com.google.android.androidforwork", label: "Androidforwork", description: "Assistant Android Work Not needed, theres only user consent activity about that: (Your organization controls your device and keeps it secure)", safety: "safe" },
- { pkg: "com.google.android.apps.googlecamera.fishfood", label: "Fishfood", description: "ApertureLensLauncher Not sure how it works but redirects to google app lens `com.google.android.googlequicksearchbox`.", safety: "caution" },
- { pkg: "com.google.android.appsearch.apk", label: "Apk", description: "AppSearch is an on-device search library for managing locally stored structured data, with APIs for indexing data and retrieving data using full-text search. Use it to build custom in-app search capabilities for your users. https://developer.android.com/jetpack/androidx/releases/appsearch", safety: "caution" },
- { pkg: "com.google.android.captiveportallogin", label: "Captiveportallogin", description: "it's the same as (com.android.captiveportallogin). Support for captive portal. A captive portal login is a web page where the users have to input their login information or accept the displayed terms of use. Some networks (typically public wifi network) use the captive portal login to block access until the user inputs some necessary information NOTE : This package is a now a mandatory mainline module https://en.wikipedia.org/wiki/Captive_portal https://www.xda-developers.com/android-project-mainline-modules-explanation", safety: "caution" },
- { pkg: "com.google.android.carrierconfig", label: "Carrierconfig", description: "Same as com.android.carrierconfig? Here's that description: Dynamically provides configuration for the carrier network. The config contains: Roaming networks, Voicemail settings, SMS/MMS settings, VoLTE/IMS settings, and more. If a carrier app is installed it will be queried for overrides to these settings. Seems to run on boot and when you swap SIM card? https://source.android.com/devices/tech/config/carrier https://cs.android.com/android/platform/superproject/+/master:packages/apps/CarrierConfig/src/com/android/carrierconfig/DefaultCarrierConfigService.java", safety: "caution" },
- { pkg: "com.google.android.cellbroadcastreceiver", label: "Cellbroadcastreceiver", description: "Wireless emergency alerts Cell broadcast is designed to deliver messages to multiple users in an area. This is notably used by ISP to send Emergency/Government alerts. Runs at boot and is also triggered after exiting airplane mode. https://en.wikipedia.org/wiki/Cell_Broadcast https://www.androidcentral.com/amber-alerts-and-android-what-you-need-know https://android.googlesource.com/platform/packages/apps/CellBroadcastReceiver/+/refs/heads/master/src/com/android/cellbroadcastreceiver", safety: "caution", deps: ["com.google.android.cellbroadcastservice"] },
- { pkg: "com.google.android.cellbroadcastservice", label: "Cellbroadcastservice", description: "Cell broadcast is designed to deliver messages to multiple users in an area. This is notably used by ISP to send Emergency/Government alerts. https://en.wikipedia.org/wiki/Cell_Broadcast https://www.androidcentral.com/amber-alerts-and-android-what-you-need-know", safety: "caution", neededBy: ["com.google.android.cellbroadcastreceiver"] },
- { pkg: "com.google.android.connectivity.resources", label: "Resources", description: "Network connectivity resources. Removing this packages causes a bootloop.", safety: "keep" },
- { pkg: "com.google.android.documentsui", label: "Documentsui", description: "Occasionally runs in the background. File selector for other apps. Storage Access Framework (SAF) will break if this is disabled.", safety: "keep" },
- { pkg: "com.google.android.ext.services", label: "Services", description: "The ExtServices module updates framework components for core OS functionality such as notification ranking, autofill text-matching strategies, storage cache, package watchdog, and other services that run continually. This module is updatable, meaning it can receive updates to functionality outside of the normal Android release cycle. Can run before the user unlocks the device (direct-boot aware) and Android 9+ version have internet and location permissions. WARNING: Causes bootloop on most Android 11+ phones. This module is related to the Android mainline project (which is a useful project).There is no reason to mess with this. Sources: https://source.android.com/devices/architecture/modular-system/extservices https://arstechnica.com/gadgets/2016/11/android-extensions-could-be-googles-plan-to-make-android-updates-suck-less/ Pithus analysis (Android 11): https://beta.pithus.org/report/e5e4a181082b88baf55e19aab0f9cb62e131d612eeaa73cddb510a52e0ff5c1a", safety: "keep" },
- { pkg: "com.google.android.ext.shared", label: "Shared", description: "Android Shared Library. Maybe people thinking it's safe to remove or it's useless because it's empty. but it cause bootloop on my miui 14.", safety: "keep" },
- { pkg: "com.google.android.federatedcompute", label: "Federatedcompute", description: "FederatedCompute. Another component of OnDevicePersonalization. But this app learns things about users. Introduced in Android 13. https://source.android.com/docs/core/ota/modular-system/ondevicepersonalization", safety: "safe" },
- { pkg: "com.google.android.gallery3d", label: "Gallery3d", description: "Built-in Gallery app. The ID could be\"recycled\" by OEMs for their own gallery implementations.", safety: "caution" },
- { pkg: "com.google.android.hotspot2.osulogin", label: "Osulogin", description: "The sole purpose of the OsuLogin App is to provision credentials from the Wi-Fi network to the device and allow them to connect to Wi-Fi Hotspot 2.0. See https://hackanons.com/2021/07/osulogin-android-everything-you-need-to-know.html for more information.", safety: "caution" },
- { pkg: "com.google.android.modulemetadata", label: "Modulemetadata", description: "Module that contains metadata about the list of modules on the device. And that’s about it. I wouldn't advise you to mess with it as it could break important modules (see #37) Good explanation of what android modules are : https://www.xda-developers.com/android-project-mainline-modules-explanation/", safety: "keep" },
- { pkg: "com.google.android.nearby.halfsheet", label: "Halfsheet", description: "Useless frameworks to Wi-Fi connections, USB tethering, auto, usage. Every version has random code and the app is not running in the background.", safety: "safe" },
- { pkg: "com.google.android.networkstack", label: "Networkstack", description: "Network Stack Components https://source.android.com/devices/architecture/modular-system/networking Provides common IP services, network connectivity monitoring, and captive login portal detection.", safety: "keep" },
- { pkg: "com.google.android.networkstack.overlay", label: "Overlay", description: "WiFi will not work after remove.", safety: "keep" },
- { pkg: "com.google.android.networkstack.permissionconfig", label: "Permissionconfig", description: "Network Stack Permission Configuration Defines a permission that enables modules to perform network-related tasks. https://source.android.com/devices/architecture/modular-system/networking", safety: "keep" },
- { pkg: "com.google.android.networkstack.tethering", label: "Tethering", description: "Uninstalling/Disabling this app will break Hotspot and Bluetooth/USB Tethering. On some devices, when you enable hotspot or Bluetooth/USB Tethering it will show the boot animation (not bootloop) (not on HyperOS 2.0) And will bring you back to your device It's safe to uninstall it if you aren't going to use Hotspot or Bluetooth/USB Tethering. On HyperOS 2.0, you'll need to remove it twice and reboot each time for it to fully vanish. It restores itself after first removal and reboot. On HyperOS 2.0, after removing this package fully, it makes the whole settings app crash when clicking the Developer Settings button, making the Developer Settings inaccessible. Even when calling Developer Settings from another app, or calling usb debugging settings from another app, it all still refuses to launch, just crashes. It basically puts you into a trap if you've disabled USB Debugging, as you'll no longer be able to turn USB Debugging back on, and so won't be able to restore this nor other removed packages. Access to ADB will be permanently lost. After restoring it, a reboot is required for the developer settings and hotspot to become accessible. Similar behavior to as described here might be also observed on other devices.", safety: "caution" },
- { pkg: "com.google.android.networkstack.tethering.overlay", label: "Overlay", description: "it's needed for tethering?. I found: arrays.xml array name (config_tether_usb_regexs) item rndis d item usb d", safety: "caution" },
- { pkg: "com.google.android.ondevicepersonalization.services", label: "Services", description: "OnDevicePersonalization. Another thing to AdServices privacy sandbox. Introduced in Android 13. https://source.android.com/docs/core/ota/modular-system/ondevicepersonalization", safety: "safe" },
- { pkg: "com.google.android.overlay.managedprovisioning", label: "Managedprovisioning", description: "In code I have seen lists of some system apps and stuff of `managedprovisioning` user. Safe to remove if you removed `com.android.managedprovisioning`. But it probably doesn't affect anything.", safety: "caution" },
- { pkg: "com.google.android.overlay.modules.captiveportallogin.forframework", label: "Forframework", description: "Configs default captiveportallogin. (not needed) No effects after remove.", safety: "caution" },
- { pkg: "com.google.android.overlay.modules.cellbroadcastservice", label: "Cellbroadcastservice", description: "Package: com.google.android.overlay.modules.cellbroadcastservice", safety: "caution" },
- { pkg: "com.google.android.overlay.modules.documentsui", label: "Documentsui", description: "WARNING: Uninstalling it breaks the Scheduled power on/off page of the Settings app for Android 15, Blackview Tab 60 WiFi!", safety: "caution" },
- { pkg: "com.google.android.overlay.modules.ext.services", label: "Services", description: "it's overlay that depends on (com.google.android.ext.services) Cause bootloop.", safety: "keep", deps: ["com.google.android.ext.services"] },
- { pkg: "com.google.android.overlay.modules.healthfitness.forframework", label: "Forframework", description: "Another part of health fitness system, useless for most users along with all other health fitness packages. Safe to delete, obviously, unless if you use health fitness services.", safety: "safe" },
- { pkg: "com.google.android.overlay.modules.permissioncontroller", label: "Permissioncontroller", description: "I only detect on this app: help_app_permissions (link below). It looks very useless, not needed. It doesnt affect com.google.android.permissioncontroller https://support.google.com/googleplay/answer/6270602 WARNING: when disabling this package on a Samsung N960F running Android Q, the pop-up UI reverts. Disabling this package (as it's an overlay) will also put the pop-up UI to (like full-screen notification) to the center instead of the bottom.", safety: "caution" },
- { pkg: "com.google.android.overlay.modules.permissioncontroller.forframework", label: "Forframework", description: "config_incidentReportApproverPackage It looks very useless. Not needed, it doesnt affect on (com.google.android.permissioncontroller)", safety: "caution" },
- { pkg: "com.google.android.overlay.permissioncontroller", label: "Permissioncontroller", description: "Breaks Google Play System updates (GPSu), related to Project Mainline. Page on Settings will crash altogether, or ask Play Store to be updated. https://support.google.com/product-documentation/answer/14343500", safety: "caution", deps: ["com.android.vending"] },
- { pkg: "com.google.android.overlay.setupwizard", label: "Setupwizard", description: "An overlay for com.google.android.setupwizard. Safe to remove if com.google.android.setupwizard has been removed.", safety: "caution" },
- { pkg: "com.google.android.packageinstaller", label: "Packageinstaller", description: "Google package installer. Seems to replace com.android.packageinstaller on newer phones. It is strangely not needed on older devices (you can still install APKs without it by using the AOSP package installer) but since Android 9, it also handles permissions control and could bootloop your device if removed. On Android 8.1, disabling the app also disabled the 'Permissions' settings within all the apps. Besides that, I couldn't install an '.apk' file download from outside the Play Store. Source: https://source.android.com/docs/core/architecture/modular-system/permissioncontroller.", safety: "keep" },
- { pkg: "com.google.android.packageinstaller.a_overlay", label: "A_overlay", description: "Gives ability to install, update or remove applications on the device. If you delete this package, your phone will probably bootloop.", safety: "keep" },
- { pkg: "com.google.android.permissioncontroller", label: "Permissioncontroller", description: "Permission controller Controls app permissions. https://source.android.com/devices/architecture/modular-system/permissioncontroller", safety: "keep" },
- { pkg: "com.google.android.photopicker", label: "Photopicker", description: "Photo picker Provides a browsable interface that presents the user with their media library, sorted by date from newest to oldest. Safe, built-in way for users to grant your app access to only selected images and videos, instead of their entire media library. https://developer.android.com/training/data-storage/shared/photopicker", safety: "caution" },
- { pkg: "com.google.android.printservice.recommendation", label: "Recommendation", description: "I think this has to do with recommending a printservice app you can get from the Play store. I think printing still works with this off.", safety: "caution" },
- { pkg: "com.google.android.providers.media.module", label: "Module", description: "Media Storage In Android 11+ this provides file access to apps without\"Manage All Files\" permission. In previous versions it's just an index of all audio-visual (no text) files in the user's file-system (`/sdcard/`, `/storage/emulated/0/`, etc...). This allows music-players and photo-galleries to list files quickly, without caching their own indices. Safe to disable, but NOT recommended; breaks file browsers and other forms of file access. Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "caution" },
- { pkg: "com.google.android.safetycenter.resources", label: "Resources", description: "Google Safety Center. Google Safe Browsing. WARNING: Crashes Security and Privacy settings if removed. https://www.android.com/safety/", safety: "caution" },
- { pkg: "com.google.android.sdksandbox", label: "Sdksandbox", description: "Introduced in Android 13 privacy sandbox beta disabled on default. Causes bootloop. Maybe this component is not only for privacy... (I think it's for testing privacy sandbox using Android Studio.) https://source.android.com/docs/core/ota/modular-system/adservices Cause BOOTLOOP.", safety: "keep" },
- { pkg: "com.google.android.settings.intelligence", label: "Intelligence", description: "Setting Services. Adds the main search bar for the settings app (the one at the top on the default page).", safety: "caution" },
- { pkg: "com.google.android.speech.pumpkin", label: "Pumpkin", description: "PumpkinService Has something to speech.", safety: "caution" },
- { pkg: "com.google.android.wifi.resources.overlay", label: "Overlay", description: "A google mainline module overlay for com.android.wifi.resources, which might be useless if gms is removed, as it only provides gms customizations for Wi-Fi, not android system customizations. Only safe to remove if you have removed gms. There's no such package as com.google.android.wifi.resources, but only com.android.wifi.resources. And there are multiple packages with such names, that cause no damage when removed.", safety: "caution" },
- { pkg: "com.google.android.wifi.resources.overlay.common", label: "Common", description: "An overlay-google addition for `com.android.wifi.resources`, presumably Google bloat. A user reported some issues with Hotspot", safety: "caution" },
- { pkg: "com.google.mainline.adservices", label: "Adservices", description: "Adservices Train Version Package. AdServices too. uses ondevicepersonalization. Introduced in Android 13 NOTE: This package is a mandatory mainline module, which is also not documented. I don't trust it when it comes to adservices.", safety: "safe" },
- { pkg: "org.chromium.webview_shell", label: "Webview_shell", description: "Simple Browser for WebView tester used in AOSP.", safety: "safe" },
- { pkg: "org.simalliance.openmobileapi.eseterminal", label: "Eseterminal", description: "Needed for NFC payments (e.g. Google Wallet) on older Android versions.", safety: "caution" },
+ { pkg: "com.android.cellbroadcastreceiver.overlay.common", label: "Common", description: "com.android.cellbroadcastreceiver Theme pack", safety: "caution" },
+ { pkg: "com.android.theme.icon.circle", label: "Circle", description: "Android icons pack [Circle].", safety: "caution" },
+ { pkg: "com.android.theme.icon.square", label: "Square", description: "Android icons pack [Square].", safety: "caution" },
+ { pkg: "com.android.wifi.resources", label: "Resources", description: "System Wi-Fi resources", safety: "caution" },
+ { pkg: "com.android.theme.icon.pebble", label: "Pebble", description: "Android icons pack [Pebble].", safety: "caution" },
+ { pkg: "com.android.theme.icon.taperedrect", label: "Taperedrect", description: "Android icons pack [Taperedrect].", safety: "caution" },
+ { pkg: "com.android.theme.icon.vessel", label: "Vessel", description: "Android icons pack [Vessel].", safety: "caution" },
+ { pkg: "com.android.theme.icon_pack.rounded.themepicker", label: "Themepicker", description: "Obviously related to the \"rounded\" icon pack but the full package is strange. A themepicker class only for ...", safety: "caution" },
+ { pkg: "com.google.android.cellbroadcastreceiver", label: "Cellbroadcastreceiver", description: "Wireless emergency alerts", safety: "caution", deps: ["com.google.android.cellbroadcastservice"] },
+ { pkg: "com.google.android.cellbroadcastservice", label: "Cellbroadcastservice", description: "Cell broadcast is designed to deliver messages to multiple users in an area.", safety: "caution", neededBy: ["com.google.android.cellbroadcastreceiver"] },
+ { pkg: "com.google.android.overlay.modules.documentsui", label: "Documentsui", description: "Files Theme pack", safety: "caution" },
+ { pkg: "com.android.bips", label: "Bips", description: "Default Print Service.", safety: "caution" },
+ { pkg: "com.android.email.partnerprovider", label: "Partnerprovider", description: "Lets Google partners (OEM in most of the case) to customize the default email settings.", safety: "safe" },
+ { pkg: "com.android.wallpaper.livepicker", label: "Livepicker", description: "Enables you to pick a live wallpaper. Removing it will break some weather applications (especially ones wit...", safety: "caution" },
+ { pkg: "android", label: "Android", description: "Android System", safety: "keep" },
+ { pkg: "com.android.phone", label: "Phone", description: "AOSP Dialer", safety: "keep" },
+ { pkg: "com.android.fmradio", label: "Fmradio", description: "FM Radio", safety: "safe" },
+ { pkg: "com.android.modulemetadata", label: "Modulemetadata", description: "It's used to manage and store metadata about installed modules, and is accessed by the system server. Break...", safety: "caution" },
],
},
{
name: "Misc",
packages: [
- { pkg: "Info.Plateau.Einkbro", label: "Einkbro", description: "Open source web browser designed to fit E-ink devices, https://github.com/plateaukao/einkbro", safety: "caution" },
- { pkg: "air.com.playtika.slotomania", label: "Slotomania", description: "Slotomania (https://play.google.com/store/apps/details?id=air.com.playtika.slotomania) Preinstalled game on some Samsung phones. 31 permissions, 13 trackers: https://reports.exodus-privacy.eu.org/reports/air.com.playtika.slotomania/latest/", safety: "safe" },
- { pkg: "cci.usage", label: "Usage", description: "My Consumer Cellular (https://play.google.com/store/apps/details?id=cci.usage) Lets you manage your Consumer Cellular account, track your usage, pay your bill. Consumer Cellular is an American postpaid mobile virtual network operator https://en.wikipedia.org/wiki/Consumer_Cellular", safety: "safe" },
- { pkg: "co.sitic.pp", label: "Pp", description: "Designed to remotely lock the phone (by sending a simple SMS) in case you don't pay your bill https://www.reddit.com/r/Android/comments/fde3l6/3rd_party_telemetry_found_in_nokia_smartphones/fjh4zbx/?context=3 This app was pre-installed on phone not served by that carrier (América Móvil) from South America. Normally you should not have this app anymore because it was removed by Nokia during an Android 10 update.", safety: "safe" },
- { pkg: "com.UCMobile.intl", label: "Intl", description: "UC Browser by Alibaba (https://play.google.com/store/apps/details?id=com.UCMobile.intl) !! Unsecure chinese web browser !! https://www.quora.com/Whats-wrong-with-UC-Browser https://www.digitalinformationworld.com/2019/05/url-spoofing-uc-browser-android.html", safety: "safe" },
- { pkg: "com.aaa.android.discounts", label: "Discounts", description: "AAA Mobile (https://play.google.com/store/apps/details?id=com.aaa.android.discounts) Kind of GPS that helps you find Point of interest (POI) like hotels, restaurants, and car repair facilities from the AAA databases. NOTE : You’ll have to sign up for an AAA membership to enjoy all of the features and functionality of the Android app. AAA = American Automobile Association", safety: "safe" },
- { pkg: "com.aaa.android.discounts.vpl", label: "Vpl", description: "AAA Mobile (https://play.google.com/store/apps/details?id=com.aaa.android.discounts) Kind of GPS that helps you find Point of interest (POI) like hotels, restaurants, and car repair facilities from the AAA databases. NOTE : You’ll have to sign up for an AAA membership to enjoy all of the features and functionality of the Android app. AAA = American Automobile Association", safety: "safe" },
- { pkg: "com.adups.fota", label: "Fota", description: "Wireless Update (AKA System Update) FOTA = Firmware Over-the-air. Has a history of spying its users. If the installed version is below 5.4.x, it must be uninstalled. https://www.malwarebytes.com/blog/news/2017/12/mobile-menace-monday-upping-the-ante-on-adups-fwupgradeprovider https://www.cvedetails.com/vulnerability-list/vendor_id-16034/product_id-35606/year-2017/Adups-Adups-Fota.html", safety: "caution" },
- { pkg: "com.adups.fota.sysoper", label: "Sysoper", description: "UpgradeSys FOTA = Firmware Over-the-air. Has a history of spying its users. https://www.malwarebytes.com/blog/news/2017/12/mobile-menace-monday-upping-the-ante-on-adups-fwupgradeprovider https://www.cvedetails.com/vulnerability-list/vendor_id-16034/product_id-35606/year-2017/Adups-Adups-Fota.html", safety: "safe" },
- { pkg: "com.agui.toolbox", label: "Toolbox", description: "Toolbox contains a bunch of small utilites, most have there own APP but are only accessible from the Toolbox UI included; Noise test, Compass, Flashlight, Bubble Level, Picture Hanging, Heart rate, Measure height, Magnifier,Alarm, Plumb Bob, Protractor, Speedometer & a Pedometer.", safety: "safe" },
- { pkg: "com.alibaba.aliexpresshd", label: "Aliexpresshd", description: "AliExpress shopping/marketplace. https://play.google.com/store/apps/details?id=com.alibaba.aliexpresshd", safety: "safe" },
- { pkg: "com.amazon.aa", label: "Aa", description: "Amazon Assistant app. Nice spyware ! Shows you recommended products available on Amazon and price compare as you shop across the web. NOTE : https://www.gadgetguy.com.au/amazon-assistant-spies-on-you/", safety: "safe" },
- { pkg: "com.amazon.aa.attribution", label: "Attribution", description: "Amazon Assistant Attribution. A spyware again ! Tracking tool. Allows sellers to measure the impact of media channels **off Amazon** on sales. https://www.repricerexpress.com/amazon-attribution/", safety: "safe" },
- { pkg: "com.amazon.appmanager", label: "Appmanager", description: "Mobile Device Information Provider Seems related to Kindle https://forum.xda-developers.com/t/are-these-phones-preloaded-with-amazon-spyware.4260299/ https://www.reddit.com/r/AndroidQuestions/comments/89qy76/what_is_mobile_device_information_provider_app/", safety: "safe" },
- { pkg: "com.amazon.avod.thirdpartyclient", label: "Thirdpartyclient", description: "Amazon Prime Video (https://play.google.com/store/apps/details?id=com.amazon.avod.thirdpartyclient) VOD service from Amazon. https://en.wikipedia.org/wiki/Prime_Video", safety: "safe" },
- { pkg: "com.amazon.clouddrive.photos", label: "Photos", description: "Amazon Photos (https://play.google.com/store/apps/details?id=com.amazon.clouddrive.photos)", safety: "safe" },
+ { pkg: "com.qti.diagservices", label: "Diagservices", description: "Starts process when plugged into a PC (with debugging on, haven't tried off) and then runs until stopped.", safety: "caution" },
+ { pkg: "com.qti.ltebc", label: "Ltebc", description: "LTE Broadcast Manager", safety: "caution" },
+ { pkg: "com.qualcomm.qti.biometrics.fingerprint.service", label: "Service", description: "Probably the background service for handling fingerprint authentication. Will likely break that if disabled.", safety: "caution" },
+ { pkg: "com.qualcomm.qtil.aptxals", label: "Aptxals", description: "Something to do with the AptX bluetooh audio streaming codec?", safety: "caution" },
+ { pkg: "com.qualcomm.qtil.aptxalsOverlay", label: "Aptxalsoverlay", description: "com.qualcomm.qtil.aptxalsOverlay Theme pack", safety: "caution" },
+ { pkg: "com.qualcomm.qtil.aptxui", label: "Aptxui", description: "Something to do with selecting codec for bluetooh audio streaming?", safety: "caution" },
+ { pkg: "com.roaming.android.gsimbase", label: "Gsimbase", description: "gsim = Global SIM? (SIM = Subscriber Identity Module, as in SIM-card)", safety: "caution" },
+ { pkg: "com.roaming.android.gsimcontentprovider", label: "Gsimcontentprovider", description: "gsim = Global SIM? (SIM = Subscriber Identity Module, as in SIM-card)", safety: "caution" },
+ { pkg: "com.qti.qualcomm.deviceinfo", label: "Deviceinfo", description: "Device Info", safety: "caution" },
+ { pkg: "com.qualcomm.qti.cne", label: "Cne", description: "CneApp (Connectivity Engine)", safety: "caution" },
+ { pkg: "com.qualcomm.qti.ims", label: "Ims", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over pack...", safety: "caution" },
+ { pkg: "com.qualcomm.qti.performancemode", label: "Performancemode", description: "Performance Mode", safety: "caution" },
+ { pkg: "com.qualcomm.qti.poweroffalarm", label: "Poweroffalarm", description: "Probably what enables alarms to start the device from an off state.", safety: "caution" },
+ { pkg: "com.qualcomm.qti.qdma", label: "Qdma", description: "QDMA = Quadrature-Division Multiple Access", safety: "caution" },
+ { pkg: "com.qualcomm.qti.gpudrivers.kona.api30", label: "Api30", description: "Adreno Graphics Drivers", safety: "keep" },
+ { pkg: "com.qualcomm.qti.gpudrivers.lahaina.api30", label: "Api30", description: "Adreno Graphics Drivers", safety: "keep" },
+ { pkg: "com.qualcomm.qti.gpudrivers.lito.api30", label: "Api30", description: "Adreno Graphics Drivers", safety: "keep" },
+ { pkg: "com.qualcomm.qti.seccamservice", label: "Seccamservice", description: "SecCamService, stands for Secure Camera Service?", safety: "caution" },
+ { pkg: "com.qualcomm.qti.smq", label: "Smq", description: "QTR (Qualcomm Technology Reporting)", safety: "safe" },
+ { pkg: "vendor.qti.hardware.cacert.server", label: "Server", description: "CACertApp", safety: "caution" },
+ { pkg: "com.amazon.appmanager", label: "Appmanager", description: "Mobile Device Information Provider", safety: "safe" },
+ { pkg: "com.amazon.avod.thirdpartyclient", label: "Thirdpartyclient", description: "Amazon Prime Video (https://play.google.com/store/apps/details?id=com.amazon.avod.thirdpartyclient)", safety: "safe" },
+ { pkg: "com.amazon.mShop.android", label: "Android", description: "Amazon Shopping (https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping)", safety: "safe" },
{ pkg: "com.amazon.fv", label: "Fv", description: "Amazon App suite. Provides access to Amazon digital content", safety: "safe" },
{ pkg: "com.amazon.kindle", label: "Kindle", description: "Amazon Kindle (https://play.google.com/store/apps/details?id=com.amazon.kindle)", safety: "safe" },
- { pkg: "com.amazon.mShop.android", label: "Android", description: "Amazon Shopping (https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping)", safety: "safe" },
- { pkg: "com.amazon.mShop.android.shopping", label: "Shopping", description: "Amazon Shopping (https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping) Same package as com.amazon.mShop.android.", safety: "safe" },
- { pkg: "com.amazon.mShop.android.shopping.vpl", label: "Vpl", description: "Amazon Shopping (https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping) Same package as com.amazon.mShop.android.", safety: "safe" },
- { pkg: "com.amazon.mp3", label: "Mp3", description: "Amazon Music (https://play.google.com/store/apps/details?id=com.amazon.mp3) Amazon streaming app", safety: "safe" },
- { pkg: "com.amazon.venezia", label: "Venezia", description: "Amazon AppStore Removal will result in breakage of app drawer on Amazon Fire TV devices.", safety: "caution" },
- { pkg: "com.android.frameworks.telresources", label: "Telresources", description: "Completely empty package. Safe to remove.", safety: "safe" },
- { pkg: "com.android.ld.appstore", label: "Appstore", description: "LD Gaming Appstore LDPlayer is an Android Gaming emulator for PC (https://ldplayer.net/)", safety: "safe" },
- { pkg: "com.android.wifi.resources.overlay.target.sm8635", label: "Sm8635", description: "An overlay for com.android.wifi.resources for devices with the Snapdragon 7s Gen 2 CPU (codename SM8635). Not safe to remove.", safety: "keep" },
- { pkg: "com.applovin.array.apphub.vincere", label: "Vincere", description: "AppHub Is known as tracker company, potentially adware!", safety: "safe" },
- { pkg: "com.aspiro.tidal", label: "Tidal", description: "Tidal Music (https://play.google.com/store/apps/details?id=com.aspiro.tidal) Music streaming app", safety: "safe" },
- { pkg: "com.aspiro.tidal.vpl", label: "Vpl", description: "Tidal Music (https://play.google.com/store/apps/details?id=com.aspiro.tidal) Music streaming app", safety: "safe" },
- { pkg: "com.audible.application", label: "Application", description: "Cover Audible Audiobooks (https://play.google.com/store/apps/details?id=com.audible.application)", safety: "safe" },
- { pkg: "com.bleacherreport.android.teamstream", label: "Teamstream", description: "Bleacher Report (https://play.google.com/store/apps/details?id=com.bleacherreport.android.teamstream) Sports news site", safety: "safe" },
- { pkg: "com.block.juggle", label: "Juggle", description: "Block Blast. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.block.puzzle.game.hippo.mi", label: "Mi", description: "Block Puzzle Guardian. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.blurb.checkout", label: "Checkout", description: "Blurb Checkout Provides book purchase and checkout for Samsung’s Story Album app (discontinued)", safety: "safe" },
- { pkg: "com.booking", label: "Booking", description: "Booking.com app (https://play.google.com/store/apps/details?id=com.booking) Seriously, you shouldn't use it ! https://en.wikipedia.org/wiki/Booking.com https://blog.usejournal.com/why-i-would-never-trust-booking-com-again-so-you-should-too-a2ab535ed915?gi=7ebe86eaa880 https://ro-che.info/articles/2017-09-17-booking-com-manipulation", safety: "safe" },
+ { pkg: "com.amazon.mp3", label: "Mp3", description: "Amazon Music (https://play.google.com/store/apps/details?id=com.amazon.mp3)", safety: "safe" },
+ { pkg: "com.amazon.venezia", label: "Venezia", description: "Amazon AppStore", safety: "safe" },
+ { pkg: "com.amazon.aa", label: "Aa", description: "Amazon Assistant app. Nice spyware !", safety: "safe" },
+ { pkg: "com.amazon.aa.attribution", label: "Attribution", description: "Amazon Assistant Attribution. A spyware again !", safety: "safe" },
+ { pkg: "com.amazon.mShop.android.shopping.vpl", label: "Vpl", description: "Amazon Shopping (https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping)", safety: "safe" },
+ { pkg: "com.amazon.mShop.android.shopping", label: "Shopping", description: "Amazon Shopping (https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping)", safety: "safe" },
+ { pkg: "com.amazon.clouddrive.photos", label: "Photos", description: "Amazon Photos (https://play.google.com/store/apps/details?id=com.amazon.clouddrive.photos)", safety: "safe" },
+ { pkg: "in.amazon.mShop.android.shopping", label: "Shopping", description: "Amazon India (https://play.google.com/store/apps/details?id=in.amazon.mShop.android.shopping)", safety: "safe" },
+ { pkg: "com.facebook.katana", label: "Katana", description: "Facebook app (https://play.google.com/store/apps/details?id=com.facebook.katana)", safety: "safe" },
+ { pkg: "com.facebook.system", label: "System", description: "Facebook App Installer (empty shell app which incites you to install the Facebook app)", safety: "safe" },
+ { pkg: "com.facebook.appmanager", label: "Appmanager", description: "Facebook app manager handles Facebook apps updates.", safety: "safe" },
+ { pkg: "com.facebook.services", label: "Services", description: "Facebook Services is a tool that lets you manage different Facebook services automatically using your Andro...", safety: "safe" },
+ { pkg: "com.facebook.orca", label: "Orca", description: "Facebook Messenger (https://play.google.com/store/apps/details?id=com.facebook.orca)", safety: "safe" },
+ { pkg: "com.instagram.android", label: "Android", description: "Instagram (https://play.google.com/store/apps/details?id=com.instagram.android)", safety: "safe" },
+ { pkg: "com.whatsapp", label: "Whatsapp", description: "Whatsapp (https://play.google.com/store/apps/details?id=com.whatsapp)", safety: "safe" },
+ { pkg: "com.microsoft.skydrive", label: "Skydrive", description: "Microsoft OneDrive (Cloud) (https://play.google.com/store/apps/details?id=com.microsoft.skydrive)", safety: "safe" },
+ { pkg: "com.skype.raider", label: "Raider", description: "Skype (https://play.google.com/store/apps/details?id=com.skype.raider)", safety: "safe" },
+ { pkg: "com.microsoft.office.powerpoint", label: "Powerpoint", description: "No description available", safety: "safe" },
+ { pkg: "com.skype.m2", label: "M2", description: "Skype Lite (https://play.google.com/store/apps/details?id=com.skype.m2)", safety: "safe" },
+ { pkg: "com.microsoft.office.officehubhl", label: "Officehubhl", description: "Office Mobile hub (on Samsung Phone)", safety: "safe" },
+ { pkg: "com.microsoft.office.officehub", label: "Officehub", description: "Microsoft Office Mobile", safety: "safe" },
+ { pkg: "com.microsoft.office.officehubrow", label: "Officehubrow", description: "Microsoft Mobile Office Beta", safety: "safe" },
+ { pkg: "com.microsoft.appmanager", label: "Appmanager", description: "Your Phone Companion - Link to Windows (https://play.google.com/store/apps/details?id=com.microsoft.appmana...", safety: "safe" },
+ { pkg: "com.microsoft.translator", label: "Translator", description: "Microsoft Translator app (https://play.google.com/store/apps/details?id=com.microsoft.translator)", safety: "safe" },
{ pkg: "com.caf.fmradio", label: "Fmradio", description: "https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/fm/tree/fmapp2/src/com/caf/fmradio", safety: "safe" },
- { pkg: "com.cequint.ecid", label: "Ecid", description: "Caller ID from Cequint (https://www.cequint.com/) https://www.fiercewireless.com/wireless/t-mobile-to-launch-caller-id-service-from-cequint NOTE : Never trust a company which promotes call ID/spam blocking features. https://itmunch.com/robocall-caught-sending-customers-confidential-data-without-consent/ # Cequint was acquired by TNS (https://tnsi.com/) That was not a good thing : https://www.geekwire.com/2013/earnouts-bad-cequint-execs-sue-parent-company/", safety: "safe" },
+ { pkg: "org.codeaurora.gps.gpslogsave", label: "Gpslogsave", description: "Saves GPS logs.", safety: "safe" },
+ { pkg: "org.codeaurora.bluetooth", label: "Bluetooth", description: "https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/bluetooth", safety: "caution" },
+ { pkg: "org.codeaurora.ims", label: "Ims", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over pack...", safety: "caution" },
+ { pkg: "com.qti.qualcomm.datastatusnotification", label: "Datastatusnotification", description: "Sends you a message when you reach a specified data limit?", safety: "caution" },
+ { pkg: "com.qti.confuridialer", label: "Confuridialer", description: "Conference URI dialer", safety: "caution" },
+ { pkg: "com.qti.service.colorservice", label: "Colorservice", description: "Something to do with colors?", safety: "caution" },
+ { pkg: "com.qti.snapdragon.qdcm_ff", label: "Qdcm Ff", description: "Qualcomm Display Color Management tool", safety: "caution" },
+ { pkg: "com.qualcomm.qti.qcolor", label: "Qcolor", description: "Something to do with colors?", safety: "caution" },
+ { pkg: "com.qualcomm.atfwd", label: "Atfwd", description: "Used to send AT command messages from/to the modem", safety: "safe" },
+ { pkg: "com.qualcomm.cabl", label: "Cabl", description: "Content Adaptative Backlight Settings", safety: "safe" },
+ { pkg: "com.qualcomm.embms", label: "Embms", description: "Runs on boot, but not in the background beyond that?", safety: "safe" },
+ { pkg: "com.qualcomm.fastdormancy", label: "Fastdormancy", description: "Provide Fast Dormancy feature/setting in the dialer (reduce battery consumption and network utilization dur...", safety: "caution" },
+ { pkg: "com.qualcomm.location", label: "Location", description: "LocationServices", safety: "caution" },
+ { pkg: "com.qualcomm.qcrilmsgtunnel", label: "Qcrilmsgtunnel", description: "Long-form name: Qualcomm Radio Interface Layer Message Tunnel.", safety: "caution" },
+ { pkg: "com.qualcomm.simcontacts", label: "Simcontacts", description: "Sim Contacts", safety: "safe" },
+ { pkg: "com.qualcomm.svi", label: "Svi", description: "Sunlight Visibility Improvement", safety: "caution" },
+ { pkg: "com.qualcomm.uimremoteserver", label: "Uimremoteserver", description: "Contains a service by the same name, but I've never seen it run.", safety: "caution" },
+ { pkg: "com.qualcomm.uimremoteclient", label: "Uimremoteclient", description: "Contains a service by the same name, but I've never seen it run.", safety: "caution" },
+ { pkg: "com.qualcomm.wfd.service", label: "Service", description: "Wfd Service", safety: "caution" },
+ { pkg: "com.qualcomm.qti.auth.fidocryptoservice", label: "Fidocryptoservice", description: "Qualcomm FIDO implementation.", safety: "safe" },
+ { pkg: "com.qualcomm.qti.autoregistration", label: "Autoregistration", description: "Collects device activation data to remotely activate phone warranty.", safety: "safe" },
+ { pkg: "com.qualcomm.qti.callenhancement", label: "Callenhancement", description: "Supposed to enhance call quality (I'll let you test if it really does)", safety: "safe" },
+ { pkg: "com.qualcomm.qti.callfeaturessetting", label: "Callfeaturessetting", description: "Not mandatory according to some XDA users.", safety: "caution" },
+ { pkg: "com.qualcomm.qti.confdialer", label: "Confdialer", description: "ConfDialer", safety: "caution" },
+ { pkg: "com.qti.dpmserviceapp", label: "Dpmserviceapp", description: "Data Power Manager for the radio.", safety: "caution" },
+ { pkg: "com.qualcomm.qti.networksetting", label: "Networksetting", description: "Network operators (hidden settings menu)", safety: "caution" },
+ { pkg: "com.qualcomm.qti.optinoverlay", label: "Optinoverlay", description: "Overlay for opting into something? Probably safe to disable?", safety: "safe" },
+ { pkg: "com.qualcomm.qti.qms.service.trustzoneaccess", label: "Trustzoneaccess", description: "Handles access to Qualcomm/ARM Trustzone?", safety: "keep" },
+ { pkg: "com.qualcomm.qti.perfdump", label: "Perfdump", description: "Performance dump (logging)", safety: "safe" },
+ { pkg: "com.qualcomm.qti.qms.service.connectionsecurity", label: "Connectionsecurity", description: "Telemetry service", safety: "safe" },
+ { pkg: "com.qualcomm.qti.qms.service.telemetry", label: "Telemetry", description: "Qualcomm Mobile Security", safety: "safe" },
+ { pkg: "com.qualcomm.qti.qtisystemservice", label: "Qtisystemservice", description: "Seems to only log stuff related to telephony?", safety: "caution" },
+ { pkg: "com.qualcomm.qti.roamingsettings", label: "Roamingsettings", description: "Hidden settings menu for tweaking roaming settings? How exactly do you access this menu?", safety: "caution" },
+ { pkg: "com.qualcomm.qti.rcsimsbootstraputil", label: "Rcsimsbootstraputil", description: "RCS Service", safety: "safe" },
+ { pkg: "com.qualcomm.qti.uceshimservice", label: "Uceshimservice", description: "UCE shim service", safety: "caution" },
+ { pkg: "com.qualcomm.qti.uceShimService", label: "Uceshimservice", description: "UCE shim service", safety: "caution" },
+ { pkg: "com.qualcomm.timeservice", label: "Timeservice", description: "Qualcomm Time Service", safety: "caution" },
+ { pkg: "com.qti.xdivert", label: "Xdivert", description: "Smart-Divert", safety: "safe" },
+ { pkg: "com.quicinc.cne.CNEService", label: "Cneservice", description: "Qualcomm Connectivity Engine", safety: "caution" },
+ { pkg: "com.quicinc.voice.activation", label: "Activation", description: "Qualcomm Voice Assist (https://play.google.com/store/apps/details?id=com.quicinc.voice.activation)", safety: "safe" },
+ { pkg: "com.qualcomm.qti.dynamicddsservice", label: "Dynamicddsservice", description: "Dynamic DDS Service", safety: "caution" },
+ { pkg: "com.qualcomm.qti.lpa", label: "Lpa", description: "lpa = Local Profile Assistants", safety: "caution" },
+ { pkg: "com.qualcomm.qti.remoteSimlockAuth", label: "Remotesimlockauth", description: "Authentication for locking/unlocking eSIM remotely?", safety: "caution" },
+ { pkg: "com.qualcomm.qti.simsettings", label: "Simsettings", description: "Related to SIM settings? Exact nature is unclear.", safety: "caution" },
+ { pkg: "com.qualcomm.qti.telephonyservice", label: "Telephonyservice", description: "Sound processing during phonecalls.", safety: "keep" },
+ { pkg: "com.qualcomm.qti.telephony.vodafonepack", label: "Vodafonepack", description: "Related to Vodafone Prepaid Recharge Plan", safety: "caution" },
+ { pkg: "com.qualcomm.qti.uim", label: "Uim", description: "Runs \"RemoteSimLockService\" in the background.", safety: "safe" },
+ { pkg: "com.qualcomm.qti.uimGbaApp", label: "Uimgbaapp", description: "Contains a \"GbaService\", but I've never seen it run.", safety: "caution" },
+ { pkg: "com.quicinc.fmradio", label: "Fmradio", description: "FM Radio app by Qualcomm", safety: "caution" },
+ { pkg: "com.qualcomm.qti.qmmi", label: "Qmmi", description: "QMMI is a test app made by Qualcomm. It is used by service center to test the working of the various device...", safety: "safe" },
+ { pkg: "cci.usage", label: "Usage", description: "My Consumer Cellular (https://play.google.com/store/apps/details?id=cci.usage)", safety: "safe" },
+ { pkg: "com.android.ld.appstore", label: "Appstore", description: "LD Gaming Appstore", safety: "safe" },
+ { pkg: "com.aspiro.tidal", label: "Tidal", description: "Tidal Music (https://play.google.com/store/apps/details?id=com.aspiro.tidal)", safety: "safe" },
+ { pkg: "com.audible.application", label: "Application", description: "Cover Audible Audiobooks (https://play.google.com/store/apps/details?id=com.audible.application)", safety: "safe" },
+ { pkg: "com.bleacherreport.android.teamstream", label: "Teamstream", description: "Bleacher Report (https://play.google.com/store/apps/details?id=com.bleacherreport.android.teamstream)", safety: "safe" },
+ { pkg: "com.blurb.checkout", label: "Checkout", description: "Blurb Checkout", safety: "safe" },
+ { pkg: "com.booking", label: "Booking", description: "Booking.com app (https://play.google.com/store/apps/details?id=com.booking)", safety: "safe" },
+ { pkg: "com.cequint.ecid", label: "Ecid", description: "Caller ID from Cequint (https://www.cequint.com/)", safety: "safe" },
{ pkg: "com.cnn.mobile.android.phone", label: "Phone", description: "CNN Breaking US & World News app (https://play.google.com/store/apps/details?id=com.cnn.mobile.android.phone)", safety: "safe" },
{ pkg: "com.contextlogic.wish", label: "Wish", description: "Wish Shopping (https://play.google.com/store/apps/details?id=com.contextlogic.wish)", safety: "safe" },
- { pkg: "com.cootek.smartinputv5.language.englishgb", label: "Englishgb", description: "TouchPal Keyboard by Cootek a chinese company. Adware (lots and lots of ads) Worth reading : https://www.buzzfeednews.com/article/craigsilverman/google-banned-cootek-adware", safety: "safe" },
- { pkg: "com.cootek.smartinputv5.language.spanishus", label: "Spanishus", description: "TouchPal Keyboard by Cootek a chinese company. Adware (lots lots of ads) Worth reading : https://www.buzzfeednews.com/article/craigsilverman/google-banned-cootek-adware", safety: "safe" },
- { pkg: "com.crowdcare.agent.k", label: "K", description: "Crowdcare is now Wysdom.AI From their Twitter description: the easiest way for businesses to improve customer satisfaction, contain costs, and generate revenue by using #AI to power customer experiences. Wysdom.AI has joined the Microsoft Partner Network in 2018 https://wysdom.ai/privacy-policy/ (not good)", safety: "safe" },
- { pkg: "com.davincikids.tv", label: "Tv", description: "Davinci Media A 2 star streaming service. https://play.google.com/store/apps/details?id=com.davincikids.tv", safety: "safe" },
- { pkg: "com.debug.loggerui", label: "Loggerui", description: "DebugLoggerUI Similar to logcat, in some sense. Mostly focused on video graphics logging and network logging (includes Bluetooth). On some devices, it runs in the background (working non-cache RAM) even while not in use. https://peterelst.com/what-is-debug-logger-ui-android", safety: "safe" },
- { pkg: "com.devhd.feedly", label: "Feedly", description: "Feedly (https://play.google.com/store/apps/details?id=com.devhd.feedly) News aggregator application (RSS) RSS aggregator are great but Feedly is really bad, especially privacy-wise. https://feedly.com/i/legal/privacy Better Alternative : https://github.com/FreshRSS/FreshRSS", safety: "safe" },
- { pkg: "com.digitalturbine.toolbar", label: "Toolbar", description: "Digital Turbine . Adware and used by carriers to showcase their apps FYI: Digital Turbine is an advertising company. [HELP: CAN SOMEONE UPLOAD THE APK?]", safety: "safe" },
- { pkg: "com.diotek.sec.lookup.dictionary", label: "Dictionary", description: "Samsung dictionary from Diotek (Korean company) http://en.diotek.com/", safety: "safe" },
- { pkg: "com.directv.dvrscheduler", label: "Dvrscheduler", description: "DIRECTV (https://play.google.com/store/apps/details?id=com.directv.dvrscheduler) Offical app from DIRECTV (subsidiary of AT&T) Lets you watch Live TV, recorded shows, VODs and schedule recordings on your DVR Worth reading : https://en.wikipedia.org/wiki/DirecTV#Consumer_protection_lawsuits_and_violations", safety: "safe" },
- { pkg: "com.discoveryscreen", label: "Discoveryscreen", description: "Appflash (https://play.google.com/store/apps/details?id=com.discoveryscreen) Verizon Spyware. https://www.eff.org/deeplinks/2017/04/update-verizons-appflash-pre-installed-spyware-still-spyware", safety: "safe" },
+ { pkg: "com.cootek.smartinputv5.language.spanishus", label: "Spanishus", description: "TouchPal Keyboard by Cootek a chinese company.", safety: "safe" },
+ { pkg: "com.cootek.smartinputv5.language.englishgb", label: "Englishgb", description: "TouchPal Keyboard by Cootek a chinese company.", safety: "safe" },
+ { pkg: "com.crowdcare.agent.k", label: "K", description: "Crowdcare is now Wysdom.AI (https://nitter.42l.fr/wysdomai)", safety: "safe" },
+ { pkg: "com.devhd.feedly", label: "Feedly", description: "Feedly (https://play.google.com/store/apps/details?id=com.devhd.feedly)", safety: "safe" },
+ { pkg: "com.diotek.sec.lookup.dictionary", label: "Dictionary", description: "Samsung dictionary from Diotek (Korean company)", safety: "safe" },
+ { pkg: "com.directv.dvrscheduler", label: "Dvrscheduler", description: "DIRECTV (https://play.google.com/store/apps/details?id=com.directv.dvrscheduler)", safety: "safe" },
+ { pkg: "com.discoveryscreen", label: "Discoveryscreen", description: "Appflash (https://play.google.com/store/apps/details?id=com.discoveryscreen)", safety: "safe" },
{ pkg: "com.dna.solitaireapp", label: "Solitaireapp", description: "Solitaire Game app from DNA company ?", safety: "safe" },
- { pkg: "com.dolby.daxservice", label: "Daxservice", description: "Dolby Runs in the background as part of the system. Runs even if disabled. \"Optimizes system audio performance\" or something like that. This is likely the backend audio service, possibly applying settings from com.oneplus.sound.tuner (\"Dolby Atmos\") to the audio processing.", safety: "caution" },
- { pkg: "com.draftkings.dknativermgGP.vpl", label: "Vpl", description: "DraftKings - Daily Fantasy Sports for Cash App has been removed from the Playstore. Worth reading : https://en.wikipedia.org/wiki/DraftKings", safety: "safe" },
- { pkg: "com.drivemode", label: "Drivemode", description: "DraftKings - Daily Fantasy Sports for Cash App has been removed from the Playstore. Worth reading : https://en.wikipedia.org/wiki/DraftKings Drivemode (https://play.google.com/store/apps/details?id=com.drivemode.android) Simplifies how you manage calls and messages while driving. https://drivemode.com/privacy-2/", safety: "safe" },
- { pkg: "com.dsi.ant.plugins.antplus", label: "Antplus", description: "ANT+ plugin service (https://play.google.com/store/apps/details?id=com.dsi.ant.plugins.antplus)", safety: "safe" },
- { pkg: "com.dsi.ant.sample.acquirechannels", label: "Acquirechannels", description: "I don't know why there is\"sample\" in the name. Is this package really useful to find ANT channels ?", safety: "safe" },
- { pkg: "com.dsi.ant.server", label: "Server", description: "ANT Radio Service Test. ANT HAL(Hardware Abstraction Layer) Server ANT is a wireless protocol, similar to Bluetooth, that is mainly used for sport and fitness trackers.", safety: "safe" },
- { pkg: "com.dsi.ant.service.socket", label: "Socket", description: "ANT Radio Service (https://play.google.com/store/apps/details?id=com.dsi.ant.service.socket) ANT is a wireless protocol, similar to Bluetooth, that is mainly used for sport and fitness trackers.", safety: "caution" },
- { pkg: "com.ebay.carrier", label: "Carrier", description: "Kind of weird ebay apps pre-installed by carriers.", safety: "safe" },
+ { pkg: "com.drivemode", label: "Drivemode", description: "DraftKings - Daily Fantasy Sports for Cash", safety: "safe" },
{ pkg: "com.ebay.mobile", label: "Mobile", description: "Ebay app (https://play.google.com/store/apps/details?id=com.ebay.mobile)", safety: "safe" },
- { pkg: "com.ehernandez.radiolainolvidable", label: "Radiolainolvidable", description: "Radio La Inolvidable Peru (no longer exist) Spanish Radio app.", safety: "safe" },
- { pkg: "com.emoji.keyboard.touchpal", label: "Touchpal", description: "TouchPal Emoji Keyboard by Cootek a chinese company Adware (lots and lots of ads) Worth reading : https://www.buzzfeednews.com/article/craigsilverman/google-banned-cootek-adware", safety: "safe" },
+ { pkg: "com.ebay.carrier", label: "Carrier", description: "Kind of weird ebay apps pre-installed by carriers.", safety: "safe" },
+ { pkg: "com.ehernandez.radiolainolvidable", label: "Radiolainolvidable", description: "Radio La Inolvidable Peru (no longer exist)", safety: "safe" },
+ { pkg: "com.emoji.keyboard.touchpal", label: "Touchpal", description: "TouchPal Emoji Keyboard by Cootek a chinese company", safety: "safe" },
{ pkg: "com.eterno", label: "Eterno", description: "Daily hunts News. (https://play.google.com/store/apps/details?id=com.eterno&hl=en)", safety: "safe" },
{ pkg: "com.evernote", label: "Evernote", description: "Evernote app (https://play.google.com/store/apps/details?id=com.evernote)", safety: "safe" },
- { pkg: "com.evernote.promohelper", label: "Promohelper", description: "Companion for the Evernote app, seems to drain battery.", safety: "safe" },
- { pkg: "com.example", label: "Example", description: "Auto Dialer test", safety: "safe" },
- { pkg: "com.example.myapplication", label: "Myapplication", description: "Hidden app for testing: Battery, WiFi, Bluetooth", safety: "safe" },
- { pkg: "com.facebook.appmanager", label: "Appmanager", description: "Facebook app manager handles Facebook apps updates.", safety: "safe" },
- { pkg: "com.facebook.katana", label: "Katana", description: "Facebook app (https://play.google.com/store/apps/details?id=com.facebook.katana)", safety: "safe" },
- { pkg: "com.facebook.lite", label: "Lite", description: "Facebook Lite app (https://play.google.com/store/apps/details?id=com.facebook.lite)", safety: "safe" },
- { pkg: "com.facebook.orca", label: "Orca", description: "Facebook Messenger (https://play.google.com/store/apps/details?id=com.facebook.orca)", safety: "safe" },
- { pkg: "com.facebook.services", label: "Services", description: "Facebook Services is a tool that lets you manage different Facebook services automatically using your Android device. In particular, the tool focuses on searching for nearby shops and establishments based on your interests. I don't know if this a dependency for com.facebook.katana but nobody cares because we all want to delete all the Facebook stuff right ?!!", safety: "safe" },
- { pkg: "com.facebook.system", label: "System", description: "Facebook App Installer (empty shell app which incites you to install the Facebook app)", safety: "safe" },
- { pkg: "com.fet.fridaywallet", label: "Fridaywallet", description: "friDay Wealth Management Provides customized deposit goal progress management services https://play.google.com/store/apps/details?id=com.fet.fridaywallet", safety: "safe" },
- { pkg: "com.fido.asm", label: "Asm", description: "FIDO UAF1.0 ASM Related to app fingerprint unlocking and payments. Safe to remove if you don't use password-less authentication to access online services.", safety: "caution" },
- { pkg: "com.fido.uafclient", label: "Uafclient", description: "FIDO UAF1.0 Client Probably related to FIDO digital key gadget (Client), probably safe to remove if you don't have any.", safety: "caution" },
- { pkg: "com.finshell.fin", label: "Fin", description: "FinShell Pay (https://play.google.com/store/apps/details?id=com.finshell.fin) Provides various Payment and Financial Services. Pretty bad privacy policy: https://rwallet.finshell.co.in/html/user/privacy_policy.html", safety: "safe" },
- { pkg: "com.fintech.life", label: "Life", description: "Chinese app that spoofs as a Singapore financial and/or payment app to show advertisement notifications (mostly loans) It accesses locations, contacts, camera, mic by default, some people in Thailand also reported that they cannot use legitimate regional banking apps until this app was disabled or uninstalled with ADB method. While newer devices that start with Oppo ColorOS 13 and/or Realme UI 4 (around Android 13) are already baked in, it seems likely that it comes with a system update at older devices of those brands, so this is shady and constantly lost trust from many users. https://safereddit.com/r/Thailand/comments/1hzdwhr", safety: "safe" },
- { pkg: "com.flipkart.android", label: "Android", description: "Pre-installed Indian shopping bloatware with ads. (https://play.google.com/store/apps/details?id=com.flipkart.android)", safety: "safe" },
- { pkg: "com.focaltech.fingerprint", label: "Fingerprint", description: "Another fingerprint sensor test tool but Chinese.", safety: "safe" },
- { pkg: "com.focaltech.fpsensormmitest", label: "Fpsensormmitest", description: "Related to `com.focaltech.fingerprint`. Seems like a debugging activity triggered by dialing an MMI code", safety: "safe" },
- { pkg: "com.fw.upgrade.sysoper", label: "Sysoper", description: "UpgradeSys FOTA = Firmware Over-the-air. Has a history of spying its users. https://www.malwarebytes.com/blog/news/2017/12/mobile-menace-monday-upping-the-ante-on-adups-fwupgradeprovider https://www.cvedetails.com/vulnerability-list/vendor_id-16034/product_id-35606/year-2017/Adups-Adups-Fota.html", safety: "safe" },
- { pkg: "com.galaxyfirsatlari", label: "Galaxyfirsatlari", description: "Galaxy Fırsatları (https://play.google.com/store/apps/details?id=com.galaxyfirsatlari) Samsung-only app for Turkish people Recommands you stuff to buy. You are supposed to save money but we all know this kind of apps encourages consumption. Exodus found 10 trackers and 17 permissions : https://reports.exodus-privacy.eu.org/fr/reports/143830/", safety: "safe" },
- { pkg: "com.gd.mobicore.pa", label: "Pa", description: "Mobicore is now Trustonic Trustonic is a small OS running on the CPU providing a TEE, an isolated environment that runs in parallel with the operating system, guaranteeing code and data loaded inside to be protected. Sounds great, but it's closed source and\"normal\" devs can't use it for their apps. See\"com.trustonic.tuiservice\".", safety: "caution" },
- { pkg: "com.generalmobi.go2pay", label: "Go2pay", description: "Go2Pay (https://play.google.com/store/apps/details?id=com.generalmobi.go2pay) Payment app that offers mobile pre-paid recharges and post-paid bill payment, data card recharges and bill payment, DTH recharges through cashless transactions. DTH = Direct To Home Television", safety: "safe" },
- { pkg: "com.glance.internet", label: "Internet", description: "Displays unsolicited\"trending\" stories on Lockscreen", safety: "safe" },
- { pkg: "com.gohappy.mobileapp", label: "Mobileapp", description: "Shopping app of friDay https://play.google.com/store/apps/details?id=com.gohappy.mobileacom.fetself", safety: "safe" },
- { pkg: "com.google.android.wifi.resources.overlay.pineapple", label: "Pineapple", description: "An overlay for com.android.wifi.resources for devices using the “pineapple” Wi‑Fi HAL (Google’s internal codename for a Wi‑Fi module configuration). Not safe to remove, especially on Android 13+.", safety: "keep" },
+ { pkg: "com.galaxyfirsatlari", label: "Galaxyfirsatlari", description: "Galaxy F\u0131rsatlar\u0131 (https://play.google.com/store/apps/details?id=com.galaxyfirsatlari)", safety: "safe" },
+ { pkg: "com.generalmobi.go2pay", label: "Go2Pay", description: "Go2Pay (https://play.google.com/store/apps/details?id=com.generalmobi.go2pay)", safety: "safe" },
{ pkg: "com.gotv.nflgamecenter.us.lite", label: "Lite", description: "Football NFL (https://play.google.com/store/apps/details?id=com.gotv.nflgamecenter.us.lite)", safety: "safe" },
- { pkg: "com.groupon", label: "Groupon", description: "Groupon (https://play.google.com/store/apps/details?id=com.groupon) Online shopping deals and coupons. Worth reading : https://en.wikipedia.org/wiki/Groupon#Reception", safety: "safe" },
+ { pkg: "com.groupon", label: "Groupon", description: "Groupon (https://play.google.com/store/apps/details?id=com.groupon)", safety: "safe" },
{ pkg: "com.hancom.office.editor.hidden", label: "Hidden", description: "Legacy Hancom Office Editor (Korean alternative to Microsoft Office). Featured in Samsung and LG phones", safety: "safe" },
- { pkg: "com.handmark.expressweather", label: "Expressweather", description: "1Weather (https://play.google.com/store/apps/details?id=com.handmark.expressweather) Forecasts alerts app (contain ads)", safety: "safe" },
- { pkg: "com.handmark.expressweather.vpl", label: "Vpl", description: "1Weather (https://play.google.com/store/apps/details?id=com.handmark.expressweather) Forecasts alerts app (contain ads)", safety: "safe" },
- { pkg: "com.haoba.btsmart", label: "Btsmart", description: "Agui Unibuds Iot stuff. May only be needed if you use Uniherts Ear Buds (Unibuds).", safety: "safe" },
- { pkg: "com.haokan.pictorial", label: "Pictorial", description: "92 Lock Screen for RealMe 92 is pronounce in Chinese as 'Hao Kan' (it's the company name), so it's a Chinese app. This not related to 'Lock Screen Magazine' and potentially inject ads in lock screen.", safety: "safe" },
- { pkg: "com.heytap.accessory", label: "Accessory", description: "Accessory Framework Quick device connect feature. Can be disabled via hidden setting (Settings -> Search 'App Enhancement Services' -> Quick device connect) if not wanted. Allows you to search for nearby devices and connect to them without having to go through the Bluetooth or WiFi Direct settings' Ghosh! 32 permissions just for this? Pithus analysis: https://beta.pithus.org/report/cc0ba95f0d0867ba6d883275cd2f6c4aa252ebc874f15f1ee240bb5bac330578", safety: "caution", deps: ["com.heytap.mcs"], neededBy: ["com.oplus.synergy"] },
- { pkg: "com.hp.android.printservice", label: "Printservice", description: "Print to your HP printer using your Android phone. Most reviews on Google Play say it doesn't work very well. https://play.google.com/store/apps/details?id=com.hp.android.printservice", safety: "safe" },
- { pkg: "com.huaqin.FM", label: "FM", description: "Radio app from huaqin a chinese company NOTE : Transistor [https://f-droid.org/en/packages/org.y20k.transistor/] is much better", safety: "safe" },
- { pkg: "com.huaqin.batteryinfo", label: "Batteryinfo", description: "Tests hardware things.", safety: "safe" },
- { pkg: "com.huaqin.clearefs", label: "Clearefs", description: "Debugging logs Wifi, Bluetooth", safety: "safe" },
- { pkg: "com.huaqin.pocketbanreceiver", label: "Pocketbanreceiver", description: "I found in code useless permissions BAN_BROADCAST and hello world! This app means nothing.", safety: "safe" },
- { pkg: "com.huaqin.sarcontroller", label: "Sarcontroller", description: "It have something like sar sensor, idk if it's for testing but mainactivity have chinese words and sar is for radio regulations?", safety: "safe" },
- { pkg: "com.huaqin.shutdownservice", label: "Shutdownservice", description: "ShutdownAfterScreenOff10MinutesService. Not needed", safety: "safe" },
- { pkg: "com.hulu.plus", label: "Plus", description: "Hulu (https://play.google.com/store/apps/details?id=com.hulu.plus&hl) Netflix competitor. FYI : Hulu is owned by Disney. https://en.wikipedia.org/wiki/Hulu https://www.digitaltrends.com/home-theater/hulu-vs-disney-plus/", safety: "safe" },
- { pkg: "com.idea.questionnare", label: "Questionnare", description: "[NEED MORE INFO / NEED APK] Quizz app from MobileIdea company?", safety: "safe" },
- { pkg: "com.ideashower.readitlater.pro", label: "Pro", description: "Pocket (https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro) Allows you to save an article or web page to remote servers for later reading Was purchased by Mozilla in 2017 but is still close source for now. https://getpocket.com/privacy Open-source alternative : https://wallabag.org/", safety: "safe" },
+ { pkg: "com.handmark.expressweather.vpl", label: "Vpl", description: "1Weather (https://play.google.com/store/apps/details?id=com.handmark.expressweather)", safety: "safe" },
+ { pkg: "com.hulu.plus", label: "Plus", description: "Hulu (https://play.google.com/store/apps/details?id=com.hulu.plus&hl)", safety: "safe" },
+ { pkg: "com.ideashower.readitlater.pro", label: "Pro", description: "Pocket (https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro)", safety: "safe" },
{ pkg: "com.imdb.mobile", label: "Mobile", description: "IMDb mobile app (https://play.google.com/store/apps/details?id=com.imdb.mobile)", safety: "safe" },
- { pkg: "com.infraware.polarisoffice5", label: "Polarisoffice5", description: "Polaris Office from US Infraware Inc company (Microsoft Office like) https://en.wikipedia.org/wiki/Polaris_Office https://play.google.com/store/apps/details?id=com.infraware.office.link", safety: "safe" },
- { pkg: "com.instagram.android", label: "Android", description: "Instagram (https://play.google.com/store/apps/details?id=com.instagram.android)", safety: "safe" },
- { pkg: "com.ironsource.appcloud.oobe", label: "Oobe", description: "AppCloud (discontinued) from ironSource, an advertising company. Worth reading : https://en.wikipedia.org/wiki/IronSource.", safety: "safe" },
- { pkg: "com.ironsource.appcloud.oobe.huawei", label: "Huawei", description: "Essentials apps App which promotes some other apps (and encourages you to install them) Developed by IronSource, a\"next-generation advertising company\" https://aura.ironsrc.com/ (app) | https://company.ironsrc.com/ (company) When you try to read their privacy policy you arrive to an outstanding blank PDF file! (http://www.ironsrc.com/wp-content/uploads/2019/03/ironSource-Privacy-Policy.pdf)", safety: "safe" },
- { pkg: "com.ironsoure.appcloud.oobe.wiko", label: "Wiko", description: "Provides first time setup for Wiko mobile", safety: "safe" },
- { pkg: "com.jewelsblast.ivygames.Adventure.free", label: "Free", description: "Jewels Blast. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.jiiov.fingerprint_factorytest", label: "Fingerprint_factorytest", description: "A factory test app for Jiiov fingerprint scanners (Jiiov fingerprint scanners are mostly used on devices such as Xiaomi, Redmi, POCO, etc..). Mostly not needed for daily phone use, might be needed in service centers during repair or when you'll want to test your fingerprint scanner. Not sure how to even access it.", safety: "safe" },
+ { pkg: "com.infraware.polarisoffice5", label: "Polarisoffice5", description: "Polaris Office from US Infraware Inc company (Microsoft Office like)", safety: "safe" },
+ { pkg: "com.ironsource.appcloud.oobe", label: "Oobe", description: "AppCloud (discontinued) from ironSource, an advertising company.", safety: "safe" },
+ { pkg: "com.ironsource.appcloud.oobe.huawei", label: "Huawei", description: "Essentials apps", safety: "safe" },
{ pkg: "com.king.candycrush4", label: "Candycrush4", description: "Candy Crush Friends Saga (https://play.google.com/store/apps/details?id=com.king.candycrush4)", safety: "safe" },
- { pkg: "com.king.candycrushsaga", label: "Candycrushsaga", description: "Candy Crush Saga (https://play.google.com/store/apps/details?id=com.king.candycrushsaga) I don't understand why this game is so popular (I guess the fact it is pre-installed in a lot of phone helps)", safety: "safe" },
{ pkg: "com.king.candycrushsodasaga", label: "Candycrushsodasaga", description: "Candy Crush Soda Saga (https://play.google.com/store/apps/details?id=com.king.candycrushsodasaga)", safety: "safe" },
+ { pkg: "com.king.candycrushsaga", label: "Candycrushsaga", description: "Candy Crush Saga (https://play.google.com/store/apps/details?id=com.king.candycrushsaga)", safety: "safe" },
{ pkg: "com.linkedin.android", label: "Android", description: "Linkedin app (https://play.google.com/store/apps/details?id=com.linkedin.android)", safety: "safe" },
- { pkg: "com.logame.eliminateintruder3d", label: "Eliminateintruder3d", description: "Dust Settle. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
{ pkg: "com.lookout", label: "Lookout", description: "Lookout Security & Antivirus (https://play.google.com/store/apps/details?id=com.lookout)", safety: "safe" },
- { pkg: "com.macropinch.swan", label: "Swan", description: "Weather https://play.google.com/store/apps/details?id=com.macropinch.swan", safety: "safe" },
- { pkg: "com.magiear.handsfree.assistant", label: "Assistant", description: "Hands-Free Assistant Only has permission activity voice from mediatek. https://play.google.com/store/apps/details?id=com.magiear.handsfree.assistant", safety: "safe" },
- { pkg: "com.mediatek", label: "Mediatek", description: "Core system services and drivers for MediaTek-powered devices. Mediatek is a Taiwanese chipset manufacturer. Can someone share the apk? This package name is really weird. It is most likely a set of general APIs for accessing general mediatek functionalities. Cause Bootloop.", safety: "keep" },
- { pkg: "com.mediatek.FrameworkResOverlayExt", label: "FrameworkResOverlayExt", description: "DisplayCutout founded in code.", safety: "keep" },
- { pkg: "com.mediatek.MtkSettingsResOverlay", label: "MtkSettingsResOverlay", description: "Nothing found in this app.", safety: "caution" },
- { pkg: "com.mediatek.SettingsProviderResOverlay", label: "SettingsProviderResOverlay", description: "Nothing found in this app.", safety: "caution" },
- { pkg: "com.mediatek.aovtestapp", label: "Aovtestapp", description: "It tests in camera something.", safety: "safe" },
- { pkg: "com.mediatek.atci.service", label: "Service", description: "Well this code is hard to understand, it have only notification stuff and needed for ims wifi calling.", safety: "caution" },
+ { pkg: "com.micredit.in", label: "In", description: "Mi Credit (https://play.google.com/store/apps/details?id=com.micredit.in.gp)", safety: "safe" },
+ { pkg: "com.netflix.mediaclient", label: "Mediaclient", description: "Netflix app (https://play.google.com/store/apps/details?id=com.netflix.mediaclient)", safety: "safe" },
+ { pkg: "com.netflix.partner.activation", label: "Activation", description: "Apk file name: By_3rd_NetflixActivationOverSeas", safety: "safe" },
+ { pkg: "com.niksoftware.snapseed", label: "Snapseed", description: "Snapseed (https://play.google.com/store/apps/details?id=com.niksoftware.snapseed)", safety: "safe" },
+ { pkg: "com.nuance.swype.input", label: "Input", description: "Swype keyboard by Nuance", safety: "safe" },
+ { pkg: "com.opera.branding", label: "Branding", description: "Opera Branding Provider", safety: "safe" },
+ { pkg: "com.opera.branding.news", label: "News", description: "Opera News Branding Provider", safety: "safe" },
+ { pkg: "com.opera.mini.native", label: "Native", description: "Opera Mini web browser (https://play.google.com/store/apps/details?id=com.opera.mini.native)", safety: "safe" },
+ { pkg: "com.opera.preinstall", label: "Preinstall", description: "Opera Preinstall Data", safety: "safe" },
+ { pkg: "com.opera.max.preinstall", label: "Preinstall", description: "Opera Max (discontinued)", safety: "safe" },
+ { pkg: "com.particlenews.newsbreak", label: "Newsbreak", description: "News Break: Local & Breaking (https://play.google.com/store/apps/details?id=com.particlenews.newsbreak)", safety: "safe" },
+ { pkg: "com.phonepe.app", label: "App", description: "PhonePe (https://play.google.com/store/apps/details?id=com.phonepe.app)", safety: "safe" },
+ { pkg: "com.pinsight.v1", label: "V1", description: "App Spotlight", safety: "safe" },
+ { pkg: "com.playphone.gamestore", label: "Gamestore", description: "Playphone Gamestore (https://www.playphone.com/)", safety: "safe" },
+ { pkg: "com.playphone.gamestore.loot", label: "Loot", description: "Loot", safety: "safe" },
+ { pkg: "com.pure.indosat.care", label: "Care", description: "myIM3 (https://play.google.com/store/apps/details?id=com.pure.indosat.care)", safety: "safe" },
+ { pkg: "com.huaqin.FM", label: "Fm", description: "Radio app from huaqin a chinese company", safety: "safe" },
+ { pkg: "com.nextradioapp.nextradio", label: "Nextradio", description: "NextRadio (https://play.google.com/store/apps/details?id=com.nextradioapp.nextradio)", safety: "safe" },
+ { pkg: "com.pinsight.dw", label: "Dw", description: "App Stack", safety: "safe" },
+ { pkg: "com.realvnc.android.remote", label: "Remote", description: "Remote controle service by Realvnc (https://en.wikipedia.org/wiki/RealVNC)", safety: "safe" },
+ { pkg: "com.remotefairy4", label: "Remotefairy4", description: "AnyMote Universal Remote + Wifi Smart Home Control (https://play.google.com/store/apps/details?id=com.remot...", safety: "safe" },
+ { pkg: "com.republicwireless.tel", label: "Tel", description: "Republic (https://play.google.com/store/apps/details?id=com.republicwireless.tel&hl)", safety: "safe" },
+ { pkg: "com.rhapsody.vpl", label: "Vpl", description: "Napster Music (https://play.google.com/store/apps/details?id=com.rhapsody)", safety: "safe" },
+ { pkg: "com.rhapsody", label: "Rhapsody", description: "Napster Music (https://play.google.com/store/apps/details?id=com.rhapsody)", safety: "safe" },
+ { pkg: "com.sem.factoryapp", label: "Factoryapp", description: "SEMFactoryApp", safety: "safe" },
+ { pkg: "com.servicemagic.consumer", label: "Consumer", description: "HomeAdvisor: Contractors for Home Improvement (https://play.google.com/store/apps/details?id=com.servicemag...", safety: "safe" },
+ { pkg: "com.setk.widget", label: "Widget", description: "Galaxy Bizz (https://play.google.com/store/apps/details?id=com.setk.widget)", safety: "safe" },
+ { pkg: "com.sharecare.askmd", label: "Askmd", description: "AskMD (discontinued) provided by Sharecare", safety: "safe" },
+ { pkg: "com.slacker.radio", label: "Radio", description: "LiveXLive - Streaming Music and Live Events (https://play.google.com/store/apps/details?id=com.slacker.radio)", safety: "safe" },
+ { pkg: "com.shopee.id", label: "Id", description: "Shopee 2.2 (https://play.google.com/store/apps/details?id=com.shopee.id)", safety: "safe" },
+ { pkg: "com.smithmicro.netwise.director.comcast.oem", label: "Oem", description: "XFINITY Wifi settings (https://play.google.com/store/apps/details?id=com.smithmicro.netwise.director.comcas...", safety: "safe" },
+ { pkg: "com.spotify.music", label: "Music", description: "Spotify app (https://play.google.com/store/apps/details?id=com.spotify.music)", safety: "safe" },
+ { pkg: "com.swiftkey.swiftkeyconfigurator", label: "Swiftkeyconfigurator", description: "SwiftKey factory settings", safety: "safe" },
+ { pkg: "com.s.antivirus", label: "Antivirus", description: "AVG Antivirus (https://play.google.com/store/apps/details?id=com.s.antivirus) for Sony Xperia.", safety: "safe" },
+ { pkg: "com.telenav.app.android.cingular", label: "Cingular", description: "AT&T Navigator (https://play.google.com/store/apps/details?id=com.telenav.app.android.cingular)", safety: "safe" },
+ { pkg: "com.telenav.app.android.scout_us", label: "Scout Us", description: "Scout GPS Navigation & Meet Up (https://play.google.com/store/apps/details?id=com.telenav.app.android.scout...", safety: "safe" },
+ { pkg: "com.touchtype.swiftkey", label: "Swiftkey", description: "Swiftkey Keyboard (https://play.google.com/store/apps/details?id=com.touchtype.swiftkey)", safety: "caution" },
+ { pkg: "com.touchtype.swiftkey.res.overlay", label: "Overlay", description: "Some overlay for Swiftkey? Overlays are usually themes, but not sure about this one.", safety: "caution" },
+ { pkg: "com.tracker.t", label: "T", description: "WTF is this ?? Given its name I think you can take the risk to delete it.", safety: "safe" },
+ { pkg: "com.turner.cnvideoapp", label: "Cnvideoapp", description: "Cartoon network App (https://play.google.com/store/apps/details?id=com.turner.cnvideoapp)", safety: "safe" },
+ { pkg: "com.tripadvisor.tripadvisor", label: "Tripadvisor", description: "Trip advisor (https://play.google.com/store/apps/details?id=com.tripadvisor.tripadvisor)", safety: "safe" },
+ { pkg: "com.ubercab.eats", label: "Eats", description: "Uber (https://play.google.com/store/apps/details?id=com.ubercab)", safety: "safe" },
+ { pkg: "com.ubercab.driver", label: "Driver", description: "Uber (https://play.google.com/store/apps/details?id=com.ubercab)", safety: "safe" },
+ { pkg: "com.ubercab", label: "Ubercab", description: "Uber (https://play.google.com/store/apps/details?id=com.ubercab)", safety: "safe" },
+ { pkg: "com.UCMobile.intl", label: "Intl", description: "UC Browser by Alibaba (https://play.google.com/store/apps/details?id=com.UCMobile.intl)", safety: "safe" },
+ { pkg: "com.ume.browser.northamerica", label: "Northamerica", description: "UME Web Browser (https://play.google.com/store/apps/details?id=com.ume.browser.northamerica)", safety: "safe" },
+ { pkg: "com.wb.goog.got.conquest", label: "Conquest", description: "Game of Thrones: Conquest (https://play.google.com/store/apps/details?id=com.wb.goog.got.conquest)", safety: "safe" },
+ { pkg: "com.yahoo.mobile.client.android.liveweather", label: "Liveweather", description: "Yahoo Weather (https://play.google.com/store/apps/details?id=com.yahoo.mobile.client.android.weather)", safety: "safe" },
+ { pkg: "com.yellowpages.android.ypmobile", label: "Ypmobile", description: "Yellow Pages (https://play.google.com/store/apps/details?id=com.yellowpages.android.ypmobile)", safety: "safe" },
+ { pkg: "com.zhiliaoapp.musically", label: "Musically", description: "Yelp (https://play.google.com/store/apps/details?id=com.yelp.android)", safety: "safe" },
+ { pkg: "de.axelspringer.yana.zeropage", label: "Zeropage", description: "Upday news for Samsung (https://play.google.com/store/apps/details?id=de.axelspringer.yana)", safety: "safe" },
+ { pkg: "flipboard.app", label: "App", description: "Flipboard News App (https://play.google.com/store/apps/details?id=flipboard.app)", safety: "safe" },
+ { pkg: "flipboard.boxer.app", label: "App", description: "Briefing app (https://play.google.com/store/apps/details?id=flipboard.boxer.app)", safety: "safe" },
+ { pkg: "id.co.babe", label: "Babe", description: "BaBe (https://play.google.com/store/apps/details?id=id.co.babe)", safety: "safe" },
+ { pkg: "in.mohalla.sharechat", label: "Sharechat", description: "ShareChat (https://play.google.com/store/apps/details?id=in.mohalla.sharechat)", safety: "safe" },
+ { pkg: "in.playsimple.wordtrip", label: "Wordtrip", description: "World Trip (https://play.google.com/store/apps/details?id=in.playsimple.wordtrip)", safety: "safe" },
+ { pkg: "jp.co.omronsoft.openwnn", label: "Openwnn", description: "Japanese keyboard/IME (don't know why it's pre-installed on US/european devices)", safety: "safe" },
+ { pkg: "jp.gocro.smartnews.android", label: "Android", description: "SmartNews: Local Breaking News (https://play.google.com/store/apps/details?id=jp.gocro.smartnews.android)", safety: "safe" },
+ { pkg: "msgplus.jibe.sca.vpl", label: "Vpl", description: "Messaging Plus. Messings using the RCS protocol (https://en.wikipedia.org/wiki/Rich_Communication_Services)", safety: "safe" },
+ { pkg: "net.sharewire.parkmobilev2", label: "Parkmobilev2", description: "ParkMobile - Find Parking (https://play.google.com/store/apps/details?id=net.sharewire.parkmobilev2)", safety: "safe" },
+ { pkg: "pl.zdunex25.updater", label: "Updater", description: "Updater for the zdnex25's theme", safety: "safe" },
+ { pkg: "tv.fubo.mobile.vpl", label: "Vpl", description: "fuboTV (https://play.google.com/store/apps/details?id=tv.fubo.mobile)", safety: "safe" },
+ { pkg: "tv.peel.app", label: "App", description: "Peel Universal Smart TV Remote Control (discontinued)", safety: "safe" },
+ { pkg: "zpub.res", label: "Res", description: "third-party app pre-installed on ZTE phones.", safety: "safe" },
+ { pkg: "com.monotype.android.font.rosemary", label: "Rosemary", description: "Font", safety: "safe" },
+ { pkg: "com.dsi.ant.sample.acquirechannels", label: "Acquirechannels", description: "I don't know why there is \"sample\" in the name. Is this package really useful to find ANT channels ?", safety: "safe" },
+ { pkg: "com.dsi.ant.server", label: "Server", description: "ANT HAL(Hardware Abstraction Layer) Server", safety: "caution" },
+ { pkg: "com.dsi.ant.service.socket", label: "Socket", description: "ANT Radio Service (https://play.google.com/store/apps/details?id=com.dsi.ant.service.socket)", safety: "caution" },
+ { pkg: "co.sitic.pp", label: "Pp", description: "Designed to remotely lock the phone (by sending a simple SMS) in case you don't pay your bill", safety: "safe" },
+ { pkg: "com.gd.mobicore.pa", label: "Pa", description: "Mobicore is now Trustonic", safety: "caution" },
+ { pkg: "com.trustonic.teeservice", label: "Teeservice", description: "TEE = Trusted Execution Environment", safety: "caution" },
+ { pkg: "com.trustonic.tuiservice", label: "Tuiservice", description: "tuiService (Trusted User Interface) is a security layer by Trustonic.", safety: "caution" },
+ { pkg: "org.simalliance.openmobileapi.uicc2terminal", label: "Uicc2Terminal", description: "Open Mobile API (\"interface\") to access UICC secure elements", safety: "caution" },
+ { pkg: "org.simalliance.openmobileapi.service", label: "Service", description: "The SmartCard API is a reference implementation of the SIMalliance Open Mobile API specification that enabl...", safety: "caution" },
+ { pkg: "com.mediatek", label: "Mediatek", description: "Mediatek is a Taiwanese chipset manufacturer.", safety: "caution" },
{ pkg: "com.mediatek.atmwifimeta", label: "Atmwifimeta", description: "wifi data logger you don't want.", safety: "safe" },
- { pkg: "com.mediatek.autodialer", label: "Autodialer", description: "autodialer, have a lot useless code.", safety: "safe" },
- { pkg: "com.mediatek.batterywarning", label: "Batterywarning", description: "Issues warning when the battery is low or when the battery temperature is high.", safety: "caution" },
- { pkg: "com.mediatek.bluetooth.dtt", label: "Dtt", description: "Bluetooth logging.", safety: "safe" },
- { pkg: "com.mediatek.calendarimporter", label: "Calendarimporter", description: "Useful in China where Google isn’t available, but not needed for Google users.", safety: "safe" },
- { pkg: "com.mediatek.callrecorder", label: "Callrecorder", description: "Call recording app for MediaTek devices. This is not the kind of feature expected from a Soc company. If you remove this I guess you will not be able to record your calls from the stock dialer If disabled, phone calls don't work. You can disable it, but then need to use the Google Phone app to place calls.", safety: "caution" },
- { pkg: "com.mediatek.camera", label: "Camera", description: "Stock Camera app on some Mediatek phones.", safety: "caution" },
- { pkg: "com.mediatek.capctrl.service", label: "Service", description: "It have mtkradioex components used for corporate device management and telephony control. Removing this will break key telephony functions such as SIM detection and carrier configuration, and cause com.android.phone to crash repeatedly.", safety: "caution" },
- { pkg: "com.mediatek.carrierexpress", label: "Carrierexpress", description: "Hidden operator configuration. it's Carrier Express app? also in code there a lot stuff about Custom Operator. I dont know why it should be useful when it only has notifications: SIM card detected or Switching the carrier etc. it's useless.", safety: "safe" },
- { pkg: "com.mediatek.cellbroadcastuiresoverlay", label: "Cellbroadcastuiresoverlay", description: "This app have something to emergency.", safety: "caution" },
- { pkg: "com.mediatek.datachannel.service", label: "Service", description: "Mediatek's DataChannel Service, manages data channels used by IMS for VoLTE, VoWiFi and RCS. The communication bridge between modem and android telephony framework. Will most likely break RCS, VoLTE and VoWiFi. Not worth deleting.", safety: "caution" },
- { pkg: "com.mediatek.dataprotection", label: "Dataprotection", description: "Possibly related to user partition encryption/decryption. A device should works flawlessly without it.", safety: "safe" },
- { pkg: "com.mediatek.datatransfer", label: "Datatransfer", description: "The com.mediatek.datatransfer package is part of MediaTek's suite of utilities and is typically used for managing data transfer between devices or during device setup. This app often supports functions like transferring files, contacts, and other data from one device to another. Removing this package might impair the ability to use MediaTek-specific data transfer tools and could impact some setup or migration processes.", safety: "caution" },
- { pkg: "com.mediatek.duraspeed", label: "Duraspeed", description: "A frontend to a Mediatek service that fully takes over Android's own Adaptive Battery management. Uninstalling this app will only remove the UI component, but not the system service that it's controlling. To completely disable Duraspeed you need to have it enabled first, open Duraspeed app via Settings, and set the toggle to 'Off'. Otherwise Duraspeed service will continue running despite there not being a Duraspeed entry in Settings which will lead to unexpected app freezes that affect FOSS apps such as Dialers/Phones and messengers.", safety: "caution" },
- { pkg: "com.mediatek.emcamera", label: "Emcamera", description: "Useless camera calibration hidden app.", safety: "safe" },
- { pkg: "com.mediatek.engineermode", label: "Engineermode", description: "Engineer mode you can access by dialing a secret code (*#*#3646633#*#* on some Xiaomi phones for instance) It enables you to access the debug/logged data and some hidden firmware settings.", safety: "safe" },
- { pkg: "com.mediatek.entitlement.fcm", label: "Fcm", description: "it's only FCM(Firebase Cloud Messaging). No activities, google firebase. Not needed.", safety: "safe" },
- { pkg: "com.mediatek.factorymode", label: "Factorymode", description: "Tests hardware things.", safety: "safe" },
- { pkg: "com.mediatek.filemanager", label: "Filemanager", description: "The com.mediatek.filemanager package is MediaTek’s proprietary file management app, designed to handle file browsing, organization, and management on devices with MediaTek chipsets. While it provides basic file management functions, there are many more advanced and feature-rich file manager apps available on Google Play.", safety: "safe" },
- { pkg: "com.mediatek.frameworkresoverlay", label: "Frameworkresoverlay", description: "It have something to config AOD. And power saving.", safety: "keep" },
- { pkg: "com.mediatek.fwk.plugin", label: "Plugin", description: "The com.mediatek.fwk.plugin package is part of MediaTek’s framework for managing plugins and extensions specific to MediaTek’s hardware and software ecosystem. This package may handle integration and support for various MediaTek-specific features and enhancements. Removing this package could affect some advanced functionalities or custom features provided by MediaTek, but it generally should not disrupt basic system operations.", safety: "caution" },
- { pkg: "com.mediatek.gba", label: "Gba", description: "Generic Bootstrapping Architecture. Has ims, X-TMUS-IMEI, bsf.msg.lab.t-mobile.com things to encrypted calls ims probably (thinking by looking at the classes.dex code). Connects to site bsf.ims.mncXXX.pub.3gppnetwork.org.", safety: "caution" },
- { pkg: "com.mediatek.gbaservice", label: "Gbaservice", description: "Generic Bootstrapping Architecture. A ‘common ground’ of code used for many MediaTek apps. Can be removed if all other MediaTek apps are removed.", safety: "safe" },
- { pkg: "com.mediatek.gnss.nonframeworklbs", label: "Nonframeworklbs", description: "Have hidden activity and it's maybe for debug location requests, modem, VoWiFi and more. Not useful.", safety: "safe" },
- { pkg: "com.mediatek.gnssdebugreport", label: "Gnssdebugreport", description: "Hidden debug stuff.", safety: "safe" },
- { pkg: "com.mediatek.gpslocationupdate", label: "Gpslocationupdate", description: "Info about gps and notifications. Probably not needed for location.", safety: "safe" },
- { pkg: "com.mediatek.ims", label: "Ims", description: "Mediatek's implementation of IMS (low-level implementation?) https://www.programmersought.com/article/50164530665/ IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling).", safety: "caution" },
- { pkg: "com.mediatek.ims.pco", label: "Pco", description: "Protocol Configuration Options service for IMS IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling). This package enable automatic configuration pushed by your carrier. You could possibly remove it if you don't use IMS.", safety: "caution" },
- { pkg: "com.mediatek.ims.rcsua.service", label: "Service", description: "Needed to support IMS, RCS probably.", safety: "caution" },
- { pkg: "com.mediatek.lbs.em2.ui", label: "Ui", description: "LocationEM2 Another GPS status/testing app. Doesn’t stop GPS from working.", safety: "safe" },
- { pkg: "com.mediatek.location.lppe.main", label: "Main", description: "LPPE = LTE Positioning Protocol enhancements/extensions (LTE =\"4G\") Positioning and assistance protocol between E-SMLC (mobile location center) and UE (User Equipement = phone) https://www.gpsworld.com/wirelessexpert-advice-positioning-protocol-next-gen-cell-phones-11125/ I don't know the app has the permission to read SMS", safety: "caution" },
- { pkg: "com.mediatek.location.mtkgeofence", label: "Mtkgeofence", description: "Mtk Geofence Only logs in code", safety: "safe" },
- { pkg: "com.mediatek.location.mtknlp", label: "Mtknlp", description: "Mtk Nlp Network Location Provider? This app has location permissions and no code.", safety: "caution" },
- { pkg: "com.mediatek.magtapp", label: "Magtapp", description: "MAGTApp Unknown, has GameEventService, MAGTEventAppReceiver, but code doesn't look very useful.", safety: "safe" },
- { pkg: "com.mediatek.mdmconfig", label: "Mdmconfig", description: "Mobile Device Management (MDM) allows company’s IT department to reach inside your phone in the background, allowing them to ensure your device is secure, know where it is, and remotely erase your data if the phone is stolen. It's a way to ensure employees stay productive and do not breach corporate policies You should NEVER have a MDM tool on your personal phone. Never. https://blog.cdemi.io/never-accept-an-mdm-policy-on-your-personal-phone/ This package probably isn't a MDM tool on its own but you definitively don't need it on your phone. Can someone share the apk?", safety: "safe" },
- { pkg: "com.mediatek.mdmlsample", label: "Mdmlsample", description: "It looks like debugging app. But I found some words SUBSCRIBE_TRAP, OTA, VoLTE Other data is a lot of debugging code so it's not needed.", safety: "safe" },
- { pkg: "com.mediatek.miravision.ui", label: "Ui", description: "Mediatek MiraVision Provides extensive hardware and software optimizations that improve the viewing quality. BUT I think it's not available and it's so bloated. https://www.mediatek.com/technology/miravision-for-smartphones", safety: "caution" },
- { pkg: "com.mediatek.mms.appservice", label: "Appservice", description: "Provides Voice message, Video message, Fax message, Text message in a messaging app?", safety: "caution" },
- { pkg: "com.mediatek.mt6879.gamedriver", label: "Gamedriver", description: "Mediatek Arm GPU Game Driver GPU Game drivers for Mediatek MT6879CPU.", safety: "keep" },
- { pkg: "com.mediatek.mt6983.gamedriver", label: "Gamedriver", description: "Arm GPU Game Driver", safety: "keep" },
- { pkg: "com.mediatek.mtklogger", label: "Mtklogger", description: "Logs debug data. Has a lot of permissions and run in background all the time. Don't keep useless apps: reduce the attack surface Vulnerability found in this app in 2016: https://nvd.nist.gov/vuln/detail/CVE-2016-10135", safety: "safe" },
- { pkg: "com.mediatek.mtklogger.proxy", label: "Proxy", description: "Logs debug data.", safety: "safe" },
- { pkg: "com.mediatek.nlpservice", label: "Nlpservice", description: "Mediatek Network Location Provider Provides periodic reports on the geographical location of the device. Each provider has a set of criteria under which it may be used. For example, some providers require GPS hardware and visibility to a number of satellites, while others require the use of the cellular radio, or access to a specific carrier's network, or to the internet. I don't understand why this is needed; there already is one in 'com.google.android.gms' I wonder if NLP can be replaced by https://github.com/microg/UnifiedNlp I suggest testing if you get a better signal/battery performance with Mediatek NLP on or off.", safety: "caution" },
- { pkg: "com.mediatek.omacp", label: "Omacp", description: "omacp = OMA Client Provisioning. A protocol specified by the Open Mobile Alliance (OMA). Configuration messages parser. Used for provisioning APN settings to devices via SMS. In my case, it was automatic and I never needed configuration messages. Maybe it's useful if carriers change their APN. But you can still change the config manually, it's not difficult. Dunno why Mediatek handles this kind of things. Safe to remove. At worst, you'll need to manually config your APN. OMACP can be abused: https://research.checkpoint.com/2019/advanced-sms-phishing-attacks-against-modern-android-based-smartphones/ https://www.zdnet.com/article/samsung-huawei-lg-and-sony-phones-vulnerable-to-rogue-provisioning-messages/", safety: "caution" },
- { pkg: "com.mediatek.presence", label: "Presence", description: "App used to IMS, RCS. IP Voice Call.", safety: "caution" },
- { pkg: "com.mediatek.providers.drm", label: "Drm", description: "DRM provider (actually Beep Science is MediaTek’s default DRM vendor) Probably required for some forms of DRM; disabling might break things like Netflix streaming, which relies on DRM to function. https://en.wikipedia.org/wiki/Digital_rights_management", safety: "caution" },
- { pkg: "com.mediatek.schpwronoff", label: "Schpwronoff", description: "Set schedule power on & off.", safety: "caution" },
- { pkg: "com.mediatek.security", label: "Security", description: "The com.mediatek.security package is part of MediaTek’s security suite, providing features such as malware protection, privacy settings, and secure browsing options. While the package may offer added security features specific to MediaTek devices, there are alternative security solutions available on Google Play that can provide similar or enhanced protection. Removing this package might lead to a loss of MediaTek-specific security features, but it is generally not critical to the basic operation of the device.", safety: "caution" },
- { pkg: "com.mediatek.sensorhub.ui", label: "Ui", description: "Testing sensors.", safety: "safe" },
- { pkg: "com.mediatek.simprocessor", label: "Simprocessor", description: "This controls and imports contacts saved on a SIM card. Not needed if you don't store your contacts on the SIM card", safety: "caution" },
- { pkg: "com.mediatek.smartratswitch.service", label: "Service", description: "it handles switching connection between network types. (4G/5G)", safety: "caution" },
- { pkg: "com.mediatek.systemuiresoverlay", label: "Systemuiresoverlay", description: "It have nothing in code.", safety: "caution" },
- { pkg: "com.mediatek.systemuiwmshellresoverlay", label: "Systemuiwmshellresoverlay", description: "config pip_corner_radius only found.", safety: "keep" },
- { pkg: "com.mediatek.telephony", label: "Telephony", description: "allows you to get information about the available SIMs/subscriptions and listen for changes or activity on the SIM cards, such as call or data activity or connected cell details. In addition, the API enables apps to create SMS messages and send them using a specific SIM card. it's not useful.", safety: "caution" },
- { pkg: "com.mediatek.thermalmanager", label: "Thermalmanager", description: "Hidden testing or logging app.", safety: "safe" },
- { pkg: "com.mediatek.videoplayer", label: "Videoplayer", description: "The com.mediatek.videoplayer package is MediaTek’s default video player app, designed to handle video playback and provide basic media management features. Since there are numerous alternative video player apps available on Google Play that offer advanced features and better performance, removing this package is generally recommended.", safety: "safe" },
- { pkg: "com.mediatek.voicecommand", label: "Voicecommand", description: "It's for voice commands like control music playing or voice control for alarm, camera. But how to get access to it? Probably you need that for voice recognition but not sure. Maybe related to https://www.mediatek.com/products/smart-home/voice-assistant-devices", safety: "safe" },
- { pkg: "com.mediatek.voiceunlock", label: "Voiceunlock", description: "It's for voice commands like control music playing or voice control for alarm, camera. But how to get access to it? Probably you need that for voice recognition but not sure. Maybe related to https://www.mediatek.com/products/smart-home/voice-assistant-devices", safety: "safe" },
- { pkg: "com.mediatek.wfo.impl", label: "Impl", description: "According to olorin (https://www.olorin.me/2019/09/08/debloating-the-umidigi-f1-play/) it's a MediaTek’s default fingerprint app (and he removed it). Can someone confirm what this package does? Remember that any pre-installed apps you don't actually need just increase the surface attack. Vulnerability found in 2019: https://nvd.nist.gov/vuln/detail/CVE-2019-15368 Any app co-located on the device could modify a system property through an exported interface without proper authorization.", safety: "safe" },
- { pkg: "com.mediatek.ygps", label: "Ygps", description: "YGPS GPS test and bug report utilities, accessed via Engineer Mode. Not needed.", safety: "safe" },
- { pkg: "com.mediatek.zramwritebackoverlay", label: "Zramwritebackoverlay", description: "config zramWriteback = true. What is this used for?", safety: "caution" },
- { pkg: "com.micredit.in", label: "In", description: "Mi Credit (https://play.google.com/store/apps/details?id=com.micredit.in.gp) App providing loans to MIUI users from India and China Note: https://web.archive.org/web/20221207193942/https://onsitego.com/blog/xiaomi-quietly-discontinues-mi-credit-mi-pay-india/", safety: "safe" },
- { pkg: "com.microsoft.appmanager", label: "Appmanager", description: "Link to Windows (https://play.google.com/store/apps/details?id=com.microsoft.appmanager) Microsoft app for synchronising your phone with a Windows PC.", safety: "safe" },
+ { pkg: "com.mediatek.callrecorder", label: "Callrecorder", description: "This is not the kind of feature expected from a Soc company.", safety: "safe" },
+ { pkg: "com.mediatek.engineermode", label: "Engineermode", description: "Engineer mode you can access by dialing a secret code (*#*#3646633#*#* on some Xiaomi phones for instance)", safety: "safe" },
+ { pkg: "com.mediatek.gpslocationupdate", label: "Gpslocationupdate", description: "I wonder if it is really only a logging app.", safety: "caution" },
+ { pkg: "com.mediatek.location.lppe.main", label: "Main", description: "LPPE = LTE Positioning Protocol enhancements/extensions (LTE = \"4G\")", safety: "caution" },
+ { pkg: "com.mediatek.ims", label: "Ims", description: "Mediatek's implementation of IMS (low-level implementation?)", safety: "caution" },
+ { pkg: "com.mediatek.mdmconfig", label: "Mdmconfig", description: "Mobile Device Management (MDM) allows company\u2019s IT department to reach inside your phone in the background,...", safety: "safe" },
+ { pkg: "com.mediatek.mtklogger", label: "Mtklogger", description: "Logs debug data. Has a lot of permissions and run in background all the time.", safety: "safe" },
+ { pkg: "com.mediatek.nlpservice", label: "Nlpservice", description: "Mediatek Network Location Provider", safety: "caution" },
+ { pkg: "com.mediatek.omacp", label: "Omacp", description: "omacp = OMA Client Provisioning. A protocol specified by the Open Mobile Alliance (OMA).", safety: "caution" },
+ { pkg: "com.mediatek.providers.drm", label: "Drm", description: "DRM provider (actually Beep Science is MediaTek\u2019s default DRM vendor)", safety: "caution" },
+ { pkg: "com.mediatek.wfo.impl", label: "Impl", description: "According to olorin (https://www.olorin.me/2019/09/08/debloating-the-umidigi-f1-play/) it's a MediaTek\u2019s de...", safety: "safe" },
{ pkg: "com.microsoft.office.excel", label: "Excel", description: "Excel", safety: "safe" },
- { pkg: "com.microsoft.office.officehub", label: "Officehub", description: "Microsoft Office Mobile Includes the complete Word, PowerPoint, and Excel apps to offer a convenient office experience on the go.", safety: "safe" },
- { pkg: "com.microsoft.office.officehubhl", label: "Officehubhl", description: "Office Mobile hub (on Samsung Phone) Includes the complete Word, PowerPoint, and Excel apps to offer a convenient office experience on the go.", safety: "safe" },
- { pkg: "com.microsoft.office.officehubrow", label: "Officehubrow", description: "Microsoft Mobile Office Beta", safety: "safe" },
- { pkg: "com.microsoft.office.onenote", label: "Onenote", description: "OneNote (https://play.google.com/store/apps/details?id=com.microsoft.office.onenote) Microsoft and privacy you know... This app has a lot of permissions. For example it has access to phone state, including the phone number of the device, current cellular network information, the status of any ongoing calls...", safety: "safe" },
- { pkg: "com.microsoft.office.outlook", label: "Outlook", description: "Outlook", safety: "safe" },
- { pkg: "com.microsoft.office.powerpoint", label: "Powerpoint", description: "PowerPoint", safety: "safe" },
{ pkg: "com.microsoft.office.word", label: "Word", description: "Word", safety: "safe" },
- { pkg: "com.microsoft.skydrive", label: "Skydrive", description: "Microsoft OneDrive (Cloud) (https://play.google.com/store/apps/details?id=com.microsoft.skydrive)", safety: "safe" },
- { pkg: "com.microsoft.translator", label: "Translator", description: "Microsoft Translator app (https://play.google.com/store/apps/details?id=com.microsoft.translator) )", safety: "safe" },
- { pkg: "com.mintgames.triplecrush.tile.fun", label: "Fun", description: "Tile Fun. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.mintgames.wordtrip", label: "Wordtrip", description: "Word Scenery Crossword. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.monotype.android.font.applemint", label: "Applemint", description: "Font", safety: "safe" },
+ { pkg: "com.microsoft.office.outlook", label: "Outlook", description: "Outlook", safety: "safe" },
+ { pkg: "com.microsoft.office.onenote", label: "Onenote", description: "OneNote (https://play.google.com/store/apps/details?id=com.microsoft.office.onenote)", safety: "safe" },
+ { pkg: "com.aaa.android.discounts", label: "Discounts", description: "AAA Mobile (https://play.google.com/store/apps/details?id=com.aaa.android.discounts)", safety: "safe" },
+ { pkg: "com.aaa.android.discounts.vpl", label: "Vpl", description: "AAA Mobile (https://play.google.com/store/apps/details?id=com.aaa.android.discounts)", safety: "safe" },
+ { pkg: "com.aspiro.tidal.vpl", label: "Vpl", description: "Tidal Music (https://play.google.com/store/apps/details?id=com.aspiro.tidal)", safety: "safe" },
+ { pkg: "com.draftkings.dknativermgGP.vpl", label: "Vpl", description: "DraftKings - Daily Fantasy Sports for Cash", safety: "safe" },
+ { pkg: "com.handmark.expressweather", label: "Expressweather", description: "1Weather (https://play.google.com/store/apps/details?id=com.handmark.expressweather)", safety: "safe" },
+ { pkg: "com.opera.max.oem", label: "Oem", description: "Opera Max (discontinued)", safety: "safe" },
+ { pkg: "com.til.timesnews", label: "Timesnews", description: "India News (https://play.google.com/store/apps/details?id=com.til.timesnews)", safety: "safe" },
+ { pkg: "com.yelp.android", label: "Android", description: "Yelp (https://play.google.com/store/apps/details?id=com.yelp.android)", safety: "safe" },
{ pkg: "com.monotype.android.font.chococooky", label: "Chococooky", description: "Font", safety: "safe" },
{ pkg: "com.monotype.android.font.cooljazz", label: "Cooljazz", description: "Font", safety: "safe" },
{ pkg: "com.monotype.android.font.foundation", label: "Foundation", description: "Font", safety: "safe" },
- { pkg: "com.monotype.android.font.rosemary", label: "Rosemary", description: "Font", safety: "safe" },
- { pkg: "com.monotype.android.font.tinkerbell", label: "Tinkerbell", description: "Font", safety: "safe" },
- { pkg: "com.mtk.telephony", label: "Telephony", description: "SimRecoveryTestTool", safety: "safe" },
- { pkg: "com.netflix.mediaclient", label: "Mediaclient", description: "Netflix app (https://play.google.com/store/apps/details?id=com.netflix.mediaclient)", safety: "safe" },
- { pkg: "com.netflix.partner.activation", label: "Activation", description: "Apk file name: By_3rd_NetflixActivationOverSeas Some form of activation of Netflix account, subscription or app? Might be what puts the Netflix app icon on the homescreen. Not sure. Netflix app works without this.", safety: "safe" },
- { pkg: "com.nextradioapp.nextradio", label: "Nextradio", description: "NextRadio (https://play.google.com/store/apps/details?id=com.nextradioapp.nextradio) 3-party app which lets you experience live and local FM radio on your smartphone. https://nextradioapp.com/", safety: "safe" },
- { pkg: "com.nf.snake", label: "Snake", description: "Snake Zoneio. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.niksoftware.snapseed", label: "Snapseed", description: "Snapseed (https://play.google.com/store/apps/details?id=com.niksoftware.snapseed)", safety: "safe" },
- { pkg: "com.nousguide.android.rbtv", label: "Rbtv", description: "Red Bull TV A 1 star streaming service owned by a company that sells electronic cigars and energy drinks to the youth. Can be uninstalled via Settings. https://play.google.com/store/apps/details?id=com.nousguide.android.rbtv", safety: "safe" },
- { pkg: "com.nuance.swype.input", label: "Input", description: "Swype keyboard by Nuance https://www.nuance.com/mobile/mobile-applications/swype/android.html https://en.wikipedia.org/wiki/Swype", safety: "safe" },
- { pkg: "com.oem.rftoolkit", label: "Rftoolkit", description: "RfToolkit Testing things like Wi-Fi, lots of Chinese words", safety: "safe" },
- { pkg: "com.omusic.gPhone", label: "GPhone", description: "friDay music A treasure house of global music, thousands of situational playlists, complete classification of Chinese, Western, Japanese and Korean, classical, and original soundtracks, allowing you to easily travel the digital music world. https://play.google.com/store/apps/details?id=com.omusic.gPhone", safety: "safe" },
- { pkg: "com.opera.branding", label: "Branding", description: "Opera Branding Provider Don't know what it really does.", safety: "safe" },
- { pkg: "com.opera.branding.news", label: "News", description: "Opera News Branding Provider Don't know what it really does.", safety: "safe" },
- { pkg: "com.opera.max.oem", label: "Oem", description: "Opera Max (discontinued) System-wide data-saving proxy that funnell all app data through Opera’s servers to compress images and videos", safety: "safe" },
- { pkg: "com.opera.max.preinstall", label: "Preinstall", description: "Opera Max (discontinued) System-wide data-saving proxy that funnell all app data through Opera’s servers to compress images and videos", safety: "safe" },
- { pkg: "com.opera.mini.native", label: "Native", description: "Opera Mini web browser (https://play.google.com/store/apps/details?id=com.opera.mini.native)", safety: "safe" },
- { pkg: "com.opera.preinstall", label: "Preinstall", description: "Opera Preinstall Data Generates utm tracking stuff", safety: "safe" },
- { pkg: "com.opos.cs", label: "Cs", description: "Hot Apps Generate app folders on home screen that recommended sponsored apps and games.", safety: "safe" },
- { pkg: "com.ordinaryjoy.woodblast", label: "Woodblast", description: "Wood Blast. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.pandora.android", label: "Android", description: "Pandora (https://play.google.com/store/apps/details?id=com.pandora.android) Very intrusive music and podcasts app. 17 permissions and 14 trackers: https://reports.exodus-privacy.eu.org/reports/com.pandora.android/latest/", safety: "safe" },
- { pkg: "com.particlenews.newsbreak", label: "Newsbreak", description: "News Break: Local & Breaking (https://play.google.com/store/apps/details?id=com.particlenews.newsbreak) News provided by NewsBreak (https://www.newsbreak.com/) # FYI : https://reports.exodus-privacy.eu.org/en/reports/com.particlenews.newsbreak/latest/", safety: "safe" },
- { pkg: "com.phonepe.app", label: "App", description: "PhonePe (https://play.google.com/store/apps/details?id=com.phonepe.app) PhonePe is a payment app that allows indian users to use BHIM UPI, your credit card and debit card or wallet to recharge your mobile phone, pay your utility bills and also make instant payments at offline and online stores. PhonePe is an indian company (https://en.wikipedia.org/wiki/PhonePe) BHIM = Bharat Interface for Money : https://en.wikipedia.org/wiki/BHIM UPI = Unified Payement Interface : https://en.wikipedia.org/wiki/Unified_Payments_Interface", safety: "safe" },
- { pkg: "com.pinsight.dw", label: "Dw", description: "App Stack Force-installed app by Sprint. Pinsight is an advertising company (https://pinsightmedia.com/) Note : Sprint sold Pinsight to InMobi in 2018. https://www.fiercewireless.com/wireless/sprint-sells-mobile-ad-biz-pinsight-media-to-inmobi", safety: "safe" },
- { pkg: "com.pinsight.v1", label: "V1", description: "App Spotlight Makes you discover new apps from the Google Play store. The selection criteria is unknown.", safety: "safe" },
- { pkg: "com.playphone.gamestore", label: "Gamestore", description: "Playphone Gamestore (https://www.playphone.com/) \"Helps\" you discover the\"best\" Android games and connects you to a global gaming community. Sounds Amazing !", safety: "safe" },
- { pkg: "com.playphone.gamestore.loot", label: "Loot", description: "Loot Premium service from playphone ?", safety: "safe" },
- { pkg: "com.pure.indosat.care", label: "Care", description: "myIM3 (https://play.google.com/store/apps/details?id=com.pure.indosat.care) App provided by Indosat Ooredoo, an Internet provider from Indonesia. Enables Indosat users to manage prepaid and postpaid numbers and check their credit and payments, purchase data packs, calls, SMS...", safety: "safe" },
- { pkg: "com.qti.confuridialer", label: "Confuridialer", description: "Conference call service for digital signal (SIP/VoIP). it's hidden and no one uses it.", safety: "safe" },
- { pkg: "com.qti.dcf", label: "Dcf", description: "I found only: DCF Allows an application to share content using Bluetooth. The application is only allowed to broadcast the content as it already has access to remote devices. These things are not available for users. Qualcomm only said these things, but where is the code? This app is without code so it's safe to remove.", safety: "safe" },
- { pkg: "com.qti.diagservices", label: "Diagservices", description: "Starts process when plugged into a PC (with debugging on, haven't tried off) and then runs until stopped. Diagnostic services Presumably tests to collect hardware data. size of this package is 12 KB and have Diag_OnBoot, QTIDiagServices have permission: RECEIVE_BOOT_COMPLETED", safety: "safe" },
- { pkg: "com.qti.dpmserviceapp", label: "Dpmserviceapp", description: "Data Power Manager for the radio? Used to improve energy efficiency? In code I found something like this: dpm hal server, read procid it's still unknown.", safety: "caution" },
- { pkg: "com.qti.ltebc", label: "Ltebc", description: "LTE Broadcast Manager Runs on boot, but not in the background beyond that.", safety: "caution" },
- { pkg: "com.qti.pasrservice", label: "Pasrservice", description: "Has powersaving things, device idle mode changer to screen on/off.", safety: "caution" },
- { pkg: "com.qti.phone", label: "Phone", description: "dialer, dialing service, for phone calls. Has IMS things, optimizations?, its weird that calling works after remove, has code related to 'com.qualcomm.qcrilmsgtunnel', China Mobile Communications Corporation(China Mobile) SIM card things.", safety: "caution" },
- { pkg: "com.qti.powermodule", label: "Powermodule", description: "it's for powersaving? have more debugging stuff than powersaving.", safety: "caution" },
- { pkg: "com.qti.qcc", label: "Qcc", description: "QCC Have a lot of stuff about logs, testing framework for Android with Robolectric, LTE Broadcast. Introduced in android 13. Have png file qdma = Qualcomm Device Management and Analytics. So it's only spyware.", safety: "safe" },
- { pkg: "com.qti.qualcomm.datastatusnotification", label: "Datastatusnotification", description: "Sends you a message when you reach a specified data limit? Contains a service, but I've never it run. But I've also never run out of data or used the Android data warning system. WARNING: on HyperOS, disabling this package results in the mobile networks section to break as well as SIMs showing no service.", safety: "caution" },
- { pkg: "com.qti.qualcomm.deviceinfo", label: "Deviceinfo", description: "Device Info Hidden device info activity not available for users. it's safe to remove and you will not lose device info in settings.", safety: "safe" },
- { pkg: "com.qti.qualcomm.mstatssystemservice", label: "Mstatssystemservice", description: "Useless network statistics, package usage.", safety: "safe" },
- { pkg: "com.qti.service.colorservice", label: "Colorservice", description: "Allows the application to directly affect the device's display paramter. Well I only know the no one app uses it.", safety: "safe" },
- { pkg: "com.qti.slaservice", label: "Slaservice", description: "Service Level Agreement (SLA) protocol that analyzes network performance, quality of service, and provides users with various parameters of network quality of service, such as: jitter delay, file transfer rate, TCP latency. BUT it's placebo. uses permission com.miui.analytics.onetrack.TRACK_EVENT also have a lot chinese stuff.", safety: "safe" },
- { pkg: "com.qti.snapdragon.qdcm_ff", label: "Qdcm_ff", description: "Qualcomm Display Color Management tool Attempts to\"make colors look vibrant and true to life\". No idea if it actually does something useful or if it's only some garbage dynamic color tuning (they tend to destroy colors). Contains a service, but I've never seen it run on my Oneplus 9. Could be tied to color\"improvement\" settings in Settings->Display (all of which are off for me).", safety: "safe" },
- { pkg: "com.qti.xdivert", label: "Xdivert", description: "Smart-Divert If enabled, diverts your calls to another number. You can choose to divert all calls, divert on no reply or divert when the line is busy. Where can you enable/disable this feature?", safety: "safe" },
- { pkg: "com.qualcomm.atfwd", label: "Atfwd", description: "Used to send AT command messages from/to the modem Attention commands commands are a collection of short-string commands developed in the early 1980s that were designed to be transmitted via phone lines and control modems. Different AT command strings can be merged together to tell a modem to dial, hang up, or change connection parameters. Smartphones include a basic modem component inside them, which allows the smartphone to connect to the Internet via its telephony function. This can be abused. It's been known for many years that Android devices are vulnerable to attacks carried out via AT commands: https://www.bleepingcomputer.com/news/security/smartphones-from-11-oems-vulnerable-to-attacks-via-hidden-at-commands/", safety: "safe" },
- { pkg: "com.qualcomm.atfwd2", label: "Atfwd2", description: "This is the same app as the 'com.qualcomm.atfwd'.", safety: "safe" },
- { pkg: "com.qualcomm.cabl", label: "Cabl", description: "Content Adaptative Backlight Settings CABL will try to adjust the image being displaye by changing the contrast/quality/image backlight depending on the content on the screen. Downside to this is loss of dynamic range which results in some colors being washed out/clipped. CABL != Auto brightness (which doesn't change the content of the screen, only the brightness) NOTE: You may want to remove this. It does not work very well on many phones https://mobileinternist.com/disable-adaptive-brightness-android", safety: "safe" },
- { pkg: "com.qualcomm.embms", label: "Embms", description: "Runs on boot, but not in the background beyond that? Adds support for eMBMS(evolved Multimedia Broadcast Multicast Service), also known as: LTE Broadcast Enables carriers to send content using multicast/broadcast (same content to many users at the same time) instead of unicast(to a single user). It's a more efficient use of network resources compared to users receiving the same content individually. Probably safe to disable if you don't care about multi/broad-casts. https://en.wikipedia.org/wiki/Multimedia_Broadcast_Multicast_Service", safety: "safe" },
- { pkg: "com.qualcomm.fastdormancy", label: "Fastdormancy", description: "Provide Fast Dormancy feature/setting in the dialer (reduce battery consumption and network utilization during periods of data inactivity) https://en.wikipedia.org/wiki/Fast_Dormancy", safety: "caution" },
- { pkg: "com.qualcomm.interfacepermissions", label: "Interfacepermissions", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.qualcomm.location", label: "Location", description: "LocationServices Runs in the background as part of the system. Runs even if disabled, so probably pointless to disable. Periodically sends a unique software ID, location (lat, long, alt, and their uncertainty), nearby cellular towers and Wi-Fi hotspots and their signal strength to Qualcomm servers. https://www.qualcomm.com/site/privacy/services", safety: "safe" },
- { pkg: "com.qualcomm.location.XT", label: "XT", description: "Qualcomm IZat. it's hidden XT Activity. Location for Qualcomm. It's a bad idea to keep it. Periodically sends a unique software ID, location (lat, long, alt, and their uncertainty), nearby cellular towers and Wi-Fi hotspots and their signal strength to Qualcomm servers. https://www.qualcomm.com/site/privacy/services", safety: "safe" },
- { pkg: "com.qualcomm.location.XT.setup", label: "Setup", description: "Qualcomm IZat Its hidden Setup XT location for Qualcomm. It's a bad idea to keep it. Periodically sends a unique software ID, location (lat, long, alt, and their uncertainty), nearby cellular towers and Wi-Fi hotspots and their signal strength to Qualcomm servers. https://www.qualcomm.com/site/privacy/services", safety: "safe" },
- { pkg: "com.qualcomm.qcom_qmi", label: "Qcom_qmi", description: "qchat logo png founded also Hello World! and app_name Qchat_QMI this app has no code and no activities so safe to remove.", safety: "safe" },
- { pkg: "com.qualcomm.qcrilmsgtunnel", label: "Qcrilmsgtunnel", description: "Message receiving channel (secondary card can't turn on 5g) So if you dont use dual-sim it's safe to remove. Breaks calls after a reboot on some phones.", safety: "caution" },
- { pkg: "com.qualcomm.qti.accesscache", label: "Accesscache", description: "CarrierAccessCacheService Well it's only name app and no code.", safety: "safe" },
- { pkg: "com.qualcomm.qti.auth.fidocryptoservice", label: "Fidocryptoservice", description: "Qualcomm FIDO implementation. FIDO : https://en.wikipedia.org/wiki/FIDO_Alliance Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords. https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html", safety: "safe" },
- { pkg: "com.qualcomm.qti.auth.sampleauthenticatorservice", label: "Sampleauthenticatorservice", description: "it's only Sample, nothing important found in the code", safety: "safe" },
- { pkg: "com.qualcomm.qti.auth.sampleextauthservice", label: "Sampleextauthservice", description: "it's only Sample, nothing important found in the code", safety: "safe" },
- { pkg: "com.qualcomm.qti.auth.secureextauthservice", label: "Secureextauthservice", description: "it's only Sample, nothing important found in the code", safety: "safe" },
- { pkg: "com.qualcomm.qti.auth.securesampleauthservice", label: "Securesampleauthservice", description: "it's only Sample, nothing important found in the code", safety: "safe" },
- { pkg: "com.qualcomm.qti.autoregistration", label: "Autoregistration", description: "Collects device activation data to remotely activate phone warranty. In 2019 this package sent private data (IMEI, CELLID, CCID) in clear-text to zzhc.vnet.cn (chinese server). According to HMD (Nokia) it was a mistake: https://www.androidauthority.com/nokia-7-plus-user-info-967901/", safety: "safe" },
- { pkg: "com.qualcomm.qti.biometrics.fingerprint.service", label: "Service", description: "Fingerprint authentication not used by any app maybe only china, test temperature, debug, logs, fingerprint biometrics.", safety: "safe" },
- { pkg: "com.qualcomm.qti.callenhancement", label: "Callenhancement", description: "Supposed to enhance call quality (I'll let you test if it really does) This can record your phone calls. A vulnerability was found in 2019, allowing unauthorized microphone audio recording by 3rd-party apps. https://nvd.nist.gov/vuln/detail/CVE-2019-15472", safety: "safe" },
- { pkg: "com.qualcomm.qti.callfeaturessetting", label: "Callfeaturessetting", description: "CallFeatureSetting Hidden Call forwarding, Call waiting not available for users.", safety: "safe" },
- { pkg: "com.qualcomm.qti.cne", label: "Cne", description: "CneApp (Connectivity Engine) Runs in the background as part of the System. Enables seamless hand-off between mobile data and Wi-Fi networks. Can also dynamically measure network performance to prioritize using the best one (I think that's part of\"Intelligently select the best Wi-Fi\" in settings). Probably worth keeping on; I noticed connection reliability getting worse when I disabled it. https://www.qualcomm.com/news/onq/2013/07/02/qualcomms-cne-bringing-smarts-3g4g-wi-fi-seamless-interworking https://programmersought.com/article/35091829299/", safety: "caution" },
- { pkg: "com.qualcomm.qti.confdialer", label: "Confdialer", description: "ConfDialer LTE Conferencing Service.", safety: "caution" },
- { pkg: "com.qualcomm.qti.devicestatisticsservice", label: "Devicestatisticsservice", description: "Device statistics service Statistics of the phone's usage:data, Wifi, battery, the use of various software, number of SMS and emails sent, etc. is not very useful, can be removed.", safety: "safe" },
- { pkg: "com.qualcomm.qti.dynamicddsservice", label: "Dynamicddsservice", description: "Dynamic DDS Service DDS = Direct Digital Synthesizer. Supposedly useful for testing, communication and frequency sweep applications. Some apps may use this for local communication between devices? I'm guessing this is related to sending data through audio(a bunch of rapid beeps outside of the range of human hearing), which I believe Google Home used(still uses?) at one point as an option to connect to a Chromecast. https://www.qualcomm.com/news/releases/1996/05/07/qualcomm-introduces-new-high-speed-dual-direct-digital-synthesizer Info about DDS: https://www.allaboutcircuits.com/technical-articles/direct-digital-synthesis/", safety: "caution" },
- { pkg: "com.qualcomm.qti.gpudrivers.kalama.api33", label: "Api33", description: "Adreno Graphics Drivers", safety: "keep" },
- { pkg: "com.qualcomm.qti.gpudrivers.kona.api30", label: "Api30", description: "Adreno Graphics Drivers GPU drivers for Snapdragon 865 and 870.", safety: "keep" },
- { pkg: "com.qualcomm.qti.gpudrivers.lahaina.api30", label: "Api30", description: "Adreno Graphics Drivers GPU drivers for Snapdragon 888.", safety: "keep" },
- { pkg: "com.qualcomm.qti.gpudrivers.lito.api30", label: "Api30", description: "Adreno Graphics Drivers GPU drivers for Snapdragon 765G.", safety: "keep" },
- { pkg: "com.qualcomm.qti.gpudrivers.sm6150.api30", label: "Api30", description: "Adreno Graphics Drivers GPU drivers for Snapdragon 675. But actually I have Snapdragon 732G it's weird but keep it.", safety: "keep" },
- { pkg: "com.qualcomm.qti.gpudrivers.taro.api31", label: "Api31", description: "Adreno Graphics Drivers GPU drivers", safety: "keep" },
- { pkg: "com.qualcomm.qti.improvetouch.service", label: "Service", description: "A improve touch things was found in the code, but it is not available to users, only to developers. The size of the app is 36.40 KB, so why would this improve touch? This app does not exist on some xiaomi phones, and the touch works the same.", safety: "caution" },
- { pkg: "com.qualcomm.qti.ims", label: "Ims", description: "Hidden IMS Settings activity not available for users. In this app you can only turn on option: Auto reject incoming calls.", safety: "safe" },
- { pkg: "com.qualcomm.qti.loadcarrier", label: "Loadcarrier", description: "CarrierLoadService Have only things like a: Find carrier, carrier switch. it's useless.", safety: "safe" },
- { pkg: "com.qualcomm.qti.lpa", label: "Lpa", description: "lpa = Local Profile Assistants Runs on boot, but not in the background beyond that. Code has a lot of references to UIM(User Identity Module, which is SIM-related) Only useful if you use an eSIM? (electronic SIM) Allows users to choose and change their subscription data when switching between network operators/carriers. https://developer.qualcomm.com/blog/rise-esims-and-isims-and-their-impact-iot https://source.android.com/devices/tech/connect/esim-overview", safety: "caution" },
- { pkg: "com.qualcomm.qti.modemtestmode", label: "Modemtestmode", description: "Modem test", safety: "safe" },
- { pkg: "com.qualcomm.qti.networksetting", label: "Networksetting", description: "Network operators (hidden settings menu) Lets you select network modes like GSM only, WCDMA only, LTE only etc, toggle VoLTE On/Off...", safety: "caution" },
- { pkg: "com.qualcomm.qti.optinoverlay", label: "Optinoverlay", description: "Useless frameworks for com.qualcomm.location.XT it's probably dialogues. Anyway it's only legal notices.", safety: "caution" },
- { pkg: "com.qualcomm.qti.perfdump", label: "Perfdump", description: "Performance dump (logging) Enable a more accurate overview of the running services (and maybe how much power/RAM they take?)", safety: "safe" },
- { pkg: "com.qualcomm.qti.performancemode", label: "Performancemode", description: "Performance Mode Hidden Performance Mode activity not available for users. it's on xiaomi, oneplus. Removal does not brick performance mode.", safety: "safe" },
- { pkg: "com.qualcomm.qti.poweroffalarm", label: "Poweroffalarm", description: "Probably what enables alarms to start the device from an off state. Runs on boot and when you open a clock app.", safety: "caution" },
- { pkg: "com.qualcomm.qti.powersavemode", label: "Powersavemode", description: "It have hidden power saving modes. Users cant use it.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qccauthmgr", label: "Qccauthmgr", description: "QCC-AUTHMGR It have something to (com.qualcomm.qti.smq). Feedback stuff, something about key: blacklist, download or whatever. All looks like telemetry and it's all not available for users.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qccnetstat", label: "Qccnetstat", description: "useless network statistics also QCC in name qualcomm app is for analytics.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qcolor", label: "Qcolor", description: "QColor QTI enhanced color mode? I found 1 png file, color service, it's not needed for any app.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qcom_accesslogkit", label: "Qcom_accesslogkit", description: "Theres nothing about logs. I only found in receivers (c Broadcast Receiver) and some useless png, text files. Useless.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qdcmtpg", label: "Qdcmtpg", description: "layout but not sure for what. a lot useless code, and internet permission", safety: "safe" },
- { pkg: "com.qualcomm.qti.qdma", label: "Qdma", description: "QDMA = Qualcomm Device Management and Analytics. thats what qdma means when I found it in .png a lot of data collections: logs, dropbox, network.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qmmi", label: "Qmmi", description: "QMMI is a test app made by Qualcomm. It is used by service center to test the working of the various device components. More info: https://community.phones.nokia.com/discussion/52566/android-10-on-nokia-8-1/p19 Useless for end-users.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qms.service.connectionsecurity", label: "Connectionsecurity", description: "Telemetry service qms = quality management service Background-Connection to tls.telemetry.swe.quicinc.com (Host/Domain belongs to Qualcomm)", safety: "safe" },
- { pkg: "com.qualcomm.qti.qms.service.credentials", label: "Credentials", description: "QMS = Quality Management Service. In code I found logs and QMS spying things.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qms.service.telemetry", label: "Telemetry", description: "Qualcomm Mobile Security Telemetry service. Obviously phones to Qualcomm.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qms.service.trustzoneaccess", label: "Trustzoneaccess", description: "QMS always spying. Trust Zone in this app means nothing more than logs.", safety: "safe" },
- { pkg: "com.qualcomm.qti.qtisettings", label: "Qtisettings", description: "In code found getting info about device Ram Size, Rom Size, get Wifi Mac Address, is Settings Task Done. Also in app found qtisystemservice code. It looks like the app is for developers only, so it may be removed.", safety: "caution" },
- { pkg: "com.qualcomm.qti.qtisystemservice", label: "Qtisystemservice", description: "Seems to only log stuff related to telephony? A user removed this without noticing any issues.", safety: "caution" },
- { pkg: "com.qualcomm.qti.qwes.AndroidService", label: "AndroidService", description: "qms, qwes it's used for collecting user data.", safety: "safe" },
- { pkg: "com.qualcomm.qti.rcsimsbootstraputil", label: "Rcsimsbootstraputil", description: "RCS Service RCS = Rich Communication Services. RCS is a communication protocol between mobile telephone carriers and between phone and carrier, aiming at replacing SMS. https://en.wikipedia.org/wiki/Rich_Communication_Services Uses IP protocol so it needs an internet connection. It's a hot mess right now. It aims at being universal but only exists in Samsung Messages and Google Messages, because Google hasn't released a public API yet, so 3rd-party apps can't support it. In a lot of countries messages go through Google's Jibe servers. https://jibe.google.com/policies/terms/ https://pocketnow.com/why-you-should-probably-avoid-googles-rcs-text-messaging-chat-feature Can anybody check if this is needed for VolTE/VoWifi?", safety: "safe" },
- { pkg: "com.qualcomm.qti.remoteSimlockAuth", label: "RemoteSimlockAuth", description: "Enable you to lock/unlock your eSIM remotely. Seems more of a security risk to me than anything else. it's used to phishing.", safety: "safe" },
- { pkg: "com.qualcomm.qti.ridemodeaudio", label: "Ridemodeaudio", description: "Ridemode Recording list Hidden app, not available for users that should be the audio playback of the drive mode.", safety: "safe" },
- { pkg: "com.qualcomm.qti.roamingsettings", label: "Roamingsettings", description: "Hidden settings menu for tweaking roaming settings? How exactly do you access this menu?", safety: "caution" },
- { pkg: "com.qualcomm.qti.seccamservice", label: "Seccamservice", description: "SecCamService Only collects data about camera.", safety: "safe" },
- { pkg: "com.qualcomm.qti.seemp.service", label: "Service", description: "Useless code and it's probably to verify packages.", safety: "safe" },
- { pkg: "com.qualcomm.qti.server.qtiwifi", label: "Qtiwifi", description: "it's made for analytics. This service can be used to have OEM specific feature development. Currently this service is being used to collect CSI data from cfrtool via hidl and then pass the data to application(user level).", safety: "safe" },
- { pkg: "com.qualcomm.qti.server.wigig.tethering.rro", label: "Rro", description: "Only found dhcp range? Only the specified lists were found: 192.168. ... It have a lot random of this. Looks very unused.", safety: "safe" },
- { pkg: "com.qualcomm.qti.services.secureui", label: "Secureui", description: "Qualcomm Secure UI Service It collects your data about screen:gravity, orientation, id, layout_width. It has a Wifi Display Service. QC_WFD Does not run in the background.", safety: "safe" },
- { pkg: "com.qualcomm.qti.services.systemhelper", label: "Systemhelper", description: "System Helper Service Runs\"SysHelperService\" in the background as part of the system. Permissions: DEVICE_POWER, READ_PHONE_STATE, READ_PRIVILEGED_PHONE_STATE, RECEIVE_BOOT_COMPLETED, WRITE_SETTINGS, WAKE_LOCK and ACCESS_SURFACE_FLINGER. Android simple network firewall utility service. On a RedMi Note 13 running HyperOS 2.6.0, no application is running after uninstalling this package.", safety: "caution" },
- { pkg: "com.qualcomm.qti.simcontacts", label: "Simcontacts", description: "SimContacts Hidden Qualcomm sim contacts editor app.", safety: "safe" },
- { pkg: "com.qualcomm.qti.simsettings", label: "Simsettings", description: "Related to SIM settings? Exact nature is unclear.", safety: "caution" },
- { pkg: "com.qualcomm.qti.smcinvokepkgmgr", label: "Smcinvokepkgmgr", description: "This app have nothing.", safety: "safe" },
- { pkg: "com.qualcomm.qti.smq", label: "Smq", description: "QTR (Qualcomm Technology Reporting) Runs on boot. Seems like a telemetry package, supposedly sending hardware & software type, configuration and performance data. Contains a\"QtiFeedbackActivity\" called\"Hardware Feedback\". When that hidden activity is launched through Activity Launcher you get a screen showing just a checkbox and this text: \"Collecting hardware and software type, configuration, and performance data helps Qualcomm improve next generation device battery life, security, and performance. Untick to disable.\" Unticking isn't remembered; it's ticked again next time you enter. There's also a\"Learn More\" link that leads to: http://reporting.qti.qualcomm.com/learnmore_en.html which doesn't load for me.", safety: "safe" },
- { pkg: "com.qualcomm.qti.telephony.vodafonepack", label: "Vodafonepack", description: "Related to Vodafone Prepaid Recharge Plan If you're not a Vodafone client but still has this package on your phone you can delete it. For Vodafone client, I don't know what this package does. https://en.wikipedia.org/wiki/Vodafone", safety: "caution" },
- { pkg: "com.qualcomm.qti.telephonyservice", label: "Telephonyservice", description: "Sound processing during phonecalls. Runs in the background. Vital package for making calls.", safety: "keep" },
- { pkg: "com.qualcomm.qti.uceShimService", label: "UceShimService", description: "The Qualcomm telephony support service that acts as a shim layer between IMS and qualcomm modem stack. Will likely break RCS, VoLTE, VoWiFi and some carrier preference customizations. Not worth deleting.", safety: "caution" },
- { pkg: "com.qualcomm.qti.uceshimservice", label: "Uceshimservice", description: "UCE shim service UCE = User Capability Exchange. A shim is basically a compatibility layer for an API, that makes sure anything that uses the API does so correctly. Used for RCS. Provides a discovery service for users to see the capabilities of other users. UCE is based on SIP PUBLISH and SIP SUBSCRIBE/NOTIFY. Devices PUBLISH their capabilities to a presence server, when another device wants to find out what the other party supports, the device sends a SUBSCRIBE to the presence server which then returns a NOTIFY of what the other party supports. https://fr.wikipedia.org/wiki/Session_Initiation_Protocol", safety: "caution" },
- { pkg: "com.qualcomm.qti.uim", label: "Uim", description: "Runs\"RemoteSimLockService\" in the background. This might be the only remote SIM lock service, just called UIM because R-UIM(Removeable-UserIdentityModule) is a variant of SIM commonly used in Asia.", safety: "safe" },
- { pkg: "com.qualcomm.qti.uimGbaApp", label: "UimGbaApp", description: "Contains a\"GbaService\", Related to uim card (R-UIM is a type of SIM card mainly used in Asia)", safety: "safe" },
- { pkg: "com.qualcomm.qti.workloadclassifier", label: "Workloadclassifier", description: "Runs\"WLCService\" in the background. I assume this has to do with CPU scheduling. Probably important for efficiency, if not basic operation. In code I found: it's for performance and security? it categorize apps maybe for optimization. it's named workloadclassifier so it should do that. reads the list of installed applications, storage space. it's still unknown.", safety: "caution" },
- { pkg: "com.qualcomm.qti.xrcb", label: "Xrcb", description: "Receive xrcb network signals for radio side. it's about emergency alerts, weather alerts, public announcements, and other information.", safety: "safe" },
- { pkg: "com.qualcomm.qti.xrvd.service", label: "Service", description: "XRVD The real name of this app is XRVDTest. It has accessibility testing, collects some data? It's something for developers probably.", safety: "safe" },
- { pkg: "com.qualcomm.qtil.aptxacu", label: "Aptxacu", description: "Hidden aptxals Audio Bluetooth sample improvement. Useless 96kHz sample.", safety: "safe" },
- { pkg: "com.qualcomm.qtil.aptxals", label: "Aptxals", description: "Hidden aptxals Audio Bluetooth sample improvement test", safety: "safe" },
- { pkg: "com.qualcomm.qtil.aptxalsOverlay", label: "AptxalsOverlay", description: "Overlay hidden aptxals Audio Bluetooth sample improvement. Useless 96kHz sample.", safety: "caution" },
- { pkg: "com.qualcomm.qtil.aptxui", label: "Aptxui", description: "Hidden aptxals Audio Bluetooth sample improvement. Useless 96kHz sample.", safety: "safe" },
- { pkg: "com.qualcomm.qtil.btdsda", label: "Btdsda", description: "Hidden bluetooth: answering call, hanging up call, hanging up conference call. If you have dual-sim then you will lose these things? NOTE: disabling this causes audio to come from earpiece regardless of the option selected (Speaker, Earpiece, Bluetooth)", safety: "caution" },
- { pkg: "com.qualcomm.shutdownlistner", label: "Shutdownlistner", description: "uses library com.qualcomm.qcrilhook and logs shutdown phone but it's not needed.", safety: "safe" },
- { pkg: "com.qualcomm.simcontacts", label: "Simcontacts", description: "Sim Contacts Probably handles syncing(exporting/importing) contacts to/from the SIM card. Usually not a feature anybody cares about.", safety: "safe" },
- { pkg: "com.qualcomm.svi", label: "Svi", description: "Sunlight Visibility Improvement SVI Settings. Hidden display enhancement colors not available to users.", safety: "safe" },
- { pkg: "com.qualcomm.timeservice", label: "Timeservice", description: "Qualcomm Time Service Updates time-services user time offset when user changes time of the day and Android sends a TIME_CHANGED or DATE_CHANGED intents. Time-services restores the time of the day after reboot using this offset: https://github.com/bcyj/android_tools_leeco_msm8996/blob/master/time-services/src/com/qualcomm/timeservice/TimeServiceBroadcastReceiver.java", safety: "caution" },
- { pkg: "com.qualcomm.uimremoteclient", label: "Uimremoteclient", description: "Related to uim card (R-UIM is a type of SIM card mainly used in Asia)", safety: "safe" },
- { pkg: "com.qualcomm.uimremoteserver", label: "Uimremoteserver", description: "Related to uim card (R-UIM is a type of SIM card mainly used in Asia)", safety: "safe" },
- { pkg: "com.qualcomm.wfd.service", label: "Service", description: "Wfd Service Provides a way to cast your screen to a TV (Miracast) https://en.wikipedia.org/wiki/Miracast Or it is WiFi Direct.", safety: "caution" },
- { pkg: "com.quicinc.cne.CNEService", label: "CNEService", description: "Qualcomm Connectivity Engine Enables seamless hand-off between mobile data and Wi-Fi networks. Can also dynamically measure network performance to prioritize using the best one (I think that's part of\"Intelligently select the best Wi-Fi\" in settings). Probably worth keeping on; I noticed connection reliability getting worse when I disabled it. https://www.qualcomm.com/news/onq/2013/07/02/qualcomms-cne-bringing-smarts-3g4g-wi-fi-seamless-interworking https://programmersought.com/article/35091829299/", safety: "caution" },
- { pkg: "com.quicinc.fmradio", label: "Fmradio", description: "FM Radio app by Qualcomm quicinc = Qualcomm Innovation Center", safety: "caution" },
- { pkg: "com.quicinc.voice.activation", label: "Activation", description: "Qualcomm Voice Assist (https://play.google.com/store/apps/details?id=com.quicinc.voice.activation) Always-on voice detection, so obviously always runs in the background. Probably worth keeping enabled for battery savings if you use Google Assistant regularly while your screen is off.", safety: "safe" },
- { pkg: "com.realvnc.android.remote", label: "Remote", description: "Remote controle service by Realvnc (https://en.wikipedia.org/wiki/RealVNC) https://www.realvnc.com/en/legal/#privacy Not sure having a remote control app installed as a system app is a good idea This application is no longer maintained, besides.", safety: "safe" },
- { pkg: "com.redteamobile.roaming", label: "Roaming", description: "ORoaming Lets you buy RedTeaMobile data plan to access Internet in foreign country with a virtual SIM card See https://support.oppo.com/uk/answer/?aid=neu9139 Pithus analysis: https://beta.pithus.org/report/d017d4f6623bf8e71456e6bffe551ef6f3ff3095c62cef3df6d968354898c097", safety: "safe", deps: ["com.redteamobile.roaming.deamon"] },
- { pkg: "com.redteamobile.roaming.deamon", label: "Deamon", description: "ORoaming Redtea Roaming service deamon for com.redteamobile.roaming", safety: "safe", neededBy: ["com.redteamobile.roaming"] },
- { pkg: "com.remotefairy4", label: "Remotefairy4", description: "AnyMote Universal Remote + Wifi Smart Home Control (https://play.google.com/store/apps/details?id=com.remotefairy4) IR Remote control app Lots of trackers and permissions : https://reports.exodus-privacy.eu.org/en/reports/com.remotefairy4/latest/", safety: "safe" },
- { pkg: "com.republicwireless.tel", label: "Tel", description: "Republic (https://play.google.com/store/apps/details?id=com.republicwireless.tel&hl) Lets you manage your Republic wireless account. Republic Wireless is an american mobile virtual network operator (https://en.wikipedia.org/wiki/Republic_Wireless)", safety: "safe" },
- { pkg: "com.rhapsody", label: "Rhapsody", description: "Napster Music (https://play.google.com/store/apps/details?id=com.rhapsody) Napster streaming app https://en.wikipedia.org/wiki/Napster", safety: "safe" },
- { pkg: "com.rhapsody.vpl", label: "Vpl", description: "Napster Music (https://play.google.com/store/apps/details?id=com.rhapsody) Napster streaming app https://en.wikipedia.org/wiki/Napster", safety: "safe" },
- { pkg: "com.rlk.weathers", label: "Weathers", description: "Daily Weather (https://play.google.com/store/apps/details?id=com.rlk.weathers) Weather app with ads and trackers. Can access phone calls and SMS. Pithus analysis: https://beta.pithus.org/report/c3fa30c66192c458f93456401421d3c74f9122191b561781af142c42c24fe603", safety: "safe" },
- { pkg: "com.roaming.android.gsimbase", label: "Gsimbase", description: "gsim = Global SIM? (SIM = Subscriber Identity Module, as in SIM-card) Considering the\"roaming\" context that's my best guess.", safety: "caution" },
- { pkg: "com.roaming.android.gsimcontentprovider", label: "Gsimcontentprovider", description: "gsim = Global SIM? (SIM = Subscriber Identity Module, as in SIM-card) Considering the\"roaming\" context that's my best guess.", safety: "caution" },
- { pkg: "com.s.antivirus", label: "Antivirus", description: "AVG Antivirus (https://play.google.com/store/apps/details?id=com.s.antivirus) for Sony Xperia.", safety: "safe" },
- { pkg: "com.sar.main", label: "Main", description: "!!! WARNING !!! DO NOT DELETE THIS PACKAGE, EVEN IF YOU ENABLED REMOVAL OF UNSAFE PACKAGES. THIS PACKAGE WON'T BOOTLOOP YOUR DEVICE, BUT ITS REMOVAL MAKES THE PHONE MORE DANGEROUS BECAUSE OF INCONTROLLABLE RADIO-FREQUENCY ENERGY EMITTING. SarReduce Service (Specific Absorption Rate) This package adjusts the level of radio-frequency energy basing on where and what mode the phone is, found on Lenovo devices mostly. Absolutely not safe to remove; Danger for health. The device won't be lowering the emitted radio-frequency energy while close to body. Networks, such as Wi-Fi, Bluetooth and Mobile Data are also very likely to become unstable. WARNING: Removing other core/important system services might influence or break the behavior of this package. BE CAREFUL. Also, removing this package might violate the SAR (Specific Absorption Rate) law in EU.", safety: "keep" },
- { pkg: "com.sec.app.samsungprintservice", label: "Samsungprintservice", description: "Samsung Print Service Plugin. Published by HP, see: https://play.google.com/store/apps/details?id=com.sec.app.samsungprintservice", safety: "safe" },
- { pkg: "com.sem.factoryapp", label: "Factoryapp", description: "SEMFactoryApp Call home (172.217.168.14 --> Google IP). Needs NFC permission. This package is maybe used to test NFC.", safety: "safe" },
- { pkg: "com.sencatech.iwawa.iwawahome", label: "Iwawahome", description: "Pre-installed parental control bloatware with ads. (https://play.google.com/store/apps/details?id=com.sencatech.iwawa.iwawahome)", safety: "safe" },
- { pkg: "com.servicemagic.consumer", label: "Consumer", description: "HomeAdvisor: Contractors for Home Improvement (https://play.google.com/store/apps/details?id=com.servicemagic.consumer) Helps you find local contractors from the service Home Advisor network HomeAdvisor collects users data when a request is made and then sells that data to local contractors in exchange for money. Worth Reading: https://en.wikipedia.org/wiki/HomeAdvisor#Critism", safety: "safe" },
- { pkg: "com.setk.widget", label: "Widget", description: "Galaxy Bizz (https://play.google.com/store/apps/details?id=com.setk.widget) Useless app that recommands you stuff to do/buy nearby your area", safety: "safe" },
- { pkg: "com.sharecare.askmd", label: "Askmd", description: "AskMD (discontinued) provided by Sharecare Symptom checker app. Lets you see what might be causing your symptoms and helps you find a nearby physician Worth Reading : https://en.wikipedia.org/wiki/Sharecare#Criticisms", safety: "safe" },
- { pkg: "com.shopee.id", label: "Id", description: "Shopee 2.2 (https://play.google.com/store/apps/details?id=com.shopee.id) official app from Shopee, an e-commerce online shopping platform in Southeast Asian.", safety: "safe" },
- { pkg: "com.skype.m2", label: "M2", description: "Skype Lite (https://play.google.com/store/apps/details?id=com.skype.m2)", safety: "safe" },
- { pkg: "com.skype.raider", label: "Raider", description: "Skype (https://play.google.com/store/apps/details?id=com.skype.raider)", safety: "safe" },
- { pkg: "com.slacker.radio", label: "Radio", description: "LiveXLive - Streaming Music and Live Events (https://play.google.com/store/apps/details?id=com.slacker.radio)", safety: "safe" },
- { pkg: "com.smithmicro.netwise.director.comcast.oem", label: "Oem", description: "XFINITY Wifi settings (https://play.google.com/store/apps/details?id=com.smithmicro.netwise.director.comcast.oem) Auto-connects you to XFINITY WiFi hotspot. XFINITY is a subsidiary of the Comcast Corporation (https://en.wikipedia.org/wiki/Xfinity)", safety: "safe" },
- { pkg: "com.spotify.music", label: "Music", description: "Spotify app (https://play.google.com/store/apps/details?id=com.spotify.music)", safety: "safe" },
- { pkg: "com.staplegames.blocksClassicSGGP", label: "BlocksClassicSGGP", description: "Block (https://play.google.com/store/apps/details?id=com.staplegames.blocksClassicSGGP) Preinstalled game on some Samsung phones. 9 permissions, 26 trackers: https://reports.exodus-privacy.eu.org/reports/com.staplegames.blocksClassicSGGP/latest/", safety: "safe" },
- { pkg: "com.sukhavati.gotoplaying.bubble.BubbleShooter.mint", label: "Mint", description: "Bubble Shooter And Friends. A causal game pre-installed on Xiaomi Poco devices.", safety: "safe" },
- { pkg: "com.swiftkey.swiftkeyconfigurator", label: "Swiftkeyconfigurator", description: "SwiftKey factory settings Used by commercial swiftkey partners to configure the SwiftKey app. Swiftkey is a keyboard developed by TouchType, a Microsoft subsidiary (https://en.wikipedia.org/wiki/SwiftKey)", safety: "safe" },
- { pkg: "com.taboola.mip", label: "Mip", description: "Intrusive background module (Taboola) that keeps pushing a lock-screen stories feed — spam-ads and irrelevant articles (often from foreign/hostile sources). Runs in background, uses data, nags user until it is enabled. No system function — safe to remove. https://techissuestoday.com/motorola-lock-screen-ads-articles/", safety: "safe" },
- { pkg: "com.talpa.hibrowser", label: "Hibrowser", description: "Hi Browser (https://play.google.com/store/apps/details?id=com.talpa.hibrowser) Awful browser with embedded trackers and ads (https://reports.exodus-privacy.eu.org/fr/reports/com.talpa.hibrowser/latest/)", safety: "safe" },
- { pkg: "com.talpa.share", label: "Share", description: "XShare Mini File Sharing App (via Bluetooth) with Google and Facebook trackers. Asks for a lot of permissions including ACCESS_FINE_LOCATION, REQUEST_INSTALL_PACKAGES. Pithus analysis : https://beta.pithus.org/report/949bf802e335ad0db47b1551cde46af2b2ef13da4b38be969c60c9439b94f05b", safety: "safe" },
- { pkg: "com.telenav.app.android.cingular", label: "Cingular", description: "AT&T Navigator (https://play.google.com/store/apps/details?id=com.telenav.app.android.cingular) Crappy GPS app provided by Telenav and rebranded by AT&T. Worth reading : https://www.telenav.com/legal/policies-privacy-policy", safety: "safe" },
- { pkg: "com.telenav.app.android.scout_us", label: "Scout_us", description: "Scout GPS Navigation & Meet Up (https://play.google.com/store/apps/details?id=com.telenav.app.android.scout_us) Bad GPS with bad chat features on top of that. https://www.scoutgps.com/", safety: "safe" },
- { pkg: "com.til.timesnews", label: "Timesnews", description: "India News (https://play.google.com/store/apps/details?id=com.til.timesnews)", safety: "safe" },
- { pkg: "com.tiqiaa.remote", label: "Remote", description: "ZazaRemote (https://play.google.com/store/apps/details?id=com.tiqiaa.remote) A Universal infrared control app full of trackers and with unecessary permissions. Pithus analysis: https://beta.pithus.org/report/93eed47a45c00998f2111907afc26b5697aaf7fb19c0efb6b42d46addf0e297c", safety: "safe" },
+ { pkg: "com.dsi.ant.plugins.antplus", label: "Antplus", description: "ANT+ plugin service (https://play.google.com/store/apps/details?id=com.dsi.ant.plugins.antplus)", safety: "safe" },
{ pkg: "com.tmobile.echolocate", label: "Echolocate", description: "T-Mobile Diagnostics", safety: "safe" },
- { pkg: "com.touchtype.swiftkey", label: "Swiftkey", description: "Swiftkey Keyboard (https://play.google.com/store/apps/details?id=com.touchtype.swiftkey) Keyboard app by TouchType, a Microsoft subsidiary (https://en.wikipedia.org/wiki/SwiftKey) 4 Trackers + 11 Permissions: https://reports.exodus-privacy.eu.org/en/reports/com.touchtype.swiftkey/latest/ NOTE: default keyboard on some Nokia and Huawei phones. Make sure you have another keyboard app before disabling this.", safety: "caution" },
- { pkg: "com.touchtype.swiftkey.res.overlay", label: "Overlay", description: "Some overlay for Swiftkey? Overlays are usually themes, but not sure about this one.", safety: "caution" },
- { pkg: "com.tracker.t", label: "T", description: "WTF is this ?? Given its name I think you can take the risk to delete it.", safety: "safe" },
- { pkg: "com.tripadvisor.tripadvisor", label: "Tripadvisor", description: "Trip advisor (https://play.google.com/store/apps/details?id=com.tripadvisor.tripadvisor) You should never trust and use trip advisor https://en.wikipedia.org/wiki/TripAdvisor (see 'Controversy and fraudulent reviews' section) https://nypost.com/2016/03/01/why-you-should-never-ever-trust-tripadvisor/", safety: "safe" },
- { pkg: "com.tripledot.solitaire", label: "Solitaire", description: "Solitaire (https://play.google.com/store/apps/details?id=com.tripledot.solitaire) Preinstalled game on some Samsung phones. 30 permissions, 23 trackers: https://reports.exodus-privacy.eu.org/reports/com.tripledot.solitaire/latest/", safety: "safe" },
- { pkg: "com.tripledot.triple.tile.match.pair.game.three.master.object", label: "Object", description: "Triple Tile Pre-installed mobile game with ads and in-app purchases up to 129.99 USD. Can be disabled via Settings. https://play.google.com/store/apps/details?id=com.tripledot.triple.tile.match.pair.game.three.master.object", safety: "safe" },
- { pkg: "com.tripledot.woodoku", label: "Woodoku", description: "Woodoku (https://play.google.com/store/apps/details?id=com.tripledot.woodoku) Preinstalled game on some Samsung phones.28 permissions, 24 trackers: https://reports.exodus-privacy.eu.org/reports/com.tripledot.woodoku/latest/", safety: "safe" },
- { pkg: "com.trustonic.teeservice", label: "Teeservice", description: "TEE = Trusted Execution Environment See below", safety: "caution" },
- { pkg: "com.trustonic.tuiservice", label: "Tuiservice", description: "tuiService (Trusted User Interface) is a security layer by Trustonic. Allows a\"Trusted App\" to interact directly with the user, completely isolated from the device OS. It's closed source and normal devs can't use it for their apps. https://stackoverflow.com/questions/16909576/how-to-make-use-of-arm-trust-zone-in-android-application Mainly used by OEM apps like Samsung Pay and for DRM. Google implemented their own TUI in Android Pie: https://android-developers.googleblog.com/search/label/Trusted%20User%20Interface https://www.trustonic.com/news/blog/benefits-trusted-user-interface/ https://en.wikipedia.org/wiki/Trusted_execution_environment Disabling will break\"Trusted Apps\". https://en.wikipedia.org/wiki/ARM_architecture#Security_extensions https://googleprojectzero.blogspot.com/2017/07/trust-issues-exploiting-trustzone-tees.html https://www.synacktiv.com/posts/exploit/kinibi-tee-trusted-application-exploitation.html https://blog.quarkslab.com/introduction-to-trusted-execution-environment-arms-trustzone.html Good ressources: https://medium.com/@nimronagy/arm-trustzone-on-android-975bfe7497d2 https://www.gsd.inesc-id.pt/~nsantos/papers/pinto_acsur19.pdf https://blog.quarkslab.com/introduction-to-trusted-execution-environment-arms-trustzone.html https://medium.com/taszksec/unbox-your-phone-part-i-331bbf44c30c", safety: "caution" },
- { pkg: "com.turner.cnvideoapp", label: "Cnvideoapp", description: "Cartoon network App (https://play.google.com/store/apps/details?id=com.turner.cnvideoapp)", safety: "safe" },
- { pkg: "com.ubercab", label: "Ubercab", description: "Uber (https://play.google.com/store/apps/details?id=com.ubercab) Uber Driver (https://play.google.com/store/apps/details?id=com.ubercab.driver) Uber Eats (https://play.google.com/store/apps/details?id=com.ubercab.eats) Uber does not protect personal user data and has a questionable ethic. Worth reading : https://en.wikipedia.org/wiki/Uber#Criticism", safety: "safe" },
- { pkg: "com.ubercab.driver", label: "Driver", description: "Uber (https://play.google.com/store/apps/details?id=com.ubercab) Uber Driver (https://play.google.com/store/apps/details?id=com.ubercab.driver) Uber Eats (https://play.google.com/store/apps/details?id=com.ubercab.eats) Uber does not protect personal user data and has a questionable ethic. Worth reading : https://en.wikipedia.org/wiki/Uber#Criticism", safety: "safe" },
- { pkg: "com.ubercab.eats", label: "Eats", description: "Uber (https://play.google.com/store/apps/details?id=com.ubercab) Uber Driver (https://play.google.com/store/apps/details?id=com.ubercab.driver) Uber Eats (https://play.google.com/store/apps/details?id=com.ubercab.eats) Uber does not protect personal user data and has a questionable ethic. Worth reading : https://en.wikipedia.org/wiki/Uber#Criticism", safety: "safe" },
- { pkg: "com.ume.browser.northamerica", label: "Northamerica", description: "UME Web Browser (https://play.google.com/store/apps/details?id=com.ume.browser.northamerica) Trackers and a LOT of permissions (https://reports.exodus-privacy.eu.org/en/reports/com.ume.browser.cust/latest/)", safety: "safe" },
- { pkg: "com.wb.goog.got.conquest", label: "Conquest", description: "Game of Thrones: Conquest (https://play.google.com/store/apps/details?id=com.wb.goog.got.conquest) Mobile game", safety: "safe" },
- { pkg: "com.whatsapp", label: "Whatsapp", description: "Whatsapp messenger. Requires Google Play Services to receive messages in the background. https://play.google.com/store/apps/details?id=com.whatsapp", safety: "safe" },
- { pkg: "com.wing.wtsarcontrol", label: "Wtsarcontrol", description: "Sar control, Chinese App, not available for normal users.", safety: "safe" },
- { pkg: "com.wingtech.sartest", label: "Sartest", description: "SarTest Secret code: 332.", safety: "safe" },
- { pkg: "com.yahoo.mobile.client.android.liveweather", label: "Liveweather", description: "Yahoo Weather (https://play.google.com/store/apps/details?id=com.yahoo.mobile.client.android.weather) Please boycott Yahoo ! (all of their services are crappy so it's not so difficult) If you're not aware : https://en.wikipedia.org/wiki/Criticism_of_Yahoo!", safety: "safe" },
- { pkg: "com.yellowpages.android.ypmobile", label: "Ypmobile", description: "Yellow Pages (https://play.google.com/store/apps/details?id=com.yellowpages.android.ypmobile)", safety: "safe" },
- { pkg: "com.yelp.android", label: "Android", description: "Yelp (https://play.google.com/store/apps/details?id=com.yelp.android) Yelp lets users post reviews and rate businesses. Worth reading : https://en.wikipedia.org/wiki/Yelp#Controversy_and_litigation", safety: "safe" },
- { pkg: "com.zaz.translate", label: "Translate", description: "Hi Translate (https://play.google.com/store/apps/details?id=com.zaz.translate) Bloated translation app with a lot of trackers and permissions (https://reports.exodus-privacy.eu.org/fr/reports/com.zaz.translate/latest/) It has the Camera and microphone permissions and use the Google Translate API for the translations. Pithus analysis: https://beta.pithus.org/report/fdd787d96c3e069f983320c84c32fc6b8cdf205df17244d190b181edf0c14f68", safety: "safe" },
- { pkg: "com.zhiliaoapp.musically", label: "Musically", description: "TikTok App Worth reading : https://en.wikipedia.org/wiki/TikTok#Privacy,_cyberbullying_and_addiction_concerns", safety: "safe" },
- { pkg: "de.axelspringer.yana.zeropage", label: "Zeropage", description: "Upday news for Samsung (https://play.google.com/store/apps/details?id=de.axelspringer.yana) Eats your phone's resources and runs in the background. You can use other news providers that have more privacy than this, or your own browser with ad-blocking on.", safety: "safe" },
- { pkg: "flipboard.app", label: "App", description: "Flipboard News App (https://play.google.com/store/apps/details?id=flipboard.app)", safety: "safe" },
- { pkg: "flipboard.boxer.app", label: "App", description: "Briefing app (https://play.google.com/store/apps/details?id=flipboard.boxer.app)", safety: "safe" },
- { pkg: "id.co.babe", label: "Babe", description: "BaBe (https://play.google.com/store/apps/details?id=id.co.babe) Indonesian news app.", safety: "safe" },
- { pkg: "in.amazon.mShop.android.shopping", label: "Shopping", description: "Amazon India (https://play.google.com/store/apps/details?id=in.amazon.mShop.android.shopping)", safety: "safe" },
- { pkg: "in.mohalla.sharechat", label: "Sharechat", description: "ShareChat (https://play.google.com/store/apps/details?id=in.mohalla.sharechat)", safety: "safe" },
- { pkg: "in.playsimple.tripcross", label: "Tripcross", description: "Crossword Jam (https://play.google.com/store/apps/details?id=in.playsimple.tripcross) Preinstalled game on some Samsung phones. 12 permissions, 25 trackers : https://reports.exodus-privacy.eu.org/reports/in.playsimple.tripcross/latest/", safety: "safe" },
- { pkg: "in.playsimple.wordtrip", label: "Wordtrip", description: "World Trip (https://play.google.com/store/apps/details?id=in.playsimple.wordtrip) Word Count & word streak puzzle game 19 trackers + 11 permissions (https://reports.exodus-privacy.eu.org/en/reports/in.playsimple.wordtrip/latest/)", safety: "safe" },
- { pkg: "jp.co.omronsoft.openwnn", label: "Openwnn", description: "Japanese keyboard/IME (don't know why it's pre-installed on US/european devices) Note : IME = input method editor", safety: "safe" },
- { pkg: "jp.gocro.smartnews.android", label: "Android", description: "SmartNews: Local Breaking News (https://play.google.com/store/apps/details?id=jp.gocro.smartnews.android) Delivers the top trending news stories from others publishers (NBC News, The Verges etc...) 7 Trackers + 10 permissions (https://reports.exodus-privacy.eu.org/en/reports/jp.gocro.smartnews.android/latest/)", safety: "safe" },
- { pkg: "msgplus.jibe.sca.vpl", label: "Vpl", description: "Messaging Plus. Messings using the RCS protocol (https://en.wikipedia.org/wiki/Rich_Communication_Services) Related to Google Jibe (https://jibe.google.com/)", safety: "safe" },
- { pkg: "net.bat.store", label: "Store", description: "AHA Games Mobile game store. Full of trackers and has CAMERA and RECORD_AUDIO permissions. Displays intrusive game ads on HIOS launcher and random popups. Pithus Analysis: https://beta.pithus.org/report/f5346d1388aff293bc84b481c3a9823cc3bf76ffc241fcf455754b86028f22b9", safety: "safe" },
- { pkg: "net.fetnet.fetvod", label: "Fetvod", description: "Streaming service Registered members can watch the movies, dramas, variety shows and animations https://play.google.com/store/apps/details?id=net.fetnet.fetvod", safety: "safe" },
- { pkg: "net.sharewire.parkmobilev2", label: "Parkmobilev2", description: "ParkMobile - Find Parking (https://play.google.com/store/apps/details?id=net.sharewire.parkmobilev2)", safety: "safe" },
- { pkg: "net.supertreat.solitaire", label: "Solitaire", description: "Solitaire (https://play.google.com/store/apps/details?id=net.supertreat.solitaire) Preinstalled game on some Samsung phones. 8 permissions, 17 trackers: https://reports.exodus-privacy.eu.org/reports/net.supertreat.solitaire/latest/", safety: "safe" },
- { pkg: "org.codeaurora.bluetooth", label: "Bluetooth", description: "https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/bluetooth", safety: "caution" },
- { pkg: "org.codeaurora.gps.gpslogsave", label: "Gpslogsave", description: "Saves GPS logs.", safety: "safe" },
- { pkg: "org.codeaurora.ims", label: "Ims", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling). Runs in the background as part of the system, with Google's IMS(com.google.android.ims,\"Carrier Services\") disabled, I haven't checked if it'd run with Carrier Services enabled.", safety: "caution" },
- { pkg: "org.simalliance.openmobileapi.service", label: "Service", description: "The SmartCard API is a reference implementation of the SIMalliance Open Mobile API specification that enables Android applications to communicate with Secure Elements, (SIM card, embedded Secure Elements, Mobile Security Card or others) https://github.com/seek-for-android/pool/wiki/SmartcardAPI Safe to remove if you think you don't need this", safety: "caution" },
- { pkg: "org.simalliance.openmobileapi.uicc1terminal", label: "Uicc1terminal", description: "Open Mobile API (\"interface\") to access UICC secure elements UICC stands for Universal Integrated Circuit Card. It is a the physical and logical platform for the USIM and may contain additional USIMs and other applications. (U)SIM is an application on the UICC. https://bluesecblog.wordpress.com/2016/11/18/uicc-sim-usim/ Good read: https://arxiv.org/ftp/arxiv/papers/1601/1601.03027.pdf Note2: The term SIM is widely used in the industry and especially with consumers to mean both SIMs and UICCs. https://www.justaskgemalto.com/us/what-uicc-and-how-it-different-sim-card/", safety: "caution" },
- { pkg: "org.simalliance.openmobileapi.uicc2terminal", label: "Uicc2terminal", description: "Open Mobile API (\"interface\") to access UICC secure elements UICC stands for Universal Integrated Circuit Card. It is a the physical and logical platform for the USIM and may contain additional USIMs and other applications. (U)SIM is an application on the UICC. https://bluesecblog.wordpress.com/2016/11/18/uicc-sim-usim/ Good read: https://arxiv.org/ftp/arxiv/papers/1601/1601.03027.pdf Note2: The term SIM is widely used in the industry and especially with consumers to mean both SIMs and UICCs. https://www.justaskgemalto.com/us/what-uicc-and-how-it-different-sim-card/", safety: "caution" },
- { pkg: "pl.zdunex25.updater", label: "Updater", description: "Updater for the zdnex25's theme https://www.deviantart.com/zdunex25/gallery/26889741/themes", safety: "safe" },
- { pkg: "tv.fubo.mobile.vpl", label: "Vpl", description: "fuboTV (https://play.google.com/store/apps/details?id=tv.fubo.mobile) Lets you Watch live Sports, TV Shows, Movies & News", safety: "safe" },
- { pkg: "tv.peel.app", label: "App", description: "Peel Universal Smart TV Remote Control (discontinued) Lets you remotely control devices like your TV, DVD or Blu-ray player.", safety: "safe" },
- { pkg: "vendor.qti.data.txpwradmin", label: "Txpwradmin", description: "This app is from qualcomm, in androidmanifest.xml I found things like com.qualcomm.qti.qmsdataservices, qms is spyware, permissions uses: access wifi state, quary all packages, package usage stats. So hidden network stats, more about it is this code is just logs, takes apm, wifi, bt status.", safety: "caution" },
- { pkg: "vendor.qti.hardware.cacert.server", label: "Server", description: "CACertApp Occasionally runs in the background. Handles CACert certificates? http://www.cacert.org/ CACert is a community-driven CA that issues certificates to the public at large for free. CA = Certificate Authority, an entity that certifies the ownership of a public key that can be used for secure communications. Probably a bad idea to disable; could mess with device security.", safety: "keep" },
- { pkg: "vendor.qti.imsdatachannel", label: "Imsdatachannel", description: "Needed for IMS.", safety: "caution" },
- { pkg: "vendor.qti.imsrcs", label: "Imsrcs", description: "IMS(Ip Multimedia Subsystem) is an open industry standard for voice and multimedia communications over packet-based IP networks (VoLTE/VoIP/Wifi calling). Also have RCS.", safety: "caution" },
- { pkg: "vendor.qti.iwlan", label: "Iwlan", description: "Used for VoLTE/VoWifi (Wifi-calling) IwLAN = Interworking wLAN. Support for mobile data offloading (use of complementary network technologies for delivering data originally targeted for cellular networks) It means your phone will use the Wi-Fi connection instead of the cellular data connection. https://en.wikipedia.org/wiki/Mobile_data_offloading", safety: "caution" },
- { pkg: "vendor.qti.qesdk.sysservice", label: "Sysservice", description: "It's for debugging and logs. But in the code I see VDebug. Vivo probably uses Qualcomm for some features.", safety: "safe" },
- { pkg: "zpub.res", label: "Res", description: "third-party app pre-installed on ZTE phones.", safety: "safe" },
+ { pkg: "com.dolby.daxservice", label: "Daxservice", description: "Dolby", safety: "caution" },
+ { pkg: "com.zaz.translate", label: "Translate", description: "Hi Translate (https://play.google.com/store/apps/details?id=com.zaz.translate)", safety: "safe" },
+ { pkg: "com.rlk.weathers", label: "Weathers", description: "Daily Weather (https://play.google.com/store/apps/details?id=com.rlk.weathers)", safety: "safe" },
+ { pkg: "com.talpa.hibrowser", label: "Hibrowser", description: "Hi Browser (https://play.google.com/store/apps/details?id=com.talpa.hibrowser)", safety: "safe" },
+ { pkg: "com.talpa.share", label: "Share", description: "XShare Mini", safety: "safe" },
+ { pkg: "net.bat.store", label: "Store", description: "AHA Games", safety: "safe" },
+ { pkg: "com.idea.questionnare", label: "Questionnare", description: "[NEED MORE INFO / NEED APK] Quizz app from MobileIdea company?", safety: "safe" },
+ { pkg: "com.heytap.accessory", label: "Accessory", description: "Accessory Framework", safety: "caution", deps: ["com.heytap.mcs"], neededBy: ["com.oplus.synergy"] },
+ { pkg: "com.heytap.mcs", label: "Mcs", description: "System messages", safety: "safe", neededBy: ["com.heytap.cloud", "com.heytap.market", "com.oplus.synergy", "com.heytap.accessory"] },
+ { pkg: "com.redteamobile.roaming", label: "Roaming", description: "ORoaming", safety: "safe", deps: ["com.redteamobile.roaming.deamon"] },
+ { pkg: "com.redteamobile.roaming.deamon", label: "Deamon", description: "ORoaming", safety: "safe", neededBy: ["com.redteamobile.roaming"] },
+ { pkg: "com.finshell.fin", label: "Fin", description: "FinShell Pay (https://play.google.com/store/apps/details?id=com.finshell.fin)", safety: "safe" },
+ { pkg: "com.glance.internet", label: "Internet", description: "Displays unsolicited \"trending\" stories on Lockscreen", safety: "safe" },
+ { pkg: "com.opos.cs", label: "Cs", description: "Hot Apps", safety: "safe" },
+ { pkg: "com.tripledot.solitaire", label: "Solitaire", description: "Solitaire (https://play.google.com/store/apps/details?id=com.tripledot.solitaire)", safety: "safe" },
+ { pkg: "net.supertreat.solitaire", label: "Solitaire", description: "Solitaire (https://play.google.com/store/apps/details?id=net.supertreat.solitaire)", safety: "safe" },
+ { pkg: "air.com.playtika.slotomania", label: "Slotomania", description: "Slotomania (https://play.google.com/store/apps/details?id=air.com.playtika.slotomania)", safety: "safe" },
+ { pkg: "com.staplegames.blocksClassicSGGP", label: "Blocksclassicsggp", description: "Block (https://play.google.com/store/apps/details?id=com.staplegames.blocksClassicSGGP)", safety: "safe" },
+ { pkg: "in.playsimple.tripcross", label: "Tripcross", description: "Crossword Jam (https://play.google.com/store/apps/details?id=in.playsimple.tripcross)", safety: "safe" },
+ { pkg: "com.tripledot.woodoku", label: "Woodoku", description: "Woodoku (https://play.google.com/store/apps/details?id=com.tripledot.woodoku)", safety: "safe" },
+ { pkg: "com.pandora.android", label: "Android", description: "Pandora (https://play.google.com/store/apps/details?id=com.pandora.android)", safety: "safe" },
+ { pkg: "com.digitalturbine.toolbar", label: "Toolbar", description: "Digital Turbine", safety: "safe" },
+ { pkg: "com.tiqiaa.remote", label: "Remote", description: "ZazaRemote (https://play.google.com/store/apps/details?id=com.tiqiaa.remote)", safety: "safe" },
+ { pkg: "com.agui.toolbox", label: "Toolbox", description: "Toolbox", safety: "safe" },
+ { pkg: "com.haoba.btsmart", label: "Btsmart", description: "Agui Unibuds", safety: "safe" },
+ { pkg: "com.mediatek.simprocessor", label: "Simprocessor", description: "This controls and imports contacts saved on a SIM card. Not needed if you don't store your contacts on the ...", safety: "caution" },
+ { pkg: "com.mediatek.ims.pco", label: "Pco", description: "Protocol Configuration Options service for IMS", safety: "caution" },
],
},
{
name: "Other OEM",
packages: [
- { pkg: "android.auto_generated_characteristics_rro", label: "Auto_generated_characteristics_rro", description: "Automatically generated RRO characteristics for Android customization.", safety: "caution" },
- { pkg: "android.autoinstalls.config.Nothing.Pong", label: "Pong", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.TCL.PAI", label: "PAI", description: "AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.cactus", label: "Cactus", description: "Cactus is the device codename. AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.cepheus", label: "Cepheus", description: "Cepheus is the device codename. AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.cereus", label: "Cereus", description: "Cepheus is the device codename. AutoInstalls a set of OEM apps on device setup (first boot/factory reset). For example, Personal Activity Intelligence. An algorithm that determines a personal activity index based on resting heart rate, heart condition during exercise, gender, weight, and age. Requires smart bracelet to work.", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.daisy", label: "Daisy", description: "Daisy is the device codename. AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.dipper", label: "Dipper", description: "Dipper is the device codename. AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.land", label: "Land", description: "land is the device codename. AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.model", label: "Model", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.qssi", label: "Qssi", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.whyred", label: "Whyred", description: "App that configures preinstalled apps and initial preferences on Xiaomi Redmi Note 5 / Xiaomi Redmi Note 5 Pro (as their both's codename is whyred). Only needed on device setup, dormant and useless afterwards. It's restored automatically in case of a factory reset. Safe to delete.", safety: "safe" },
- { pkg: "android.autoinstalls.config.Xiaomi.willow", label: "Willow", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.google.nexus", label: "Nexus", description: "Auto-install configuration for Google apps on Nexus devices.", safety: "caution" },
- { pkg: "android.autoinstalls.config.google.sabrina", label: "Sabrina", description: "AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.oneplus", label: "Oneplus", description: "Device configuration AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.oppo", label: "Oppo", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.samsung", label: "Samsung", description: "AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.transsion.device", label: "Device", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.vivo.devices", label: "Devices", description: "PlayAutoInstalls AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.autoinstalls.config.xioami.mibox3", label: "Mibox3", description: "AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
- { pkg: "android.connectivity.base.overlay", label: "Overlay", description: "CaptivePortalLogin overlay. Overlays work by mapping resources defined in the overlay package to resources defined in the target package. When an app attempts to resolve the value of a resource in the target package, the value of the overlay resource the target resource is mapped to is returned instead. https://source.android.com/docs/core/runtime/rros", safety: "caution" },
- { pkg: "android.ext.services", label: "Services", description: "Looks like useless BUT you risk bootloop phone.", safety: "keep" },
- { pkg: "android.framework.res.rro.oneplus", label: "Oneplus", description: "A runtime resource overlay (RRO) is a package that changes the resource values of a target package at runtime. For example, an app installed on the system image might change its behavior based upon the value of a resource. Rather than hardcoding the resource value at build time, an RRO installed on a different partition can change the values of the app's resources at runtime. RROs can be enabled or disabled. You can programmatically set the enable/disable state to toggle an RRO's ability to change resource values. RROs are disabled by default (however, static RROs are enabled by default). https://source.android.com/docs/core/runtime/rros", safety: "caution" },
- { pkg: "android.frameworkres.overlay.Network", label: "Network", description: "Network overlay. Overlays work by mapping resources defined in the overlay package to resources defined in the target package. When an app attempts to resolve the value of a resource in the target package, the value of the overlay resource the target resource is mapped to is returned instead. https://source.android.com/docs/core/runtime/rros", safety: "keep" },
- { pkg: "android.frameworkres.overlay.display.product", label: "Product", description: "A runtime resource overlay (RRO) is a package that changes the resource values of a target package at runtime. For example, an app installed on the system image might change its behavior based upon the value of a resource. Rather than hardcoding the resource value at build time, an RRO installed on a different partition can change the values of the app's resources at runtime. RROs can be enabled or disabled. You can programmatically set the enable/disable state to toggle an RRO's ability to change resource values. RROs are disabled by default (however, static RROs are enabled by default). https://source.android.com/docs/core/runtime/rros", safety: "caution" },
- { pkg: "android.overlay.common.all_devices", label: "All_devices", description: "This overlay has got useless configs (?)", safety: "caution" },
- { pkg: "android.overlay.common.pong", label: "Pong", description: "Brightness, screen configs. Better don't risk", safety: "keep" },
- { pkg: "android.overlay.common.spacewar", label: "Spacewar", description: "Brightness, screen configs. Better don't risk", safety: "keep" },
- { pkg: "android.overlay.dynamicNavBar", label: "DynamicNavBar", description: "Found only in the bools.xml code, which shows the 'config Support dynamic Navigation Bar' 'true'.", safety: "caution" },
- { pkg: "android.overlay.gms.region.all", label: "All", description: "Useless overlay to setupwizard things", safety: "safe" },
- { pkg: "android.overlay.gms.region.eea", label: "Eea", description: "Useless overlay to setupwizard things", safety: "safe" },
- { pkg: "android.overlay.gms.region.ind", label: "Ind", description: "Useless overlay to setupwizard things", safety: "safe" },
- { pkg: "android.overlay.gms.region.row", label: "Row", description: "Useless overlay to setupwizard things", safety: "safe" },
- { pkg: "android.overlay.multiuser", label: "Multiuser", description: "Maximum multi user config.", safety: "caution" },
- { pkg: "android.overlay.navbar", label: "Navbar", description: "Show Navigation Bar Config.", safety: "caution" },
- { pkg: "android.overlay.vivoresrro", label: "Vivoresrro", description: "This overlay has only: strings.xml: select_cancel.", safety: "safe" },
- { pkg: "android.overlay.vrro", label: "Vrro", description: "This overlay has display configs", safety: "keep" },
- { pkg: "android.res.overlay_305", label: "Overlay_305", description: "An overlay that draws over android. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "keep" },
- { pkg: "android.res.overlay_310_311", label: "Overlay_310_311", description: "An overlay that draws over android. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "keep" },
- { pkg: "android.romstats", label: "Romstats", description: "Misleading package name. This is a Xiaomi-only package. Can someone provide the .apk? Telemetry stuff", safety: "safe" },
- { pkg: "android.rro_product", label: "Rro_product", description: "Better don't touch it.", safety: "keep" },
- { pkg: "android.telephony.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "androidhnext", label: "Androidhnext", description: "EMUI Graphical User Interface: https://fixyourandroid.com/about/androidhwext The framework responsible for the themes (even the standard one) of EMUI to launch. Also, it's the core for the Themes app. REMOVING IT CAUSES A BOOTLOOP!", safety: "keep" },
- { pkg: "androidhwext", label: "Androidhwext", description: "EMUI Graphical User Interface: https://fixyourandroid.com/about/androidhwext The framework responsible for the themes (even the standard one) of EMUI to launch. Also, it's the core for the Themes app. REMOVING IT CAUSES A BOOTLOOP!", safety: "keep" },
- { pkg: "androidx.camera.extensions.impl", label: "Impl", description: "Camera extensions for Huawei like Tags,HDR effects and other things to video, photos.", safety: "caution" },
- { pkg: "androidzte", label: "Androidzte", description: "Basing on APK inspection, this is a framework package that powers all the system UI on ZTE, Nubia, Axon & Blade devices. Totally not safe to remove, it's as important as 'android'", safety: "keep" },
- { pkg: "aon.frameworkres.overlay.display.product", label: "Product", description: "A runtime resource overlay (RRO) is a package that changes the resource values of a target package at runtime. For example, an app installed on the system image might change its behavior based upon the value of a resource. Rather than hardcoding the resource value at build time, an RRO installed on a different partition can change the values of the app's resources at runtime. RROs can be enabled or disabled. You can programmatically set the enable/disable state to toggle an RRO's ability to change resource values. RROs are disabled by default (however, static RROs are enabled by default). https://source.android.com/docs/core/runtime/rros", safety: "caution" },
- { pkg: "asusims.overlay.aosp.documentsui", label: "Documentsui", description: "Not needed overlay for hide documentsui icon. No effects after remove.", safety: "caution" },
- { pkg: "asusims.overlay.common", label: "Common", description: "It have important configs better dont risk. Important configs to android.", safety: "keep" },
- { pkg: "asusims.overlay.documentsui", label: "Documentsui", description: "Not needed overlay for hide documentsui icon. No effects after remove.", safety: "caution" },
- { pkg: "blibli.mobile.commerce", label: "Commerce", description: "Blibli Belanja Online Mall Chinese payment blipay https://play.google.com/store/apps/details?id=blibli.mobile.commerce", safety: "safe" },
- { pkg: "bnd.com", label: "Com", description: "Hardware Check WARNING: Uninstalling it breaks the App info Settings page on Android 15, Blackview Tab 60 WiFi. It has an internet permission and can install other apps in the background, which means it's a backdoor! Please remove its permissions, block its internet access using NetGuard or check if uninstalling it breaks anything related to the Settings app.", safety: "caution" },
- { pkg: "cn.nubia.accounts", label: "Accounts", description: "ZAccountService It's for Nubia Account.", safety: "safe" },
- { pkg: "cn.nubia.advanced", label: "Advanced", description: "Hidden advanced test bluetooth, WiFi", safety: "safe" },
- { pkg: "cn.nubia.aftersale", label: "Aftersale", description: "Has location permissions and it's for debugging, logs.", safety: "safe" },
- { pkg: "cn.nubia.antivirus", label: "Antivirus", description: "We don't need antivirus if we have Play Protect.", safety: "safe" },
- { pkg: "cn.nubia.applockmanager", label: "Applockmanager", description: "App Lock, Add Eyeprint", safety: "safe" },
- { pkg: "cn.nubia.apptimelock", label: "Apptimelock", description: "Healthy time management App time limit.", safety: "safe" },
- { pkg: "cn.nubia.autoagingtest", label: "Autoagingtest", description: "Hidden camera, WiFi tests.", safety: "safe" },
- { pkg: "cn.nubia.behaviordetection", label: "Behaviordetection", description: "Chinese useless frameworks. Used to collect application behavior data to understand users.", safety: "safe" },
- { pkg: "cn.nubia.bluetooth.opp", label: "Opp", description: "Needed for Bluetooth", safety: "caution" },
- { pkg: "cn.nubia.bootanimationinfo", label: "Bootanimationinfo", description: "Boot Animation Info Probably it's unsafe to remove.", safety: "keep" },
- { pkg: "cn.nubia.browser", label: "Browser", description: "Browser Stock Nubia Chinese browser.", safety: "safe" },
- { pkg: "cn.nubia.calendar.preset", label: "Preset", description: "Calendar Stock Calendar app", safety: "caution" },
- { pkg: "cn.nubia.clock.widget.preset", label: "Preset", description: "ClockWidget It has more permissions than it should have and DaemonService", safety: "safe" },
- { pkg: "cn.nubia.cloud", label: "Cloud", description: "Nubia Cloud Manager", safety: "safe" },
- { pkg: "cn.nubia.contacts", label: "Contacts", description: "Contacts Stock Nubia Contacts", safety: "caution" },
- { pkg: "cn.nubia.controlcenter", label: "Controlcenter", description: "control center Provides a control panel for controlling the switching of important functions in the system, such as data services, WiFi and other switches.", safety: "keep" },
- { pkg: "cn.nubia.contrycode", label: "Contrycode", description: "Useless logs. Useless frameworks.", safety: "safe" },
- { pkg: "cn.nubia.databackup", label: "Databackup", description: "Backup It's not the best choice for backup. Read Nubia privacy policy before.", safety: "safe" },
- { pkg: "cn.nubia.deskclock.preset", label: "Preset", description: "Clock Stock Clock app for manage alarms.", safety: "caution" },
- { pkg: "cn.nubia.diyaod", label: "Diyaod", description: "It can be found in settings", safety: "safe" },
- { pkg: "cn.nubia.doubleapp", label: "Doubleapp", description: "App duplicator it's duplicating app feature that can be found in settings", safety: "safe" },
- { pkg: "cn.nubia.dynamicwallpaper", label: "Dynamicwallpaper", description: "Needed for video wallpapers", safety: "caution" },
- { pkg: "cn.nubia.edge", label: "Edge", description: "Smart Service Card Smart Service Card, Smart sidebar.", safety: "safe" },
- { pkg: "cn.nubia.entertainmenttoolbox", label: "Entertainmenttoolbox", description: "Useless logs, tracking. Useless frameworks.", safety: "safe" },
- { pkg: "cn.nubia.error.dialog", label: "Dialog", description: "It's just a system error dialog. It doesn't send data anywhere.", safety: "safe" },
- { pkg: "cn.nubia.extcard", label: "Extcard", description: "Nubia Chinese pay", safety: "safe" },
- { pkg: "cn.nubia.faceid", label: "Faceid", description: "Face unlock lock screen.", safety: "safe" },
- { pkg: "cn.nubia.factory", label: "Factory", description: "Hidden hardware tests.", safety: "safe" },
- { pkg: "cn.nubia.fan", label: "Fan", description: "It has cooling fan activities.", safety: "caution" },
- { pkg: "cn.nubia.fastpair", label: "Fastpair", description: "Ultra low latency? It's something for Nubia earphones.", safety: "safe" },
- { pkg: "cn.nubia.filebrowser", label: "Filebrowser", description: "File browser It's for file browser probably. Has Chinese components.", safety: "caution" },
- { pkg: "cn.nubia.fileobserver", label: "Fileobserver", description: "FileObserver FileObserver? Has Chinese components.", safety: "caution" },
- { pkg: "cn.nubia.forbid.selfstart.provider", label: "Provider", description: "Mainly used to manage application self-startup, convenient for users to adjust the policy of application self-startup.", safety: "caution" },
- { pkg: "cn.nubia.gallery3d", label: "Gallery3d", description: "Gallery Stock gallery with Chinese trackers.", safety: "safe" },
- { pkg: "cn.nubia.gallerylockscreen", label: "Gallerylockscreen", description: "Wallpapers are displayed on the lock screen.", safety: "caution" },
- { pkg: "cn.nubia.gamehelpmodule", label: "Gamehelpmodule", description: "It's a macro for the game. I think it's very useful if you're playing games.", safety: "caution" },
- { pkg: "cn.nubia.gamehighlights", label: "Gamehighlights", description: "Red Magic Moment game recorder I think it's very useful if you're playing games.", safety: "caution" },
- { pkg: "cn.nubia.gamelauncher", label: "Gamelauncher", description: "Game Space Nubia I think it's very useful if you're playing games.", safety: "caution" },
- { pkg: "cn.nubia.gamenotes", label: "Gamenotes", description: "Game Notes Game Notes? Probably an optional thing.", safety: "caution" },
- { pkg: "cn.nubia.gamepi", label: "Gamepi", description: "Needed for game optimization probably and also has something for Game Space", safety: "caution" },
- { pkg: "cn.nubia.garbagecleanwidget", label: "Garbagecleanwidget", description: "Widget One-tap Cleanup Useless Widget One-tap Cleanup. Useless frameworks.", safety: "safe" },
- { pkg: "cn.nubia.gif", label: "Gif", description: "It's for creating GIFs", safety: "safe" },
- { pkg: "cn.nubia.gpu.drivers", label: "Drivers", description: "It has GPU settings so better keep that.", safety: "caution" },
- { pkg: "cn.nubia.harassintercept", label: "Harassintercept", description: "Mainly used to intercept harassing and fraudulent phone calls and text messages, while the user can also customize the way to intercept.", safety: "safe" },
- { pkg: "cn.nubia.heartrate", label: "Heartrate", description: "Hidden? Heart Rate Detection", safety: "safe" },
- { pkg: "cn.nubia.hybrid", label: "Hybrid", description: "Quick Apps Preview for ads 3d. Has a lot of Chinese components.", safety: "safe" },
- { pkg: "cn.nubia.identity", label: "Identity", description: "It's for personalized recommendations.", safety: "safe" },
- { pkg: "cn.nubia.jobdispatcher", label: "Jobdispatcher", description: "Mainly through the network to modify the basic data and functions of the self-developed application module part of the cell phone system in the background. Also has neopush.", safety: "caution" },
- { pkg: "cn.nubia.keymapcenter", label: "Keymapcenter", description: "It's for gaming right? Useless frameworks.", safety: "safe" },
- { pkg: "cn.nubia.launcher", label: "Launcher", description: "Launcher Stock Nubia Launcher.", safety: "caution" },
- { pkg: "cn.nubia.monitor", label: "Monitor", description: "Better keep this for gaming.", safety: "caution" },
- { pkg: "cn.nubia.musicpicker.preset", label: "Preset", description: "Ringtones Music Picker for nubia phones.", safety: "caution" },
- { pkg: "cn.nubia.myfile", label: "Myfile", description: "File Manager Nubia File Manager.", safety: "caution" },
- { pkg: "cn.nubia.neopush", label: "Neopush", description: "Not needed for notifications. Has a lot of permissions.", safety: "safe" },
- { pkg: "cn.nubia.neostore", label: "Neostore", description: "App Store Nubia App Store", safety: "safe" },
- { pkg: "cn.nubia.owlsystem", label: "Owlsystem", description: "Nubia data collection. It has a lot of permissions and it's spyware!", safety: "safe" },
- { pkg: "cn.nubia.packageoptimization", label: "Packageoptimization", description: "Nubia Package Optimization Nubia Package Optimization? Cleans cache and more", safety: "caution" },
- { pkg: "cn.nubia.paycomponent", label: "Paycomponent", description: "Chinese pay Nubia", safety: "safe" },
- { pkg: "cn.nubia.persist", label: "Persist", description: "PersistService PersistService? In code I found it's for logs.", safety: "safe" },
- { pkg: "cn.nubia.phonemanualintegrate.preset", label: "Preset", description: "Useless User Guide", safety: "safe" },
- { pkg: "cn.nubia.photoeditor", label: "Photoeditor", description: "Photo Editor Photo Editor. It has Baidu location so better turn off network for this app.", safety: "caution" },
- { pkg: "cn.nubia.powersaving", label: "Powersaving", description: "Better keep this for power saving?", safety: "caution" },
- { pkg: "cn.nubia.processmanager", label: "Processmanager", description: "Useless frameworks", safety: "safe" },
- { pkg: "cn.nubia.quickappwebserver", label: "Quickappwebserver", description: "Another component of Quick Apps Preview for ads 3d.", safety: "safe" },
- { pkg: "cn.nubia.quicksearchbox", label: "Quicksearchbox", description: "Useless quick search box", safety: "safe" },
- { pkg: "cn.nubia.ramdisk", label: "Ramdisk", description: "Probably it's for optimization", safety: "caution" },
- { pkg: "cn.nubia.sar", label: "Sar", description: "PersistService PersistService? In code I found it's for logs.", safety: "safe" },
- { pkg: "cn.nubia.security2", label: "Security2", description: "It's not only security but it has a lot of useful settings. Better keep this.", safety: "caution" },
- { pkg: "cn.nubia.sensor", label: "Sensor", description: "Hidden sensor calibration.", safety: "safe" },
- { pkg: "cn.nubia.setupwizard", label: "Setupwizard", description: "Setup Wizard You don't need it after first-boot setup.", safety: "safe" },
- { pkg: "cn.nubia.share", label: "Share", description: "share video Nubia share video. You can share video by this app probably.", safety: "caution" },
- { pkg: "cn.nubia.smartrecognition", label: "Smartrecognition", description: "It's for smart things", safety: "safe" },
- { pkg: "cn.nubia.supersnap", label: "Supersnap", description: "Super Snap Shot, Screenshot", safety: "caution" },
- { pkg: "cn.nubia.systemupdate", label: "Systemupdate", description: "System Update Provides system updates for nubia", safety: "caution" },
- { pkg: "cn.nubia.theme.apply", label: "Apply", description: "Needed for theme apply", safety: "caution" },
- { pkg: "cn.nubia.thememanager", label: "Thememanager", description: "Theme Manager Stock Nubia Theme Manager", safety: "caution" },
- { pkg: "cn.nubia.touping", label: "Touping", description: "Needed for screen cast", safety: "caution" },
- { pkg: "cn.nubia.upgradeservice", label: "Upgradeservice", description: "Needed for upgrade service.", safety: "caution" },
- { pkg: "cn.nubia.video", label: "Video", description: "Video Player Nubia Video Player", safety: "caution" },
- { pkg: "cn.nubia.virtualgamehandle", label: "Virtualgamehandle", description: "Virtual joystick Virtual joystick? Useless logs, tracking. Useless frameworks.", safety: "safe" },
- { pkg: "cn.nubia.voiceassist", label: "Voiceassist", description: "Nubia Voice Assistant things.", safety: "safe" },
- { pkg: "cn.nubia.woodpecker", label: "Woodpecker", description: "Another tool for logs.", safety: "safe" },
- { pkg: "cn.nubia.yulorepage", label: "Yulorepage", description: "Yulorepage Has only notifications thing. Not very useful. It's something for China like yellow pages.", safety: "safe" },
- { pkg: "cn.nubia.zappdatabackup", label: "Zappdatabackup", description: "Backup App, Restore App", safety: "safe" },
- { pkg: "cn.nubia.ziconunity", label: "Ziconunity", description: "Icon handling Icon handling? It's for theme icons probably", safety: "caution" },
- { pkg: "cn.oneplus.nvbackup", label: "Nvbackup", description: "NVBackupUI Runs in the background on some phones. Handles things related to OTA system updates? Safe to disable, but might break OTA updates.", safety: "caution" },
- { pkg: "cn.oneplus.oem_tcma", label: "Oem_tcma", description: "TCMA = Tiered Contention Multiple Access Runs on boot. A form of CSMA/CA, a cellular traffic management protocol. TCMA schedules transmission of different types of traffic based on urgency. China-only? (the\"cn\" in cn.oneplus is China's country code) https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_avoidance https://patents.google.com/patent/US20020163933A1", safety: "caution" },
- { pkg: "cn.oneplus.oemtcma", label: "Oemtcma", description: "TCMA = Tiered Contention Multiple Access Runs on boot. A form of CSMA/CA, a cellular traffic management protocol. TCMA schedules transmission of different types of traffic based on urgency. China-only? (the\"cn\" in cn.oneplus is China's country code) https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_avoidance https://patents.google.com/patent/US20020163933A1", safety: "caution" },
- { pkg: "cn.oneplus.opmms", label: "Opmms", description: "OPMmsLocation Determines your location when sending SMS/MMS? China-only? (\"cn\" is China's country code)", safety: "safe" },
- { pkg: "cn.oneplus.photos", label: "Photos", description: "Shot On OnePlus Accessible through the Wallpapers selection menu. Provides photos uploaded by OnePlus users, allowing you to set them as your wallpaper. Each day, one new photo appears within the application.", safety: "safe" },
- { pkg: "cn.wps.moffice.lite.meizu", label: "Meizu", description: "WPS Office Chinese WPS Office", safety: "safe" },
- { pkg: "cn.wps.moffice_eng", label: "Moffice_eng", description: "WPS Office Chinese WPS Office pre-installed on Xiaomi devices.", safety: "safe" },
- { pkg: "cn.wps.moffice_eng.xiaomi.lite", label: "Lite", description: "Chinese WPS Office", safety: "safe" },
- { pkg: "cn.wps.xiaomi.abroad.lite", label: "Lite", description: "Mi Doc viewer Allows users to view various types of documents on their Android devices like documents (*.doc/docx, *.ppt/pptx, *.xls/xlsx, *.pdf, *.wps, and *.txt) and it's powered by WPS Office FYI: WPS is a Chinese closed-source software. It's as bad as Microsoft Office (privacy-wise) https://www.wps.com/privacy-policy", safety: "safe" },
- { pkg: "cn.zte.recorder", label: "Recorder", description: "ZTE Voice Recorder with... 33 permissions and talking with Baidu servers. Pithus analysis: https://beta.pithus.org/report/bab47d32f5b93cdf4d3a3cb082d1d0e7ba3e323356391b2d46e63617c1d15324", safety: "safe" },
- { pkg: "co.aospa.dolby.xiaomi", label: "Xiaomi", description: "AOSPA's Dolby Atmos App on custom ROMs for Xiaomi phones. Providers support for Dolby Atmos on devices with Xiaomi hardware running custom ROMs. Removing it just removes the Dolby Atmos feature and its app. Safe to remove if you don't need it.", safety: "caution" },
- { pkg: "com.LocalFota", label: "LocalFota", description: "Required to install OTA updates on older Samsung devices.", safety: "caution" },
- { pkg: "com.Qunar", label: "Qunar", description: "Chinese partner app 'Qunar Travel'.", safety: "safe" },
- { pkg: "com.UCMobile", label: "UCMobile", description: "Chinese UC Mobile.", safety: "safe" },
- { pkg: "com.achievo.vipshop", label: "Vipshop", description: "Chinese some shop, normal user can uninstall it.", safety: "safe" },
- { pkg: "com.activate.activatephone", label: "Activatephone", description: "Useless frameworks.", safety: "safe" },
- { pkg: "com.adaptivebrightnessgo", label: "Adaptivebrightnessgo", description: "Not related to adaptive brightness in the sliding bar. The APK is called `CameraLightSensor`, so I guess it's for the camera.", safety: "caution" },
- { pkg: "com.agui.app.imei", label: "Imei", description: "IMEI Tool: Change MEID's & IMEI's of both SIM's Enter *#*#08#*#* in the dial pad to access", safety: "caution" },
- { pkg: "com.agui.app.memtester", label: "Memtester", description: "Memory tester Hidden test menu. Used in diagnostics, normally invoked by MMI(Man-Machine Interface) Codes", safety: "safe" },
- { pkg: "com.agui.appblock", label: "Appblock", description: "App blocker Settings > Intelligent assistance: App blocker Unihertz power management service killing background apps to improve battery performance.", safety: "caution" },
- { pkg: "com.agui.batterystatsdumper", label: "Batterystatsdumper", description: "Battery Stats Dumper Lets you check and clear battery usage statistics. Enter *#*#010#*#* in the dial pad to access this hidden menu.", safety: "caution" },
- { pkg: "com.agui.game", label: "Game", description: "Game mode Blocks calls & notifications when selected APP's are open", safety: "safe" },
- { pkg: "com.agui.newsos", label: "Newsos", description: "SOS Notify emergency contacts. When triggered, will also put the phone in a low comsumption mode", safety: "safe" },
- { pkg: "com.agui.nfc", label: "Nfc", description: "NFC card emulation: simulates various types of unencrypted entrance cards.", safety: "safe" },
- { pkg: "com.agui.providers.pedometer", label: "Pedometer", description: "Toolbox >\"Pedometer\" Pedometer/step counter. Because of a feature that integrates with the lock sceen the System UI crashes when removed.", safety: "keep" },
- { pkg: "com.agui.screenshot", label: "Screenshot", description: "Screenshot Screenshot utility triggered when double tapping the Red Button", safety: "caution" },
- { pkg: "com.agui.studentmodel", label: "Studentmodel", description: "Student Mode Locks down your phone to reduce distractions", safety: "safe" },
- { pkg: "com.agui.update", label: "Update", description: "\"Wireless Update\" Settings > About Phone : Sytem update. Removing will prevent Automatic Wireless Updates", safety: "caution", neededBy: ["com.agui.update.overlay"] },
- { pkg: "com.agui.update.overlay", label: "Overlay", description: "Overlay for com.agui.update. Overlay are usually themes.", safety: "caution", deps: ["com.agui.update"] },
- { pkg: "com.agui.usbcamera", label: "Usbcamera", description: "Toolbox >\"USB Camera\" Only usefull if you want to use a USB Camera", safety: "safe" },
- { pkg: "com.aiunit.aon", label: "Aon", description: "AONService. ColorOS Smart Features. App run with AI and phone sensors to recognize what best scenario for run privacy protection and the smart features OPPO offer. 1. Smart Spying Prevention, 2. Smart Air Control, 3. Smart Rotation, 4. Smart Always On Display. https://community.oppo.com/thread/1446120575440257025", safety: "caution" },
- { pkg: "com.alam.overlay.android", label: "Android", description: "It looks like the unused stuff has been translated into Indonesian.", safety: "caution" },
- { pkg: "com.alam.overlay.android.systemui", label: "Systemui", description: "It looks like the unused stuff has been translated into Indonesian.", safety: "caution" },
- { pkg: "com.alcatel.mcrm", label: "Mcrm", description: "enjoy.now It's an app for debugging and requires Google Play services.", safety: "safe" },
- { pkg: "com.amap.android.location", label: "Location", description: "Chinese location. Not needed for location.", safety: "safe" },
- { pkg: "com.amazon.amazonvideo.livingroom", label: "Livingroom", description: "Prime video https://play.google.com/store/apps/details?id=com.amazon.amazonvideo.livingroom&hl=en&gl=US", safety: "safe" },
- { pkg: "com.android.BBKClock", label: "BBKClock", description: "Clock Vivo clock app. App for manage alarms.", safety: "caution" },
- { pkg: "com.android.BBKCrontab", label: "BBKCrontab", description: "Task timer It's for scheduling tasks.", safety: "safe" },
- { pkg: "com.android.DeviceAsWebcam", label: "DeviceAsWebcam", description: "Using smartphone as webcam. Dependency for Private space on Pixel devices. https://source.android.com/docs/security/features/private-space", safety: "caution" },
- { pkg: "com.android.LGSetupWizard", label: "LGSetupWizard", description: "The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device. It's the setup for LG services.", safety: "safe" },
- { pkg: "com.android.SystemUIResOverlay", label: "SystemUIResOverlay", description: "Threekey volume guide pictures.", safety: "caution" },
- { pkg: "com.android.VideoPlayer", label: "VideoPlayer", description: "i Video Video player app for vivo phones.", safety: "safe" },
- { pkg: "com.android.WingFactoryCamera", label: "WingFactoryCamera", description: "MiCaliTool Camera Calibration.", safety: "safe" },
- { pkg: "com.android.angle", label: "Angle", description: "Almost Native Graphics Layer Engine, open source experimental project that improves rendering performance. Converts the calls from the graphics drivers to a more consistent APIs like Vulkan. See the source code here: https://github.com/google/angle", safety: "caution" },
- { pkg: "com.android.backup", label: "Backup", description: "Xiaomi Backup and Restore feature (mislead package name). This package was replaced by 'com.miui.backup' on newer models.", safety: "safe" },
- { pkg: "com.android.bbk.lockscreen3", label: "Lockscreen3", description: "Lock Needed for lockscreen?", safety: "caution" },
- { pkg: "com.android.bbklog", label: "Bbklog", description: "Log Collection Logs everything.", safety: "safe" },
- { pkg: "com.android.bbkmusic", label: "Bbkmusic", description: "i Music Music app with Chinese trackers.", safety: "caution" },
- { pkg: "com.android.bips.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Unused auto generated code: color icon code to print service.", safety: "safe" },
- { pkg: "com.android.bips.overlay.pixel", label: "Pixel", description: "it's overlay only to icon color.", safety: "safe" },
- { pkg: "com.android.bluetooth.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Random generated code app, in TECNO Phone found headphones images in the app to Settings.", safety: "caution" },
- { pkg: "com.android.bluetooth.bthelper", label: "Bthelper", description: "BtHelper it's only for Apple Air Pods. it's used to check the battery level of AirPods headphones.", safety: "safe" },
- { pkg: "com.android.bluetooth.oplus.overlay", label: "Overlay", description: "Overlay to 'com.android.bluetooth'.", safety: "keep" },
- { pkg: "com.android.bluetooth.overlay", label: "Overlay", description: "Not a standard package provided by the Android framework. It seems to be a custom package specific to a particular Android device or custom ROM. Based on the search results, there is no official documentation or information available about in the Android documentation or developer resources. It is possible that this package contains custom overlays or modifications related to the Bluetooth functionality on a specific device or ROM. Overlays are used to customize the behavior or appearance of the Android system without modifying the core framework. These overlays can be provided by device manufacturers or custom ROM developers to add or modify features specific to their devices. Safe to remove if com.android.bluetooth is removed.", safety: "caution" },
- { pkg: "com.android.bluetooth.tempow", label: "Tempow", description: "Implementation of a improved bluetooth protocol (developed by french company Tempow) https://www.tempow.com/tap NOTE: This is NOT an AOSP package. It is OEMs who choose to implement this procotol or not. For now, only TCL has this.", safety: "keep" },
- { pkg: "com.android.browser.res.overlay_305", label: "Overlay_305", description: "An overlay that draws over the browser, probably safe to disable if you use another browser. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.camera.overlay", label: "Overlay", description: "Unused? In code found some sounds to camera app and random images that looks like a calibration.", safety: "caution" },
- { pkg: "com.android.camera2", label: "Camera2", description: "Xiaomi Camera (I don't know why they kept this package name. It's really confusing.) It's a proprietary app based on the AOSP sources: https://android.googlesource.com/platform/packages/apps/Camera2/+/master/src/com/android/camera", safety: "caution" },
- { pkg: "com.android.camerabigballconfig.overlay", label: "Overlay", description: "Configures default Qr Code component com.google.android.gms .mlkit.barcode.ui.PlatformBarcodeScanningActivityProxy. Not needed to camera or scan QR Code.", safety: "caution" },
- { pkg: "com.android.cameraextensions", label: "Cameraextensions", description: "CameraExtensionsProxy. Camera-related third-party apps can call Android camera extensions such as Portrait, Night Mode, and HDR, which doesn't seem to work significantly on MIUI. https://developer.android.com/media/camera/camera-extensions", safety: "caution" },
- { pkg: "com.android.captiveportallogin.overlay", label: "Overlay", description: "it's overlay only to icon color.", safety: "safe" },
- { pkg: "com.android.carrierconfig.overlay.miui", label: "Miui", description: "Required for com.android.carrierconfig on devices running HyperOS/MIUI. Safe to remove if com.android.carrierconfig is removed.", safety: "caution" },
- { pkg: "com.android.carrierconfig.overlay.product", label: "Product", description: "Better keep this for LTE network.", safety: "keep" },
- { pkg: "com.android.carrierconfig.res.overlay_305", label: "Overlay_305", description: "An overlay that draws over the android.carrierconfig package, probably safe if you do not use calls/SMS. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.carrierconfig.res.overlay_310_311", label: "Overlay_310_311", description: "An overlay that draws over the android.carrierconfig package, probably safe if you do not use calls/SMS. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.cellbroadcast.overlay", label: "Overlay", description: "Unused overlay without code. Only for Test message.", safety: "safe" },
- { pkg: "com.android.cellbroadcastreceiver.overlay.base.s600ww", label: "S600ww", description: "Nokia theme overlay for com.android.cellbroadcastreceiver", safety: "caution", deps: ["com.android.cellbroadcastreceiver"] },
- { pkg: "com.android.cellbroadcastreceiver.overlay.pixel", label: "Pixel", description: "Useless code to cellbroadcastreceiver", safety: "safe" },
- { pkg: "com.android.cellbroadcastservice.overlay", label: "Overlay", description: "Unused overlay. Cross-SIM duplicate detection false.", safety: "safe" },
- { pkg: "com.android.cellbroadcastservice.overlay.pixel", label: "Pixel", description: "Useless code to cellbroadcastservice", safety: "safe" },
- { pkg: "com.android.companiondevicemanager.auto_generated_characteristics_rro", label: "Auto_generated_characteristics_rro", description: "Companion device manager for Android device connections.", safety: "caution" },
- { pkg: "com.android.compos.payload", label: "Payload", description: "CompOS Has something to 'com.android.compos'.", safety: "caution" },
- { pkg: "com.android.connectivity.resources.nt.overlay", label: "Overlay", description: "WiFi configs. Better don't risk", safety: "keep" },
- { pkg: "com.android.connectivity.resources.overlay", label: "Overlay", description: "Cause bootloop? Found in TECNO phone, in overlay there's a notification saying 'No Internet As Dialog When High Priority'. Can someone test it?", safety: "keep" },
- { pkg: "com.android.devicediagnostics", label: "Devicediagnostics", description: "Device diagnostics and health check tools for Android devices.", safety: "caution" },
- { pkg: "com.android.devicediagnostics.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Auto-generated diagnostics configurations for Android devices.", safety: "caution" },
- { pkg: "com.android.devicediagnostics.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Device diagnostics and vendor-specific overlays for troubleshooting.", safety: "caution" },
- { pkg: "com.android.dlna.service", label: "Service", description: "Screen cast OPPO.", safety: "caution" },
- { pkg: "com.android.dreams.overlay.basic", label: "Basic", description: "Overlay to 'com.android.dreams.basic' has icons png.", safety: "caution" },
- { pkg: "com.android.dreams.overlay.phototable", label: "Phototable", description: "Overlay to 'com.android.dreams.phototable' has icons png.", safety: "caution" },
- { pkg: "com.android.email.partnerprovider.overlay", label: "Overlay", description: "Theme overlay for partnerprovider?", safety: "caution" },
- { pkg: "com.android.fileexplorer", label: "Fileexplorer", description: "Xiaomi/Mi File Explorer (Again it's a really poor choice for a package name considering it is not the AOSP File explorer) It's a Closed-source app based on the AOSP version.", safety: "caution" },
- { pkg: "com.android.flyme.bridge.softsim", label: "Softsim", description: "it's for softsim? No activities, looks like a useless framework.", safety: "safe" },
- { pkg: "com.android.frameworkhwext", label: "Frameworkhwext", description: "There is not much info but others seem to have disabled this and similar, see: https://forum.xda-developers.com/t/guide-list-of-bloatware-safe-to-remove-how-to-do-it.3866647.", safety: "caution" },
- { pkg: "com.android.frameworkhwnext.honor", label: "Honor", description: "Framework necessary for Themes app to launch", safety: "caution" },
- { pkg: "com.android.gallery3d.refocus", label: "Refocus", description: "Package: com.android.gallery3d.refocus", safety: "caution" },
- { pkg: "com.android.globalFileexplorer", label: "GlobalFileexplorer", description: "Xiaomi File Explorer/Manager.", safety: "safe" },
- { pkg: "com.android.hbmsvmanager", label: "Hbmsvmanager", description: "Its app for calibration screen and debugging. HBM SV is unknown.", safety: "caution" },
- { pkg: "com.android.hbmsvmanager.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "unused png files, calibration. it's from (com.android.hbmsvmanager)", safety: "safe" },
- { pkg: "com.android.healthconnect.overlay", label: "Overlay", description: "Health Connect overlay for fitness data integration.", safety: "caution" },
- { pkg: "com.android.hwmirror", label: "Hwmirror", description: "Mirror Lets you use your phone as a mirror...", safety: "safe" },
- { pkg: "com.android.imedia.syncplay", label: "Syncplay", description: "Party Mode Party Mode lets you sync music playback across multiple devices.", safety: "caution" },
- { pkg: "com.android.imsserviceentitlement", label: "Imsserviceentitlement", description: "It's needed for WiFi calling.", safety: "caution" },
- { pkg: "com.android.incallui", label: "Incallui", description: "Xiaomi Phone 11 Xiaomi's phone (dialer, incallui, etc.) app. Fetches APN lists on some phones. Package name is highly misleading.", safety: "caution" },
- { pkg: "com.android.incallui.overlay", label: "Overlay", description: "App without code and safe to remove.", safety: "safe" },
- { pkg: "com.android.inputmethod.pinyin", label: "Pinyin", description: "It is the built in software keyboard for LDPlayer. Getting rid of this breaks any keyboard input including from PC hardware keyboard.", safety: "caution" },
- { pkg: "com.android.inputsettings.overlay.miui", label: "Miui", description: "Keyboard demo found. It's something to miinput unused Chinese! On HyperOS 3, it's a dependency of Camera Ring", safety: "safe" },
- { pkg: "com.android.internal.display.cutout.emulation.avoidAppsInCutout", label: "AvoidAppsInCutout", description: "Avoid displaying apps in the notch area of the screen.", safety: "caution" },
- { pkg: "com.android.keyguard", label: "Keyguard", description: "Huawei magazine unlock It's a proprietary app based on the AOSP package called com.android.keyguard. That's not clever at all. https://consumer.huawei.com/en/support/content/en-us00206571/ Lets you customize your lock screen wallpapers https://forum.xda-developers.com/honor-6x/how-to/guide-list-bloat-software-emui-safe-to-t3700814 Additional information were taken from https://forum.xda-developers.com/huawei-p40-pro/how-to/adb-debloating-t4088633 If you have EMUI 10 or older, check the AOSP file, as Huawei uses AOSP package name for their own app. WARNING: breaks home and recents button on Xiaomi Mi Pad: https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/issues/330", safety: "caution" },
- { pkg: "com.android.launcher", label: "Launcher", description: "OPPO Launcher Breaks swipe up gestures after remove.", safety: "caution" },
- { pkg: "com.android.launcher3.tv", label: "Tv", description: "TV Not sure if it's useless frameworks or for the launcher or TV launcher.", safety: "caution" },
- { pkg: "com.android.managedprovisioning.overlay", label: "Overlay", description: "Random useless code to com.android.managedprovisioning", safety: "safe" },
+ { pkg: "com.android.keyguard", label: "Keyguard", description: "I NEVER HAD AN HUAWEI DEVICE ON HAND. THIS LIST WAS MADE POSSIBLE BY @REDSKULL23", safety: "safe" },
+ { pkg: "com.android.hwmirror", label: "Hwmirror", description: "Mirror", safety: "safe" },
+ { pkg: "com.baidu.input_huawei", label: "Input Huawei", description: "Woh! 51 permissions!", safety: "safe" },
+ { pkg: "com.bjbyhd.screenreader_huawei", label: "Screenreader Huawei", description: "An accessibility feature for visually impaired people", safety: "safe" },
+ { pkg: "com.iflytek.speechsuite", label: "Speechsuite", description: "Default voice input method from iflytek, a big chinese company (https://en.wikipedia.org/wiki/IFlytek)", safety: "safe" },
+ { pkg: "com.nuance.swype.emui", label: "Emui", description: "Huawei Swype functions.", safety: "safe" },
{ pkg: "com.android.mediacenter", label: "Mediacenter", description: "Huawei music app. (Yeah they messed up with the package name)", safety: "safe" },
{ pkg: "com.android.messaging", label: "Messaging", description: "Android default messaging app", safety: "caution" },
- { pkg: "com.android.microdroid.empty_payload", label: "Empty_payload", description: "empty app that has permission to MANAGE VIRTUAL MACHINE.", safety: "safe" },
- { pkg: "com.android.midrive", label: "Midrive", description: "Mi Drive Misleading package name. It is indeed a closed-source Xiaomi application. Allow for cloud storage (on Mi Cloud) and syncing across multiple Android devices.", safety: "safe" },
- { pkg: "com.android.mmi", label: "Mmi", description: "Not an AOSP package at all Hidden MMI test app MMI = Man Machine Interface ?", safety: "keep" },
- { pkg: "com.android.mmifm", label: "Mmifm", description: "FM Radio_wrh It looks like unused FM Radio stuff without activity, adding favorite channels.", safety: "safe" },
- { pkg: "com.android.mmisubtest", label: "Mmisubtest", description: "P-Sensor Calibration It's useless and hidden.", safety: "safe" },
- { pkg: "com.android.mmitest", label: "Mmitest", description: "Hardware Testing Hidden testing hardware things.", safety: "safe" },
- { pkg: "com.android.mms.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "com.android.mms.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "com.android.mms.service.plugin.UaProfUrl", label: "UaProfUrl", description: "Useless plugin for logs", safety: "safe" },
- { pkg: "com.android.mms.service.plugin.UserAgent", label: "UserAgent", description: "Useless plugin for logs. Collects data.", safety: "safe" },
- { pkg: "com.android.modemnotifier", label: "Modemnotifier", description: "Modem Info Hidden Modem Info? Used for logs.", safety: "safe" },
- { pkg: "com.android.music", label: "Music", description: "The com.android.music package is the default music player app that comes pre-installed on many Android devices. It provides basic music playback functionality and may include features like playlists and library management. Since there are many better and more feature-rich music player apps available on Google Play, and this app does not offer any unique features specific to your device, removing it should not impact the core functionality of the operating system.", safety: "safe" },
- { pkg: "com.android.networksettings.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "com.android.networkstack.overlay.miui", label: "Miui", description: "Required for com.android.networkstack on devices running HyperOS/MIUI. Not safe to delete.", safety: "keep" },
- { pkg: "com.android.networkstack.tethering.inprocess", label: "Inprocess", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.android.nfc.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Random useless code to com.android.nfc", safety: "safe" },
- { pkg: "com.android.nfc.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Random useless code to com.android.nfc", safety: "safe" },
- { pkg: "com.android.nfc.overlay", label: "Overlay", description: "NFC overlay configuration for system-level settings.", safety: "caution" },
- { pkg: "com.android.nfc.overlay.common", label: "Common", description: "Common overlay configuration for NFC functionality.", safety: "caution" },
- { pkg: "com.android.omadm.service", label: "Service", description: "Oma Device Management, There are carrier tools, no firmware update found. The code also includes Subscription Index and configures FOTA.", safety: "caution" },
- { pkg: "com.android.omadm.service.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Useless config metrics code", safety: "safe" },
- { pkg: "com.android.omadm.service.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Useless devinfo model", safety: "safe" },
- { pkg: "com.android.opasuwintegrationsample", label: "Opasuwintegrationsample", description: "Optimized Setup Wizard Integration Sample code. Can be used to create a custom setup wizard, such as one created by a manufacturer that runs after the initial Android Setup Wizard. Does not appear to actually run. It is sample code and should be able to be removed safely.", safety: "safe" },
- { pkg: "com.android.overlay.calendar", label: "Calendar", description: "Overlay to 'com.android.calendar' logo calendar icons.", safety: "caution" },
- { pkg: "com.android.overlay.camera2", label: "Camera2", description: "Overlay to 'com.android.camera2' png icons.", safety: "caution" },
- { pkg: "com.android.overlay.contacts", label: "Contacts", description: "Overlay to 'com.android.contacts' png icons.", safety: "caution" },
- { pkg: "com.android.overlay.dialer", label: "Dialer", description: "Overlay to 'com.android.dialer' png icons.", safety: "caution" },
- { pkg: "com.android.overlay.dynamiciconconfig", label: "Dynamiciconconfig", description: "Overlay to 'com.android.launcher3' calendar, clock component name.", safety: "caution" },
- { pkg: "com.android.overlay.email", label: "Email", description: "Overlay to 'com.android.email' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.emergency", label: "Emergency", description: "Overlay to 'com.android.emergency' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.fmradio", label: "Fmradio", description: "Overlay to 'com.android.fmradio' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.gallery3d", label: "Gallery3d", description: "Overlay to 'com.android.gallery3d' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.gmscontactprovider", label: "Gmscontactprovider", description: "Checked in miui 14. Incorrect named thing to sync metadata contacts or gms? metadata_sync_pacakge com.google.android.gms No effects after remove. (detected on miui 14 with android 13 phones) it's an unused overlay.", safety: "caution" },
- { pkg: "com.android.overlay.gmssettingprovider", label: "Gmssettingprovider", description: "Checked in miui 14. Have some stuff about google gms: backup.BackupTransportService. Useless backup things, without it backup and cloud work. Maybe it's used for backup settings, but probably not, and if it is, I don't think you need it. (detected on miui 14 with android 13 phones) It's an unused overlay.", safety: "caution" },
- { pkg: "com.android.overlay.gmssettings", label: "Gmssettings", description: "Unused overlay to 'com.google.android.apps.safetyhub'.", safety: "caution" },
- { pkg: "com.android.overlay.gmstelecomm", label: "Gmstelecomm", description: "Overlay app to 'com.google.android.dialer', 'com.android.incallui'.", safety: "caution" },
- { pkg: "com.android.overlay.gmstelephony", label: "Gmstelephony", description: "Overlay app to 'com.google.android.dialer', 'com.google.android.gms'.", safety: "caution" },
- { pkg: "com.android.overlay.iconrecentsconfig", label: "Iconrecentsconfig", description: "A completely useless 0 bytes app.", safety: "caution" },
- { pkg: "com.android.overlay.launcher3", label: "Launcher3", description: "Overlay to 'com.android.launcher3' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.livepicker", label: "Livepicker", description: "Overlay to 'com.android.wallpaper.livepicker' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.logmanager", label: "Logmanager", description: "Overlay to 'com.android.logmanager' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.messaging", label: "Messaging", description: "Overlay to 'com.android.messaging' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.music", label: "Music", description: "Overlay to 'com.android.music' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.quicksearchbox", label: "Quicksearchbox", description: "Overlay to 'com.android.quicksearchbox' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.settings", label: "Settings", description: "Overlay to 'com.android.settings' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.soundrecorder", label: "Soundrecorder", description: "Overlay to 'com.android.soundrecorder' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.stk", label: "Stk", description: "Overlay to 'com.android.stk' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.wallpaper", label: "Wallpaper", description: "Overlay to 'com.android.wallpaper' icons png.", safety: "caution" },
- { pkg: "com.android.overlay.wallpaperconfig", label: "Wallpaperconfig", description: "A completely useless 0 bytes app.", safety: "caution" },
- { pkg: "com.android.partnerbrowsercustomizations.btl.s600ww.overlay", label: "Overlay", description: "Theme overlay for some browser customization?", safety: "caution" },
- { pkg: "com.android.partnerbrowsercustomizations.chromeHomepage.res.overlay_310_311", label: "Overlay_310_311", description: "Adds a customised homepage to Google Chrome provided by either OEM or carrier. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.partnerbrowsercustomizations.example", label: "Example", description: "This hidden Chinese/Romanian adware changes Google Chrome's home page, it varies by manufacturers.", safety: "safe" },
- { pkg: "com.android.pedometer", label: "Pedometer", description: "Pedometer It's for displaying steps probably.", safety: "safe" },
- { pkg: "com.android.phone.auto_generated_characteristics_rro", label: "Auto_generated_characteristics_rro", description: "Telephony characteristics for phone app customization.", safety: "caution" },
- { pkg: "com.android.phone.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Configs to phone auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.phone.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Configs to phone auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.phone.cust.overlay.miui", label: "Miui", description: "An overlay customizing default behavior and preferences for com.android.phone on devices running HyperOS/MIUI. Safe to remove if com.android.phone is removed.", safety: "caution" },
- { pkg: "com.android.phone.injection", label: "Injection", description: "Possibly safe, or useless as removal doesn't seem to change anything. It's a very small APK, it's a single class which only assigns a constant numeric value to a variable called 'telephony_injection'", safety: "caution" },
- { pkg: "com.android.phone.overlay.carriersettings", label: "Carriersettings", description: "Overlay to (com.google.android.carrier) Anyway, this app doesn't exist on your phone I guess.", safety: "caution" },
- { pkg: "com.android.phone.overlay.miui", label: "Miui", description: "Contains specific modifications and enhancements made by MIUI to the phone app's user interface and functionality.", safety: "keep" },
- { pkg: "com.android.phone.overlay.motcommon", label: "Motcommon", description: "Related to Motorola's custom overlay for Phone and other UI elements.", safety: "caution" },
- { pkg: "com.android.phone.product.res.overlay", label: "Overlay", description: "Overlays the phone app, needed if you use the device for calls/SMS/contact management. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.phone.product.res.overlay.no_imei_emergency_call", label: "No_imei_emergency_call", description: "Unsure but I would just leave it as you need to stay safe. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.phone.res.overlay_305", label: "Overlay_305", description: "Overlays the phone app, keep if you want calls/SMS/contact management to work. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.pixeldisplayservice", label: "Pixeldisplayservice", description: "Display management service for Pixel devices.", safety: "caution" },
- { pkg: "com.android.pixeldisplayservice.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Auto-generated display service configurations for Pixel devices.", safety: "caution" },
- { pkg: "com.android.poweroffhandlerapp", label: "Poweroffhandlerapp", description: "I found only lockDevice and Shutdown Phone Animation", safety: "safe" },
- { pkg: "com.android.powertouch", label: "Powertouch", description: "Moto Power Touch lets you customize the double tap power button gesture to launch an app or shortcut of your choice.", safety: "safe" },
- { pkg: "com.android.providers.calendar.overlay.base.s600ww", label: "S600ww", description: "Some overlay for a content provider package. Overlays are usually themes.", safety: "caution" },
- { pkg: "com.android.providers.contactkeys", label: "Contactkeys", description: "Contact key manager for Android interactions.", safety: "caution" },
- { pkg: "com.android.providers.contacts.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Incorrect named thing to sync metadata gms? metadata_sync_pacakge com.google.android.gms No effects after remove.", safety: "safe" },
- { pkg: "com.android.providers.contacts.overlay.pixel", label: "Pixel", description: "in overlay found: metadata_sync_pacakge: com.google.android.gms. Not needed.", safety: "safe" },
- { pkg: "com.android.providers.icccust", label: "Icccust", description: "Looks to be linked to SIM management. I would advise keeping it", safety: "caution" },
- { pkg: "com.android.providers.media.module", label: "Module", description: "Media picker module Not recommended to remove this as it can break apps that use the photo picker.", safety: "caution" },
- { pkg: "com.android.providers.media.overlay.pixel", label: "Pixel", description: "Useless code to photos cloudpicker.", safety: "safe" },
- { pkg: "com.android.providers.partnerbookmarks.res.overlay_305", label: "Overlay_305", description: "Overlays Bookmark customisation, probably not needed. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.providers.partnerbookmarks.res.overlay_310_311", label: "Overlay_310_311", description: "Overlays Bookmark customisation, probably not needed. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.providers.privacyprotection", label: "Privacyprotection", description: "It has permission protect and logs.", safety: "safe" },
- { pkg: "com.android.providers.settings.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Useless overlay to Backup google. Backup works without it.", safety: "safe" },
- { pkg: "com.android.providers.settings.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "rro = Runtime Resources Overlay. Changes values of a package config, based in the overlay definitions (heavily used by OEMs to customize the look and feel of Android).", safety: "caution" },
- { pkg: "com.android.providers.settings.btl.s600ww.overlay", label: "Overlay", description: "Some overlay for a content provider package. Overlays are usually themes.", safety: "caution" },
- { pkg: "com.android.providers.settings.overlay.base.s600ww", label: "S600ww", description: "Some overlay for a content provider package. Overlays are usually themes.", safety: "caution" },
- { pkg: "com.android.providers.settings.overlay.common", label: "Common", description: "Better keep this for acceleration? Better don't risk.", safety: "keep" },
- { pkg: "com.android.providers.settings.res.overlay_305", label: "Overlay_305", description: "Overlays system settings, probably needed. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.providers.tctdatahubprovider", label: "Tctdatahubprovider", description: "Package: com.android.providers.tctdatahubprovider", safety: "caution" },
- { pkg: "com.android.providers.telephony.auto_generated_characteristics_rro", label: "Auto_generated_characteristics_rro", description: "Telephony characteristics for phone app and services.", safety: "caution" },
- { pkg: "com.android.providers.telephony.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Configs to providers telephony auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.providers.telephony.overlay.carriersettings", label: "Carriersettings", description: "Overlay to (com.google.android.carrier) Anyway, this app doesn't exist on your phone I guess.", safety: "caution" },
- { pkg: "com.android.providers.telephony.overlay.miui", label: "Miui", description: "Required for com.android.providers.telephony on devices running HyperOS/MIUI. Not safe to delete.", safety: "keep" },
- { pkg: "com.android.providers.tv", label: "Tv", description: "TV Storage Provides TV listings.", safety: "keep" },
- { pkg: "com.android.provision.overlay.miui", label: "Miui", description: "An overlay for com.android.provision for Xiaomi devices. Since com.android.provision is in Unsafe, this should also be in Unsafe.", safety: "keep" },
- { pkg: "com.android.qns", label: "Qns", description: "Apn service, emergency calling, not sure how useful this app is.", safety: "caution" },
- { pkg: "com.android.retaildemo.overlay.base.s600ww", label: "S600ww", description: "Theme overlay for Retail demonstration mode? https://en.wikipedia.org/wiki/Demo_mode", safety: "caution" },
- { pkg: "com.android.role.notes.enabled", label: "Enabled", description: "Notes Role enabled Unknown overlay, sets default notes. Breaks seamlessly disabling and enabling developer options on Google Pixel(s).", safety: "caution" },
- { pkg: "com.android.runintest.ddrtest", label: "Ddrtest", description: "DDR Test RAM Stress tester Can be run from the bootloader (seen in TCL Plex phone)", safety: "safe" },
- { pkg: "com.android.safetycenter.resources.overlay", label: "Overlay", description: "Safety Center overlay. Overlays work by mapping resources defined in the overlay package to resources defined in the target package. When an app attempts to resolve the value of a resource in the target package, the value of the overlay resource the target resource is mapped to is returned instead. Safety Center provides redirection entries so that users can access specific security and privacy settings. Safety Center also identifies issues that users can fix on their devices or accounts, by combining dynamic data received from multiple sources. This data provides users with a general safety status with specific recommendations. https://source.android.com/docs/core/runtime/rros https://source.android.com/docs/security/safety-center/overview", safety: "caution" },
- { pkg: "com.android.safetycenter.styles.overlay", label: "Overlay", description: "Safety Center styles overlay. Overlays work by mapping resources defined in the overlay package to resources defined in the target package. When an app attempts to resolve the value of a resource in the target package, the value of the overlay resource the target resource is mapped to is returned instead. Safety Center provides redirection entries so that users can access specific security and privacy settings. Safety Center also identifies issues that users can fix on their devices or accounts, by combining dynamic data received from multiple sources. This data provides users with a general safety status with specific recommendations. https://source.android.com/docs/core/runtime/rros https://source.android.com/docs/security/safety-center/overview", safety: "caution" },
- { pkg: "com.android.safetyregulatoryinfo", label: "Safetyregulatoryinfo", description: "Unused? This is what you can find probably in settings: setSavePassword, setSaveFormData, setBlockNetworkLoads, setJavaScriptEnabled.", safety: "caution" },
- { pkg: "com.android.safetyregulatoryinfo.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Useless unused Chinese images.", safety: "safe" },
- { pkg: "com.android.screenshot", label: "Screenshot", description: "Default android screenshot tool", safety: "caution" },
- { pkg: "com.android.sdm.plugins.connmo", label: "Connmo", description: "ConnMO Notifications for video calling? Also Apn Service.", safety: "caution" },
- { pkg: "com.android.sdm.plugins.dcmo", label: "Dcmo", description: "Carrier OMADM Another thing to VoLTE.", safety: "caution" },
- { pkg: "com.android.sdm.plugins.diagmon", label: "Diagmon", description: "diagnostic plugin it's app for hidden diagnostics.", safety: "safe" },
- { pkg: "com.android.secretcode", label: "Secretcode", description: "SecretCode Hidden app shows some secret codes.", safety: "safe" },
- { pkg: "com.android.server.deviceconfig.resources", label: "Resources", description: "DeviceConfigServiceResources (Server*?). Part of com.android.configinfrastructure. Resources for the device's default server config. https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/ConfigInfrastructure/service/ServiceResources/Android.bp", safety: "caution" },
- { pkg: "com.android.server.telecom.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Configs to server telecom auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.server.telecom.overlay.miui", label: "Miui", description: "Manage calls it's used for manage calls ui. it's important overlay to calling.", safety: "keep" },
- { pkg: "com.android.service.ims", label: "Ims", description: "It's for subscribing to the presence information using RCS.", safety: "caution" },
- { pkg: "com.android.settingaccessibility", label: "Settingaccessibility", description: "Accessibility settings It should be important for settings.", safety: "caution" },
- { pkg: "com.android.settings.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.os.overlay", label: "Overlay", description: "Looks unused, but not confirmed. Found in app 'icon file download', Vibration switch. Icon user found, overlay to 'com.android.settings'.", safety: "caution" },
- { pkg: "com.android.settings.overlay.SettingsFuture", label: "SettingsFuture", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "com.android.settings.overlay.common", label: "Common", description: "Color mode config you can find it in settings it's something about: natural, boosted, saturated, adaptive.", safety: "keep" },
- { pkg: "com.android.settings.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "com.android.settings.overlay.filesgoogle", label: "Filesgoogle", description: "Useless overlay to Google Files.", safety: "safe" },
- { pkg: "com.android.settings.overlay.g1azg", label: "G1azg", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.overlay.gb17l", label: "Gb17l", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.overlay.gb62z", label: "Gb62z", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.overlay.gx7as", label: "Gx7as", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.overlay.miui", label: "Miui", description: "This app is without code and safe to remove.", safety: "caution" },
- { pkg: "com.android.settings.overlay.oversea", label: "Oversea", description: "A completely useless 0 bytes app.", safety: "caution" },
- { pkg: "com.android.settings.overlay.personalsafety", label: "Personalsafety", description: "Useless overlay to personalsafety, safetyhub", safety: "safe" },
- { pkg: "com.android.settings.overlay.pixel2021", label: "Pixel2021", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.settings.overlay.product", label: "Product", description: "Useless overlay to images phone white and black, it's for camera MP info.", safety: "safe" },
- { pkg: "com.android.settings.overlay.shiba", label: "Shiba", description: "Device-specific settings overlay for internal features.", safety: "caution" },
- { pkg: "com.android.settings.overlay.turbo", label: "Turbo", description: "Useless overlay to smart battery images, videos. And it's probably unused.", safety: "safe" },
- { pkg: "com.android.settings.res.overlay_305", label: "Overlay_305", description: "Overlays system settings, probably needed. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.settings.res.overlay_310_311", label: "Overlay_310_311", description: "Overlays system settings, probably needed. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.settings.resoverlay", label: "Resoverlay", description: "Found in the code\"Declaration of Conformity\" on the TECNO phone, is probably unused, as it cannot be found in the Settings or anywhere else. It can be safely removed, the Settings still work without this app.", safety: "caution" },
- { pkg: "com.android.settings.shiba", label: "Shiba", description: "Settings app with internal device-specific features.", safety: "caution" },
- { pkg: "com.android.settingsaccessibility", label: "Settingsaccessibility", description: "Accessibility settings (tools for vision, hearing and physical impairments) Sometimes, third-party apps may require special permissions in the accessibility settings in order to work properly.", safety: "caution" },
- { pkg: "com.android.setupwizard.overlay", label: "Overlay", description: "It's needed only on first-boot setup.", safety: "safe" },
- { pkg: "com.android.setupwizard.overlay.ontim", label: "Ontim", description: "Useless overlay to welcome image First-boot setup.", safety: "safe" },
- { pkg: "com.android.simappdialog.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Useless overlay to simappdialog.", safety: "safe" },
- { pkg: "com.android.sos", label: "Sos", description: "Emergency SOS app for quick access to emergency services and contacts.", safety: "caution" },
- { pkg: "com.android.soundpicker.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Has colors, dialog things, autogenerated code, but someone can confirm that app is safe to remove?", safety: "caution" },
- { pkg: "com.android.sprd.telephony.server", label: "Server", description: "Unknown purpose, likely spyware. Uninstalling it doesn't seem to break anything for Android 10 GO, S21 Plus 2021_EEA.", safety: "safe" },
- { pkg: "com.android.stk.overlay.miui", label: "Miui", description: "'SIM Toolkit' name app only found.", safety: "caution" },
- { pkg: "com.android.stk.product.res.overlay.common", label: "Common", description: "SIM Tool Kit overlay, best kept. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "caution" },
- { pkg: "com.android.store", label: "Store", description: "An app called TCL Mobile that you cannot disable and just opens up a link to the OEM in the browser.", safety: "safe" },
- { pkg: "com.android.supl", label: "Supl", description: "SUPL20Service GPS still works without it. Probably needed to location in China.", safety: "safe" },
- { pkg: "com.android.systemui.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Configs to systemui auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.systemui.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Configs to systemui auto generated but better keep.", safety: "keep" },
- { pkg: "com.android.systemui.clocks.bignum", label: "Bignum", description: "Large clock display interface for the system UI.", safety: "caution" },
- { pkg: "com.android.systemui.clocks.calligraphy", label: "Calligraphy", description: "Calligraphy-style clock faces for system UI.", safety: "caution" },
- { pkg: "com.android.systemui.clocks.flex", label: "Flex", description: "Flexible clock interface for system UI customization.", safety: "caution" },
- { pkg: "com.android.systemui.clocks.growth", label: "Growth", description: "Growth-themed dynamic clock display for system UI.", safety: "caution" },
- { pkg: "com.android.systemui.clocks.inflate", label: "Inflate", description: "Customizable clock display for system UI.", safety: "caution" },
- { pkg: "com.android.systemui.clocks.numoverlap", label: "Numoverlap", description: "Adjustable number overlap for system clock display.", safety: "caution" },
- { pkg: "com.android.systemui.clocks.weather", label: "Weather", description: "Clock with integrated weather updates for system UI.", safety: "caution" },
- { pkg: "com.android.systemui.feature_cover", label: "Feature_cover", description: "It looks like a very important app. Important configs to android?", safety: "keep" },
- { pkg: "com.android.systemui.notch.overlay", label: "Overlay", description: "It have something to Display Cutout. Better dont touch it. Important configs to display.", safety: "keep" },
- { pkg: "com.android.systemui.os.overlay", label: "Overlay", description: "Icon user found, overlay to 'com.android.systemui'.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.charging.anim.alita_supervooc2", label: "Alita_supervooc2", description: "Charging phone animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.charging.anim.siphon_wireless", label: "Siphon_wireless", description: "Wireless charging animation for OnePlus phones.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "com.android.systemui.overlay.common", label: "Common", description: "Has something related to Google Wellbeing first time setup quick settings. Safe to remove.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.ccyh", label: "Ccyh", description: "Fingerprint animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.cosmos", label: "Cosmos", description: "Fingerprint Animation Cosmos when unlocking phone.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.fireworks", label: "Fireworks", description: "Fingerprint Animation Fireworks when unlocking phone.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.fy", label: "Fy", description: "Fingerprint Animation Fy when unlocking phone.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.jhsy", label: "Jhsy", description: "Fingerprint animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.jslz", label: "Jslz", description: "Fingerprint animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.lgsy", label: "Lgsy", description: "Fingerprint animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.nlgs", label: "Nlgs", description: "Fingerprint animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.none", label: "None", description: "Fingerprint Animation None when unlocking phone.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.ripple", label: "Ripple", description: "Fingerprint Animation Ripple when unlocking phone.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.stripe", label: "Stripe", description: "Fingerprint Animation Stripe when unlocking phone.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.sw", label: "Sw", description: "Fingerprint Animation Sw when unlocking phone.", safety: "caution" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.tyjw", label: "Tyjw", description: "Fingerprint animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.fingerprint.anim.xklc", label: "Xklc", description: "Fingerprint animation from a lot of PNG files", safety: "safe" },
- { pkg: "com.android.systemui.overlay.gms", label: "Gms", description: "Useless overlay to systemui gms", safety: "safe" },
- { pkg: "com.android.systemui.overlay.miui", label: "Miui", description: "App without code and safe to remove.", safety: "safe" },
- { pkg: "com.android.systemui.overlay.pong", label: "Pong", description: "Better keep this for config temperature? Better don't risk.", safety: "keep" },
- { pkg: "com.android.systemui.overlay.spacewar", label: "Spacewar", description: "Better keep this for config temperature? Better don't risk.", safety: "keep" },
- { pkg: "com.android.systemui.res.overlay_305", label: "Overlay_305", description: "Overlays SystemUI, best kept. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "keep" },
- { pkg: "com.android.systemui.res.overlay_310_311", label: "Overlay_310_311", description: "Overlays SystemUI, best kept. Find out more by running: adb shell cmd overlay list, to see other packages", safety: "keep" },
- { pkg: "com.android.telephony.imsmedia", label: "Imsmedia", description: "IMS media management for VoLTE and video calling.", safety: "caution" },
- { pkg: "com.android.theme.color.amethyst", label: "Amethyst", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.aquamarine", label: "Aquamarine", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.black", label: "Black", description: "Android color accent only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.color.cinnamon", label: "Cinnamon", description: "Android color accent only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.color.darklake", label: "Darklake", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.dorange", label: "Dorange", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.dpurple", label: "Dpurple", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.green", label: "Green", description: "Android color accent only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.color.lgreen", label: "Lgreen", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.ocean", label: "Ocean", description: "Android color accent only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.color.orchid", label: "Orchid", description: "Android color accent only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.color.parasailing", label: "Parasailing", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.purple", label: "Purple", description: "Android color accent only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.color.saffron", label: "Saffron", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.sand", label: "Sand", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.slate", label: "Slate", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.color.space", label: "Space", description: "Android color accent only for google pixel or aosp or motorola", safety: "safe" },
- { pkg: "com.android.theme.color.tangerine", label: "Tangerine", description: "Android color accent only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.font.ArchivoSemiBold", label: "ArchivoSemiBold", description: "Font ArchivoSemiBold", safety: "safe" },
- { pkg: "com.android.theme.font.Exo2Regular", label: "Exo2Regular", description: "Font Exo2Regular", safety: "safe" },
- { pkg: "com.android.theme.font.RobotoSlabRegular", label: "RobotoSlabRegular", description: "Font RobotoSlabRegular", safety: "safe" },
- { pkg: "com.android.theme.font.RookeryRegular", label: "RookeryRegular", description: "Font RookeryRegular", safety: "safe" },
- { pkg: "com.android.theme.icon.round", label: "Round", description: "Android icon shape only for Google Pixel or AOSP or Motorola", safety: "safe" },
- { pkg: "com.android.theme.icon.roundedrect", label: "Roundedrect", description: "Android color accent only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon.squircle", label: "Squircle", description: "Android color accent only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon.teardrop", label: "Teardrop", description: "Android color accent only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.circular.android", label: "Android", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.circular.launcher", label: "Launcher", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.circular.settings", label: "Settings", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.circular.systemui", label: "Systemui", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.circular.themepicker", label: "Themepicker", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.filled.android", label: "Android", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.filled.launcher", label: "Launcher", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.filled.settings", label: "Settings", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.filled.systemui", label: "Systemui", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.filled.themepicker", label: "Themepicker", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.kai.android", label: "Android", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.kai.launcher", label: "Launcher", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.kai.settings", label: "Settings", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.kai.systemui", label: "Systemui", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.kai.themepicker", label: "Themepicker", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.rounded.android", label: "Android", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.rounded.launcher", label: "Launcher", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.rounded.settings", label: "Settings", description: "Android icon pack only for google pixel or aosp or motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.sam.android", label: "Android", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.sam.launcher", label: "Launcher", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.sam.settings", label: "Settings", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.sam.systemui", label: "Systemui", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.sam.themepicker", label: "Themepicker", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.victor.android", label: "Android", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.victor.launcher", label: "Launcher", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.victor.settings", label: "Settings", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.victor.systemui", label: "Systemui", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.theme.icon_pack.victor.themepicker", label: "Themepicker", description: "Android icon pack only for Google Pixel or AOSP or Motorola", safety: "caution" },
- { pkg: "com.android.thememanager", label: "Thememanager", description: "MIUI Themes (manager) Xiaomi seems to love confusing package names. Lets you select and apply themes provided by Xiaomi. NOTE: Disabling will break the ability to change the lock-screen wallpaper and ringtones in the OEM clock app. Has a lot trackers. Running in the background.", safety: "caution" },
- { pkg: "com.android.thememanager.customizethemeconfig.config.overlay", label: "Overlay", description: "An overlay for Xiaomi's com.android.thememanager providing theme config customization default preferences and configs. Safe to remove if com.android.thememanager is removed.", safety: "caution" },
- { pkg: "com.android.thememanager.gliobal_config.config.overlay", label: "Overlay", description: "Blacklist of some wallpaper names. Useless. This app is not exist on miui china rom.", safety: "caution" },
- { pkg: "com.android.thememanager.module", label: "Module", description: "Something related to Xiaomi's theme manager?", safety: "caution" },
- { pkg: "com.android.traceur.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "useless configs to traceur auto generated.", safety: "safe" },
- { pkg: "com.android.traceur.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "useless configs to traceur auto generated.", safety: "safe" },
- { pkg: "com.android.traceur.overlay.pixel", label: "Pixel", description: "Unused colors to 5G", safety: "safe" },
- { pkg: "com.android.tv.frameworkpackagestubs", label: "Frameworkpackagestubs", description: "Activity Stub Hard to say by code, has browser provider and SQLite content.", safety: "caution" },
- { pkg: "com.android.tv.settings", label: "Settings", description: "Needed for settings.", safety: "keep" },
- { pkg: "com.android.unisoc.telephony.server", label: "Server", description: "Unisoc 4G and 5G drivers. Removal will break incoming calls. https://xdaforums.com/t/oukitel-wp23-pro-unlocking-bootloader-rooting-gsi.4642483/#post-89239693", safety: "caution" },
- { pkg: "com.android.updater", label: "Updater", description: "Mi Updater Provides system updates REMOVING THIS WILL BOOTLOOP YOUR DEVICE! Doesn't bootloop on MIUI 13 and above.", safety: "caution" },
- { pkg: "com.android.vendors.bridge.softsim", label: "Softsim", description: "Needed for virtual SIM.", safety: "safe" },
- { pkg: "com.android.vivo.tws.vivotws", label: "Vivotws", description: "TWS It's for Vivo TWS earphones.", safety: "safe" },
- { pkg: "com.android.voicemailomtp", label: "Voicemailomtp", description: "Voicemail Voicemail? I think no one uses that.", safety: "safe" },
- { pkg: "com.android.wallpaper", label: "Wallpaper", description: "Styles editor Needed for editing style UI", safety: "caution" },
- { pkg: "com.android.watermark", label: "Watermark", description: "Hidden IMEI tests.", safety: "safe" },
- { pkg: "com.android.wifi.resources.overlay.WifiRes6GhzEnable", label: "WifiRes6GhzEnable", description: "Config to support wifi 6 Ghz? Any wifi have this? If you don't have 6 Ghz wifi then it's safe to disable.", safety: "safe" },
- { pkg: "com.android.wifi.resources.overlay.WifiResDualStaApEnable", label: "WifiResDualStaApEnable", description: "5 GHz WiFi support.", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.WifiResSoftap80211axEnable", label: "WifiResSoftap80211axEnable", description: "Important configs to wifi.", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.common", label: "Common", description: "System Wi-Fi resources Theme pack Guessing it's a pack of themes for some Wi-Fi related system UI, based on the name.", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.kalama", label: "Kalama", description: "Needed for WiFi.", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.motCommon", label: "MotCommon", description: "Related to Motorola's custom overlay for Wi-Fi connections.", safety: "caution" },
- { pkg: "com.android.wifi.resources.overlay.oplus", label: "Oplus", description: "Wi-Fi configs", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.pineapple", label: "Pineapple", description: "A runtime resource overlay (RRO) is a package that changes the resource values of a target package at runtime. For example, an app installed on the system image might change its behavior based upon the value of a resource. Rather than hardcoding the resource value at build time, an RRO installed on a different partition can change the values of the app's resources at runtime. RROs can be enabled or disabled. You can programmatically set the enable/disable state to toggle an RRO's ability to change resource values. RROs are disabled by default (however, static RROs are enabled by default). https://source.android.com/docs/core/runtime/rros", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.target", label: "Target", description: "In code founded wifi configs. Important configs to WiFi.", safety: "keep" },
- { pkg: "com.android.wifi.resources.overlay.taro", label: "Taro", description: "Better keep this for config wifi? Better don't risk.", safety: "keep" },
- { pkg: "com.android.wifi.resources.xiaomi", label: "Xiaomi", description: "Have some configs to network about: disconnected scan interval schedule wifi11axsupportoverride, config_wifi_tcp_buffers you should keep this because it's maybe from settings.", safety: "keep" },
- { pkg: "com.android.wm.shell", label: "Shell", description: "Profile installer? App looks like a 'com.android.shell'.", safety: "keep" },
- { pkg: "com.android.writeimei", label: "Writeimei", description: "The com.android.writeimei package is responsible for handling the IMEI (International Mobile Equipment Identity) number on the device. This app is used for writing or managing the device’s IMEI, which is a unique identifier for mobile devices. Removing or tampering with this package can cause significant issues, such as loss of network connectivity, inability to make calls or send texts, and potential bootloop issues.", safety: "keep" },
- { pkg: "com.android.yadayada", label: "Yadayada", description: "Disclaimer show to user, feedback, first boot setup.", safety: "safe" },
- { pkg: "com.android.ztescreenshot", label: "Ztescreenshot", description: "ScreenCapture Needed for screenshots.", safety: "caution" },
- { pkg: "com.ape.cleanassist", label: "Cleanassist", description: "Provides junk cleaner feature for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.cleanassistoverlay", label: "Cleanassistoverlay", description: "Overlay app for com.ape.cleanassist. If we uninstall com.ape.cleanassist this package should be removed also.", safety: "caution", neededBy: ["com.ape.cleanassist"] },
- { pkg: "com.ape.easymode1", label: "Easymode1", description: "Provides easy mode for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.factory", label: "Factory", description: "Checks Build.SERIAL and ro.build.type All permissions and activities (camera, mic, battery, radio, led, sim, gps, nfc). Reads/writes to External Storage", safety: "caution" },
- { pkg: "com.ape.fmradio", label: "Fmradio", description: "FM Radio app for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.fmradiooverlay", label: "Fmradiooverlay", description: "Overlay app for com.ape.fmradio. If we uninstall com.ape.fmradio this package should be removed also.", safety: "caution", neededBy: ["com.ape.fmradio"] },
- { pkg: "com.ape.gamemode", label: "Gamemode", description: "Provides game mode feature for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.massageexpress", label: "Massageexpress", description: "Provides Wiko screen message feature", safety: "caution" },
- { pkg: "com.ape.mtbf", label: "Mtbf", description: "Named 'MTBF Tools' Dialer Code: 68238665. Uses SQLite Database. Reads/writes to External Storage. All sorts of permissions (camera, mic, battery, radio, led, sim, gps, nfc). Found more details at https://twitter.com/dbauduin/status/940126704261099520 (archive: https://web.archive.org/web/20240330025312/https://twitter.com/dbauduin/status/940126704261099520) Hardcoded URLs (an api and a book): http://www.andykhan.com/jexcelapi http://www.amazon.co.uk/exec/obidos/ASIN/0571058086/qid=1099836249/sr=1-3/ref=sr_1_11_3/202-6017285-1620664 https://www.amazon.co.uk/exec/obidos/ASIN/0571058086qid=1099836249/sr=1-3/ref=sr_1_11_3/202-6017285-1620664", safety: "caution" },
- { pkg: "com.ape.oneclean", label: "Oneclean", description: "Provides memory cleaner feature for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.smartgesture", label: "Smartgesture", description: "Provide smart gesture feature for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.soundrecorder", label: "Soundrecorder", description: "Sound recorder app for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.soundrecorderoverlay", label: "Soundrecorderoverlay", description: "Overlay app for com.ape.soundrecorder. If we uninstall com.ape.soundrecorder this package should be removed also.", safety: "caution", neededBy: ["com.ape.soundrecorder"] },
- { pkg: "com.ape.walkfit", label: "Walkfit", description: "Walk counter and health for Wiko mobile", safety: "safe" },
- { pkg: "com.ape.weatherlive", label: "Weatherlive", description: "Weather app for Wiko mobile", safety: "caution" },
- { pkg: "com.ape.weatherliveoverlay", label: "Weatherliveoverlay", description: "Overlay app for com.ape.weatherlive. If we uninstall com.ape.weatherlive this package should be removed also.", safety: "caution", neededBy: ["com.ape.weatherlive"] },
- { pkg: "com.ape.wikolegal", label: "Wikolegal", description: "Provides legal for first time setup in Wiko mobile", safety: "safe" },
- { pkg: "com.ape.wikosetupwizard", label: "Wikosetupwizard", description: "Provides first time app install for Wiko mobile", safety: "caution" },
- { pkg: "com.apple.atve.androidtv.appletv", label: "Appletv", description: "Apple TV Factory-installed Apple TV app. Reverts to factory-version when uninstalled by normal means. (Shipped with Philips Android TVs, but may be present on other devices as well.) https://play.google.com/store/apps/details?id=com.apple.atve.androidtv.appletv", safety: "safe" },
- { pkg: "com.apple.atve.sony.appletv", label: "Appletv", description: "Apple Tv app on android Tv. Can be removed without any problem", safety: "safe" },
- { pkg: "com.arcsoft.app.humanavatar", label: "Humanavatar", description: "My Avatar Avatar activities useless.", safety: "safe" },
- { pkg: "com.arcsoft.lg_avatar_resource", label: "Lg_avatar_resource", description: "LGAvatarReource It's probably for arcamera and it's for avatars. People removed that.", safety: "safe" },
- { pkg: "com.arcsoft.magicshotstudio", label: "Magicshotstudio", description: "it's app for photos", safety: "safe" },
- { pkg: "com.asu", label: "Asu", description: "ZF10 Live Wallpaper Live Wallpaper", safety: "safe" },
- { pkg: "com.aura.oobe.lenovo", label: "Lenovo", description: "Aura from Unity Persistent notification until you click on it and agree to install games. Sort of game cloud pre-installed in some Lenovo Safe to remove.", safety: "safe" },
- { pkg: "com.aura.oobe.ml", label: "Ml", description: "Aura from Unity Persistent notification until you click on it and agree to install games. Sort of game cloud pre-installed in some Motorola Safe to remove.", safety: "safe" },
- { pkg: "com.aura.oobe.solutions", label: "Solutions", description: "Aura from Unity Persistent notification until you click on it and agree to install games. Sort of game cloud pre-installed in some Nothing & CMF Phone Safe to remove.", safety: "safe" },
- { pkg: "com.autonavi.minimap", label: "Minimap", description: "高德地图 (Yeah no english translation) (https://play.google.com/store/apps/details?id=com.autonavi.minimap) Xiaomi GPS", safety: "safe" },
- { pkg: "com.b300.xrz.web", label: "Web", description: "App called XRZWebExport on the Bigme HiBreak Pro. Does not show up in the app list when enabled.", safety: "safe" },
- { pkg: "com.baidu.BaiduMap", label: "BaiduMap", description: "Chinese Baidu Map.", safety: "safe" },
- { pkg: "com.baidu.duersdk.opensdk", label: "Opensdk", description: "Duer stuff from Baidu Duer is a virtual AI assistant.", safety: "safe" },
- { pkg: "com.baidu.input_huawei", label: "Input_huawei", description: "Woh! 51 permissions! Huawei chinese stock input keyboard. You probably shouldn't trust this closed-source keyboard with this much permissions...NOTE: Make sure to have another keyboard installed before removing this package!", safety: "safe" },
- { pkg: "com.baidu.input_mi", label: "Input_mi", description: "Baidu IME (Baidu keyboard) YOU SHOULD NEVER USE A CLOSED-SOURCE KEYBOARD ! https://www.techrepublic.com/blog/asian-technology/japanese-government-warns-baidu-ime-is-spying-on-users/ Archive : https://web.archive.org/save/https://www.techrepublic.com/blog/asian-technology/japanese-government-warns-baidu-ime-is-spying-on-users/ NOTE: Make sure you have installed another keyboard before removing this package.", safety: "caution" },
- { pkg: "com.baidu.input_vivo", label: "Input_vivo", description: "Default keyboard (Baidu IME customized for Vivo devices). The number of requested permissions for this keyboard is terrifying. You really should use another keyboard. Pithus analysis: https://beta.pithus.org/report/d4cdf8fedcd94436ade720cb8df9b4ef32aca6c7822cae6c8698937d68e20363", safety: "caution" },
- { pkg: "com.baidu.location.fused", label: "Fused", description: "FusedLocation Chinese baidu location.", safety: "safe" },
- { pkg: "com.baidu.map.location", label: "Location", description: "Chinese Network location baidu. Only for China.", safety: "safe" },
- { pkg: "com.baidu.searchbox", label: "Searchbox", description: "百度 (https://play.google.com/store/apps/details?id=com.baidu.searchbox) Baidu App search engine.", safety: "safe" },
- { pkg: "com.bbk.SuperPowerSave", label: "SuperPowerSave", description: "Super Battery Saver Not sure if it's useful or not. Super power save.", safety: "safe" },
- { pkg: "com.bbk.account", label: "Account", description: "Vivo account Vivo privacy policy is really bad: https://privacy.vivo.com/privacy Note: Removing this will obviously break fuctions that require Vivo account authentication: accessibility, data backup etc.", safety: "caution" },
- { pkg: "com.bbk.appstore", label: "Appstore", description: "Vivo app store. Note: apps from this store can still be upgraded with the built-in check upgrade feature even with this package removed", safety: "caution" },
- { pkg: "com.bbk.calendar", label: "Calendar", description: "Default calendar app. 50 permissions for a calendar app. What could go wrong? Pithus analysis: https://beta.pithus.org/report/db107cb828a1ec9b7cbcd9fd86542da877fdf4cf947c18c8a48a2b09e568ad10", safety: "caution" },
- { pkg: "com.bbk.cloud", label: "Cloud", description: "vivoCloud Vivo cloud services.", safety: "safe" },
- { pkg: "com.bbk.facewake", label: "Facewake", description: "FaceWake It's used for face unlock.", safety: "caution" },
- { pkg: "com.bbk.iqoo.logsystem", label: "Logsystem", description: "User experience service Telemetry app. Note:Disabling this will break trial version system upgrade feature.", safety: "safe" },
- { pkg: "com.bbk.launcher2", label: "Launcher2", description: "Vivo launcher.", safety: "caution" },
- { pkg: "com.bbk.photoframewidget", label: "Photoframewidget", description: "Photo frame Photo widget.", safety: "safe" },
- { pkg: "com.bbk.scene.databaseprovider", label: "Databaseprovider", description: "May be needed for the launcher, not sure.", safety: "caution" },
- { pkg: "com.bbk.scene.launcher.theme", label: "Theme", description: "SceneThemeLauncher May be needed for the launcher, not sure.", safety: "caution" },
- { pkg: "com.bbk.theme", label: "Theme", description: "Vivo theme (https://play.google.com/store/apps/details?id=com.bbk.theme) Lets you add new themes, fonts and wallpapers. It has annoying notifications that cannot be disabled by going to the app settings. This app use 50 permissions and can install packages (REQUEST_INSTALL_PACKAGES) Note: Removing this app will prevent you to change themes. Pithus analysis: https://beta.pithus.org/report/0f15055131637d3dbc55d3a49b8e79b4f76ca09871abf9eb43b5f88afde11800", safety: "safe" },
- { pkg: "com.bbk.theme.resources", label: "Resources", description: "WallpaperRes Vivo wallpapers. A lot of PNG wallpapers. Safe to remove if you don't need theme resources.", safety: "caution" },
- { pkg: "com.bbk.updater", label: "Updater", description: "System update Provides system updates.", safety: "caution" },
- { pkg: "com.bird.motionrecognition", label: "Motionrecognition", description: "The com.bird.motionrecognition package is likely related to motion recognition features on your device, such as gesture controls or other motion-based functionalities. This package may be specific to the OEM and provide unique functionalities not found in standard Android builds. While removing it might disable certain gesture or motion-based features, it should not impact core system functionalities.", safety: "caution" },
- { pkg: "com.bjbyhd.screenreader_huawei", label: "Screenreader_huawei", description: "An accessibility feature for visually impaired people", safety: "safe" },
- { pkg: "com.blackview.ai.doki", label: "Doki", description: "Hi Doki", safety: "safe" },
- { pkg: "com.blackview.ai.imagex", label: "Imagex", description: "ImageX", safety: "safe" },
- { pkg: "com.blackview.ai.soundle", label: "Soundle", description: "Soundle", safety: "safe" },
- { pkg: "com.blackview.ai.vidgen", label: "Vidgen", description: "VidGen", safety: "safe" },
- { pkg: "com.blackview.app.cloudfolder", label: "Cloudfolder", description: "Rec. Apps This adware provides a widget that allows you to install sponsored apps like Temu. Can be disabled via Settings.", safety: "safe" },
- { pkg: "com.blackview.appsedge", label: "Appsedge", description: "AppsEdge", safety: "safe" },
- { pkg: "com.blackview.artorial.client", label: "Client", description: "SmartArt Provides AI slop wallpapers, mobile games and news to Blackview devices. Can be disabled via Settings. https://www.blackview.hk/privacy https://www.virustotal.com/gui/file-analysis/YTg5NWU0ZTVkNzFiMDk4NjliZjdlNWQ0NjNjNDk5Yjk6MTc2MjAwNTk1OA==", safety: "safe" },
- { pkg: "com.blackview.cplog", label: "Cplog", description: "cplog", safety: "safe" },
- { pkg: "com.blackview.dokegamecenter", label: "Dokegamecenter", description: "DKGame Center", safety: "safe" },
- { pkg: "com.blackview.easytrans", label: "Easytrans", description: "EasyShare", safety: "safe" },
- { pkg: "com.blackview.filetrans", label: "Filetrans", description: "Moving Assistant/Data Migration Assistant App used to transfer data from one device to another. WARNING: Uninstalling it breaks the App info Settings page on Android 15, Blackview Tab 60 WiFi.", safety: "caution" },
- { pkg: "com.blackview.frozenapp", label: "Frozenapp", description: "Cold Room", safety: "safe" },
- { pkg: "com.blackview.gamemode", label: "Gamemode", description: "Game mode", safety: "safe" },
- { pkg: "com.blackview.launcher", label: "Launcher", description: "BvLauncher Blackview's launcher app. DON'T REMOVE IF YOU HAVEN'T INSTALLED ANOTHER LAUNCHER! https://www.blackview.hk/privacy", safety: "caution" },
- { pkg: "com.blackview.note", label: "Note", description: "Notebook", safety: "safe" },
- { pkg: "com.blackview.searchcenter", label: "Searchcenter", description: "Search Centre Can be disabled via Settings.", safety: "safe" },
- { pkg: "com.blackview.surfline", label: "Surfline", description: "Surfline Backview's Safari ripoff with ads. They didn't even bother to remove Chrome, probably because they knew you won't use it. Can be disabled via Settings. https://www.blackview.hk/privacy", safety: "safe" },
- { pkg: "com.blackview.useguide", label: "Useguide", description: "User's Manual", safety: "safe" },
- { pkg: "com.blackview.userfeedback", label: "Userfeedback", description: "User feedback Requires agreeing to a Privacy Policy (that allows Blackview to sell your location to data brokers) to send feedback to Blackview. Can be disabled via Settings. https://www.blackview.hk/privacy https://www.virustotal.com/gui/file-analysis/NWNjODQ4OWEwZjU5MzkzZTFmN2MxNjkwMzcyZTExNjc6MTc2MjAwNzkxNQ==", safety: "safe" },
- { pkg: "com.blackview.weather", label: "Weather", description: "Weather Blackview's weather app. Can be disabled via Settings. https://www.blackview.hk/privacy", safety: "safe" },
- { pkg: "com.bluetooth.aptxmode", label: "Aptxmode", description: "Hidden aptX ALS Audio Bluetooth sample improvement from Qualcomm. Useless 96kHz sample.", safety: "safe" },
- { pkg: "com.bsp.catchlog", label: "Catchlog", description: "bsp = Board support package Used to catch log files obviously.", safety: "safe" },
- { pkg: "com.casper.turkiye", label: "Turkiye", description: "Support app for Casper, see https://play.google.com/store/apps/details?id=com.casper.turkiye&hl=en", safety: "safe" },
- { pkg: "com.cdfinger.factorytest", label: "Factorytest", description: "Fingerprint Test App.", safety: "safe" },
- { pkg: "com.chsc.semitouchtester", label: "Semitouchtester", description: "Semi touch test, debug.", safety: "safe" },
- { pkg: "com.cleanmaster.sdk", label: "Sdk", description: "(discontinued) old clean master app that cleans phone.", safety: "safe" },
- { pkg: "com.clock.pt1.keeptesting", label: "Keeptesting", description: "KeepTesting2.9.42 WARNING: Each boot, the system randomly decides whether to perform checks or not. If a check is attempted while the app is missing, the device won't boot past the OEM's logo until restart. Teseted for Android 15, Blackview Tab 60 WiFi.", safety: "caution" },
+ { pkg: "android.autoinstalls.config.motorola.layout", label: "Layout", description: "Device configuration for Motorola", safety: "safe" },
+ { pkg: "com.lenovo.lsf.user", label: "User", description: "Lenovo ID adds an option in Settings>Accounts where you can login to a Lenovo ID account.", safety: "safe" },
+ { pkg: "com.lmi.motorola.rescuesecurity", label: "Rescuesecurity", description: "Rescue Security by LogMeIn (https://www.logmeinrescue.com/)", safety: "safe" },
+ { pkg: "android.autoinstalls.config.samsung", label: "Samsung", description: "AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
{ pkg: "com.cnn.mobile.android.phone.edgepanel", label: "Edgepanel", description: "CNN Edge panel. Twitter trends, and news from CNN.", safety: "safe" },
- { pkg: "com.color.uiengine", label: "Uiengine", description: "Needed for themes", safety: "caution" },
- { pkg: "com.coremobility.app.vnotes", label: "Vnotes", description: "Voicemail App?", safety: "caution" },
- { pkg: "com.crucialsoft.asm", label: "Asm", description: "Doesn't seem to do anything, but has permissions to read and write storage. Safe to remove.", safety: "safe" },
- { pkg: "com.crucialsoft.fido.client", label: "Client", description: "Does absolutely nothing. Despite the package name saying 'Fido', it is unrelated to Fido, it is an LG package. Safe to remove.", safety: "safe" },
- { pkg: "com.crucialtec.uaf", label: "Uaf", description: "Claims to be related to the fingerprint sensor and has fingerprint permissions. Fingerprint sensor still works fine with it removed, however.", safety: "safe" },
- { pkg: "com.cyanogenmod.filemanager", label: "Filemanager", description: "Cyanogenmod file manager, safe to remove if you use another one.", safety: "caution" },
- { pkg: "com.daemon.shelper", label: "Shelper", description: "Shelper Tracking, monitoring, logs", safety: "safe" },
- { pkg: "com.data.overlay.base.s600ww", label: "S600ww", description: "Some kind of theme overlay for Nokia devices? Some users claim to not see any differences when removed.", safety: "caution" },
- { pkg: "com.detection.ts.noise_detection_apk", label: "Noise_detection_apk", description: "It's used by bsptest (com.vivo.bsptest) for noise detection test.", safety: "safe" },
- { pkg: "com.detection.ts.touch_detection", label: "Touch_detection", description: "It's used by bsptest (com.vivo.bsptest) for touch detection test.", safety: "safe" },
- { pkg: "com.diotek.diodict4.EDictionary", label: "EDictionary", description: "Dictionary app, only for japanese and korea", safety: "safe" },
- { pkg: "com.dirac.acs", label: "Acs", description: "Dirac Control Service For audio control, not sure if it's useful.", safety: "caution" },
- { pkg: "com.dragon.read", label: "Read", description: "Chinese Unknown partner app from Miui China.", safety: "safe" },
- { pkg: "com.droidlogic", label: "Droidlogic", description: "DroidBtPair Looks like an important app for the TV to work properly.", safety: "keep" },
- { pkg: "com.dropbox.android", label: "Android", description: "dropbox app https://play.google.com/store/apps/details?id=com.dropbox.android", safety: "safe" },
- { pkg: "com.dropboxchmod", label: "Dropboxchmod", description: "I found logs in code. This app means nothing.", safety: "safe" },
- { pkg: "com.dti.blu", label: "Blu", description: "This package is preinstalled on devices made by cellphone manufacturer BLU, installs unwanted games and other non-essential stuff. Its name 'Mobile Services' makes it scary to remove, but I highly recommend removing it. No damage foukd after removal (did so in at least two different models of Blu phones).", safety: "safe" },
- { pkg: "com.dts.dtsxultra", label: "Dtsxultra", description: "Audio Effect for car, headphones. You don't need that.", safety: "safe" },
- { pkg: "com.duokan.phone.remotecontroller", label: "Remotecontroller", description: "Mi Remote Controller (https://play.google.com/store/apps/details?id=com.duokan.phone.remotecontroller) Control your electric appliances with your phone using Mi Remote.", safety: "safe" },
- { pkg: "com.duokan.phone.remotecontroller.peel.plugin", label: "Plugin", description: "Peel Mi Remote (https://play.google.com/store/apps/details?id=com.duokan.phone.remotecontroller.peel.plugin) Peel Mi Remote is a TV guide extension for Xiaomi Mi Remote by\"Peel Smart Remote\".", safety: "safe" },
- { pkg: "com.duokan.reader", label: "Reader", description: "MIUIDuokanReader Chinese app that has too much tracking and ads. May be uninstalled without ADB.", safety: "safe" },
- { pkg: "com.ebook.wifitransferbook", label: "Wifitransferbook", description: "Allows to transfer files on the Bigme HiBreak Pro via Wi-Fi by exposing a web interface on the local network that you can access from another device on the same network.", safety: "safe" },
- { pkg: "com.eg.android.AlipayGphone", label: "AlipayGphone", description: "Chinese Alipay app.", safety: "safe" },
- { pkg: "com.elephanttek.faceunlock", label: "Faceunlock", description: "Standard FaceUnlock functionality? Unlock your device by simply looking at the display. Face unlock is bad for security and privacy: https://www.ubergizmo.com/2017/03/galaxy-s8-facial-unlock-photograph/ https://www.kaspersky.com/blog/face-unlock-insecurity/21618/ https://www.freecodecamp.org/news/why-you-should-never-unlock-your-phone-with-your-face-79c07772a28/", safety: "caution" },
- { pkg: "com.enhance.gameservice", label: "Gameservice", description: "Legacy game Optimizing Service (was replaced by com.samsung.android.game.gos) Is supposed to\"improve\" game performance.", safety: "safe" },
- { pkg: "com.epicgames.portal", label: "Portal", description: "Epic Games for Android", safety: "safe" },
- { pkg: "com.epson.mobilephone.samsungprintservice", label: "Samsungprintservice", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.example.alpha.chipsemitptest", label: "Chipsemitptest", description: "ChipsemiTpTest Rawdata Value Test.", safety: "safe" },
- { pkg: "com.example.calibrationmaster", label: "Calibrationmaster", description: "Chinese hidden camera calibration.", safety: "safe" },
- { pkg: "com.example.rftuner", label: "Rftuner", description: "Secret Code: 439. FTM/Custom Test, SAR test mode, OTA Test, ANT Switch/Select.", safety: "safe" },
- { pkg: "com.example.test", label: "Test", description: "Bigme HiBreak Pro calendar optimized for e-ink displays. Check that you have this phone before disabling! The package name is generic.", safety: "caution" },
- { pkg: "com.example.wifirftest", label: "Wifirftest", description: "Wifi Radio Frequency test Probably used in factory. No hidden test menu to use it.", safety: "safe" },
- { pkg: "com.facemoji.lite.transsion", label: "Transsion", description: "Emoji Keyboard Have ads and it's not good for privacy. WARNING: On Infinix phones, this package is a hard dependency to show keyboard after initial reboot/startup. Without it, even if you have another keyboard installed, no keyboard will show. Don't remove if you're using an Infinix phone and need to enter password after boot.", safety: "caution" },
- { pkg: "com.facemoji.lite.xiaomi", label: "Xiaomi", description: "Xiaomi keyboard Have ads and analytics. Better alternative: https://f-droid.org/en/packages/dev.patrickgold.florisboard/", safety: "safe" },
- { pkg: "com.facemoji.lite.xiaomi.gp", label: "Gp", description: "Facemoji Keyboard Lite for Xiaomi - Emoji & Theme (https://play.google.com/store/apps/details?id=com.facemoji.lite.xiaomi.gp) Emoji keyboard", safety: "safe" },
- { pkg: "com.factory.mmigroup", label: "Mmigroup", description: "Hidden super-menu accessible by dialing *#*#64633#*#* This menu lists all the others hidden test/debug apps.", safety: "safe" },
- { pkg: "com.fairphone.activator", label: "Activator", description: "Fairphone activation service https://forum.fairphone.com/t/telemetry-spyware-list-of-privacy-threats-on-fp3-android-9/55179/74", safety: "safe" },
- { pkg: "com.fairphone.myfairphone", label: "Myfairphone", description: "My Fairphone app https://www.fairphone.com/en/2021/12/20/my-fairphone-app/", safety: "caution" },
- { pkg: "com.felicanetworks.mfc", label: "Mfc", description: "Mobile FeliCa Client (https://play.google.com/store/apps/details?id=com.felicanetworks.mfm.main) Essential app for using FeliCa. Uninstalling this may occur errors to install this in apps which uses FeliCa. You can uninstall this if you don't use FeliCa-related services. NOTE: Uninstalling this does not remove the data saved in FeliCa.", safety: "caution", neededBy: ["com.felicanetworks.mfw.a.boot", "com.felicanetworks.mfm.main"] },
- { pkg: "com.felicanetworks.mfm.main", label: "Main", description: "Osaifu-Keitai App (https://play.google.com/store/apps/details?id=com.felicanetworks.mfm.main) A digital wallet app for Osaifu-Keitai brand. It does not appear to be related to the FeliCa core functionality, but is required for services under the Osaifu-Keitai brand, such as iD and Mobile Suica. For details, please check the app description (https://play.google.com/store/apps/details?id=com.felicanetworks.mfm.main) on Play Store.", safety: "caution", deps: ["com.felicanetworks.mfc"] },
- { pkg: "com.felicanetworks.mfs", label: "Mfs", description: "Initial setup application for FeliCa. Payments with FeliCa still works after uninstalling this.", safety: "safe" },
- { pkg: "com.felicanetworks.mfw.a.boot", label: "Boot", description: "Osaifu-Keitai Web Plugin (https://play.google.com/store/apps/details?id=com.felicanetworks.mfw.a.boot) Used by websites on your browser to get payment information and process payments with FeliCa. Safe to remove if you don't use Osaifu-Keitai online.", safety: "caution", deps: ["com.felicanetworks.mfc"] },
- { pkg: "com.fido.fido2client", label: "Fido2client", description: "FIDO UAF1.0 ASM Related to app fingerprint unlocking and payments. Safe to remove if you don't use passwordless authentication to access online services. 'com.fido.asm' is the same app.", safety: "caution" },
- { pkg: "com.fido.xiaomi.uafclient", label: "Uafclient", description: "UAF client for FIDO. Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords. https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device to the online service and using a local authentication mechanism such as iris or fingerprint recognition. https://developers.google.com/identity/fido/android/native-apps Safe to remove if you don't use password-less authentication to access online services.", safety: "caution" },
- { pkg: "com.fih.StatsdLogger", label: "StatsdLogger", description: "Foxconn stats logger", safety: "safe" },
- { pkg: "com.fih.infodisplay", label: "Infodisplay", description: "Foxconn info display ????", safety: "safe" },
- { pkg: "com.fingerprints.extension.service", label: "Service", description: "FingerprintExtensionService Needed for fingerprint sensor test.", safety: "safe" },
- { pkg: "com.fingerprints.fido.asm", label: "Asm", description: "Fido Alliance fingerprint. It is possible that ASM stands for Authentication Service Module/Application Security Module", safety: "caution" },
- { pkg: "com.fingerprints.fingerprintsensortest", label: "Fingerprintsensortest", description: "Sensor Test Tool Provides hidden fingerprint test menu. Type *#806# in OnePlus dialer to open.", safety: "safe" },
- { pkg: "com.fingerprints.fpctest", label: "Fpctest", description: "Fingerprint test", safety: "safe" },
- { pkg: "com.fingerprints.imagecollection", label: "Imagecollection", description: "it's hidden image collection of fingerprint and sensor test.", safety: "safe" },
- { pkg: "com.fingerprints.optical", label: "Optical", description: "Optical Test Tool Testing things.", safety: "safe" },
- { pkg: "com.fingerprints.sensortesttool", label: "Sensortesttool", description: "Sensor Test Tool Hidden test app used to test working of the fingerprint sensors.", safety: "safe" },
- { pkg: "com.fingerprints.serviceext", label: "Serviceext", description: "Fingerprint test, fingerprint authentication.", safety: "safe" },
- { pkg: "com.finshell.wallet", label: "Wallet", description: "Finshell wallet Wallet app by Finshell.", safety: "safe" },
- { pkg: "com.fixmo.isa", label: "Isa", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.flyme.aod", label: "Aod", description: "AlwaysOnDisplay", safety: "safe" },
- { pkg: "com.flyme.netadmin", label: "Netadmin", description: "Speedtest and security things.", safety: "safe" },
- { pkg: "com.flyme.systemuiex", label: "Systemuiex", description: "System UI Ext Looks like an important app, has webview activity only.", safety: "caution" },
- { pkg: "com.flyme.systemuitools", label: "Systemuitools", description: "System UI Tools Looks like an important app. It has gameassist, drivemode, windowmode things.", safety: "caution" },
- { pkg: "com.flyme.telecom.usagedata.service", label: "Service", description: "Phone services It's just Usage data and it will be sent to cloud probably.", safety: "caution" },
- { pkg: "com.fmm.dm", label: "Dm", description: "Samsung's Find My Mobile service for tracking your phone if you lost it. Unsure of the difference(s) between this and com.fmm.ds. Can lead to logcat spam in some cases.", safety: "caution" },
- { pkg: "com.fmm.ds", label: "Ds", description: "Samsung's Find My Mobile service for tracking your phone if you lost it. Unsure of the difference(s) between this and com.fmm.dm, however this one doesn't logcat spam unlike com.fmm.dm.", safety: "caution" },
- { pkg: "com.foxconn.ifaa", label: "Ifaa", description: "IFAA = (China’s) Internet Finance Authentication Alliance Provides biometric authentication for Alipay. Probably safe to disable if you don't use it.", safety: "safe" },
- { pkg: "com.fp.camera", label: "Camera", description: "Fairphone Camera app", safety: "caution" },
- { pkg: "com.fpsensor.fpSensorExtensionSvc2", label: "FpSensorExtensionSvc2", description: "Fingerprint sensor test tool Hidden testing Fingerprint not available for normal users.", safety: "safe" },
- { pkg: "com.freemeimp.factory", label: "Factory", description: "aging test Hidden aging test.", safety: "safe" },
- { pkg: "com.funbase.xradio", label: "Xradio", description: "WOW FM App for FMRadio", safety: "caution" },
- { pkg: "com.funtouch.uiengine", label: "Uiengine", description: "FuntouchUIEngine Needed for themes probably", safety: "caution" },
- { pkg: "com.futuredial.asusdatatransfer", label: "Asusdatatransfer", description: "ASUS Phone Clone it's app to move your data to new or old phone.", safety: "safe" },
- { pkg: "com.futuredial.asuslocalbackup", label: "Asuslocalbackup", description: "ASUS Device backup Contains Google Analytics and numerous permissions.", safety: "safe" },
- { pkg: "com.gallery.player", label: "Player", description: "Old MIUI Gallery app's media player, a separate package from com.miui.gallery. Will likely break playing and presumably viewing media in the MIUI Gallery app. Not seen on HyperOS but present on some old MIUI versions. Safe to remove if com.miui.gallery is already removed.", safety: "caution" },
- { pkg: "com.gallery20", label: "Gallery20", description: "AI Gallery (https://play.google.com/store/apps/details?id=com.gallery20) Stock gallery app with picture editing (filters, crop, add text, watermark, frame, bloor. The phone comes with Photos app which is a better alternative and disabling it doesn't break anything. Pithus analysis: https://beta.pithus.org/report/d9cf633450ed90d2c89c941c5c202845b2789ceffe6d6337ecf772d223d157de", safety: "safe" },
- { pkg: "com.gameloft.android.ANMP.GloftA9HM", label: "GloftA9HM", description: "Asphalt 9: Legends", safety: "safe" },
- { pkg: "com.goodix", label: "Goodix", description: "Hidden tests sensors, fingerprint.", safety: "safe" },
- { pkg: "com.goodix.deltadiff", label: "Deltadiff", description: "it's app for testing things.", safety: "safe" },
- { pkg: "com.goodix.fingerprint", label: "Fingerprint", description: "GFManager Fingerprint test? This app don't have any code.", safety: "safe" },
- { pkg: "com.goodix.fingerprint.producttest", label: "Producttest", description: "Fingerprint test Hidden Fingerprint testing not available for normal users.", safety: "safe" },
- { pkg: "com.goodix.fingerprint.sampling", label: "Sampling", description: "Fingerprint test Hidden Fingerprint testing not available for normal users.", safety: "safe" },
- { pkg: "com.goodix.fingerprint.setting", label: "Setting", description: "In-Display Fingerprint test Hidden testing Fingerprint not available for normal users.", safety: "safe" },
- { pkg: "com.goodix.gftest", label: "Gftest", description: "Fingerprint test Hidden app that tests your fingerprint. Not available for users.", safety: "safe" },
- { pkg: "com.goodix.rawdata", label: "Rawdata", description: "DrawLineTest, Raw Data Test.", safety: "safe" },
- { pkg: "com.google.RilConfigService", label: "RilConfigService", description: "May break calls after remove.", safety: "caution" },
- { pkg: "com.google.SSRestartDetector", label: "SSRestartDetector", description: "SubSystem Restart Service, Collects ram dump, crash count. Still unknown.", safety: "caution" },
- { pkg: "com.google.ambient.streaming", label: "Streaming", description: "Access and use your Android phone's apps from your Chromebook", safety: "safe" },
- { pkg: "com.google.android.accessibility.switchaccess", label: "Switchaccess", description: "Switch Access https://play.google.com/store/apps/details?id=com.google.android.accessibility.switchaccess&hl=en_US", safety: "safe" },
- { pkg: "com.google.android.aicore", label: "Aicore", description: "AI Core Looks like AI things but code means nothing about AI or Performance. https://developer.android.com/ml/aicore Android apps can access this package for Google Gemini.", safety: "caution" },
- { pkg: "com.google.android.apps.accessibility.voiceaccess", label: "Voiceaccess", description: "Voice Access Helps anyone who has difficulty manipulating a touch screen (e.g. due to paralysis, tremor, or temporary injury) use their Android device by voice. https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.voiceaccess", safety: "safe" },
- { pkg: "com.google.android.apps.betterbug", label: "Betterbug", description: "Android Beta Feedback Available on Beta Android Pixel Phones.", safety: "safe" },
- { pkg: "com.google.android.apps.camera.services", label: "Services", description: "Pixel Camera Services Experimental stuff, Camera Calibration. Will break any third-party camera app if removed", safety: "caution" },
- { pkg: "com.google.android.apps.carrier.carrierwifi", label: "Carrierwifi", description: "WiFi Provisioner On the code I found only: OpenRoaming is a network of free and secure Wi-Fi hotspots. Require google account and google play services. It can be also for wifi calling.", safety: "caution" },
- { pkg: "com.google.android.apps.carrier.log", label: "Log", description: "Carrier App Logging Require google play services Logs everything.", safety: "safe" },
- { pkg: "com.google.android.apps.cbrsnetworkmonitor", label: "Cbrsnetworkmonitor", description: "it's used for spying on you. (citizen broadband network monitor) Require google play services and have location permission.", safety: "safe" },
- { pkg: "com.google.android.apps.customization.pixel", label: "Pixel", description: "Basic 4 colors", safety: "caution" },
- { pkg: "com.google.android.apps.diagnosticstool", label: "Diagnosticstool", description: "Diagnostic tool for troubleshooting Google services and system issues.", safety: "caution" },
- { pkg: "com.google.android.apps.diagnostictool", label: "Diagnostictool", description: "DiagnosticTool Hidden testing components.", safety: "safe" },
- { pkg: "com.google.android.apps.dreamliner", label: "Dreamliner", description: "Pixel Stand, Google Pixel AI wallpaper.", safety: "caution" },
- { pkg: "com.google.android.apps.healthdata", label: "Healthdata", description: "Useless frameworks and it's not needed for Health Connect.", safety: "safe" },
- { pkg: "com.google.android.apps.helprtc", label: "Helprtc", description: "Google Support Services Allows you to share your Android device screen with a Google customer support agent for a personalized support experience. https://play.google.com/store/apps/details?id=com.google.android.apps.helprtc", safety: "safe" },
- { pkg: "com.google.android.apps.internal.betterbug", label: "Betterbug", description: "betterbug betterbug? All of these code means nothing. also have a lot of permissions and nexuslogger permission.", safety: "safe" },
- { pkg: "com.google.android.apps.mediashell", label: "Mediashell", description: "Chromecast built-in Needed to support broadcast? https://play.google.com/store/apps/details?id=com.google.android.apps.mediashell&hl=en&gl=US", safety: "caution" },
- { pkg: "com.google.android.apps.pixel.creativeassistant", label: "Creativeassistant", description: "Creative Assistant for media editing and artistic tasks on Pixel devices.", safety: "caution" },
- { pkg: "com.google.android.apps.pixel.support", label: "Support", description: "Pixel Troubleshooting There's Battery diagnostics also google, tiktok? account load.", safety: "safe" },
- { pkg: "com.google.android.apps.pixelmigrate", label: "Pixelmigrate", description: "Data Transfer Tool It's probably restore apps on setup wizard first-boot setup.", safety: "safe" },
- { pkg: "com.google.android.apps.retaildemo.preload", label: "Preload", description: "Retail Demo Services Should not be used for normal users.", safety: "safe" },
- { pkg: "com.google.android.apps.tips", label: "Tips", description: "Pixel Tips a lot bloated.", safety: "safe" },
- { pkg: "com.google.android.apps.tv.dreamx", label: "Dreamx", description: "Ambient Mode Running wallpapers from this app like a slideshow. https://play.google.com/store/apps/details?id=com.google.android.apps.tv.dreamx&hl=en&gl=US", safety: "safe" },
- { pkg: "com.google.android.apps.tv.launcherx", label: "Launcherx", description: "Google TV Launcher to TV, there's no replace probably. https://play.google.com/store/apps/details?id=com.google.android.apps.tv.launcherx&hl=en&gl=US", safety: "caution" },
- { pkg: "com.google.android.apps.tv.netoscope", label: "Netoscope", description: "Connectivity Diagnostics Diagnoses not only connectivity but also time, not needed.", safety: "safe" },
- { pkg: "com.google.android.apps.wallpaper.pixel", label: "Pixel", description: "Wallpaper app for Google Pixel devices.", safety: "caution" },
- { pkg: "com.google.android.apps.wearable.retailattractloop", label: "Retailattractloop", description: "Demo mode - you see it in the stores (the video playing while idle).", safety: "safe" },
- { pkg: "com.google.android.apps.wearable.settings", label: "Settings", description: "WearOS settings", safety: "caution" },
- { pkg: "com.google.android.apps.wearables.maestro.companion", label: "Companion", description: "Google Pixel Buds Set up and manage your Pixel Buds right from your Android 6.0+ device with the Google Pixel Buds app. https://play.google.com/store/apps/details?id=com.google.android.apps.wearables.maestro.companion", safety: "safe" },
- { pkg: "com.google.android.apps.work.clouddpc", label: "Clouddpc", description: "Device Policy work apps handling", safety: "safe" },
- { pkg: "com.google.android.apps.youtube.music.setupwizard", label: "Setupwizard", description: "YT Music Setup Wizard YT Music Setup Wizard?! Everything is possible. I found only that they want to give you a free trial or premium.", safety: "safe" },
- { pkg: "com.google.android.avatarpicker", label: "Avatarpicker", description: "Avatar picker for Google account customization.", safety: "caution" },
- { pkg: "com.google.android.backdrop", label: "Backdrop", description: "Needed for screensaver. https://play.google.com/store/apps/details?id=com.google.android.backdrop&hl=en&gl=US", safety: "safe" },
- { pkg: "com.google.android.bluetooth", label: "Bluetooth", description: "Bluetooth management for Android devices.", safety: "caution" },
- { pkg: "com.google.android.carrier", label: "Carrier", description: "Carrier Settings Google Api Activity, requires GMS, totally random api's. Required for 4G, but does not cause bootloop after removal.", safety: "keep" },
- { pkg: "com.google.android.carrierlocation", label: "Carrierlocation", description: "Sharing location to carrier.", safety: "caution" },
- { pkg: "com.google.android.carriersetup", label: "Carriersetup", description: "it's only needed on first-boot setup", safety: "safe" },
- { pkg: "com.google.android.cellbroadcastreceiver.overlay", label: "Overlay", description: "CellBroadcastReceiver overlay. Overlays work by mapping resources defined in the overlay package to resources defined in the target package. When an app attempts to resolve the value of a resource in the target package, the value of the overlay resource the target resource is mapped to is returned instead. The CellBroadcastReceiver app is a default system app that handles emergency and nonemergency alerts (such as amber and presidential alerts) and presents the information to end users based on carrier and regional regulations. https://source.android.com/docs/core/runtime/rros https://source.android.com/docs/core/ota/modular-system/cellbroadcast", safety: "caution" },
- { pkg: "com.google.android.cellbroadcastreceiver.overlay.miui", label: "Miui", description: "Disable opt out dialog to cellbroadcastreceiver? I never seen that. Unused.", safety: "caution" },
- { pkg: "com.google.android.cellbroadcastreceiver.rro_common", label: "Rro_common", description: "Useless overlay code for cellbroadcastreceiver", safety: "safe" },
- { pkg: "com.google.android.cellbroadcastservice.overlay", label: "Overlay", description: "CellBroadcastService overlay. Overlays work by mapping resources defined in the overlay package to resources defined in the target package. When an app attempts to resolve the value of a resource in the target package, the value of the overlay resource the target resource is mapped to is returned instead. The CellBroadcastService service supports CellBroadcast SMS decoding, geofencing for wireless emergency alert (WEA) 3.0, message duplication checks, and broadcasting messages to apps. It's a one-to-many geotargeted and geofenced messaging service designed to deliver messages to multiple mobile phone users, in a defined area, at the same time. The service is defined by the [ETSI](https://www.etsi.org/about) GSM committee, [3GPP](https://www.3gpp.org/about-3gpp), and is a part of the telecommunication standards. https://source.android.com/docs/core/runtime/rros https://source.android.com/docs/core/ota/modular-system/cellbroadcast", safety: "caution" },
- { pkg: "com.google.android.cellbroadcastservice.overlay.miui", label: "Miui", description: "cross sim duplicate detection disable? I never seen this. Unused.", safety: "caution" },
- { pkg: "com.google.android.cellbroadcastservice.rro_common", label: "Rro_common", description: "Useless overlay code for cellbroadcastservice", safety: "safe" },
- { pkg: "com.google.android.chromecast.chromecastservice", label: "Chromecastservice", description: "Needed for broadcast support?", safety: "caution" },
- { pkg: "com.google.android.chromecast.setupcustomization", label: "Setupcustomization", description: "Needed for Chromecast setup.", safety: "caution" },
- { pkg: "com.google.android.clockwork.oemsetup", label: "Oemsetup", description: "Installs carrier apps after the first time setup. Haven't noticed any consequences after uninstalling. I also saw some similar bloatware packages on the net, ending with clockwork.gestures.tutorial - first time use tutorial or clockwork.flashlight, clockwork.nfc, clockwork.brightness", safety: "safe" },
- { pkg: "com.google.android.compos.payload", label: "Payload", description: "Payload for Google's Compose system handling notifications and widgets.", safety: "caution" },
- { pkg: "com.google.android.connectivity.resources.overlay", label: "Overlay", description: "Useless default configs (?)", safety: "caution" },
- { pkg: "com.google.android.connectivity.resources.overlay.oplus", label: "Oplus", description: "Needed for network, may cause bootloop.", safety: "keep" },
- { pkg: "com.google.android.connectivitythermalpowermanager", label: "Connectivitythermalpowermanager", description: "powersaving?", safety: "caution" },
- { pkg: "com.google.android.devicelockcontroller", label: "Devicelockcontroller", description: "Device lock and security controller for Android devices.", safety: "keep" },
- { pkg: "com.google.android.dialer.rro_common", label: "Rro_common", description: "Useless overlay code for Google Dialer", safety: "safe" },
- { pkg: "com.google.android.documentsui.icon_overlay", label: "Icon_overlay", description: "Another useless icon overlay.", safety: "safe" },
- { pkg: "com.google.android.documentsui.theme.pixel", label: "Pixel", description: "Useless code to documentsui.", safety: "safe" },
- { pkg: "com.google.android.dreamlinerupdater", label: "Dreamlinerupdater", description: "Dock Updater Updates to Dreamliner(Google Pixel AI wallpaper).", safety: "caution" },
- { pkg: "com.google.android.euicc", label: "Euicc", description: "eUICC (embedded UICC) refers to the architectural standards for eSIM, a device used to securely store one or more SIM card profiles, which are the unique identifiers and cryptographic keys used by cellular network service providers to uniquely identify and securely connect to mobile network devices. Breaks SIM Manager.", safety: "caution" },
- { pkg: "com.google.android.euiccoverlay", label: "Euiccoverlay", description: "Partner customization on first boot Setup, overlay.", safety: "caution" },
- { pkg: "com.google.android.factoryota", label: "Factoryota", description: "Factory OTA Mode it's for testing OTA.", safety: "safe" },
- { pkg: "com.google.android.flipendo", label: "Flipendo", description: "Extreme Battery Saver It can be found in settings, lets you to choose which app are important to you to use when this feature is enabled.", safety: "caution" },
- { pkg: "com.google.android.flipendo.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Data connection 5G? it's for extreme battery saver.", safety: "keep" },
- { pkg: "com.google.android.flipendo.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Data connection 5G? it's for extreme battery saver.", safety: "keep" },
- { pkg: "com.google.android.gmsintegration", label: "Gmsintegration", description: "it's Google Sample Home Screen. Useless.", safety: "safe" },
- { pkg: "com.google.android.googlequicksearchbox.nga_resources", label: "Nga_resources", description: "Resources for Google Assistant quick search.", safety: "caution" },
- { pkg: "com.google.android.grilservice", label: "Grilservice", description: "Has too much random logging, metrics stuff.", safety: "safe" },
- { pkg: "com.google.android.hardwareinfo", label: "Hardwareinfo", description: "Has a lot statistics and takes info about device. Requires Google Play Services, also assumes call notifications?", safety: "caution" },
- { pkg: "com.google.android.iwlan", label: "Iwlan", description: "IWLAN feature manager for enhanced connectivity.", safety: "caution" },
- { pkg: "com.google.android.katniss", label: "Katniss", description: "Google app, no replacement? https://play.google.com/store/apps/details?id=com.google.android.katniss&hl=en&gl=US", safety: "caution" },
- { pkg: "com.google.android.microdroid.empty_payload", label: "Empty_payload", description: "Empty payload for MicroDroid sandbox testing.", safety: "caution" },
- { pkg: "com.google.android.networkstack.tethering.overlay2021", label: "Overlay2021", description: "Useless hotspot configs (?)", safety: "caution" },
- { pkg: "com.google.android.odad", label: "Odad", description: "Google Play Protect Service Google Play Protect Service? it have only third party notices activity and useless frameworks", safety: "safe" },
- { pkg: "com.google.android.overlay.devicelockcontroller", label: "Devicelockcontroller", description: "Pixel device lock configuration overlay.", safety: "caution" },
- { pkg: "com.google.android.overlay.flipendo", label: "Flipendo", description: "Unused colors to 5G", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsagoconfig", label: "Gmsagoconfig", description: "A completely useless 0 bytes app.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.healthconnect", label: "Healthconnect", description: "Useless overlay gmsconfig to Health Connect", safety: "safe" },
- { pkg: "com.google.android.overlay.gmsconfig.nosafetycenter", label: "Nosafetycenter", description: "Has no safety center in the code? Weird. Not needed.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsconfig.tetheringentitlement", label: "Tetheringentitlement", description: "Useless overlay gmsconfig to tetheringentitlement. No effects after remove", safety: "safe" },
- { pkg: "com.google.android.overlay.gmsconfig.tier1", label: "Tier1", description: "Has random set to default google apps and vivo gallery.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsgoconfig", label: "Gmsgoconfig", description: "A completely useless 0 bytes app.", safety: "caution" },
- { pkg: "com.google.android.overlay.gmsgsaconfig", label: "Gmsgsaconfig", description: "Not needed overlay, only has code to set `googlequicksearchbox`(Google App) as default assistant", safety: "caution" },
- { pkg: "com.google.android.overlay.googleconfig", label: "Googleconfig", description: "Once configs all default things to google. Bricks google login functionality.", safety: "keep" },
- { pkg: "com.google.android.overlay.googlewebview", label: "Googlewebview", description: "Once configs webview default to google. Bricks google login functionality.", safety: "keep" },
- { pkg: "com.google.android.overlay.healthconnect", label: "Healthconnect", description: "Overlay to 'com.google.android.apps.healthdata'.", safety: "caution" },
- { pkg: "com.google.android.overlay.modules.modulemetadata.forframework", label: "Forframework", description: "If you remove this package, your phone has an extremely large chance of bootlooping. Just don't mess around with this package. Tested on a Samsung A34 5G.", safety: "keep" },
- { pkg: "com.google.android.overlay.modules.packageinstaller", label: "Packageinstaller", description: "Package installer ui changes to the classic after uninstallation.", safety: "caution" },
- { pkg: "com.google.android.overlay.pixelconfig2018", label: "Pixelconfig2018", description: "Useless default configs? You can lose some basic functionality so it's not worth touching it.", safety: "keep" },
- { pkg: "com.google.android.overlay.pixelconfig2019", label: "Pixelconfig2019", description: "Useless default configs? You can lose some basic functionality so it's not worth touching it.", safety: "keep" },
- { pkg: "com.google.android.overlay.pixelconfig2019midyear", label: "Pixelconfig2019midyear", description: "Useless default configs? You can lose some basic functionality so it's not worth touching it.", safety: "keep" },
- { pkg: "com.google.android.overlay.pixelconfig2021", label: "Pixelconfig2021", description: "Pixel 2021 configuration overlay for device features and UI.", safety: "caution" },
- { pkg: "com.google.android.overlay.pixelconfigcommon", label: "Pixelconfigcommon", description: "Useless default configs? You can lose some basic functionality so it's not worth touching it.", safety: "keep" },
- { pkg: "com.google.android.overlay.settingsProvider", label: "SettingsProvider", description: "Have some stuff about google gms: backup.BackupTransportService. Useless backup things, without it backup and cloud work. Maybe it's used for backup settings, but probably not, and if it is, I don't think you need it.", safety: "caution" },
- { pkg: "com.google.android.overlay.trafficlightfaceoverlay", label: "Trafficlightfaceoverlay", description: "Traffic light face overlay for system UI enhancement.", safety: "caution" },
- { pkg: "com.google.android.overlay.udfpsoverlay", label: "Udfpsoverlay", description: "Configs to fingerprints FRP auto generated.", safety: "safe" },
- { pkg: "com.google.android.permissioncontroller.overlay.nothing", label: "Nothing", description: "Better keep this for permissioncontroller. Better don't risk", safety: "keep" },
- { pkg: "com.google.android.permissioncontroller.overlay.oplus", label: "Oplus", description: "Permission controller overlay. Overlays work by mapping resources defined in the overlay package to resources defined in the target package. When an app attempts to resolve the value of a resource in the target package, the value of the overlay resource the target resource is mapped to is returned instead. https://source.android.com/docs/core/runtime/rros", safety: "caution" },
- { pkg: "com.google.android.pixel.avatarpicker", label: "Avatarpicker", description: "Avatar picker for Google Pixel personalization.", safety: "caution" },
- { pkg: "com.google.android.pixel.setupwizard.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Useless first-boot setup configs", safety: "safe" },
- { pkg: "com.google.android.pixel.setupwizard.overlay", label: "Overlay", description: "Useless first-boot setup configs", safety: "safe" },
- { pkg: "com.google.android.pixel.setupwizard.overlay2019", label: "Overlay2019", description: "Useless first-boot setup configs", safety: "safe" },
- { pkg: "com.google.android.pixel.setupwizard.overlay2021", label: "Overlay2021", description: "Useless first-boot setup configs", safety: "safe" },
- { pkg: "com.google.android.pixelnfc", label: "Pixelnfc", description: "Application that checks the SKU of a Pixel device to Region Lock the Felica chip (Japanese NFC technology used in E-money cards) of the phone to prevent non-Japanese people from using it. Removing it will make the Osaifu-Keitai crash upon start-up but will not cause any bootloop. Patching it (ROOT), however allows people with a Felica Chip to add IC cards to their phone and use it to pay while in Japan.", safety: "caution", neededBy: ["com.felicanetworks.mfm.main"] },
- { pkg: "com.google.android.pixelsystemservice", label: "Pixelsystemservice", description: "System service app for Pixel device management.", safety: "keep" },
- { pkg: "com.google.android.repairmode", label: "Repairmode", description: "Repair mode to Pixel, not sure how it works.", safety: "caution" },
- { pkg: "com.google.android.retaildemo", label: "Retaildemo", description: "Retail demo app for product displays in stores.", safety: "caution" },
- { pkg: "com.google.android.rilextension", label: "Rilextension", description: "Google Assistant extension for enhanced functionality.", safety: "caution" },
- { pkg: "com.google.android.rkpdapp", label: "Rkpdapp", description: "Security and privacy management app for Pixel devices.", safety: "keep" },
- { pkg: "com.google.android.server.deviceconfig.resources", label: "Resources", description: "Device configuration server resources for Android devices.", safety: "caution" },
- { pkg: "com.google.android.settings.future.biometrics.faceenroll", label: "Faceenroll", description: "Needed to face unlock.", safety: "caution" },
- { pkg: "com.google.android.settings.overlay.pixelvpnconfig", label: "Pixelvpnconfig", description: "VPN configuration for Pixel devices.", safety: "caution" },
- { pkg: "com.google.android.sss.authbridge", label: "Authbridge", description: "Second Screen Setup Auth Bridge There's google api's used on first boot setup.", safety: "safe" },
- { pkg: "com.google.android.storagemanager", label: "Storagemanager", description: "Storage management app for Android devices.", safety: "caution" },
- { pkg: "com.google.android.storagemanager.auto_generated_rro_product__", label: "Auto_generated_rro_product__", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.google.android.storagemanager.auto_generated_rro_vendor__", label: "Auto_generated_rro_vendor__", description: "Configs to settings auto generated but better keep.", safety: "keep" },
- { pkg: "com.google.android.systemui.gxoverlay", label: "Gxoverlay", description: "Configs to systemui auto generated but better keep.", safety: "keep" },
- { pkg: "com.google.android.systemui.overlay.pixelbatteryhealthconfig", label: "Pixelbatteryhealthconfig", description: "Battery health overlay for Pixel devices.", safety: "caution" },
- { pkg: "com.google.android.systemui.overlay.pixelvpnconfig", label: "Pixelvpnconfig", description: "Pixel VPN configuration overlay for network management.", safety: "caution" },
- { pkg: "com.google.android.telephony", label: "Telephony", description: "Core telephony system app for managing calls and messaging.", safety: "caution" },
- { pkg: "com.google.android.tetheringentitlement", label: "Tetheringentitlement", description: "Tethering entitlement management for Android devices.", safety: "caution" },
- { pkg: "com.google.android.tungsten.setupwraith", label: "Setupwraith", description: "First boot setup TV. Removing it crashes sound related system settings and breaks volume control on Sony Bravia TV. https://play.google.com/store/apps/details?id=com.google.android.tungsten.setupwraith&hl=en&gl=US", safety: "caution" },
- { pkg: "com.google.android.tv", label: "Tv", description: "Live Channels TV tuner and watching stuff, sadly has google analytics.", safety: "caution" },
- { pkg: "com.google.android.tv.axel", label: "Axel", description: "Android TV Infrared Service Needed for volume setup.", safety: "caution" },
- { pkg: "com.google.android.tv.bugreportsender", label: "Bugreportsender", description: "BugReportSender Bug reports app.", safety: "safe" },
- { pkg: "com.google.android.tv.dfuservice", label: "Dfuservice", description: "Remote Control Update Service.", safety: "caution" },
- { pkg: "com.google.android.tv.frameworkpackagestubs", label: "Frameworkpackagestubs", description: "Activity Stub Weird app that probably needed for SQLite, webview browser.", safety: "caution" },
- { pkg: "com.google.android.tv.remote.service", label: "Service", description: "Android TV Remote Service, pairing requests from your phone. https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service&hl=en&gl=US", safety: "safe" },
- { pkg: "com.google.android.tv.remotecontrol.logging", label: "Logging", description: "Needed for logging?", safety: "caution" },
- { pkg: "com.google.android.tvrecommendations", label: "Tvrecommendations", description: "Android TV Core Services Sometimes has only Notification to Android11UpgradeReceiver, and on some TV's has a lot frameworks, it's weird. https://play.google.com/store/apps/details?id=com.google.android.tvrecommendations&hl=en&gl=US", safety: "caution" },
- { pkg: "com.google.android.uvexposurereporter", label: "Uvexposurereporter", description: "UvExposureReporter, logs, VendorAtom. Unknown.", safety: "caution" },
- { pkg: "com.google.android.uwb.resources", label: "Resources", description: "UWB technology resources for location tracking.", safety: "caution" },
- { pkg: "com.google.android.virtualmachine.res", label: "Res", description: "Resources for Android virtual machine environment.", safety: "caution" },
- { pkg: "com.google.android.wallpaper.effects", label: "Effects", description: "Wallpaper visual effects for Android devices.", safety: "caution" },
- { pkg: "com.google.android.wearable.ambient", label: "Ambient", description: "It's like doze on Android phones. Not recommended to disable, as this package reduces battery drain when idle.", safety: "caution" },
- { pkg: "com.google.android.wearable.assistant", label: "Assistant", description: "Google Assistant for Android wearables (https://play.google.com/store/apps/details?id=com.google.android.wearable.assistant) Has obviously all the dangerous permissions: https://beta.pithus.org/report/efccf27aa68d9c263e4288d38af76f855b5fd4156034ebdaabeb185d8c4f1411", safety: "caution" },
- { pkg: "com.google.android.wearable.batteryservices", label: "Batteryservices", description: "It's used to manage battery-related things on Android smartwatches, like monitoring the battery level, managing power consumption (auto battery saving I think), and handling battery-related events (pop-up when battery at 15%, etc.). It is typically used by developers to create battery-aware applications for wearable devices.", safety: "caution" },
- { pkg: "com.google.android.wearable.healthservices", label: "Healthservices", description: "Health Services by Google (https://play.google.com/store/apps/details?id=com.google.android.wearable.healthservices) Disabling this on a Watch5 broke heart rate measuring and some workouts.", safety: "caution" },
- { pkg: "com.google.android.wfcactivation", label: "Wfcactivation", description: "Carrier Setup Needed for IMS, WiFi calling and have emergency things.", safety: "caution" },
- { pkg: "com.google.android.wifi.resources.pixel", label: "Pixel", description: "WiFi configs", safety: "keep" },
- { pkg: "com.google.android.wifi.resources.xiaomi", label: "Xiaomi", description: "An overlay-xiaomi addition for com.android.wifi.resources, presumably xiaomi bloat. No issues with Wi-Fi found after removal. There's no such package as com.google.android.wifi.resources, but only com.android.wifi.resources, so it's likely a part of a google addition for Wi-Fi services, so likely bloat. Safe to delete.", safety: "caution" },
- { pkg: "com.google.android.youtube.tv", label: "Tv", description: "YouTube app https://play.google.com/store/apps/details?id=com.google.android.youtube.tv&hl=en_US", safety: "safe" },
- { pkg: "com.google.android.youtube.tvmusic", label: "Tvmusic", description: "YouTube Music https://play.google.com/store/apps/details?id=com.google.android.youtube.tvmusic&hl=en&gl=US", safety: "safe" },
- { pkg: "com.google.euiccpixel", label: "Euiccpixel", description: "NFC, eSE, eSIM firmware updater", safety: "caution" },
- { pkg: "com.google.euiccpixel.overlay.gs101", label: "Gs101", description: "Overlay to (com.google.euiccpixel) NFC, eSE, eSIM firmware updater", safety: "caution" },
- { pkg: "com.google.euiccpixel.overlay.zuma", label: "Zuma", description: "EU Pixel device overlay for regional functionality.", safety: "caution" },
- { pkg: "com.google.euiccpixel.permissions", label: "Permissions", description: "Permission manager for EU-configured Google Pixel devices.", safety: "caution" },
- { pkg: "com.google.pixel.camera.services", label: "Services", description: "CameraIDRemapper and a lot Debug stuff. Dependency for Private space on Pixel devices. https://source.android.com/docs/security/features/private-space", safety: "caution" },
- { pkg: "com.google.pixel.digitalkey.timesync", label: "Timesync", description: "CccDkTimeSyncService, IBluetoothCcc. Unknown app to car connectivity.", safety: "safe" },
- { pkg: "com.google.pixel.iwlan", label: "Iwlan", description: "IWlan optimization for Pixel Wi-Fi connections.", safety: "caution" },
- { pkg: "com.google.pixel.livewallpaper", label: "Livewallpaper", description: "Pixel live wallpaper Have a lot of wallpapers.", safety: "caution" },
- { pkg: "com.hancom.office.editor", label: "Editor", description: "Proprietary office suite, primarly targeted towards Korean users. This version, typically preinstalled on old Samsung devices, is no longer maintained", safety: "safe" },
- { pkg: "com.hancom.office.viewer", label: "Viewer", description: "(discontinued) old Hancom Office Viewer", safety: "safe" },
- { pkg: "com.hawk.android.browser", label: "Browser", description: "TurboBrowser https://www.apkmirror.com/apk/mie-alcatel-support/turbo-browser-private-adblocker-fast-download/", safety: "safe" },
- { pkg: "com.hicloud.android.clone", label: "Clone", description: "Huawei Phone Clone (https://play.google.com/store/apps/details?id=com.hicloud.android.clone) 171 Permissions (https://reports.exodus-privacy.eu.org/fr/reports/144565/) Data migration application between Huawei phones. Keep in mind that all your data will be synchronised in the Huawei cloud and collected by the company. https://cloud.huawei.com/privacyStatementTransit", safety: "safe" },
- { pkg: "com.hilauncherconfig", label: "Hilauncherconfig", description: "Configures app icons and folders on first run HiOS Launcher.", safety: "caution" },
- { pkg: "com.hisi.mapcon", label: "Mapcon", description: "Uses Location permissions for VoWifi Special, rtc wifi signal.", safety: "caution" },
- { pkg: "com.hisi.supl", label: "Supl", description: "SUPL20Services Not needed for location and dont have code.", safety: "safe" },
- { pkg: "com.hiya.axolotl.tcl", label: "Tcl", description: "Package: com.hiya.axolotl.tcl", safety: "caution" },
- { pkg: "com.hiya.star", label: "Star", description: "also called android-ss-service-lib (Samsung-exclusive) Third-party that provides caller profile information to help consumers identify incoming calls and block unwanted ones. https://en.wikipedia.org/wiki/Hiya_(company) https://hiya.com/ NOTE : Never trust a company which promotes spam blocking features https://itmunch.com/robocall-caught-sending-customers-confidential-data-without-consent/ Have a look at their privacy policy. That's... pretty scary : https://hiya.com/fr/hiya-data-policy Needed for Samsung Smart Call (com.samsung.android.smartcallprovider)", safety: "safe", neededBy: ["com.samsung.android.smartcallprovider"] },
- { pkg: "com.hoffnung", label: "Hoffnung", description: "TPMS. Remote Config Test. ⚠️ WARNING: uninstalling might cause bootloops and screen flicker! Disabling this also may remove the ability to see notifications on your lock screen. https://xdaforums.com/t/infinix-note-10-uninstall-tpms-com-hoffnung-package-causes-bootloop.4647456", safety: "keep" },
- { pkg: "com.htc.blackviewhome", label: "Blackviewhome", description: "BV Family Blackiew's application for access to their store, website, feedback and other things. Can track like a browser.", safety: "safe" },
- { pkg: "com.htc.masthead", label: "Masthead", description: "HTC Lockscreen Theme.", safety: "caution" },
- { pkg: "com.htc.weather", label: "Weather", description: "HTC Weather", safety: "caution" },
- { pkg: "com.huaqin.btlogger", label: "Btlogger", description: "btlogger cit bluetooth logging", safety: "safe" },
- { pkg: "com.huaqin.diaglogger", label: "Diaglogger", description: "Secret logging menu only accessible by dialing using a\"secret code\" (*#*#CODE#*#*) You can use any of these code :\"995995\",\"996996\",\"9434\",\"334334\",\"5959\",\"477477\" Used to log Bluetooth traffic and send them to com.miui.bugreport Write logs to\"/sdcard/diag_logs/\" |\"/sdcard/wlan_logs/\" |\"/sdcard/MIUI/debug_log/common/\" # FYI Huaqin is a Chinese mobile phone research and development company.", safety: "safe" },
- { pkg: "com.huaqin.factory", label: "Factory", description: "Hidden test app (dial *#*#64663#*#*) Used by technician in factory to test the hardware. Not intented to be run by end-users. Has a huge amount of permissions. A vulnerability was found in 2019 (CVE-2019-15340) allowing any app co-located on the device to programmatically disable and enable Wi-Fi, Bluetooth, and GPS silently (and without the corresponding access permission) https://nvd.nist.gov/vuln/detail/CVE-2019-15340", safety: "safe" },
- { pkg: "com.huaqin.sar", label: "Sar", description: "SetTransmitPower I can't access the apk but I'm pretty sure it is another hidden test app not meant to be used by end-user Given its name it could be used to adjust the transmit power of the cell phone antennas SAR = Specific Absorption Rate (https://en.wikipedia.org/wiki/Specific_absorption_rate) XDA users removed this without any issues. To be 100% sure it would be good to test the SAR without this package (just in case)", safety: "safe" },
- { pkg: "com.hxy.ramtest", label: "Ramtest", description: "ram test Hidden ram test. Tests ram size.", safety: "safe" },
- { pkg: "com.hy.system.fontserver", label: "Fontserver", description: "Font Server Needed for fonts?", safety: "caution" },
- { pkg: "com.ibimuyu.lockscreen", label: "Lockscreen", description: "Dynamic theme service lockscree Dynamic theme service lockscreen? Some people recommend removing that.", safety: "caution" },
- { pkg: "com.idea.questionnaire", label: "Questionnaire", description: "Qusetionnaire Logs and testing things.", safety: "safe" },
- { pkg: "com.iflytek.inputmethod.miui", label: "Miui", description: "Chinese Keyboard to Miui China, replace Keyboard before remove.", safety: "safe" },
- { pkg: "com.iflytek.speechcloud", label: "Speechcloud", description: "App called OfflineTTs on the Bigme HiBreak Pro. Does not show up in the app list.", safety: "safe" },
- { pkg: "com.iflytek.speechsuite", label: "Speechsuite", description: "Default voice input method from iflytek, a big chinese company (https://en.wikipedia.org/wiki/IFlytek) IFLytek was implicated in human rights violations : https://asia.nikkei.com/Economy/Trade-war/US-sanctions-8-China-tech-companies-over-role-in-Xinjiang-abuses Archive: https://web.archive.org/save/https://asia.nikkei.com/Economy/Trade-war/US-sanctions-8-China-tech-companies-over-role-in-Xinjiang-abuses", safety: "safe" },
- { pkg: "com.ims.dm", label: "Dm", description: "IMS DM Hidden network debugging", safety: "safe" },
- { pkg: "com.infinix", label: "Infinix", description: "Only has something to launcher folders and has freeze png files.", safety: "caution" },
- { pkg: "com.infinix.xshare", label: "Xshare", description: "XShare Its app for Transfer & Share files, also has ads.", safety: "safe" },
- { pkg: "com.infraware.polarisviewer5", label: "Polarisviewer5", description: "A dumbed down version of Polaris Office Editor 5 (which is a Microsoft Office like app).", safety: "safe" },
- { pkg: "com.inkbook.awesomereader", label: "Awesomereader", description: "Stock reader app on Inkbook e-readers. Uninstall only if planning to use a different reader.", safety: "caution" },
- { pkg: "com.inkbook.exoereader", label: "Exoereader", description: "Stock reader app on Inkbook e-readers. Uninstall only if planning to use a different reader.", safety: "caution" },
- { pkg: "com.inkbook.os.library", label: "Library", description: "Default library app on Inkbook e-readers. Will break the UI if uninstalled so only do so if you plan to replace the default UI app with e.g. SimpleLauncher or somehting of the sort.", safety: "caution" },
- { pkg: "com.inkbook.os.plus", label: "Plus", description: "App repository for Inkbook e-readers: Kindle, Kobo etc. Safe to uninstall if not using them. Also installs and updates EinkBro and a stats tracking app.", safety: "caution" },
- { pkg: "com.inkbook.os.settings", label: "Settings", description: "Wrapper for Android settings which hides most irrelevant settings for e-ink devices e.g enabling animations.", safety: "caution" },
- { pkg: "com.insulet.myblue.pdm", label: "Pdm", description: "App to control OmniPod insulin pumps. Preinstalled on the OmniPod DASH and OmniPod 5 PDMs. If you're seeing this package you're probably on a modded PDM, so you almost certainly know what this is and it's absolutely unsafe to remove if you're actively using OmniPod. https://play.google.com/store/apps/details?id=com.insulet.myblue.pdm", safety: "keep" },
- { pkg: "com.insulet.myblue.pdmsystem", label: "Pdmsystem", description: "Additional package needed to control pods on the OmniPod DASH PDM. Doesn't seem to be present on OmniPod 5. See com.insulet.myblue.pdm tl;dr: needed to control your insulin pump, absolutely do not remove this.", safety: "keep" },
- { pkg: "com.ipsec.service", label: "Service", description: "Has internet access and does nothing. Possibly for an IPSec service and dependency of the LG VPN? Not really sure.", safety: "caution" },
- { pkg: "com.ipsec.vpnclient", label: "Vpnclient", description: "LG VPN. Doesn't seem to affect VPN functionality, and LG doesn't run a VPN, afaik.", safety: "safe" },
- { pkg: "com.iqoo.aftersale.engineermode", label: "Engineermode", description: "Testing things. This app is for testing phone components.", safety: "safe" },
- { pkg: "com.iqoo.engineermode", label: "Engineermode", description: "Factory test Testing things, AT Commands - no one uses them.", safety: "safe" },
- { pkg: "com.iqoo.powersaving", label: "Powersaving", description: "Battery Power-saving app. May not be a good idea to remove it.", safety: "caution" },
- { pkg: "com.iqoo.secure", label: "Secure", description: "i Manager Removing this removes the traffic speed indicator in the notification bar. Be cautious about removing it.", safety: "caution" },
- { pkg: "com.iqoo.user.engineermode", label: "Engineermode", description: "Factory test It's for testing phone components.", safety: "safe" },
- { pkg: "com.iqoo.website", label: "Website", description: "iQOO.com Shows iQOO website.", safety: "safe" },
- { pkg: "com.itc.autotest", label: "Autotest", description: "ITC_Base Hidden camera testing, also its Chinese.", safety: "safe" },
- { pkg: "com.itel.TWSService", label: "TWSService", description: "This app is used for connection to TECNO Hipods.", safety: "caution" },
- { pkg: "com.jrdcom.Elabel", label: "Elabel", description: "Regulatory & safety Useless data collection and security. Also Chinese things, PDF View.", safety: "safe" },
- { pkg: "com.jrdcom.Elabel.a_overlay", label: "A_overlay", description: "Useless overlay code for this bloatware app", safety: "safe" },
- { pkg: "com.jrdcom.Elabel.overlay", label: "Overlay", description: "Package: com.jrdcom.Elabel.overlay", safety: "caution" },
- { pkg: "com.jrdcom.filemanager", label: "Filemanager", description: "Package: com.jrdcom.filemanager", safety: "caution" },
- { pkg: "com.jrdcom.filemanager.a_overlay", label: "A_overlay", description: "Package: com.jrdcom.filemanager.a_overlay", safety: "caution" },
- { pkg: "com.jrdcom.urlreservedapp1", label: "Urlreservedapp1", description: "TCL My Sites shortcut Stub for mysites.glance.com.", safety: "safe" },
- { pkg: "com.kidsedu", label: "Kidsedu", description: "Another Kids Mode.", safety: "safe" },
- { pkg: "com.kikaoem.hw.qisiemoji.inputmethod", label: "Inputmethod", description: "Kika Keyboard Third party keyboard. Installs on some Huawei devices.", safety: "safe" },
- { pkg: "com.knox.vpn.proxyhandler", label: "Proxyhandler", description: "Samsung Knox allows business and personal content to\"securely\" coexist on the same handset. This package handles proxies alongside KNOX.", safety: "safe" },
- { pkg: "com.kyocera.ecomode", label: "Ecomode", description: "Custom power-saving mode", safety: "keep" },
- { pkg: "com.lbe.security.miui", label: "Miui", description: "Permission manager Lets you monitor apps permission requests.", safety: "keep" },
- { pkg: "com.ldmnq.launcher3", label: "Launcher3", description: "Built in launcher Full of ads but not safe to disable unless you have another launcher", safety: "caution" },
- { pkg: "com.lenovo.leos.appstore", label: "Appstore", description: "Lenovo Application Center 应用中心 Lenovo chinese app store", safety: "safe" },
- { pkg: "com.lenovo.leos.cloud.sync", label: "Sync", description: "SYNCit Lenovo cloud", safety: "safe" },
- { pkg: "com.lenovo.levoice.caption", label: "Caption", description: "AI Live Caption Caption Settings.", safety: "safe" },
- { pkg: "com.lenovo.levoice.trigger", label: "Trigger", description: "Wake up with voice", safety: "safe" },
- { pkg: "com.lenovo.levoice_agent", label: "Levoice_agent", description: "Voice unlock screen Voice unlock screen? Another chinese accessibility things.", safety: "safe" },
- { pkg: "com.lenovo.levoice_notes", label: "Levoice_notes", description: "AI Notes Another AI things lenovo.", safety: "safe" },
- { pkg: "com.lenovo.lsf.user", label: "User", description: "Lenovo ID adds an option in Settings>Accounts where you can login to a Lenovo ID account. Features include\"exclusive features directly from Lenovo and our partners\" and\"syncing users information across devices\" lsf = Lenovo Service Framework", safety: "safe" },
- { pkg: "com.lenovo.ue.device", label: "Device", description: "User Experience Program Analytics stuff. Displays an annoying notification after every reboot prompting you to join Lenovo's user experience program. NOTE: Removing this package may cause a hard reboot after unlocking the device. If USB debugging is still active you can safely reinstall the package and the device will start working again, but if USB debugging is disabled you might fail to do so - what leaves you no option other than to perform a factory reset. See: https://github.com/0x192/universal-android-debloater/issues/713", safety: "keep" },
- { pkg: "com.lenovo.weathercenter", label: "Weathercenter", description: "Widget Weather Lenovo ZUI Weather center", safety: "safe" },
- { pkg: "com.lifevibes.trimapp", label: "Trimapp", description: "Video trimmer used by the default Samsung Gallery app on some older Samsung devices.", safety: "caution" },
- { pkg: "com.longcheertel.AutoTest", label: "AutoTest", description: "Autotest Hidden hardware tests.", safety: "safe" },
- { pkg: "com.longcheertel.cit", label: "Cit", description: "Cit test Hidden hardware tests.", safety: "safe" },
- { pkg: "com.longcheertel.midtest", label: "Midtest", description: "Assemble test Hidden hardware tests.", safety: "safe" },
- { pkg: "com.longcheertel.modemlog", label: "Modemlog", description: "Modem log Hidden app that includes TcardLog, modem log, Tcpdump.", safety: "safe" },
- { pkg: "com.longcheertel.sarauth", label: "Sarauth", description: "Autotest Hidden hardware tests.", safety: "safe" },
- { pkg: "com.longcheertel.secretcode", label: "Secretcode", description: "Refers to the system package that handles secret codes. Secret codes are special sequences of numbers and symbols that can be entered on a phone's keypad to access hidden features or information.", safety: "caution" },
- { pkg: "com.mediatek.apmonitor", label: "Apmonitor", description: "APM Service has only logs", safety: "safe" },
- { pkg: "com.mediatek.mt6853.gamedriver", label: "Gamedriver", description: "Mediatek GPU Driver", safety: "keep" },
- { pkg: "com.mediatek.mt6886.gamedriver", label: "Gamedriver", description: "Mediatek GPU Driver", safety: "keep" },
- { pkg: "com.mediatek.ppl", label: "Ppl", description: "Mobile anti-theft It seems that people don't even have access to it, its app to remote phone lock, wipe data, fetch back anti-theft PIN.", safety: "safe" },
- { pkg: "com.meizu.account", label: "Account", description: "Flyme Log out before remove", safety: "safe" },
- { pkg: "com.meizu.account.pay", label: "Pay", description: "Pay Center chinese payment.", safety: "safe" },
- { pkg: "com.meizu.activeviewlivewallpaper", label: "Activeviewlivewallpaper", description: "Needed for live wallpapers", safety: "caution" },
- { pkg: "com.meizu.alphame", label: "Alphame", description: "for digital health work", safety: "safe" },
- { pkg: "com.meizu.assistant", label: "Assistant", description: "Aicy Glance meizu assistant Probably Chinese assistant.", safety: "safe" },
- { pkg: "com.meizu.battery", label: "Battery", description: "Needed for Battery Manager.", safety: "caution" },
- { pkg: "com.meizu.callsetting", label: "Callsetting", description: "Additional call settings.", safety: "safe" },
- { pkg: "com.meizu.cloud", label: "Cloud", description: "Useless push service", safety: "safe" },
- { pkg: "com.meizu.customizecenter", label: "Customizecenter", description: "Needed for themes but it's so bloated.", safety: "caution" },
- { pkg: "com.meizu.dataservice", label: "Dataservice", description: "A lot of permissions and collects user data.", safety: "safe" },
- { pkg: "com.meizu.ems", label: "Ems", description: "Useless frameworks.", safety: "safe" },
- { pkg: "com.meizu.facerecognition", label: "Facerecognition", description: "Needed for face recognition, face unlock lock screen.", safety: "safe" },
- { pkg: "com.meizu.flyme.easylauncher", label: "Easylauncher", description: "Easy Mode it's for launcher in easy mode.", safety: "safe" },
- { pkg: "com.meizu.flyme.launcher", label: "Launcher", description: "System launcher Needed for launcher.", safety: "caution" },
- { pkg: "com.meizu.flyme.sdkstage", label: "Sdkstage", description: "It's for Night Mode settings. Not sure if it's important.", safety: "caution" },
- { pkg: "com.meizu.flyme.service.find", label: "Find", description: "Phone locating service This app will probably help you find the device.", safety: "safe" },
- { pkg: "com.meizu.flyme.update", label: "Update", description: "System updates Provides System updates.", safety: "caution" },
- { pkg: "com.meizu.flymelab", label: "Flymelab", description: "Flyme Lab it's something for video window or full screen.", safety: "safe" },
- { pkg: "com.meizu.media.camera", label: "Camera", description: "Camera Stock Camera app meizu.", safety: "caution" },
- { pkg: "com.meizu.media.gallery", label: "Gallery", description: "Gallery Meizu gallery app.", safety: "caution" },
- { pkg: "com.meizu.media.imageservice", label: "Imageservice", description: "PhotoService Probably needed for Photos app.", safety: "caution" },
- { pkg: "com.meizu.media.music", label: "Music", description: "Music Stock Music app.", safety: "safe" },
- { pkg: "com.meizu.media.video", label: "Video", description: "Video Player Stock Video Player app", safety: "safe" },
- { pkg: "com.meizu.mstore", label: "Mstore", description: "App Store A lot of ads components.", safety: "safe" },
- { pkg: "com.meizu.mzbasestationsafe", label: "Mzbasestationsafe", description: "Base Station Guard Useless location things.", safety: "safe" },
- { pkg: "com.meizu.mznfcpay", label: "Mznfcpay", description: "Meizu chinese payment.", safety: "safe" },
- { pkg: "com.meizu.mzsyncservice", label: "Mzsyncservice", description: "Flyme cloud service", safety: "safe" },
- { pkg: "com.meizu.net.nativelockscreen", label: "Nativelockscreen", description: "NativeLockScreen I guess it's needed for lockscreen.", safety: "keep" },
- { pkg: "com.meizu.net.search", label: "Search", description: "Chinese Search", safety: "safe" },
- { pkg: "com.meizu.picker", label: "Picker", description: "Aicy Touch Another chinese payment.", safety: "safe" },
- { pkg: "com.meizu.powersave", label: "Powersave", description: "Power Saving Mode.", safety: "caution" },
- { pkg: "com.meizu.pps", label: "Pps", description: "One Mind Discharge schedule in the security annex.", safety: "safe" },
- { pkg: "com.meizu.safe", label: "Safe", description: "Looks like an important app. It has more things than security.", safety: "caution" },
- { pkg: "com.meizu.setup", label: "Setup", description: "It's needed only on first-boot setup.", safety: "safe" },
- { pkg: "com.meizu.share", label: "Share", description: "It's maybe useful for Bluetooth", safety: "caution" },
- { pkg: "com.meizu.suggestion", label: "Suggestion", description: "Aicy Suggestion Only suggestions.", safety: "safe" },
- { pkg: "com.meizu.telephonyengineermode", label: "Telephonyengineermode", description: "SIM things testing also logs.", safety: "safe" },
- { pkg: "com.meizu.voiceassist", label: "Voiceassist", description: "Aicy Voice Another smart thing", safety: "safe" },
- { pkg: "com.meizu.wifiadmin", label: "Wifiadmin", description: "WLAN Assistant Additional WLAN things.", safety: "safe" },
- { pkg: "com.mfashiongallery.emag", label: "Emag", description: "Wallpapers by Xiaomi", safety: "safe" },
- { pkg: "com.microfountain.rcs.service", label: "Service", description: "MicroFountain RCS Service Chinese RCS Chats.", safety: "safe" },
- { pkg: "com.microsoft.deviceintegrationservice", label: "Deviceintegrationservice", description: "Device Integration Service Might be needed for Microsoft Link to Windows (com.microsoft.appmanager) which is preinstalled with OxygenOS 14. After Uninstalling, no issues occurred.", safety: "safe" },
- { pkg: "com.microsoftsdk.crossdeviceservicebroker", label: "Crossdeviceservicebroker", description: "Cross Device Broker Might be needed for Microsoft Link to Windows (com.microsoft.appmanager) which is preinstalled with OxygenOS 14. After Uninstalling, no issues occurred.", safety: "safe" },
- { pkg: "com.mifavor.callsetting", label: "Callsetting", description: "Additional call features and WiFi Calling.", safety: "caution" },
- { pkg: "com.mig.play.games", label: "Games", description: "Funmax Some kind of third-party game center bundled by Xiaomi. Has lots of permissions by default.", safety: "safe" },
- { pkg: "com.milink.service", label: "Service", description: "UniPlay Service MIUI screen casting service. If removed, you'll have to use Android's native casting services which can be accessed through a 3rd party app.", safety: "caution" },
- { pkg: "com.mipay.wallet", label: "Wallet", description: "Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet) Contactless NFC-based mobile payment system that supports credit, debit and public transportation cards in China. https://www.mi-pay.com/ # .in = Mi Pay for India .id = My Pay for Indonesia", safety: "safe" },
- { pkg: "com.mipay.wallet.id", label: "Id", description: "Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet) Contactless NFC-based mobile payment system that supports credit, debit and public transportation cards in China. https://www.mi-pay.com/ # .in = Mi Pay for India .id = My Pay for Indonesia", safety: "safe" },
- { pkg: "com.mipay.wallet.in", label: "In", description: "Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet) Contactless NFC-based mobile payment system that supports credit, debit and public transportation cards in China. https://www.mi-pay.com/ # .in = Mi Pay for India .id = My Pay for Indonesia", safety: "safe" },
- { pkg: "com.mitv.download.service", label: "Service", description: "DownloadService Unknown app that has many mitv frameworks. But safe to remove.", safety: "safe" },
- { pkg: "com.mitv.milinkservice", label: "Milinkservice", description: "MiLink Miui screen casting service.", safety: "caution" },
- { pkg: "com.mitv.tvhome.atv", label: "Atv", description: "PatchWall Is it a spyware app? People recommend removing it.", safety: "safe" },
- { pkg: "com.mitv.tvhome.michannel", label: "Michannel", description: "Mi Channel Same app like a PatchWall.", safety: "safe" },
- { pkg: "com.mitv.videoplayer", label: "Videoplayer", description: "Mi TV Video Player It's video player with google ads.", safety: "caution" },
- { pkg: "com.mmigroup.fmradio", label: "Fmradio", description: "App for Hardware Testing Things.", safety: "safe" },
- { pkg: "com.mobeam.barcodeService", label: "BarcodeService", description: "The Beaming Service enables your device to beam (relay) barcodes, as found on digital coupons, event tickets, library cards, loyalty cards and membership cards to 1D red laser and Image based scanners prevalent at nearly every retail store and checkout stand around the world. Mobeam is a 3-party (https://mobeam.com/)", safety: "safe" },
- { pkg: "com.mobile.iroaming", label: "Iroaming", description: "Data Store Only useful if you need roaming mobile data when travelling overseas. Has a lot of dangerous permissions and phone home to Vivo domains. Pithus analysis: https://beta.pithus.org/report/d7cfa53942159a0e9c1bf3643b5f38496daee4c0225e8155249db9fdc979187c", safety: "caution" },
- { pkg: "com.mobiletools.systemhelper", label: "Systemhelper", description: "SystemHelper Not available for users, has something about dual sim, App Info.", safety: "safe" },
- { pkg: "com.modemdebug", label: "Modemdebug", description: "Hidden running in the background debugs for data traffic and all that, not useful for the average person.", safety: "safe" },
- { pkg: "com.monotype.android.font.felbridge", label: "Felbridge", description: "Felbridge FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.monotype.android.font.manroperegular", label: "Manroperegular", description: "ManropeRegular FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.monotype.android.font.mfinancehkbold", label: "Mfinancehkbold", description: "MfinancehkBold FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.monotype.android.font.myinghei18030m", label: "Myinghei18030m", description: "Myinghei18030m FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.monotype.android.font.myuppymediumtc", label: "Myuppymediumtc", description: "Myuppymediumtc FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.monotype.android.font.oxaniumregular", label: "Oxaniumregular", description: "OxaniumRegular FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.monotype.android.font.rajdhanimedium", label: "Rajdhanimedium", description: "RajdhaniMedium FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.monotype.android.font.roboto", label: "Roboto", description: "Roboto Font", safety: "caution" },
+ { pkg: "com.enhance.gameservice", label: "Gameservice", description: "Legacy game Optimizing Service (was replaced by com.samsung.android.game.gos)", safety: "safe" },
+ { pkg: "com.mygalaxy", label: "Mygalaxy", description: "My Galaxy (https://play.google.com/store/apps/details?id=com.mygalaxy)", safety: "safe" },
+ { pkg: "com.mobeam.barcodeService", label: "Barcodeservice", description: "The Beaming Service enables your device to beam (relay) barcodes, as found on digital coupons, event ticket...", safety: "safe" },
+ { pkg: "com.android.screenshot", label: "Screenshot", description: "Default android screenshot tool", safety: "caution" },
+ { pkg: "com.skms.android.agent", label: "Agent", description: "Samsung KMS agent service a client application for Android devices to support eSE-based (embedded secure el...", safety: "safe" },
{ pkg: "com.monotype.android.font.samsungone", label: "Samsungone", description: "Samsung One font", safety: "safe" },
- { pkg: "com.monotype.android.font.samsungsans", label: "Samsungsans", description: "SamsungSans font Font", safety: "safe" },
- { pkg: "com.monotype.android.font.syndor", label: "Syndor", description: "Syndor FlipFont Changes the user interface font on your phone.", safety: "safe" },
- { pkg: "com.mygalaxy", label: "Mygalaxy", description: "My Galaxy (https://play.google.com/store/apps/details?id=com.mygalaxy) Entertainment hub and life-services application. Lets you access videos, music and gaming and gives quick access to services such as cabs, movies, recharge, bill payment, food ordering, travel, hyper local deals and Samsung Care, among others.", safety: "safe" },
- { pkg: "com.mygalaxy.service", label: "Service", description: "Module likely used by the MyGalaxy app (https://play.google.com/store/apps/details?id=com.mygalaxy). Only works on India CSC INS/INU. On all other regions it disables itself automatically.", safety: "safe" },
- { pkg: "com.nbbird.hardwareinfo", label: "Hardwareinfo", description: "The com.nbbird.hardwareinfo package is likely associated with providing detailed information about the device’s hardware components, such as CPU, GPU, memory, and other system specifications. This app might be used for diagnostics or detailed hardware monitoring specific to the device. Removing it might disable access to this hardware information and could affect the ability to view detailed system diagnostics. However, it generally does not affect core system functionality and should not cause bootloop issues.", safety: "caution" },
- { pkg: "com.nbbsw.compatiblemark", label: "Compatiblemark", description: "Not exactly sure what this is. Trying to launch mainActivity, you get a Chinese error message, but you can see a java error saying it's trying to connect to s2.sv.wxjyun.cn, which is a non-existent URL. No issues when removing this so it's safe to remove.", safety: "safe" },
- { pkg: "com.nbbsw.mmi_test", label: "Mmi_test", description: "The com.nbbsw.mmi_test package is likely associated with the Mobile Management Interface (MMI) testing tools provided by the OEM, possibly used for diagnostic and testing purposes to check various hardware and software functions of the device. Removing this package might impact the ability to perform certain diagnostic tests or troubleshooting functions provided by the OEM. While its removal should not affect the basic operation of the device, it could limit access to some specific testing tools or functionalities, which might be used for device maintenance or troubleshooting.", safety: "caution" },
- { pkg: "com.nbbsw.theme", label: "Theme", description: "The com.nbbsw.theme package is likely related to theme management or customization features provided by the OEM, allowing users to apply and manage themes or visual styles on the device. Since many third-party launchers and theme apps available on Google Play offer similar or enhanced customization options, removing this package is generally recommended.", safety: "safe" },
- { pkg: "com.netflix.ninja", label: "Ninja", description: "Netflix app https://play.google.com/store/apps/details?id=com.netflix.ninja&hl=en_US", safety: "safe" },
- { pkg: "com.noknok.android.mfac.service", label: "Service", description: "Part of the FIDO authentication for fingerprint", safety: "caution" },
- { pkg: "com.nothing.OfflineOTAUpgradeApp", label: "OfflineOTAUpgradeApp", description: "Hidden offline OTA update. You can get it by typing in dialer: *#*#682*#*#", safety: "safe" },
- { pkg: "com.nothing.agreement", label: "Agreement", description: "Nothing agreement privacy policy. I'm not sure when it will be needed.", safety: "safe" },
- { pkg: "com.nothing.applocker", label: "Applocker", description: "App locker Optional app for locking apps.", safety: "safe" },
- { pkg: "com.nothing.appservice", label: "Appservice", description: "Nothing System Service Not sure if you need this.", safety: "caution" },
- { pkg: "com.nothing.bpf", label: "Bpf", description: "Needed for connection?", safety: "caution" },
- { pkg: "com.nothing.camera", label: "Camera", description: "Camera Nothing stock camera", safety: "caution" },
- { pkg: "com.nothing.cardservice", label: "Cardservice", description: "NothingCardService WARNING: breaks Nothing Widgets when switching to dark or light mode.", safety: "caution" },
- { pkg: "com.nothing.dirac", label: "Dirac", description: "Audio EQ (equalizer). Some 3rd-party music apps can use it to provide you EQ features.", safety: "caution" },
- { pkg: "com.nothing.dirac.DMP", label: "DMP", description: "Audio EQ (equalizer). Some 3rd-party music apps can use it to provide you EQ features.", safety: "caution" },
- { pkg: "com.nothing.enginnerservice", label: "Enginnerservice", description: "Hidden diagnostics without activity frameworks with Qualcomm.", safety: "safe" },
- { pkg: "com.nothing.experience", label: "Experience", description: "Useless frameworks and collection data.", safety: "safe" },
- { pkg: "com.nothing.experimental", label: "Experimental", description: "Experimental features like CONNECT TO TESLA", safety: "safe" },
- { pkg: "com.nothing.glyphnotification", label: "Glyphnotification", description: "Needed for glyph notifications?", safety: "caution" },
- { pkg: "com.nothing.hearthstone", label: "Hearthstone", description: "Nothing Widgets Widgets that can be found in homescreen.", safety: "caution" },
- { pkg: "com.nothing.launcher", label: "Launcher", description: "Launcher Stock launcher", safety: "caution" },
- { pkg: "com.nothing.launcher.overlay.config", label: "Config", description: "Useless overlay to recent activity", safety: "safe" },
- { pkg: "com.nothing.logkit", label: "Logkit", description: "Hidden tool for logs.", safety: "safe" },
- { pkg: "com.nothing.proxy", label: "Proxy", description: "It's for battery optimization", safety: "caution" },
- { pkg: "com.nothing.smartcenter", label: "Smartcenter", description: "Nothing X It's something for earphones and testing.", safety: "safe" },
- { pkg: "com.nothing.soundrecorder", label: "Soundrecorder", description: "Sound recorder Sound recorder app.", safety: "caution" },
- { pkg: "com.nothing.systemuitool", label: "Systemuitool", description: "I think it's an important app", safety: "keep" },
- { pkg: "com.nothing.thirdparty", label: "Thirdparty", description: "Breaks the Glyph API, Composer and other apps that rely on the Glyph feature will not work anymore.", safety: "caution" },
- { pkg: "com.nothing.wallpapersstub", label: "Wallpapersstub", description: "Needed for basic wallpapers", safety: "caution" },
- { pkg: "com.nothing.weather", label: "Weather", description: "Weather Nothing Weather", safety: "safe" },
- { pkg: "com.novatek.novavis", label: "Novavis", description: "Debugs, broadcast id?", safety: "caution" },
- { pkg: "com.nt.android.overlay.gmsconfig.safetycenter", label: "Safetycenter", description: "Useless overlay to nothing gmsconfig safetycenter", safety: "safe" },
- { pkg: "com.nt.android.overlay.gmsconfig.settings", label: "Settings", description: "Useless overlay to nothing gmsconfig settings", safety: "safe" },
- { pkg: "com.nt.android.overlay.gmsconfig.settingsprovider", label: "Settingsprovider", description: "Useless overlay to nothing gmsconfig settingsprovider", safety: "safe" },
- { pkg: "com.nt.diagswitch", label: "Diagswitch", description: "Hidden USB Diag Switch, adb diagnostics.", safety: "safe" },
- { pkg: "com.nt.facerecognition", label: "Facerecognition", description: "Needed for face recognition.", safety: "safe" },
- { pkg: "com.nt.grantpermission", label: "Grantpermission", description: "Hidden grant permissions. You can get it by typing in dialer: *#*#3424*#*#", safety: "safe" },
- { pkg: "com.nt.ledlighttest", label: "Ledlighttest", description: "Led Light Test You can get it by typing in dialer: *#*#533*#*#", safety: "safe" },
- { pkg: "com.nt36xxxtouchscreen.deltadiff", label: "Deltadiff", description: "Audio test frequency(KHz) to com.vivo.bsptest.", safety: "safe" },
- { pkg: "com.nttdocomo.android.felicaremotelock", label: "Felicaremotelock", description: "This is used to lock the Osaifu-Keitai (FeliCa), works with Omakase-lock (com.nttdocomo.android.remotelock). Safe to remove.", safety: "safe" },
- { pkg: "com.nttouchscreen.getdata", label: "Getdata", description: "Testing things to com.vivo.bsptest.", safety: "safe" },
- { pkg: "com.nttouchscreen.mptest", label: "Mptest", description: "Novatek MP selftest Testing things to com.vivo.bsptest.", safety: "safe" },
- { pkg: "com.nuance.swype.emui", label: "Emui", description: "Huawei Swype functions. Is it the full Swype keyboard or only the Swype function on Huawei keyboard ? NOTE : Nuance company said it would discontinue support of the Swype keyboard app.", safety: "safe" },
- { pkg: "com.nuumobile.agingtest", label: "Agingtest", description: "The com.nuumobile.agingtest package is used for running diagnostic tests related to hardware aging or wear, likely provided by the OEM. Since this package is mainly for diagnostic purposes and does not impact the core functionality of the device, it is safe to remove.", safety: "safe" },
- { pkg: "com.oem.autotest", label: "Autotest", description: "Auto Test Server Used to test the hardware of your device and change hidden settings.", safety: "safe" },
- { pkg: "com.oem.euiccpartnerapp.overlay.retca", label: "Retca", description: "This package is related to the eUICC (embedded Universal Integrated Circuit Card) partner application, specifically an OEM overlay that deals with eSIM functionality and management.", safety: "caution" },
- { pkg: "com.oem.logkitsdservice", label: "Logkitsdservice", description: "Used by com.oem.oemlogkit, a shady logging app. Doesn't run by default, but can easily be triggered by system apps.", safety: "safe" },
+ { pkg: "com.vlingo.midas", label: "Midas", description: "Speech recognition app for the Vlingo personal assistant", safety: "safe" },
+ { pkg: "com.wsomacp", label: "Wsomacp", description: "omacp = OMA Client Provisioning. It is a protocol specified by the Open Mobile Alliance (OMA).", safety: "safe" },
+ { pkg: "com.wssnps", label: "Wssnps", description: "Samsung Backup and restore Manager (on Samsung Galaxy S7)", safety: "safe" },
+ { pkg: "tv.peel.samsung.app", label: "App", description: "Peel Smart Remote (WatchON)", safety: "safe" },
+ { pkg: "com.osp.app.signin", label: "Signin", description: "Samsung Account app", safety: "caution" },
+ { pkg: "com.policydm", label: "Policydm", description: "Samsung security policy update (https://play.google.com/store/apps/details?id=com.policydm)", safety: "caution" },
+ { pkg: "com.wssyncmldm", label: "Wssyncmldm", description: "Software update", safety: "caution" },
+ { pkg: "com.android.email.partnerprovider.overlay", label: "Overlay", description: "Theme overlay for partnerprovider?", safety: "caution" },
+ { pkg: "cn.oneplus.photos", label: "Photos", description: "Shot On OnePlus", safety: "safe" },
+ { pkg: "com.example.wifirftest", label: "Wifirftest", description: "Wifi Radio Frequency test", safety: "safe" },
+ { pkg: "com.fingerprints.fingerprintsensortest", label: "Fingerprintsensortest", description: "Sensor Test Tool", safety: "safe" },
+ { pkg: "com.oem.autotest", label: "Autotest", description: "Auto Test Server", safety: "safe" },
+ { pkg: "com.oem.logkitsdservice", label: "Logkitsdservice", description: "Used by com.oem.oemlogkit, a shady logging app.", safety: "safe" },
{ pkg: "com.oem.nfc", label: "Nfc", description: "OnePlus NFC tester", safety: "safe" },
- { pkg: "com.oem.oemlogkit", label: "Oemlogkit", description: "OnePlus LogKit Shady logging app that system apps can use to log WiFi traffic, Bluetooth traffic, NFC activity, GPS coordinates over time, power consumption, modem signal/data details,\"lag issues,\" and more. https://thehackernews.com/2017/11/oneplus-logkit-app.html https://www.bleepingcomputer.com/news/security/second-oneplus-factory-app-discovered-this-one-dumps-photos-wifi-and-gps-logs/ https://web.archive.org/web/20210611122551/https://twitter.com/fs0c131y/status/930773795656396801", safety: "safe" },
- { pkg: "com.onyx.aiassistant", label: "Aiassistant", description: "Onyx Boox AI Assistant. Safe to remove", safety: "safe" },
- { pkg: "com.onyx.android.ksync", label: "Ksync", description: "Ksync app. UNSAFE to remove because it will crash the Onyx launcher but you can safely disable it", safety: "keep" },
- { pkg: "com.onyx.android.production.test", label: "Test", description: "Test app enabled by clicking 5 times on the Onyx Version, it contains tests for screen quality", safety: "safe" },
- { pkg: "com.onyx.appmarket", label: "Appmarket", description: "The Onyx Store app, you will not have any other way to install app if you uninstall it You will need to install an alternative store via adb", safety: "caution" },
- { pkg: "com.onyx.calculator", label: "Calculator", description: "The Onyx calculator app", safety: "safe" },
- { pkg: "com.onyx.clock", label: "Clock", description: "The Onyx Clock app", safety: "safe" },
- { pkg: "com.onyx.dict", label: "Dict", description: "The Onyx Dict app", safety: "safe" },
- { pkg: "com.onyx.easytransfer", label: "Easytransfer", description: "Onyx Easy Transfer app", safety: "safe" },
- { pkg: "com.onyx.gallery", label: "Gallery", description: "Onyx Gallery app", safety: "safe" },
- { pkg: "com.onyx.igetshop", label: "Igetshop", description: "Onyx iGetShot app, UNSAFE to remove because it will crash the Onyx Launcher but safe to DISABLE", safety: "keep" },
- { pkg: "com.onyx.kime", label: "Kime", description: "Onyx Kime app", safety: "safe" },
- { pkg: "com.onyx.kreader", label: "Kreader", description: "Onyx KReader app, UNSAFE to remove because it will crash the Onyx Launcher can be safely disabled. Remember to load another reader app", safety: "keep" },
- { pkg: "com.onyx.latinime", label: "Latinime", description: "The Onyx Keyboard. Removing it will leave withe google STT keyboard.", safety: "safe" },
- { pkg: "com.onyx.mail", label: "Mail", description: "Onyx Mail app", safety: "safe" },
- { pkg: "com.onyx.musicplayer", label: "Musicplayer", description: "Onyx Music Player app", safety: "safe" },
- { pkg: "com.onyx.voicerecorder", label: "Voicerecorder", description: "Onyx Voice Recorder app", safety: "safe" },
- { pkg: "com.opos.ads", label: "Ads", description: "Chinese ads click tracking", safety: "safe" },
- { pkg: "com.osp.app.signin", label: "Signin", description: "Samsung Account app Lots of trackers in this app. Has a huge list of permissions. It is an essential app for a lot of samsung apps (which will be removed with the default selection in this list) Settings app will crash if removed on Android 11/OneUI 3.0+ (https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/39) This issue happens only if you are running Android 11. If not, you can can (and should) remove this package!", safety: "caution" },
- { pkg: "com.payjoy.access", label: "Access", description: "It's for lock device and probably safe mode.", safety: "safe" },
- { pkg: "com.payjoy.permission", label: "Permission", description: "It's for lock device and probably safe mode.", safety: "safe" },
- { pkg: "com.policydm", label: "Policydm", description: "Samsung security policy update (https://play.google.com/store/apps/details?id=com.policydm) Updatable policy files designed to increase android security and detect malicious behaviour. Has nothing to do with OTA updates or Android Security patches. Can be removed without issue (https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/15) See\"com.samsung.android.spdclient\" for more information.", safety: "caution" },
- { pkg: "com.preff.kb.xm", label: "Xm", description: "'Emoji & Font Keyboard' on Xiaomi. Xiaomi won't let me uninstall it. If it's same for you, consider disabling it instead. Make sure to install an alternate keyboard app before doing so.", safety: "caution" },
- { pkg: "com.qeexo.smartshot", label: "Smartshot", description: "Smart Screenshots Smart Screenshots? Disable it doesnt affecting normal screenshots.", safety: "safe" },
- { pkg: "com.qiyi.video", label: "Video", description: "IQIYI (https://play.google.com/store/apps/details?id=com.qiyi.video) Online video platform from Baidu (https://en.wikipedia.org/wiki/IQiyi). I didn't know this is currently one of the largest online video sites in the world, with nearly 6 billion hours spent on its service each month, and over 500 million monthly active users.", safety: "safe" },
- { pkg: "com.qorvo.uwb.vendorservice", label: "Vendorservice", description: "Unknown app that has something to .android.UwbApp and NFC_SET_CONTROLLER_ALWAYS_ON permission.", safety: "caution" },
- { pkg: "com.qti.backupagent", label: "Backupagent", description: "Backup Agent hidden app for chinese phones backups SMS,MMS,Contacts", safety: "safe" },
- { pkg: "com.qti.primarycardcontroller", label: "Primarycardcontroller", description: "Sim card things about detected or switching, some chinese phones uses qualcomm names apps instead of normal", safety: "keep" },
- { pkg: "com.qti.vzw.ims.internal.tests", label: "Tests", description: "Seems to be linked with Verizon internal tests but many sources including XDA developers suggest getting rid", safety: "caution" },
- { pkg: "com.qualcomm.qti.carrierconfigure", label: "Carrierconfigure", description: "Carrier Configure, Configures carrier, only for some china phones uses qualcomm names", safety: "keep" },
- { pkg: "com.qualcomm.qti.extsettings", label: "Extsettings", description: "Needed for hotspot, some chinese phones uses qualcomm names apps", safety: "keep" },
- { pkg: "com.qualcomm.qti.gpudrivers.pineapple.api34", label: "Api34", description: "Qualcomm GPU Drivers", safety: "keep" },
- { pkg: "com.qualcomm.qti.notificationservice", label: "Notificationservice", description: "High Battery Temperature Wrong named package, theres only high temperature notification. it's app for some chinese phones", safety: "safe" },
- { pkg: "com.qualcomm.qti.qs", label: "Qs", description: "Quick settings to mobile data internet, some chinese phones uses qualcomm names apps instead of normal", safety: "keep" },
- { pkg: "com.qualcomm.qti.securemsm.mdtp", label: "Mdtp", description: "MdtpService Only logs found", safety: "safe" },
- { pkg: "com.qualcomm.qti.sva", label: "Sva", description: "Qualcomm Voice Activation It has a lot of things like training voice, tutorial, debug mode.", safety: "safe" },
- { pkg: "com.qualcomm.qti.tetherservice", label: "Tetherservice", description: "Needed for tethering, some chinese phones use qualcomm names apps instead of normal", safety: "keep" },
- { pkg: "com.qualcomm.qti.tm", label: "Tm", description: "Task manager hidden app for chinese phones", safety: "safe" },
- { pkg: "com.qualcomm.qti.trustedui", label: "Trustedui", description: "trusteduiservice Trusted UI debugging.", safety: "safe" },
- { pkg: "com.reallytek.wg", label: "Wg", description: "Calibration, Test Camera things.", safety: "safe" },
- { pkg: "com.recognize.number", label: "Number", description: "Identify unknown numbers Checking the code, this app looks useful only in China.", safety: "safe" },
- { pkg: "com.redbend.vdmc", label: "Vdmc", description: "Required for OTA on older LG and HTC devices. While neither of these companies make phones anymore, uninstalling this package results in \"vDM Client has stopped unexpectly\" and \"com.process.android.acore has stopped\", so best to leave this installed.", safety: "caution" },
- { pkg: "com.redstone.ota.ui", label: "Ui", description: "This malware disguises itself as an update app, tracks the user and installs malware in the background. https://www.virustotal.com/gui/file/0aefcffd253e575474dbbbf1f60d77cfaa679c0abe3241d0ee397fbbb2ad9924/details https://www.malwarebytes.com/blog/news/2021/04/pre-installed-auto-installer-threat-found-on-android-mobile-devices-in-germany https://thehackernews.com/2021/04/pre-installed-malware-dropper-found-on.html", safety: "safe" },
- { pkg: "com.redteamobile.virtual.softsim", label: "Softsim", description: "It's for vsim = virtual sim", safety: "safe" },
- { pkg: "com.ringclip", label: "Ringclip", description: "Ringtone editing.", safety: "caution" },
- { pkg: "com.rongcard.eid", label: "Eid", description: "eid probably means Electronic ID. This presumably handles something related to that. Useful only in China.", safety: "safe" },
- { pkg: "com.rongcard.eidapi", label: "Eidapi", description: "Eid-Service It's something about card chips or online identity? Useful only in China. Has a lot of logs in code.", safety: "safe" },
- { pkg: "com.rsupport.rsperm.ntt", label: "Ntt", description: "Remote support service I found only permissions and not explained buttons in the code this app.", safety: "safe" },
- { pkg: "com.sagereal.lcmtest", label: "Lcmtest", description: "Secret code: 88. LCD, LCM Test.", safety: "safe" },
- { pkg: "com.scanning.agold.agoldscanning", label: "Agoldscanning", description: "\"Scan\" Settings > intelligent assistant: Scan. QR code & Bar code scanner.", safety: "caution" },
- { pkg: "com.scee.psxandroid", label: "Psxandroid", description: "PlayStation app https://play.google.com/store/apps/details?id=com.scee.psxandroid", safety: "safe" },
- { pkg: "com.scorpio.securitycom", label: "Securitycom", description: "SecurityPlugin It cant be uninstalled.", safety: "keep" },
- { pkg: "com.ses.entitlement.o2", label: "O2", description: "O2 carrier app. Unknown.", safety: "caution" },
- { pkg: "com.sgrl.fmradio", label: "Fmradio", description: "FM Radio Safe to remove if unused.", safety: "caution" },
- { pkg: "com.sgrl.pjj.factorymode", label: "Factorymode", description: "FactoryMode, Calibration, Testing hardware things.", safety: "safe" },
- { pkg: "com.sh.smart.caller", label: "Caller", description: "Bloated Phone caller app with a lot of features. These apps have telemetry on them and are completely replaceable.", safety: "safe" },
- { pkg: "com.shannon.qualifiednetworksservice", label: "Qualifiednetworksservice", description: "Needed for RCS, IMS.", safety: "caution" },
- { pkg: "com.silead.fingerprint", label: "Fingerprint", description: "Fingerprint silead manager Hidden app for testing Fingerprint things. Not needed for normal users.", safety: "safe" },
- { pkg: "com.simalliance.openmobileapi.eseterminal", label: "Eseterminal", description: "The com.simalliance.openmobileapi.eseterminal package is part of the Open Mobile API framework, which provides services for accessing and managing Secure Elements (SEs) on the device, such as SIM cards or embedded secure elements. This package specifically handles communication with the ESE (Embedded Secure Element) terminal. Removing this package might affect the device's ability to interact with certain secure services or applications that rely on the SE framework. While it is not crucial for basic device functionality, it may impact specific features related to secure transactions or services.", safety: "caution" },
- { pkg: "com.sina.weibo", label: "Weibo", description: "Chinese Weibo app.", safety: "safe" },
- { pkg: "com.siso.app.generic", label: "Generic", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.siso.app.genericprintservice", label: "Genericprintservice", description: "Completely empty package. Useless.", safety: "safe" },
- { pkg: "com.skms.android.agent", label: "Agent", description: "Samsung KMS agent service a client application for Android devices to support eSE-based (embedded secure element) mobile-NFC Services. https://developer.samsung.com/ese/overview.html KMS = Key Management System KNOX feature (https://en.wikipedia.org/wiki/Samsung_Knox)", safety: "safe" },
- { pkg: "com.smile.gifmaker", label: "Gifmaker", description: "Chinese partner app 'Kuaishou'.", safety: "safe" },
- { pkg: "com.snap.camerakit.plugin.v1", label: "V1", description: "Camera Kit it's used for effects. https://play.google.com/store/apps/details?id=com.snap.camerakit.plugin.v1", safety: "safe" },
- { pkg: "com.softwinner.explore", label: "Explore", description: "File Manager of SoftWinner Can be disabled via system settings.", safety: "safe" },
- { pkg: "com.softwinner.service", label: "Service", description: "Possibly related to the firmware updater, since the updater has a similar name", safety: "caution" },
- { pkg: "com.sohu.inputmethod.sogou.meizu", label: "Meizu", description: "Chinese keyboard closed-source", safety: "caution" },
- { pkg: "com.sohu.inputmethod.sogou.nubia", label: "Nubia", description: "Chinese keyboard Closed-source (install other keyboard before removing this) Better alternative: https://f-droid.org/en/packages/dev.patrickgold.florisboard/", safety: "safe" },
- { pkg: "com.sohu.inputmethod.sogou.oem", label: "Oem", description: "Keyboard app used in some Chinese phones. There is a report that this keyboard might have contained security vulnerabilities in the past: https://citizenlab.ca/2024/04/vulnerabilities-across-keyboard-apps-reveal-keystrokes-to-network-eavesdroppers/", safety: "safe" },
- { pkg: "com.sohu.inputmethod.sogou.xiaomi", label: "Xiaomi", description: "Sogou keyboard for chinese only.", safety: "safe" },
- { pkg: "com.sohu.inputmethod.sogouoem", label: "Sogouoem", description: "Default keyboard", safety: "caution" },
- { pkg: "com.sohu.sohuvideo.emplayer", label: "Emplayer", description: "HiMoviePlayerPlus Weird app without any code and there's nothing in Main Activity.", safety: "safe" },
- { pkg: "com.sprd", label: "Sprd", description: "Unisoc's hidden aging test. Uninstalling it doesn't seem to break anything for Android 10 GO, S21 Plus 2021_EEA.", safety: "safe" },
- { pkg: "com.sprd.ImsConnectionManager", label: "ImsConnectionManager", description: "Needed for IMS, WiFi Calling.", safety: "caution" },
- { pkg: "com.sprd.autoslt", label: "Autoslt", description: "AutoSLT Useless camera tests.", safety: "safe" },
- { pkg: "com.sprd.cameracalibration", label: "Cameracalibration", description: "Camera calibration, tests.", safety: "safe" },
- { pkg: "com.sprd.cameraipcontrol", label: "Cameraipcontrol", description: "Secret code: 83785. CameraIPControl, has some camera features for testing.", safety: "safe" },
- { pkg: "com.sprd.camta", label: "Camta", description: "Hidden camera dump logs.", safety: "safe" },
- { pkg: "com.sprd.engineermode", label: "Engineermode", description: "Testing Hardware Components", safety: "safe" },
- { pkg: "com.sprd.firewall", label: "Firewall", description: "Blacklist Calls.", safety: "caution" },
- { pkg: "com.sprd.flashcontrol", label: "Flashcontrol", description: "Flashlight Control, not sure how useful it is.", safety: "caution" },
- { pkg: "com.sprd.linkturbo", label: "Linkturbo", description: "For WiFi speed? Has useless logs. I ran a speed test with it enabled and disabled, I don't see anything different if not my internet is slightly better now along with other apps being disabled,", safety: "safe" },
- { pkg: "com.sprd.logmanager", label: "Logmanager", description: "YLog Hidden logs", safety: "safe" },
- { pkg: "com.sprd.omacp", label: "Omacp", description: "OTA Config and Settings.", safety: "caution" },
- { pkg: "com.sprd.overlay.sprdnote", label: "Sprdnote", description: "Overlay to 'com.sprd.sprdnote' png icons.", safety: "caution" },
- { pkg: "com.sprd.powersavemodelauncher", label: "Powersavemodelauncher", description: "PowerSaveModeLauncher Unisoc's default home app/launcher for Ultra saving mode connects to the internet. May oddly appear as disabled to UADng and NetGuard. https://www.virustotal.com/gui/file/787a4de0bc440c62bde9bf913c6f9ba188307d850e1ee6fb575ad62950cfbdc1", safety: "keep" },
- { pkg: "com.sprd.providers.photos", label: "Photos", description: "Photos Types Storage Bokeh, portrait, FDR, AI photo.", safety: "caution" },
- { pkg: "com.sprd.quickcamera", label: "Quickcamera", description: "camera agent Another app for testing camera things.", safety: "safe" },
- { pkg: "com.sprd.runtime", label: "Runtime", description: "RuntimeTest", safety: "safe" },
- { pkg: "com.sprd.srmi", label: "Srmi", description: "Hidden logs in code only.", safety: "safe" },
- { pkg: "com.sprd.systemupdate", label: "Systemupdate", description: "Another update app by Zhantang, this one seems to provide updates unlike other app com.redstone.ota.ui, which is a dropper. Removing it after your update support ends is probably the safest option.", safety: "caution" },
- { pkg: "com.sprd.uasetting", label: "Uasetting", description: "UserAgent Setting UserAgent Setting? Useless frameworks.", safety: "safe" },
- { pkg: "com.sprd.uplmnsettings", label: "Uplmnsettings", description: "Set UPLMN? Useless frameworks.", safety: "safe" },
- { pkg: "com.sprd.validationtools", label: "Validationtools", description: "Hidden testing hardware and it has a lot of secret codes.", safety: "safe" },
- { pkg: "com.spreadtrum.csvt", label: "Csvt", description: "potentially riskware, (sends information to another infamously hacked apk com.redstone.ota.ui). However it seems to work for handling 3G mobile data(and all broadcasts over 3G) It should not be removed if your provider/government works over 3G, any emergency message might fail. it is also a SOC, so removing ought to be careful.", safety: "caution" },
- { pkg: "com.spreadtrum.ims", label: "Ims", description: "Needed for WiFi calling, VoLTE, VoWifi.", safety: "caution" },
- { pkg: "com.spreadtrum.proxy.nfwlocation", label: "Nfwlocation", description: "Carrier location Carrier location? Sends location to carrier probably. Useless Map Collections, also probably it's for testing location.", safety: "safe" },
- { pkg: "com.spreadtrum.sgps", label: "Sgps", description: "A Chinese spyware GPS system app, consider removing if your phone doesn't have a GPS sensor. This app is developed by a company called Zhantang, the same organization that made a dropper malware (com.redstone.ota.ui): https://www.malwarebytes.com/blog/news/2021/04/pre-installed-auto-installer-threat-found-on-android-mobile-devices-in-germany https://thehackernews.com/2021/04/pre-installed-malware-dropper-found-on.html", safety: "safe" },
- { pkg: "com.spreadtrum.vce", label: "Vce", description: "Useless logs (dialer google, volte)", safety: "safe" },
- { pkg: "com.spreadtrum.vowifi", label: "Vowifi", description: "WiFi Calling Test Hidden tests WiFi calling.", safety: "safe" },
- { pkg: "com.spreadtrum.vowifi.conf", label: "Conf", description: "VoWifi config Secret Code: 869434234", safety: "caution" },
- { pkg: "com.srin.indramayu", label: "Indramayu", description: "Samsung Gift Indonesia Special application from Samsung that provides special offers and privileges for Indonesian users", safety: "safe" },
- { pkg: "com.ss.android.article.news", label: "News", description: "Chinese app NEWS Toutiao.", safety: "safe" },
- { pkg: "com.ss.android.ugc.aweme", label: "Aweme", description: "Chinese TikTok.", safety: "safe" },
- { pkg: "com.st.nfc.dta.mobile", label: "Mobile", description: "STNFCDta Unknown checking app (NFC UID gen mode, NFC CDL value, CR version, Extended RF frame size, T4AT priority over P2P).", safety: "caution" },
- { pkg: "com.stability.camerastability", label: "Camerastability", description: "CameraStability Hidden camera test", safety: "safe" },
- { pkg: "com.stevesoltys.seedvault", label: "Seedvault", description: "Seedvault: https://github.com/seedvault-app/seedvault Open source component for custom ROMs for backuping up apps (and files) with Android's internal backup APIs Useful but should be safe to remove, there aren't other rootless backup tools Does not run in the background unless the user uses it.", safety: "caution" },
- { pkg: "com.suntek.mway.rcs.app.service", label: "Service", description: "RCS service, contains a lot of Chinese.", safety: "safe" },
- { pkg: "com.svox.pico", label: "Pico", description: "Pico TTS Open source TTS engine shipped on old Android devices and some custom ROMs Uninstalling this without installing a TTS engine will break TTS, it also doesn't access the internet so there's not much to gain", safety: "caution" },
- { pkg: "com.swfp.factory", label: "Factory", description: "Fingerprint test Hidden app that tests your fingerprint not available for users.", safety: "safe" },
- { pkg: "com.t2m.euiccoverlay", label: "Euiccoverlay", description: "Possibly needed for eSIM (eUICC)", safety: "caution" },
- { pkg: "com.taboola.scoop", label: "Scoop", description: "Random wallpaper on lock screen (as i saw it personalizes it too). You need to open this app to make it work and when you swipe from right to left, it opens a menu on the right where random news appears.", safety: "safe" },
- { pkg: "com.talpa.hiservice", label: "Hiservice", description: "HiLanguageService Useless frameworks.", safety: "safe" },
- { pkg: "com.tblenovo.center", label: "Center", description: "Useless dashboard related to the User Experience Program (com.lenovo.ue.device). Has 25 permissions (including ones you probably don't want to give to this kind of sketchy app Pithus analysis: https://beta.pithus.org/report/dcb4acac003896077eaaeb8c7dc770d3171891784d98f7127f8495a3dec9954d", safety: "safe" },
- { pkg: "com.tblenovo.lenovotips", label: "Lenovotips", description: "Useless Lenovo Tips app used by Lenovo to display un-dismissable and un-mutable ads in notifications. https://news.ycombinator.com/item?id=28382081", safety: "safe" },
- { pkg: "com.tcl.android.launcher", label: "Launcher", description: "Smart Launcher Stock Launcher app.", safety: "caution" },
- { pkg: "com.tcl.android.launcher.a_overlay", label: "A_overlay", description: "Another useless Chinese bookmarks icon overlay.", safety: "safe" },
- { pkg: "com.tcl.android.launcher.hotapp", label: "Hotapp", description: "Hot Apps. Unrelated to Recent Apps (launcher and/or app-switcher). Seemingly empty, but requests network+internet access. The manifest references `com.bumptech.glide.integration.okhttp3.OkHttpGlideModule`", safety: "safe" },
- { pkg: "com.tcl.android.launchertheme.res", label: "Res", description: "Launcher theme resources It's needed for themes, probably not sure if it's an important app.", safety: "caution" },
- { pkg: "com.tcl.android.launchertheme.res.overlay", label: "Overlay", description: "Package: com.tcl.android.launchertheme.res.overlay", safety: "caution" },
- { pkg: "com.tcl.android.wallpaper.livepicker", label: "Livepicker", description: "Package: com.tcl.android.wallpaper.livepicker", safety: "caution" },
- { pkg: "com.tcl.aota.a_overlay", label: "A_overlay", description: "Package: com.tcl.aota.a_overlay", safety: "caution" },
- { pkg: "com.tcl.camera", label: "Camera", description: "Package: com.tcl.camera", safety: "caution" },
- { pkg: "com.tcl.camera.a_overlay", label: "A_overlay", description: "Package: com.tcl.camera.a_overlay", safety: "caution" },
- { pkg: "com.tcl.compass", label: "Compass", description: "Package: com.tcl.compass", safety: "caution" },
- { pkg: "com.tcl.compass.a_overlay", label: "A_overlay", description: "Package: com.tcl.compass.a_overlay", safety: "caution" },
- { pkg: "com.tcl.demopage", label: "Demopage", description: "Package: com.tcl.demopage", safety: "caution" },
- { pkg: "com.tcl.entitlement", label: "Entitlement", description: "Package: com.tcl.entitlement", safety: "caution" },
- { pkg: "com.tcl.faceunlock", label: "Faceunlock", description: "Standard FaceUnlock functionality? Unlock your device by simply looking at the display. Face unlock is bad for security and privacy: https://www.ubergizmo.com/2017/03/galaxy-s8-facial-unlock-photograph/ https://www.kaspersky.com/blog/face-unlock-insecurity/21618/ https://www.freecodecamp.org/news/why-you-should-never-unlock-your-phone-with-your-face-79c07772a28/", safety: "caution" },
- { pkg: "com.tcl.fmradio", label: "Fmradio", description: "Radio Stock Radio app", safety: "caution" },
- { pkg: "com.tcl.fmradio.a_overlay", label: "A_overlay", description: "Another useless icon overlay.", safety: "safe" },
- { pkg: "com.tcl.fota.system", label: "System", description: "System Update Provides System Updates.", safety: "caution" },
- { pkg: "com.tcl.fota.system.a_overlay", label: "A_overlay", description: "Package: com.tcl.fota.system.a_overlay", safety: "caution" },
- { pkg: "com.tcl.guard", label: "Guard", description: "TGuard. Runs in the background on boot. Has these services:\"Online Support\" (related to `com.tcl.usercare`?),\"IO Limit\",\"Health\" (device health?) stuff, battery and low-storage diagnostics. On model T509A, it links to `libTclRootCheck.so` (native shared dynamic library), very sus.", safety: "caution" },
- { pkg: "com.tcl.healthy", label: "Healthy", description: "Package: com.tcl.healthy", safety: "caution" },
- { pkg: "com.tcl.keyguardcharginganimation", label: "Keyguardcharginganimation", description: "Useless frameworks.", safety: "safe" },
- { pkg: "com.tcl.keyguardshortcut", label: "Keyguardshortcut", description: "Useless frameworks.", safety: "safe" },
- { pkg: "com.tcl.kidsmode", label: "Kidsmode", description: "Kids Mode It's an app for limiting spending time on apps for kids probably.", safety: "safe" },
- { pkg: "com.tcl.logger.a_overlay", label: "A_overlay", description: "Another useless icon overlay.", safety: "safe" },
- { pkg: "com.tcl.mibc.tclplus", label: "Tclplus", description: "Package: com.tcl.mibc.tclplus", safety: "caution" },
- { pkg: "com.tcl.mibc.tclplus.a_overlay", label: "A_overlay", description: "Package: com.tcl.mibc.tclplus.a_overlay", safety: "caution" },
- { pkg: "com.tcl.nfc.gsma.usermenu", label: "Usermenu", description: "Package: com.tcl.nfc.gsma.usermenu", safety: "caution" },
- { pkg: "com.tcl.screenrecorder", label: "Screenrecorder", description: "Package: com.tcl.screenrecorder", safety: "caution" },
- { pkg: "com.tcl.screenrecorder.a_overlay", label: "A_overlay", description: "Package: com.tcl.screenrecorder.a_overlay", safety: "caution" },
- { pkg: "com.tcl.screenshotex", label: "Screenshotex", description: "Package: com.tcl.screenshotex", safety: "caution" },
- { pkg: "com.tcl.sos", label: "Sos", description: "Package: com.tcl.sos", safety: "caution" },
- { pkg: "com.tcl.tclswitch.a_overlay", label: "A_overlay", description: "Package: com.tcl.tclswitch.a_overlay", safety: "caution" },
- { pkg: "com.tcl.tct.filemanager", label: "Filemanager", description: "File Manager Stock File Manager app", safety: "caution" },
- { pkg: "com.tcl.tct.weather", label: "Weather", description: "Weather Stock Weather app for TCL Phones.", safety: "caution" },
- { pkg: "com.tcl.token", label: "Token", description: "Token it's for ECID number but it's safe to remove. Secret code 7383243.", safety: "safe" },
- { pkg: "com.tcl.ttvs", label: "Ttvs", description: "TCSCore. Runs in the background all the time. Uses some Google tracking APIs. May request permission `org.microg.gms.STATUS_BROADCAST`, probably for detecting\"illegitimate\" Play Services installations.", safety: "caution" },
- { pkg: "com.tcl.usercare", label: "Usercare", description: "Support Centre, alcatel support. Safe to remove", safety: "safe" },
- { pkg: "com.tcl.usercare.a_overlay", label: "A_overlay", description: "Another useless icon overlay.", safety: "safe" },
- { pkg: "com.tclhz.gallery", label: "Gallery", description: "Gallery Stock Gallery app", safety: "caution" },
- { pkg: "com.tclhz.gallery.a_overlay", label: "A_overlay", description: "Package: com.tclhz.gallery.a_overlay", safety: "caution" },
- { pkg: "com.tct", label: "Tct", description: "Package: com.tct", safety: "caution" },
- { pkg: "com.tct.aio", label: "Aio", description: "TCT All in One Configuration It probably collects some data and CheckForUpdateTask OTA.", safety: "caution" },
- { pkg: "com.tct.android.SaleCalib", label: "SaleCalib", description: "Hidden camera after sale calibration.", safety: "safe" },
- { pkg: "com.tct.android.browser", label: "Browser", description: "Browser Better use other browser.", safety: "safe" },
- { pkg: "com.tct.android.secureinput", label: "Secureinput", description: "Useless secure input for keycode.", safety: "safe" },
- { pkg: "com.tct.android.video", label: "Video", description: "Video Player Stock Video Player app for TCL phones.", safety: "caution" },
- { pkg: "com.tct.applock", label: "Applock", description: "App lock It's just app lock with password or pin.", safety: "safe" },
- { pkg: "com.tct.batterywarning", label: "Batterywarning", description: "Battery warning Displays only messages about low battery or too high temperature.", safety: "safe" },
- { pkg: "com.tct.calculator", label: "Calculator", description: "Calculator Stock Calculator app", safety: "caution" },
- { pkg: "com.tct.calculator.a_overlay", label: "A_overlay", description: "Package: com.tct.calculator.a_overlay", safety: "caution" },
- { pkg: "com.tct.camera", label: "Camera", description: "Camera Stock Camera app", safety: "caution" },
- { pkg: "com.tct.camera.a_overlay", label: "A_overlay", description: "Useless overlay. It has only an icon and no code.", safety: "safe" },
- { pkg: "com.tct.camera.verifytool", label: "Verifytool", description: "Another hidden camera calibration and DualCamVerifyTool.", safety: "safe" },
- { pkg: "com.tct.cellular.arda", label: "Arda", description: "Package: com.tct.cellular.arda", safety: "caution" },
- { pkg: "com.tct.compass", label: "Compass", description: "Compass Stock Compass app", safety: "safe" },
- { pkg: "com.tct.contacts.transfer", label: "Transfer", description: "Transfer To Phone Contacts it's additional thing.", safety: "safe" },
- { pkg: "com.tct.contentcenter", label: "Contentcenter", description: "A panel that opens from the launcher (similar to\"samsung Free\"). Has news, weather forecasts, and a game center (similar to\"Game Booster\"). Has lots of trackers from facebook, bytedance, anythink, google, and other 3rd-parties", safety: "safe" },
- { pkg: "com.tct.diagprotector", label: "Diagprotector", description: "Package: com.tct.diagprotector", safety: "caution" },
- { pkg: "com.tct.dialer", label: "Dialer", description: "Phone Stock Phone app", safety: "caution" },
- { pkg: "com.tct.dialer.a_overlay", label: "A_overlay", description: "Package: com.tct.dialer.a_overlay", safety: "caution" },
- { pkg: "com.tct.endusertest", label: "Endusertest", description: "Unused device issue feedback app.", safety: "safe" },
- { pkg: "com.tct.entitlement", label: "Entitlement", description: "Requires Google Play services and is probably for Wi-Fi calling for O2 Carrier.", safety: "caution" },
- { pkg: "com.tct.faceunlock", label: "Faceunlock", description: "Standard FaceUnlock functionality? Unlock your device by simply looking at the display. Face unlock is bad for security and privacy: https://www.ubergizmo.com/2017/03/galaxy-s8-facial-unlock-photograph/ https://www.kaspersky.com/blog/face-unlock-insecurity/21618/ https://www.freecodecamp.org/news/why-you-should-never-unlock-your-phone-with-your-face-79c07772a28/", safety: "caution" },
- { pkg: "com.tct.gamemode", label: "Gamemode", description: "Game box Game box. Game Turbo. Not sure if it's worth keeping or not.", safety: "caution" },
- { pkg: "com.tct.gdpr", label: "Gdpr", description: "Whenever TCL updates their Privacy Policy, this app shows a notification prompting the user to read it. May include the\"User Experience Improvement Program\"", safety: "safe" },
- { pkg: "com.tct.iris", label: "Iris", description: "TCL NXTVISION\"Display Enhancements\". GPU-accelerated post-processing (\"shaders\") for images, videos, and games. Only good for pretty pictures, and (maybe) accessibility (clearer view). This is the back-end, see `com.tct.nxtvision_ui*` for the settings.", safety: "caution" },
- { pkg: "com.tct.iris.overlay_product", label: "Overlay_product", description: "Related to TCL NXTVISION", safety: "caution" },
- { pkg: "com.tct.logger", label: "Logger", description: "User Support it's for logs.", safety: "safe" },
- { pkg: "com.tct.multipleuser", label: "Multipleuser", description: "Multiple User I guess it's for multi-accounts.", safety: "safe" },
- { pkg: "com.tct.music", label: "Music", description: "Music Stock Music app", safety: "caution" },
- { pkg: "com.tct.nxtvision_ui", label: "Nxtvision_ui", description: "TCL NXTVISION (code-name `iris`) Settings front-end", safety: "caution" },
- { pkg: "com.tct.nxtvision_ui.overlay_product", label: "Overlay_product", description: "TCL NXTVISION (code-name `iris`) Settings front-end overlay", safety: "caution" },
- { pkg: "com.tct.onetouchbooster", label: "Onetouchbooster", description: "Smart Manager. For\"Optimization\" of: battery (energy), memory (RAM), and storage. Removing it might break power-save mode", safety: "caution" },
- { pkg: "com.tct.onetouchbooster.a_overlay", label: "A_overlay", description: "Likely related to Smart Manager", safety: "caution" },
- { pkg: "com.tct.phone", label: "Phone", description: "TCT Phone Services Sim card settings.", safety: "caution" },
- { pkg: "com.tct.privacymode", label: "Privacymode", description: "Package: com.tct.privacymode", safety: "caution" },
- { pkg: "com.tct.privacyprotect", label: "Privacyprotect", description: "Privacy Protection Another Security thing.", safety: "safe" },
- { pkg: "com.tct.privatespace", label: "Privatespace", description: "Private Space Only password things.", safety: "safe" },
- { pkg: "com.tct.reducesar", label: "Reducesar", description: "Hidden Modify the SAR mode.", safety: "safe" },
- { pkg: "com.tct.retaildemo", label: "Retaildemo", description: "Demo Mode is intended for use on shop demo devices only and it should never be activated on a normal user's device. Explained by TCL.", safety: "safe" },
- { pkg: "com.tct.retaildemo.a_overlay", label: "A_overlay", description: "Package: com.tct.retaildemo.a_overlay", safety: "caution" },
- { pkg: "com.tct.screenrecorder", label: "Screenrecorder", description: "Screen Recorder", safety: "caution" },
- { pkg: "com.tct.screenshotex", label: "Screenshotex", description: "Screenshot it's used for screenshots and editing them.", safety: "caution" },
- { pkg: "com.tct.secretCode", label: "SecretCode", description: "This app has only logs.", safety: "safe" },
- { pkg: "com.tct.setupwizard", label: "Setupwizard", description: "Setup Wizard it's needed only for first-boot setup.", safety: "safe" },
- { pkg: "com.tct.sidebar", label: "Sidebar", description: "Edge Bar Sidebar", safety: "safe" },
- { pkg: "com.tct.simplelauncher", label: "Simplelauncher", description: "Simple Launcher It's not needed for the Stock launcher and has SOS and other unnecessary stuff.", safety: "safe" },
- { pkg: "com.tct.simplelauncher.a_overlay", label: "A_overlay", description: "Package: com.tct.simplelauncher.a_overlay", safety: "caution" },
- { pkg: "com.tct.simsettings", label: "Simsettings", description: "Package: com.tct.simsettings", safety: "caution" },
- { pkg: "com.tct.smart.account", label: "Account", description: "Package: com.tct.smart.account", safety: "caution" },
- { pkg: "com.tct.smart.aikey", label: "Aikey", description: "Package: com.tct.smart.aikey", safety: "caution" },
- { pkg: "com.tct.smart.aota", label: "Aota", description: "OTA Updates or OTA Updates test?", safety: "caution" },
- { pkg: "com.tct.smart.cloud", label: "Cloud", description: "Package: com.tct.smart.cloud", safety: "caution" },
- { pkg: "com.tct.smart.drivemode", label: "Drivemode", description: "Package: com.tct.smart.drivemode", safety: "caution" },
- { pkg: "com.tct.smart.ircontrol", label: "Ircontrol", description: "IR Remote I think it's useless.", safety: "safe" },
- { pkg: "com.tct.smart.lostmode", label: "Lostmode", description: "Remote Lock It's for lost mode.", safety: "safe" },
- { pkg: "com.tct.smart.notes", label: "Notes", description: "Smart Notes Stock Notes app", safety: "caution" },
- { pkg: "com.tct.smart.push", label: "Push", description: "Smart Push Useless frameworks.", safety: "safe" },
- { pkg: "com.tct.smart.switchphone", label: "Switchphone", description: "Switch Phone it's app for Move apps to new or old phone.", safety: "safe" },
- { pkg: "com.tct.smart.switchphone.service", label: "Service", description: "Package: com.tct.smart.switchphone.service", safety: "caution" },
- { pkg: "com.tct.smart.tlink", label: "Tlink", description: "Easy Link It has something to do with screen casting. Dlna Cast Activity.", safety: "caution" },
- { pkg: "com.tct.soundrecorder", label: "Soundrecorder", description: "Sound Recorder An audio and screen recorder, lets you change voice.", safety: "caution" },
- { pkg: "com.tct.systemservice", label: "Systemservice", description: "It should be safe to remove. Only secret code to info about system but not sure.", safety: "caution" },
- { pkg: "com.tct.tctsmartapprecommend", label: "Tctsmartapprecommend", description: "Smart App Recommend Useless.", safety: "safe" },
- { pkg: "com.tct.usercare", label: "Usercare", description: "Support Center it's for TCL users support center app.", safety: "safe" },
- { pkg: "com.tct.video", label: "Video", description: "Package: com.tct.video", safety: "caution" },
- { pkg: "com.tct.weather", label: "Weather", description: "Weather forecasting app.", safety: "caution" },
- { pkg: "com.tct.weather.a_overlay", label: "A_overlay", description: "Overlay for com.tct.weather. Usage is not known.", safety: "caution" },
- { pkg: "com.tct.wfcwebiew", label: "Wfcwebiew", description: "WfcWebView WebView app for TCL Make sure to have another WebView before removing it.", safety: "caution" },
- { pkg: "com.tct.wfcwebview", label: "Wfcwebview", description: "I found something like entitlementMode but app looks very empty and useless.", safety: "safe" },
- { pkg: "com.ted.number", label: "Number", description: "Identification of Unknown Numbers App for identify unknown numbers.", safety: "safe" },
- { pkg: "com.teksun.factorytest", label: "Factorytest", description: "Hidden testing hardware things.", safety: "safe" },
- { pkg: "com.telephony.service", label: "Service", description: "Needed for WiFi Calling.", safety: "caution" },
- { pkg: "com.tencent.android.location", label: "Location", description: "Useless Tencent Chinese location", safety: "safe" },
- { pkg: "com.tencent.ngjp", label: "Ngjp", description: "Arena of Valor", safety: "safe" },
- { pkg: "com.tencent.qqlivehuawei", label: "Qqlivehuawei", description: "HiMoviePlayerPlus Weird app without any code and there's nothing in Main Activity.", safety: "safe" },
- { pkg: "com.tencent.soter.soterserver", label: "Soterserver", description: "Soter is a biometric authentication standard and platform by Tencent. https://github.com/Tencent/soter Provides biometric authentication for WeChat Pay. Safe to disable if you don't use it.", safety: "safe" },
- { pkg: "com.test.LTEfunctionality", label: "LTEfunctionality", description: "LTE, VoLTE testing app", safety: "safe" },
- { pkg: "com.test.logcollect", label: "Logcollect", description: "Bigme HiBreak Pro app to submit log reports when user requests it. Uploads Android and kernel logs to a Chinese cloud (Baidu). If uninstalled, Log Report button in the settings will not open a pop-up. Check that you have this phone before disabling! The package name is generic.", safety: "caution" },
- { pkg: "com.theme.icondefaultshape", label: "Icondefaultshape", description: "The shape of the icons can be uninstalled or left alone, it's just the look of the icon.", safety: "caution" },
- { pkg: "com.thinkuem.motolc", label: "Motolc", description: "ThinkIoT-UEM It has remote service but probably it's unused.", safety: "safe" },
- { pkg: "com.thundercomm.ar.core", label: "Core", description: "Looks like a debugging app. It's AR (Augmented Reality)?", safety: "safe" },
- { pkg: "com.tools.cit", label: "Cit", description: "Hidden testing hardware things.", safety: "safe" },
- { pkg: "com.touchscreen.vtstouchscreencheck", label: "Vtstouchscreencheck", description: "VtsTouchscreenCheck It's testing things app.", safety: "safe" },
- { pkg: "com.tran.netcon", label: "Netcon", description: "Netcon it's unneccessary", safety: "safe" },
- { pkg: "com.transsion", label: "Transsion", description: "Needed for screen unlock? Has Packages, Bluetooth permission. Probably unsafe.", safety: "caution" },
- { pkg: "com.transsion.XOSLauncher", label: "XOSLauncher", description: "Launcher with ads, tracking. After remove you will lose recent apps.", safety: "caution" },
- { pkg: "com.transsion.aftersalecalibrationtool", label: "Aftersalecalibrationtool", description: "Hidden camera tests, calibration.", safety: "safe" },
- { pkg: "com.transsion.agingfunction", label: "Agingfunction", description: "Another test mode, aging setting. secret code 2828, 2829, 2830", safety: "safe" },
- { pkg: "com.transsion.aisettings", label: "Aisettings", description: "Adds a shortcut on the Settings app that lets you manage your Folax AI (com.transsion.aivoiceassistant) settings. If you have already removed that package, it just displays a blank page. This can also be safely removed without issues.", safety: "safe" },
- { pkg: "com.transsion.aivoiceassistant", label: "Aivoiceassistant", description: "Very shady voice assistant called 'Folax' that comes preinstalled in Infinix phones, and is also packed with ads in the main ui. It needs every permission, and access to everything on your phone to run. It uses OpenAI as its backend. It constantly runs in the background after boot, and periodically phones home. You don't want this on your phone. This can be safely removed without issues.", safety: "safe" },
- { pkg: "com.transsion.aiwallpaper", label: "Aiwallpaper", description: "Mediocre AI Wallpaper Generator. Can be accessed from (Settings > Personalization). You can safely remove this without any issues if you don't use it.", safety: "safe" },
- { pkg: "com.transsion.aod", label: "Aod", description: "AlwaysOnDisplay", safety: "safe" },
- { pkg: "com.transsion.applock", label: "Applock", description: "AppLock Provides the only way to hide files and lock apps when using Transsion launchers (which the Transsion devices require for certain functionality like multiapps not working with other launchers). These are the only apps that hide files and lock apps with them. Removal breaks recents.", safety: "caution" },
- { pkg: "com.transsion.audioshare", label: "Audioshare", description: "Audio Share Allows you to share your device’s Bluetooth audio with wireless headphones or bluetooth speakers, allowing to listen to the same music with multiple people Pithus analysis: https://beta.pithus.org/report/0f21ba3944663e53da1d37be3c4253c2e89c3685fbff841127fed2a98e0000ec", safety: "safe" },
- { pkg: "com.transsion.auto", label: "Auto", description: "Driving Mode Driving Mode app.", safety: "safe" },
- { pkg: "com.transsion.autotest.factory", label: "Factory", description: "Factory. Testing Hardware Things.", safety: "safe" },
- { pkg: "com.transsion.avatar", label: "Avatar", description: "Is this for T-moji avatar services? it's useless.", safety: "safe" },
- { pkg: "com.transsion.batterylab", label: "Batterylab", description: "Will either kill your battery life or is the \"Battery & Power Saving\" section in the Settings app with many useful battery features, depending on device. Pithus analysis: https://beta.pithus.org/report/7ef2b186a74102828346f23b094ab2aaaad2c57806c7c18e7a23a494f3cc982c", safety: "caution" },
- { pkg: "com.transsion.batterylab.icon", label: "Icon", description: "Power Marathon It's only icon app.", safety: "caution" },
- { pkg: "com.transsion.beezedit", label: "Beezedit", description: "Ringtone Maker Require Google Play Services. Record media sound and edit or set it as ringtone.", safety: "safe" },
- { pkg: "com.transsion.bluetooth", label: "Bluetooth", description: "Airlink Bluetooth still work without this. (not sure if its needed for transfer files using bluetooth)", safety: "caution" },
- { pkg: "com.transsion.calculator", label: "Calculator", description: "Calculator Stock Calculator app. Lot of telemetry and are completely replaceable.", safety: "safe" },
- { pkg: "com.transsion.calendar", label: "Calendar", description: "Calendar Stock Calendar app", safety: "caution" },
- { pkg: "com.transsion.camera", label: "Camera", description: "Camera Stock camera app", safety: "caution" },
- { pkg: "com.transsion.carlcare", label: "Carlcare", description: "Carlcare (https://play.google.com/store/apps/details?id=com.transsion.carlcare) After-sales Service app. Lets you check spare parts price,warranty,repair status and nearest service center. Full of trackers. Talks with Facebook (https://reports.exodus-privacy.eu.org/fr/reports/com.transsion.carlcare/latest/)", safety: "safe" },
- { pkg: "com.transsion.childmode", label: "Childmode", description: "Kids Mode Phone monitoring app to control what the user the can do on the phone. Intrusive and use Firebase so it's sends data back to Google servers. Pithus analysis: https://beta.pithus.org/report/ca30c6d1d7c7625e0850c4114dfea5aab5118d391191d2c074cde1414bbccd8c", safety: "safe" },
- { pkg: "com.transsion.childmode.resoverlay", label: "Resoverlay", description: "Unused overlay to childmode.", safety: "safe" },
- { pkg: "com.transsion.chromecustomization", label: "Chromecustomization", description: "Chrome Assistant Customizes HomePage and uses Advertising ID.", safety: "safe" },
- { pkg: "com.transsion.connectx.mirror.source", label: "Source", description: "it's something for cast setting, file transfer setting, smart connect to pc by TCCP", safety: "safe" },
- { pkg: "com.transsion.datatransfer", label: "Datatransfer", description: "Backup and Restore Backup Contacts.", safety: "safe" },
- { pkg: "com.transsion.deadcycletest", label: "Deadcycletest", description: "DeadCycleTest Hidden tests.", safety: "safe" },
- { pkg: "com.transsion.deskclock", label: "Deskclock", description: "Clock Can manage alarms by this app.", safety: "caution" },
- { pkg: "com.transsion.dirac", label: "Dirac", description: "Improves audio quality depending on your surrounding environment and your headphones. Has the GET_TASKS/REAL_GET_TASKS permission which allows it to retrieve information about currently and recently running processes. Not sure why it needs this permission though. https://www.dirac.com/ Pithus analysis: https://beta.pithus.org/report/b2cf41f579c586468faa0270bf63699cca2b500887dba3a699ddd5e35507a1a9", safety: "caution" },
- { pkg: "com.transsion.dtsaudio", label: "Dtsaudio", description: "DTS Sound Very safe to disable and just serves as a way to modify audio playing and runs in the background and has telemetry can be replaced by other better apps", safety: "safe" },
- { pkg: "com.transsion.dualapp", label: "Dualapp", description: "Dual App Needed for Dual Apps.", safety: "safe" },
- { pkg: "com.transsion.faceid", label: "Faceid", description: "Needed for Face Unlock lock screen.", safety: "caution" },
- { pkg: "com.transsion.faceidsub", label: "Faceidsub", description: "Face Unlock Safe to remove if unused.", safety: "caution" },
- { pkg: "com.transsion.filemanagerx", label: "Filemanagerx", description: "File Manager App (https://play.google.com/store/apps/details?id=com.transsion.filemanagerx) Comes with 3 analytics/ads trackers (https://reports.exodus-privacy.eu.org/fr/reports/com.transsion.filemanagerx/latest/) It doesn't break anything upon disable, and uses telemetry. Similar to Google Files. Probably safe to disable. Further testing needed.", safety: "safe" },
- { pkg: "com.transsion.fmradio", label: "Fmradio", description: "WOW FM App for FM RADIO.", safety: "caution" },
- { pkg: "com.transsion.hamal", label: "Hamal", description: "It seems to be an\"aftersales user experience logging app\". Really shady app with questionable code (judgeWhiteUser() function. See https://github.com/0x192/universal-android-debloater/pull/112). Start at boot and can access phone number and IMEI (READ_PHONE_STATE). Pithus analysis: https://beta.pithus.org/report/35fd79ebbe51808196605146a62aaef13bc654477d917078a3ae5d3f06ba8836", safety: "safe" },
- { pkg: "com.transsion.health", label: "Health", description: "Tecno health app. Sends your personal data to Firebase google servers and Tecno servers. Those data can be shared with TRANSSION affiliated companies (see https://cdn.shalltry.com/transsionholdings/en/policy.html) Pithus analysis: https://beta.pithus.org/report/2b7cd35081a9fbc82a1da1741cb476d1edaa3262d46a204ea8456c99c4e1b976", safety: "safe" },
- { pkg: "com.transsion.healthlife", label: "Healthlife", description: "My Health Provides you with interesting and professional analyses of running, steps, weight management etc. https://play.google.com/store/apps/details?id=com.transsion.healthlife", safety: "safe" },
- { pkg: "com.transsion.hilauncher", label: "Hilauncher", description: "HiOS Launcher It have google analytics and it's so bloated. The recent apps button does not work after uninstallation.", safety: "keep" },
- { pkg: "com.transsion.hiparty", label: "Hiparty", description: "Hi Party Allows you to synchronize and play the same song across multiple *supported* devices. The app creates a wifi hotspot. You can connect up to 6 devices via QR code to simultaneously broadcast music. Needs permissions you probably doesn't want to give : READ_PHONE_STATE (can read phone number and IMEI) and ACCESS_FINE_LOCATION. Pithus analysis: https://beta.pithus.org/report/154ee6107d3f5bbb0819719fc7ce5fd17474135081f576f56c29bd26ed70ca14", safety: "safe" },
- { pkg: "com.transsion.infinix.xclub", label: "Xclub", description: "Pre-installed social network app: https://www.infinix.club/", safety: "safe" },
- { pkg: "com.transsion.iotservice", label: "Iotservice", description: "WelinkService PC Connect unneccessary things", safety: "safe" },
- { pkg: "com.transsion.itel.manual", label: "Manual", description: "Manual Guide Has guides to phone.", safety: "caution" },
- { pkg: "com.transsion.kolun.aiservice", label: "Aiservice", description: "it's for testing things and debugging.", safety: "safe" },
- { pkg: "com.transsion.kolun.assistant", label: "Assistant", description: "Smart Assistant App Nearly no code in the APK I got. Weird Pithus analysis: https://beta.pithus.org/report/7fbf0abbb2c28de4c976a388e04d206a88db9e6a42a740914c9e893589fd493b", safety: "safe" },
- { pkg: "com.transsion.letswitch", label: "Letswitch", description: "Mobile Cloner it's probably useful when you switch to other phone to move your apps.", safety: "safe" },
- { pkg: "com.transsion.livewallpaper.volcano", label: "Volcano", description: "Tranquil Blue live wallpaper specific live wallpaper", safety: "caution" },
- { pkg: "com.transsion.livewallpaper.wakeup_mirror", label: "Wakeup_mirror", description: "Specific Live Wallpaper.", safety: "caution" },
- { pkg: "com.transsion.magazineservice.hios", label: "Hios", description: "Shows trending news, games and wallpapers on the lockscreen. Talks to ads services Pithus analysis: https://beta.pithus.org/report/fcda43fab1ed9cdc95281cdb96b77938afc8ca4b6e0ada418cac282a78f0cc9f", safety: "safe" },
- { pkg: "com.transsion.magazineservice.xos", label: "Xos", description: "Magazine Lockscreen XOS Resource-hog bloatware that uses a lot of telemetry. For lock screen to look at pictures... https://play.google.com/store/apps/details?id=com.transsion.magazineservice.xos", safety: "safe" },
- { pkg: "com.transsion.magicfont", label: "Magicfont", description: "Magic Fonts (https://play.google.com/store/apps/details?id=com.transsion.magicfont) Fonts installer with a lot of trackers obviously (https://reports.exodus-privacy.eu.org/fr/reports/com.transsion.magicfont/latest/). For Transsion devices I'm pretty sure this is the only way you can install fonts, even Zfont uses this app to install fonts. Breaks or well, removes functionality of changing fonts if removed.", safety: "caution" },
- { pkg: "com.transsion.magicshow", label: "Magicshow", description: "(Bad) video Player with Ads and weak security (including an unsecured WebView implementation that can lead to XSS attacks. Pithus analysis: https://beta.pithus.org/report/33cd478cc18f3a2c0d5f7fd33c7350127ee2cff7acdf87f70641ca21dd2b2dcb", safety: "safe" },
- { pkg: "com.transsion.manualguide", label: "Manualguide", description: "Digital version of your phone manual. You can view it from (Settings > System > Manual Guide) Can be safely removed if you don't need it.", safety: "safe" },
- { pkg: "com.transsion.microintelligence", label: "Microintelligence", description: "Micro Intelligence Provides features like tap to awake, awake on device raise, etc. Disabling this app makes you unable to use specific settings like Gesture Navigation and Action & Gesture along with other phone features. I recommend using RUN_IN_BACKGROUND ignore if you wanna keep them. Pithus analysis: https://beta.pithus.org/report/f7358ad68b27d9fa75a8e742ad43c64f2710b4ba5378ee825215ebbd08549275", safety: "caution" },
- { pkg: "com.transsion.mol", label: "Mol", description: "Ella Translate Unknown translator.", safety: "safe" },
- { pkg: "com.transsion.multiwindow", label: "Multiwindow", description: "Multi Window Needed for multi window.", safety: "caution" },
- { pkg: "com.transsion.nephilim", label: "Nephilim", description: "App provides custom quality settings to game: pubg, call of duty. Not very useful.", safety: "safe" },
- { pkg: "com.transsion.netphilim", label: "Netphilim", description: "Chinese useless frameworks.", safety: "safe" },
- { pkg: "com.transsion.notebook", label: "Notebook", description: "Notepad app These apps have telemetry on them and are completely replaceable.", safety: "safe" },
- { pkg: "com.transsion.os.typeface", label: "Typeface", description: "FontManager Not sure if it's needed or not.", safety: "caution" },
- { pkg: "com.transsion.ossettingsext", label: "Ossettingsext", description: "OSSettings it's needed for some settings and probably it's important app.", safety: "caution" },
- { pkg: "com.transsion.overlaysuw", label: "Overlaysuw", description: "it's needed only on first-boot setup.", safety: "safe" },
- { pkg: "com.transsion.overlaysuw.resoverlay", label: "Resoverlay", description: "Overlay to 'com.transsion.overlaysuw' safe to remove because it's for first-boot setup.", safety: "caution" },
- { pkg: "com.transsion.phoenix", label: "Phoenix", description: "Phoenix Browser https://play.google.com/store/apps/details?id=com.transsion.phoenix&hl=en", safety: "safe" },
- { pkg: "com.transsion.phonemanager", label: "Phonemanager", description: "PhoneMaster Services Another useless frameworks.", safety: "safe" },
- { pkg: "com.transsion.phonemaster", label: "Phonemaster", description: "Phone Master. Provides features like ram cleaning, storage optimisation, data usage analyser, etc. Has embedded Facebook and Google ads trackers. Has 45 permissions and makes request data to many different companies servers. There even is the usesCleartextTraffic=true flag in the Manifest meaning trafic may not even be encrypted Pithus analysis: https://beta.pithus.org/report/a5346fb5ea4fba5b73a891eae064b2bdecefbc7de4f9a13e3dcf94b0a81a20af", safety: "safe" },
- { pkg: "com.transsion.plat.appupdate", label: "Appupdate", description: "App Update Used to update apps installed from the Palm Store. Uses insecure encryption algorithm. Notables permissions: ACCESS_FINE_LOCATION and GET_TASKS (allows to see which apps are running on the phone). Useless background memory hogs if you don't use apps from the Palm Store Pithus analysis: https://beta.pithus.org/report/2584e9529e0988c1c2f9d657c5e2c55d1770e451d4120c176b5a505f2ee1033d", safety: "safe" },
- { pkg: "com.transsion.powercenter", label: "Powercenter", description: "power Has WhatsApp mode and ultra powersaving mode.", safety: "caution" },
- { pkg: "com.transsion.quicktools", label: "Quicktools", description: "Launcher Activity Test", safety: "safe" },
- { pkg: "com.transsion.repaircard", label: "Repaircard", description: "E-warranty Card For Chinese users-only.", safety: "safe" },
- { pkg: "com.transsion.scanningrecharger", label: "Scanningrecharger", description: "Smart Scanner App contains telemetry and is completely replaceable.", safety: "safe" },
- { pkg: "com.transsion.screencapture", label: "Screencapture", description: "Needed for screenshots.", safety: "caution" },
- { pkg: "com.transsion.sk", label: "Sk", description: "Secure Keyboard Useless Secure Keyboard.", safety: "safe" },
- { pkg: "com.transsion.smartmessage", label: "Smartmessage", description: "Bloated Messages app with a lot of features.", safety: "caution" },
- { pkg: "com.transsion.smartpanel", label: "Smartpanel", description: "Smart Panel (Settings -> Smart Assistant) Provides\"easy\" access to your most used apps + features like gamemode and videoAssistant. Collects data and talks with the outside Pithus analysis: https://beta.pithus.org/report/40d4b527fc650a9029e596d14aff7d640a6289e7aa50f471b142391b55eefe4a", safety: "safe" },
- { pkg: "com.transsion.soundrecorder", label: "Soundrecorder", description: "Sound Recorder Contains telemetry and is completely replaceable.", safety: "safe" },
- { pkg: "com.transsion.stasticalsales", label: "Stasticalsales", description: "Sends after-sales telemetry data (including at least the phone number and the IMSI). You don't want this. This app can be launched from this secret dialer code: 862016 Pithus analysis: https://beta.pithus.org/report/35fa58c779ac80bcf44875e279cc4a6ba08678b0004e9c8f0816426cf0c584ab", safety: "safe" },
- { pkg: "com.transsion.statisticalsales", label: "Statisticalsales", description: "Sales Statistics", safety: "safe" },
- { pkg: "com.transsion.systemupdate", label: "Systemupdate", description: "System Update Provides System Updates", safety: "caution" },
- { pkg: "com.transsion.tabe", label: "Tabe", description: "APPIOT Unused frameworks to permissions app.", safety: "safe" },
- { pkg: "com.transsion.tecnospot", label: "Tecnospot", description: "TECNO SPOT (https://play.google.com/store/apps/details?id=com.transsion.tecnospot) Tecno official app to access the Tecno forum. Useless and full of trackers (https://reports.exodus-privacy.eu.org/fr/reports/com.transsion.tecnospot/latest/)", safety: "safe" },
- { pkg: "com.transsion.teop", label: "Teop", description: "it's app for testing and logs", safety: "safe" },
- { pkg: "com.transsion.theme.icon", label: "Icon", description: "Has basic apps icons, not sure if needed.", safety: "caution" },
- { pkg: "com.transsion.thunderback", label: "Thunderback", description: "Lightning Multi-Window Multi-Window feature for apps.", safety: "caution" },
- { pkg: "com.transsion.tips", label: "Tips", description: "Tips App for tips.", safety: "safe" },
- { pkg: "com.transsion.tower", label: "Tower", description: "ControlTower test Testing things app.", safety: "safe" },
- { pkg: "com.transsion.trancare", label: "Trancare", description: "Telemetry. Makes requests (with weak crypto) to the Shalltry CDN (https://mi-test.shalltry.com). Collects IMEI, all the apps installed, localisation... Pithus analysis: https://beta.pithus.org/report/9be13b57bde5620d2ff1824782a2ccc1d6517d437543549c720bc70b6dd02aee", safety: "safe" },
- { pkg: "com.transsion.tranengine", label: "Tranengine", description: "Unused frameworks.", safety: "safe" },
- { pkg: "com.transsion.uxdetector", label: "Uxdetector", description: "AI things to trancare", safety: "safe" },
- { pkg: "com.transsion.videocallenhancer", label: "Videocallenhancer", description: "Applies beauty effect in WhatsApp video calls. Lots of permissions. Talks to Google ads service. Pithus analysis: https://beta.pithus.org/report/47bebb911e9b5b9202030ce599805ebe3e47eb45054264f49cf85971e232bbce", safety: "safe" },
- { pkg: "com.transsion.vishaplayerhd", label: "Vishaplayerhd", description: "Visha Player Needed to run videos.", safety: "caution" },
- { pkg: "com.transsion.wezone", label: "Wezone", description: "Related to 'Gaming Mode' and 'Palm Store'", safety: "safe" },
- { pkg: "com.transsion.wifiplaytogether", label: "Wifiplaytogether", description: "Play music together over Wi-Fi", safety: "safe" },
- { pkg: "com.transsion.zahooc", label: "Zahooc", description: "This package is actually the 'Privacy' section in the Settings app. All the features inside, such as Blank Data, App Lock, App Twin, etc., belong to this package.", safety: "caution" },
- { pkg: "com.transsnet.moreplus", label: "Moreplus", description: "More+ is a social app with massive videos, images, opinions and tribes, where you can post your personal blogs, share funny moments, chat and make friends.", safety: "safe" },
- { pkg: "com.transsnet.store", label: "Store", description: "Palm Store. App store with unsecure apps and probably malware. Has ads trackers and lot of intrusives permissions. Shows intrusive ads and popups. Required for one-time removal of \"Hot Apps\" folder in XOS Launcher (via long press and \"Properties\"). Pithus analysis: https://beta.pithus.org/report/35d762b27c9e16703adf1731b74bef2c53a753b6a7475c425bced53b553758e5", safety: "safe" },
- { pkg: "com.trassion.infinix.xclub", label: "Xclub", description: "XClub XStore to buy.", safety: "safe" },
- { pkg: "com.ts.setupwizard.overlay.overlay", label: "Overlay", description: "Package: com.ts.setupwizard.overlay.overlay", safety: "caution" },
- { pkg: "com.uievolution.gguide.android", label: "Android", description: "This hidden chinese app means nothing", safety: "safe" },
- { pkg: "com.uncube.launcher3", label: "Launcher3", description: "Torque Launcher Default launcher for BlueStacks. Has ads. DON'T REMOVE IF YOU HAVEN'T INSTALLED ANOTHER LAUNCHER! https://play.google.com/store/apps/details?id=com.uncube.launcher3&hl=en-US", safety: "caution" },
- { pkg: "com.unionpay.tsmservice", label: "Tsmservice", description: "UnionPay Only for China.", safety: "safe" },
- { pkg: "com.unionpay.tsmservice.mi", label: "Mi", description: "UnionPay Only for China.", safety: "safe" },
- { pkg: "com.unisoc.keyboxchecker", label: "Keyboxchecker", description: "Unknown purpose, likely spyware. Can't be pulled with ADB. Uninstalling it doesn't seem to break anything for Android 10 GO, S21 Plus 2021_EEA.", safety: "safe" },
- { pkg: "com.unisoc.launcher.customization", label: "Customization", description: "Unisoc Home Screen Partner Customization launcher.", safety: "safe" },
- { pkg: "com.unisoc.localeupdate", label: "Localeupdate", description: "Local System Update Needed for system updates.", safety: "caution" },
- { pkg: "com.unisoc.phone", label: "Phone", description: "LockAssistant Runs before the user unlocks the device (direct-boot aware). Reads IMEI, SMS, call log, uses gps/wifi. Unisoc is a CPU manufacturer. Related to package `com.android.unisoc.telephony.server`.", safety: "caution" },
- { pkg: "com.unisoc.storageclearmanager", label: "Storageclearmanager", description: "StorageClearManager Uninstalling it doesn't seem to break anything for Android 10 GO, S21 Plus 2021_EEA. https://www.virustotal.com/gui/file/478e3ac5a3f7a69b73ae34d58ac246507deb0fdec439f9f5f6c7a2b28d450ae0", safety: "safe" },
- { pkg: "com.val.hardware", label: "Hardware", description: "FactoryApp OEM hardware diagnostic tool for manufacturing/service testing (camera, Bluetooth, WiFi, FM radio, telephony, battery, flashlight). Requires broad system permissions (reboot, audio/phone mods, secure settings). Not for end-users; safe to remove to reduce bloat.", safety: "safe" },
- { pkg: "com.vendor.frameworkresoverlay", label: "Frameworkresoverlay", description: "Package: com.vendor.frameworkresoverlay", safety: "caution" },
- { pkg: "com.vewd.core.integration.dia", label: "Dia", description: "Sony's browser app. Some apps redirect to the browser so it can be useful. You can use another browser as long as you have another one installed.", safety: "safe" },
- { pkg: "com.visionobjects.resourcemanager", label: "Resourcemanager", description: "Handwriting DB Updater (discontinued?) Language Updater from site http://samsungresources.visionobjects.com/ But it's tracker. I guess it's to Handwriting Service but not needed.", safety: "safe" },
- { pkg: "com.vivo.SmartKey", label: "SmartKey", description: "Quick action Chinese smart things.", safety: "safe" },
- { pkg: "com.vivo.abe", label: "Abe", description: "Audio EQ(equalizer) Some 3rd-party music apps can use it to provide you EQ features.", safety: "safe" },
- { pkg: "com.vivo.alphacamera", label: "Alphacamera", description: "AlphaCamera Engineering Mode, Log, Debugging service camera.", safety: "safe" },
- { pkg: "com.vivo.android.connectivity.common.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.android.connectivity.mainline.common.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.android.connectivity.mainline.manufacturer.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.android.connectivity.manufacturer.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.android.wifi.common.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.android.wifi.mainline.common.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.android.wifi.mainline.manufacturer.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.android.wifi.manufacturer.resources.overlay", label: "Overlay", description: "Better keep for connectivity.", safety: "keep" },
- { pkg: "com.vivo.appfilter", label: "Appfilter", description: "AppFilter Has something to powersaving like prevent autostart apps.", safety: "caution" },
- { pkg: "com.vivo.appstore", label: "Appstore", description: "V-Appstore vivo app store.", safety: "safe" },
- { pkg: "com.vivo.assistant", label: "Assistant", description: "Vivo assistant Assistant for vivo phones.", safety: "safe" },
- { pkg: "com.vivo.assistantfunction", label: "Assistantfunction", description: "Steps Jovi Home kit. Record walk sport app.", safety: "safe" },
- { pkg: "com.vivo.audiofx", label: "Audiofx", description: "Audio effect Needed for sound effects.", safety: "safe" },
- { pkg: "com.vivo.browser", label: "Browser", description: "Vivo browser full of trackers (https://play.google.com/store/apps/details?id=com.vivo.browser)", safety: "safe" },
- { pkg: "com.vivo.bsptest", label: "Bsptest", description: "BSPTest Hidden app for testing things.", safety: "safe" },
- { pkg: "com.vivo.calculator", label: "Calculator", description: "Calculator Vivo calculator app", safety: "caution" },
- { pkg: "com.vivo.camera.action", label: "Action", description: "Maybe it's needed for the camera app.", safety: "caution" },
- { pkg: "com.vivo.card", label: "Card", description: "Smart sidebar", safety: "caution" },
- { pkg: "com.vivo.compass", label: "Compass", description: "Compass Vivo compass app", safety: "safe" },
- { pkg: "com.vivo.contentcatcher", label: "Contentcatcher", description: "Unused frameworks.", safety: "safe" },
- { pkg: "com.vivo.cota", label: "Cota", description: "COTA Useless logs and ads. It's for recommendations.", safety: "safe" },
- { pkg: "com.vivo.crontab", label: "Crontab", description: "Task timer It's for scheduling tasks.", safety: "safe" },
- { pkg: "com.vivo.daemonService", label: "DaemonService", description: "vivoService Security thing.", safety: "safe" },
- { pkg: "com.vivo.demovideo", label: "Demovideo", description: "Video Demo Demo Video, Demo Switch, and have verify activity", safety: "safe" },
- { pkg: "com.vivo.desktopstickers", label: "Desktopstickers", description: "Stickers Customize widgets with favorite images.", safety: "safe" },
- { pkg: "com.vivo.devicereg", label: "Devicereg", description: "Hidden debugging app ims.", safety: "safe" },
- { pkg: "com.vivo.doubleinstance", label: "Doubleinstance", description: "App Clone It's for clone app.", safety: "safe" },
- { pkg: "com.vivo.doubletimezoneclock", label: "Doubletimezoneclock", description: "i Widget Double Timezone Clock Widget", safety: "safe" },
- { pkg: "com.vivo.dream.clock", label: "Clock", description: "Clock Screensaver clock", safety: "safe" },
- { pkg: "com.vivo.dream.music", label: "Music", description: "i Music Screensaver music", safety: "safe" },
- { pkg: "com.vivo.dream.weather", label: "Weather", description: "Weather Screensaver weather", safety: "safe" },
- { pkg: "com.vivo.easyshare", label: "Easyshare", description: "Easy share Sharing apps to another phone. https://play.google.com/store/apps/details?id=com.vivo.easyshare", safety: "safe" },
- { pkg: "com.vivo.email", label: "Email", description: "Email closed-source Email app", safety: "caution" },
- { pkg: "com.vivo.engineercamera", label: "Engineercamera", description: "EngineerCamera Testing camera things.", safety: "safe" },
- { pkg: "com.vivo.epm", label: "Epm", description: "EPM Useless crash app notify.", safety: "safe" },
- { pkg: "com.vivo.ewarranty", label: "Ewarranty", description: "E-warranty card Only for China.", safety: "safe" },
- { pkg: "com.vivo.faceui", label: "Faceui", description: "FaceUI It's used for face unlock.", safety: "caution" },
- { pkg: "com.vivo.faceunlock", label: "Faceunlock", description: "Facial recognition It's used for face unlock.", safety: "caution" },
- { pkg: "com.vivo.favorite", label: "Favorite", description: "Favorites It's used to add text from the clipboard to favorites. Probably requires cloud. Contains untranslated Chinese things.", safety: "safe" },
- { pkg: "com.vivo.feedback", label: "Feedback", description: "Feedback Lets you rate your device and share feedback.", safety: "safe" },
- { pkg: "com.vivo.findphone", label: "Findphone", description: "Find It's used for finding the phone. Log out from account before removing.", safety: "safe" },
- { pkg: "com.vivo.fingerprint", label: "Fingerprint", description: "Fingerprints and passwords Needed for fingerprint settings.", safety: "caution" },
- { pkg: "com.vivo.fingerprintengineer", label: "Fingerprintengineer", description: "Fingerprint test Hidden Fingerprint testing not available for normal users.", safety: "safe" },
- { pkg: "com.vivo.fingerprintui", label: "Fingerprintui", description: "FingerprintUI Fingerprint test? Contains payment functionality for China. May be needed for fingerprint lockscreen.", safety: "caution" },
- { pkg: "com.vivo.fingerprintvit", label: "Fingerprintvit", description: "Fingerprint testing.", safety: "safe" },
- { pkg: "com.vivo.floatingball", label: "Floatingball", description: "Floating ball Contains a lot of Chinese code.", safety: "safe" },
- { pkg: "com.vivo.fuelsummary", label: "Fuelsummary", description: "FuelSummary Battery testing.", safety: "safe" },
- { pkg: "com.vivo.gallery", label: "Gallery", description: "Gallery Vivo gallery app with Chinese trackers.", safety: "caution" },
- { pkg: "com.vivo.game", label: "Game", description: "Game Space. Not sure if its useful for gaming.", safety: "caution" },
- { pkg: "com.vivo.gamecube", label: "Gamecube", description: "Ultra Game Mode Used for game optimization. Questionable if anyone is using this.", safety: "caution" },
- { pkg: "com.vivo.gamewatch", label: "Gamewatch", description: "GameWatch Contains a lot of Chinese code and it's hidden?", safety: "safe" },
- { pkg: "com.vivo.globalanimation", label: "Globalanimation", description: "Global dynamic effects This is for effects and animations.", safety: "safe" },
- { pkg: "com.vivo.globalanimation.resources", label: "Resources", description: "GlobalanmationResources Has animation booting probably, safe to remove.", safety: "safe" },
- { pkg: "com.vivo.globalsearch", label: "Globalsearch", description: "Global Search it's chinese searching.", safety: "safe" },
- { pkg: "com.vivo.healthwidget", label: "Healthwidget", description: "Health kit it's only widgets.", safety: "safe" },
- { pkg: "com.vivo.heduohao", label: "Heduohao", description: "Used for Chinese SIM.", safety: "safe" },
- { pkg: "com.vivo.hiboard", label: "Hiboard", description: "Smart Launcher Keyboard app with 62 permissions.", safety: "caution" },
- { pkg: "com.vivo.hybrid", label: "Hybrid", description: "Quick App Provides Quick App support. Quick Apps are Javascript+CSS apps that don't need any installation. This technology has its uses but I'm personally not a huge fan on having to rely on a JS engine to run an application This system app has a lot of permissions (including SEND_SMS, CAMERA, READ_EXTERNAL_STORAGE, RECORD_AUDIO... why?) More information: https://www.xda-developers.com/huawei-quick-apps-alternative-google-instant-apps/ OW2 Quick App whitepaper: https://quick-app-initiative.ow2.io/docs/Quick_App_White_Paper.pdf", safety: "caution" },
- { pkg: "com.vivo.imanager", label: "Imanager", description: "iManager A vivo app consists of Phone Management includes Space Cleanup, Security Scan, Data Traffic Management, Apps & Notifications & Utility Tools includes App encryption, Battery Management, App Clone, Network Management etc.", safety: "caution" },
- { pkg: "com.vivo.iotserver", label: "Iotserver", description: "Related to Jovi Chinese.", safety: "safe" },
- { pkg: "com.vivo.livewallpaper.behavior", label: "Behavior", description: "Live Wallpaper Behavior.", safety: "caution" },
- { pkg: "com.vivo.livewallpaper.behavior.resources", label: "Resources", description: "WallpaperResources Has live wallpapers.", safety: "caution" },
- { pkg: "com.vivo.livewallpaper.coffeetime", label: "Coffeetime", description: "Specific Live wallpaper", safety: "safe" },
- { pkg: "com.vivo.livewallpaper.coralsea", label: "Coralsea", description: "Specific Live wallpaper", safety: "safe" },
- { pkg: "com.vivo.livewallpaper.floatingcloud", label: "Floatingcloud", description: "com.vivo.livewallpaper.coffeetime Specific Live wallpaper", safety: "safe" },
- { pkg: "com.vivo.livewallpaper.ocean", label: "Ocean", description: "Live Wallpaper Ocean.", safety: "caution" },
- { pkg: "com.vivo.livewallpaper.oceanvertical", label: "Oceanvertical", description: "Live Wallpaper Oceanvertical.", safety: "caution" },
- { pkg: "com.vivo.livewallpaper.plant", label: "Plant", description: "Plant live wallpaper Specific live wallpaper.", safety: "safe" },
- { pkg: "com.vivo.livewallpaper.silk", label: "Silk", description: "com.vivo.livewallpaper.coffeetime Specific Live wallpaper", safety: "safe" },
- { pkg: "com.vivo.magazine", label: "Magazine", description: "Lockscreen Poster Service Useless things to lockscreen also it has trackers", safety: "safe" },
- { pkg: "com.vivo.minscreen", label: "Minscreen", description: "Small screen mode This feature is available on settings.", safety: "safe" },
- { pkg: "com.vivo.monochromeicons", label: "Monochromeicons", description: "MonochromeIcons In code found something to vivo icons. In Android 14.", safety: "safe" },
- { pkg: "com.vivo.motionrecognition", label: "Motionrecognition", description: "Smart motion Gestures and smart things.", safety: "safe" },
- { pkg: "com.vivo.multinlp", label: "Multinlp", description: "LocationServices Chinese and Google location. Not sure if it's useless or not.", safety: "caution" },
- { pkg: "com.vivo.musicwidgetmix", label: "Musicwidgetmix", description: "Origin Player Music Widget Mix", safety: "safe" },
- { pkg: "com.vivo.networkimprove", label: "Networkimprove", description: "NetworkImprove May be only for China because of non-English words. Also has logs.", safety: "safe" },
- { pkg: "com.vivo.networkstate", label: "Networkstate", description: "NetworkState Virtual sim things. Only for China.", safety: "safe" },
- { pkg: "com.vivo.nightpearl", label: "Nightpearl", description: "Always on Display Always on display, it's available in settings.", safety: "safe" },
- { pkg: "com.vivo.notes", label: "Notes", description: "Notes Vivo notes", safety: "caution" },
- { pkg: "com.vivo.nps", label: "Nps", description: "iQOO, vivo experience assessment. This app has nothing necessary in the code.", safety: "safe" },
- { pkg: "com.vivo.numbermark", label: "Numbermark", description: "Number mark Contains a lot of Chinese code.", safety: "safe" },
- { pkg: "com.vivo.omacp", label: "Omacp", description: "Configuration SMS", safety: "caution" },
- { pkg: "com.vivo.pem", label: "Pem", description: "Power guardian For power-saving, probably. Also has something to google.", safety: "caution" },
- { pkg: "com.vivo.phoneinstructions", label: "Phoneinstructions", description: "Phone Instructions it's used to app clone for phone instructions.", safety: "safe" },
- { pkg: "com.vivo.puresearch", label: "Puresearch", description: "Search Widget Desktop search bar", safety: "safe" },
- { pkg: "com.vivo.pushservice", label: "Pushservice", description: "Push Notification Engine Not needed for notifications. Requires Google Play Services, and it's for VPUSH. Contains trackers and permissions.", safety: "safe" },
- { pkg: "com.vivo.quickpay", label: "Quickpay", description: "Quick Pay Chinese pay.", safety: "safe" },
- { pkg: "com.vivo.safecenter", label: "Safecenter", description: "Security Center Useless security.", safety: "safe" },
- { pkg: "com.vivo.sdkplugin", label: "Sdkplugin", description: "Needed for Vivo account and Vivo payment. Everything is in Chinese, but not sure how much will not work after removal.", safety: "caution" },
- { pkg: "com.vivo.secime.service", label: "Service", description: "SecIME Talkback Chinese.", safety: "safe" },
- { pkg: "com.vivo.setupwizard", label: "Setupwizard", description: "It's only for first-boot setup.", safety: "safe" },
- { pkg: "com.vivo.share", label: "Share", description: "Vivo share Transfer data between vivo device & PC", safety: "caution" },
- { pkg: "com.vivo.simplelauncher", label: "Simplelauncher", description: "Simple launcher, Simple View.", safety: "safe" },
- { pkg: "com.vivo.singularity", label: "Singularity", description: "vivo system webview Multidexapplication?", safety: "caution" },
- { pkg: "com.vivo.smartLife", label: "SmartLife", description: "Jovi InLife service home devices and smart interconnectivity.", safety: "safe" },
- { pkg: "com.vivo.smartanswer", label: "Smartanswer", description: "smart answer A lot of bloated smart answer.", safety: "safe" },
- { pkg: "com.vivo.smartmultiwindow", label: "Smartmultiwindow", description: "Smart Split Smart multiwindow.", safety: "caution" },
- { pkg: "com.vivo.smartshot", label: "Smartshot", description: "S-capture Used for screenshots?", safety: "caution" },
- { pkg: "com.vivo.smartunlock", label: "Smartunlock", description: "smart unlock device it's used for unlock device using bluetooth devices probably.", safety: "safe" },
- { pkg: "com.vivo.soundrecorder", label: "Soundrecorder", description: "Recorder Vivo sound recorder", safety: "caution" },
- { pkg: "com.vivo.space", label: "Space", description: "Open Vivo official website. Useless app", safety: "safe" },
- { pkg: "com.vivo.sps", label: "Sps", description: "SuperProcessSystem Useless app statistics, logs, crash handler, security, error memory management. Also have something to com.vivo.abe but some phones don't have com.vivo.sps installed. And where is the optimization code?", safety: "safe" },
- { pkg: "com.vivo.stepcount", label: "Stepcount", description: "Step Count Application it's hard to say what app actually doing looks like a useless frameworks to widgets and swipe menu", safety: "safe" },
- { pkg: "com.vivo.systemblur.server", label: "Server", description: "System blur render engine System blur render engine, logs", safety: "safe" },
- { pkg: "com.vivo.timerwidget", label: "Timerwidget", description: "Alarm widget Widget clock in launcher, home screen.", safety: "safe" },
- { pkg: "com.vivo.unionpay", label: "Unionpay", description: "Payment v-Coin it's for china probably.", safety: "safe" },
- { pkg: "com.vivo.upnpserver", label: "Upnpserver", description: "Phone Mirroring Smart things and needed for broadcast?", safety: "safe" },
- { pkg: "com.vivo.upslide", label: "Upslide", description: "System navigation Needed for secure and smart things.", safety: "safe" },
- { pkg: "com.vivo.vhome", label: "Vhome", description: "Smart Remote it's for smart things.", safety: "safe" },
- { pkg: "com.vivo.vhomeguide", label: "Vhomeguide", description: "VHome Not needed vhome guide suggestions.", safety: "safe" },
- { pkg: "com.vivo.vibrator4d", label: "Vibrator4d", description: "vibrator4d Used for games? Contains a lot of feedback things.", safety: "safe" },
- { pkg: "com.vivo.video.floating", label: "Floating", description: "Face beauty for video call it's a features for video call vivo.", safety: "safe" },
- { pkg: "com.vivo.videoeditor", label: "Videoeditor", description: "Video Trim Video editor", safety: "safe" },
- { pkg: "com.vivo.virtuallight", label: "Virtuallight", description: "Ambient light effect It's music light effect (Settings: Dynamic Effects: Ambient Light Effect)", safety: "safe" },
- { pkg: "com.vivo.vivo3rdalgoservice", label: "Vivo3rdalgoservice", description: "ImageAlgoService HDR and High contrast in the camera? Probably safe to remove, so it's debugging app?", safety: "caution" },
- { pkg: "com.vivo.vivokaraoke", label: "Vivokaraoke", description: "Mobile KTV Vivo karaoke.", safety: "safe" },
- { pkg: "com.vivo.vms", label: "Vms", description: "Unused frameworks. Chinese.", safety: "safe" },
- { pkg: "com.vivo.voicewakeup", label: "Voicewakeup", description: "Voice wake-up. Has a lot of permissions (REQUEST_INSTALL_PACKAGES, READ_EXTERNAL_STORAGE, RECORD_AUDIO...). Kind of a\"smart assistant\" ? It is constantly listening waiting for a trigger word [MORE INFO NEEDED]", safety: "safe" },
- { pkg: "com.vivo.vtouch", label: "Vtouch", description: "Smart Vision Spying a lot. Smart things.", safety: "safe" },
- { pkg: "com.vivo.wallet", label: "Wallet", description: "Vivo wallet Everything is in Chinese.", safety: "safe" },
- { pkg: "com.vivo.weather", label: "Weather", description: "Weather Vivo weather app, have Chinese trackers.", safety: "safe" },
- { pkg: "com.vivo.weather.provider", label: "Provider", description: "Weather storage Vivo weather app, has Chinese trackers.", safety: "safe" },
- { pkg: "com.vivo.widget.cleanspeed", label: "Cleanspeed", description: "Clean up acceleration components Clean speed widget", safety: "safe" },
- { pkg: "com.vivo.widget.gallery", label: "Gallery", description: "Album Highlights Gallery widget", safety: "safe" },
- { pkg: "com.vivo.widgetweather", label: "Widgetweather", description: "Weather components Weather widget", safety: "safe" },
- { pkg: "com.vivo.wifiengineermode", label: "Wifiengineermode", description: "Needed for WiFi info? it's engineermode so probably not.", safety: "safe" },
- { pkg: "com.vivotouchscreen.synadeltadiff", label: "Synadeltadiff", description: "tests touch screen", safety: "safe" },
- { pkg: "com.vlife.vivo.wallpaper", label: "Wallpaper", description: "live wallpaper Needed for live wallpapers.", safety: "caution" },
- { pkg: "com.vlingo.midas", label: "Midas", description: "Speech recognition app for the Vlingo personal assistant Vlingo : https://en.wikipedia.org/wiki/Vlingo FYI : In January 2012 AndroidPit discovered that Vlingo sent packets of information containing the users GPS co-ordinates, IMEI (unique device identifier), contact list and the title of every song stored on the device back to Nuance without. Source : https://www.androidpit.com/Vlingo-Privacy-Breach", safety: "safe" },
- { pkg: "com.vmall.client", label: "Client", description: "Vmall is online platform of Huawei. It's online shopping app.", safety: "safe" },
- { pkg: "com.volte.config", label: "Config", description: "VoLTEconfig VoLTE config. Probably hidden and not needed. Looks like a Chinese.", safety: "safe" },
- { pkg: "com.vos.as.vit", label: "Vit", description: "App for testing things.", safety: "caution" },
- { pkg: "com.vos.user.vit", label: "Vit", description: "App for testing things.", safety: "safe" },
- { pkg: "com.wagd.gem", label: "Gem", description: "This malware is capable of sending malicious messages via WhatsApp, opening new tabs in the default web browser to game websites, downloading more malicious apps, and possibly other malicious behaviors. The malicious WhatsApp messages are most likely in order to further spread the infection to other mobile devices. https://www.malwarebytes.com/blog/news/2021/04/pre-installed-auto-installer-threat-found-on-android-mobile-devices-in-germany", safety: "safe" },
- { pkg: "com.wagd.smarter", label: "Smarter", description: "This malware is capable of sending malicious messages via WhatsApp, opening new tabs in the default web browser to game websites, downloading more malicious apps, and possibly other malicious behaviors. The malicious WhatsApp messages are most likely in order to further spread the infection to other mobile devices. https://www.malwarebytes.com/blog/news/2021/04/pre-installed-auto-installer-threat-found-on-android-mobile-devices-in-germany", safety: "safe" },
- { pkg: "com.wagd.xiaoan", label: "Xiaoan", description: "This malware is capable of sending malicious messages via WhatsApp, opening new tabs in the default web browser to game websites, downloading more malicious apps, and possibly other malicious behaviors. The malicious WhatsApp messages are most likely in order to further spread the infection to other mobile devices. https://www.malwarebytes.com/blog/news/2021/04/pre-installed-auto-installer-threat-found-on-android-mobile-devices-in-germany", safety: "safe" },
- { pkg: "com.wapi.wapicertmanage", label: "Wapicertmanage", description: "WAPI certificate manager WAPI = WLAN Authentication and Privacy Infrastructure. A Chinese national standard for Wireless LAN within a limited area such as a home. Not very useful if you don't live in China. https://en.wikipedia.org/wiki/WLAN_Authentication_and_Privacy_Infrastructure Digital certificates identify devices and apps for security. Just like your driver’s license shows that you can legally drive, a digital certificate identifies your device and confirms that it should be able to access something. https://security.stackexchange.com/questions/102550/what-are-wifi-certificates-used-for-what-are-they", safety: "safe" },
- { pkg: "com.wapi.wapicertmanager", label: "Wapicertmanager", description: "WAPI Certificates Manager WAPI = WLAN Authentication Privacy Infrastructure (https://en.wikipedia.org/wiki/WLAN_Authentication_and_Privacy_Infrastructure It was designed to replace WEP and become the new Standard but it was't rejected by the ISO (International Organization for Standardization) It is currently only used in China This app most likely manage certificates (they are used to make sure you're not connecting to a rogue Access Point) Note: If you live in China, you most likely want to keep it.", safety: "safe" },
- { pkg: "com.wdstechnology.android.kryten", label: "Kryten", description: "OTA Access Point Configuration. it's only hidden configurations to ota, it's not needed for updates. In the case of OTA updates, com.miui.core is responsible", safety: "safe" },
- { pkg: "com.westalgo.factorycamera", label: "Factorycamera", description: "Hidden camera tests, calibration.", safety: "safe" },
- { pkg: "com.wifi.rxsenstest", label: "Rxsenstest", description: "Wifi Rx Sens Test.", safety: "safe" },
- { pkg: "com.wiko.packageinstaller", label: "Packageinstaller", description: "Provides first time app install for Wiko mobile", safety: "safe" },
- { pkg: "com.wiko.services", label: "Services", description: "Support app for Wiko mobile", safety: "caution" },
- { pkg: "com.wingtech.catchlog", label: "Catchlog", description: "Cit App to show Battery info, Secret Code:6485", safety: "safe" },
- { pkg: "com.wingtech.stability", label: "Stability", description: "Stability Test. Tests hardware things.", safety: "safe" },
- { pkg: "com.wingtech.standard", label: "Standard", description: "WTStandardTest Wingtech is a chinese Original Design Manufacturer (ODM) involved in the manufacturing of Xiaomi devices. There is very high chances this app is only a hardware conformance test app used during production process you don't need as an end-user. Can someone share the apk just to be 100% sure?", safety: "safe" },
- { pkg: "com.ws.dm", label: "Dm", description: "it's the same like com.wssyncmldm Software update Fetch System OTA updates Works along with com.sec.android.soagent Required on Samsung Smartphones for OTA.", safety: "caution" },
- { pkg: "com.wsomacp", label: "Wsomacp", description: "omacp = OMA Client Provisioning. It is a protocol specified by the Open Mobile Alliance (OMA). Configuration messages parser. Used for provisioning APN settings to Samsung devices via SMS In my case, it was automatic and I never needed configuration messages. Maybe it's useful if carriers change their APN. But you still can change the config manually, it's not difficult. Keep in mind these special types of SMS can be abused (though you would need to select to apply the APN in the popup): https://research.checkpoint.com/2019/advanced-sms-phishing-attacks-against-modern-android-based-smartphones/ https://www.zdnet.com/article/samsung-huawei-lg-and-sony-phones-vulnerable-to-rogue-provisioning-messages/", safety: "safe" },
- { pkg: "com.wssnps", label: "Wssnps", description: "Samsung Backup and restore Manager (on Samsung Galaxy S7) Was replaced by\"com.sec.android.easyMover\" (Samsung Smart Switch Mover)", safety: "safe" },
- { pkg: "com.wssyncmldm", label: "Wssyncmldm", description: "Software update Fetch System OTA updates Works along with com.sec.android.soagent Required on Samsung Smartphones for OTA.", safety: "caution" },
- { pkg: "com.wt.secret_code_manager", label: "Secret_code_manager", description: "Hidden app which associates an action (display logging info) to a secret code. This secret codes have to be dialed from the Xiaomi dialer.", safety: "safe" },
- { pkg: "com.wt.version_query", label: "Version_query", description: "theres something about updates but this apk size is too small and includes some secret codes, founded in xiaomi.", safety: "safe" },
- { pkg: "com.wtk.factory", label: "Factory", description: "FactoryMode Hardware testing things.", safety: "safe" },
- { pkg: "com.wtk.stresstest", label: "Stresstest", description: "StressTest Testing Hardware things.", safety: "safe" },
- { pkg: "com.ximalaya.ting.android", label: "Android", description: "Chinese Ximalaya.", safety: "safe" },
- { pkg: "com.xingin.xhs", label: "Xhs", description: "Chinese Little Red Book.", safety: "safe" },
- { pkg: "com.xm.webcontent", label: "Webcontent", description: "WebContent Needed for messages like 'App installing'. Also WebView.", safety: "caution" },
- { pkg: "com.xrz.ai", label: "Ai", description: "Wrapper around ChatGPT used on Bigme HiBreak Pro.", safety: "safe" },
- { pkg: "com.xrz.bookmall", label: "Bookmall", description: "Chinese book store on the Bigme HiBreak Pro.", safety: "safe" },
- { pkg: "com.xrz.bookself", label: "Bookself", description: "App that collects epub files and other documents to read on the Bigme HiBreak Pro. Can work together with xReader to act as a libary.", safety: "safe" },
- { pkg: "com.xrz.btranslate", label: "Btranslate", description: "Translator on the Bigme HiBreak Pro.", safety: "safe" },
- { pkg: "com.xrz.dictapp", label: "Dictapp", description: "Dictionary provided on the Bigme HiBreak Pro (XDict). Requires to download the dictionaries manually in the app's settings.", safety: "safe" },
- { pkg: "com.xrz.ebook", label: "Ebook", description: "xReader, used by Bigme HiBreak Pro. In the state of my phone, this app crashes and does not provide useful functionality.", safety: "safe" },
- { pkg: "com.xrz.scandoc", label: "Scandoc", description: "Document scan app on the Bigme HiBreak Pro. Does not show up in the app list.", safety: "safe" },
- { pkg: "com.xrz.soundrecord", label: "Soundrecord", description: "Voice Recorder app on the Bigme HiBreak Pro.", safety: "safe" },
- { pkg: "com.xrz.video", label: "Video", description: "Video player of the Bigme HiBreak Pro.", safety: "safe" },
- { pkg: "com.xrz.voice.text", label: "Text", description: "Bigme HiBreak Pro app that doesn't show up in the app list. Likely used as voice to text application. Installed as the DaWoYuJi.apk.", safety: "safe" },
- { pkg: "com.xrz.xreaderV3", label: "XreaderV3", description: "eBook reader app used on the Bigme HiBreak Pro.", safety: "safe" },
- { pkg: "com.xsyt.faceregister", label: "Faceregister", description: "Bigme HiBreak Pro app to unlock the phone with your face. This app frequently connected to lp.xl-ads.com in the past, which caused security concerns on Reddit in relation to the BadBox 2.0 botnet and Bigme to issue a firmware upgrade that changes the usage of that domain. If disabled, face unlock won't work and the option to activate it in the settings will crash Bigme's settings app.", safety: "caution" },
- { pkg: "com.xui.xhide", label: "Xhide", description: "XHide Provides the only way to hide files and lock apps when using Transsion launchers (which the Transsion devices require for certain functionality like multiapps not working with other launchers). These are the only apps that hide files and lock apps with them.", safety: "caution" },
- { pkg: "com.xunmeng.pinduoduo", label: "Pinduoduo", description: "Chinese JD.com.", safety: "safe" },
- { pkg: "com.xy.smartmmsplugin.remote", label: "Remote", description: "SmartMmsPlugin Connects to Chinese maps. Loads Flight, Train, Movie information. It's only for China.", safety: "safe" },
- { pkg: "com.yandex.browser", label: "Browser", description: "Yandex' browser May be installed with Samsung firmware update to comply with http://publication.pravo.gov.ru/Document/View/0001202011230051 if you're Russian. Can be installed manually from Google Play.", safety: "safe" },
- { pkg: "com.yandex.searchapp", label: "Searchapp", description: "Yandex' Search App Russian search app, similar to the Google search bar that appears on the phone's home screen.", safety: "safe" },
- { pkg: "com.yha.engineersecret", label: "Engineersecret", description: "Reads/writes to External Storage. Gets the IMEI, uses gps/wifi lots of activities (hardware tests?): IMeiAndPcbCheck, DeviceListActivity, CheckSoftwareInfo, GpsActivity, BluetoothTest, BluetoothSearch, LteSarTest, NetworkSearch, DecryptionActivity", safety: "caution" },
- { pkg: "com.yha.factory", label: "Factory", description: "related to com.yha.runtime", safety: "caution" },
- { pkg: "com.yha.runtime", label: "Runtime", description: "RunTimeTest Reads/writes to External Storage. Uses wifi, camera, sensors, mic, etc. Lots of activities (hardware tests?): FlashTest, VibratorTest, WIFITest, Reboot, LCDTest, AudioLoop, VideoTest, CameraTest, Tester3dTeapot, FullMemTest, ScreenSaver.", safety: "caution" },
- { pkg: "com.youku.phone", label: "Phone", description: "Chinese Youku video.", safety: "safe" },
- { pkg: "com.youview.poa", label: "Poa", description: "Youview live tv app https://play.google.com/store/apps/details?id=com.youview.poa&hl=en_US/ Sometimes a remote on your button opens this but that can be changed in the settings. Safe to remove.", safety: "safe" },
- { pkg: "com.yozo.vivo.office", label: "Office", description: "Vivo document reader A lot of permissions for a simple document reader. It can access to internet, can list all the apps you installed, can get your phone number, current cellular network information, the status of any ongoing calls and more! Pithus analysis: https://beta.pithus.org/report/8902163722f5df1ae6228b80124cfa94c2b8a0210a8f6bbb3441e05d69a76d0b", safety: "caution" },
- { pkg: "com.yulore.framework", label: "Framework", description: "Chinese payment things.", safety: "safe" },
- { pkg: "com.zhihu.android", label: "Android", description: "Chinese know.", safety: "safe" },
+ { pkg: "com.oem.oemlogkit", label: "Oemlogkit", description: "OnePlus LogKit", safety: "safe" },
+ { pkg: "com.tencent.soter.soterserver", label: "Soterserver", description: "Soter is a biometric authentication standard and platform by Tencent.", safety: "safe" },
+ { pkg: "com.wapi.wapicertmanage", label: "Wapicertmanage", description: "WAPI certificate manager", safety: "safe" },
+ { pkg: "cn.oneplus.oemtcma", label: "Oemtcma", description: "TCMA = Tiered Contention Multiple Access", safety: "caution" },
+ { pkg: "cn.oneplus.oem_tcma", label: "Oem Tcma", description: "TCMA = Tiered Contention Multiple Access", safety: "caution" },
{ pkg: "com.zte.assistant", label: "Assistant", description: "ZTE Voice Assistant", safety: "safe" },
- { pkg: "com.zte.beautify", label: "Beautify", description: "ZTE Theme Needed for themes", safety: "caution" },
- { pkg: "com.zte.burntest.camera", label: "Camera", description: "Possibly a hidden stress testing app for camera.", safety: "caution" },
- { pkg: "com.zte.contacts.sub", label: "Sub", description: "Possibly related to contact sync.", safety: "caution" },
- { pkg: "com.zte.easymode", label: "Easymode", description: "Easy mode Easy Mode settings", safety: "safe" },
- { pkg: "com.zte.emode", label: "Emode", description: "Testing Hardware Components", safety: "safe" },
- { pkg: "com.zte.emodeservice", label: "Emodeservice", description: "Logs to emode Testing Hardware Components", safety: "safe" },
- { pkg: "com.zte.faceverify", label: "Faceverify", description: "Needed for face unlock screen", safety: "safe" },
- { pkg: "com.zte.fingerprints", label: "Fingerprints", description: "Fingerprint service Fingerprint settings.", safety: "caution" },
+ { pkg: "cn.zte.recorder", label: "Recorder", description: "ZTE Voice Recorder with... 33 permissions and talking with Baidu servers. Pithus analysis: https://beta.pit...", safety: "safe" },
+ { pkg: "com.zte.videoplayer", label: "Videoplayer", description: "ZTE Video Player with INTERNET and ACCESS_NETWORK_STATE permissions", safety: "safe" },
{ pkg: "com.zte.heartyservice.strategy", label: "Strategy", description: "Process killer, unloads programs from memory.", safety: "caution" },
- { pkg: "com.zte.linkspeedup", label: "Linkspeedup", description: "Causes bootloop", safety: "keep" },
- { pkg: "com.zte.mifavor.launcher", label: "Launcher", description: "Stock ZTE Launcher", safety: "caution" },
- { pkg: "com.zte.mifavor.launcher.adapter", label: "Adapter", description: "Needed for Stock ZTE Launcher", safety: "caution" },
- { pkg: "com.zte.mifavor.launcher.resource", label: "Resource", description: "Needed for Stock ZTE Launcher", safety: "caution" },
- { pkg: "com.zte.mifavor.theme.resource", label: "Resource", description: "Needed for themes?", safety: "caution" },
- { pkg: "com.zte.onekeycp", label: "Onekeycp", description: "Phone Switch PC Connect things, not needed.", safety: "safe" },
- { pkg: "com.zte.powersavemode", label: "Powersavemode", description: "Has battery settings.", safety: "keep" },
- { pkg: "com.zte.privacypolicy", label: "Privacypolicy", description: "ZTE privacy policy app.", safety: "safe" },
- { pkg: "com.zte.privacyzone", label: "Privacyzone", description: "App Lock App Lock, Password Manager", safety: "safe" },
- { pkg: "com.zte.setupwizard", label: "Setupwizard", description: "Setup Wizard Needed for first-boot setup", safety: "safe" },
- { pkg: "com.zte.videoplayer", label: "Videoplayer", description: "ZTE Video Player with INTERNET and ACCESS_NETWORK_STATE permissions Pithus analysis: https://beta.pithus.org/report/caf2da956d33c5550e42d4250b0fa31dc605f39545c2eff36438fd88a0fc7c28", safety: "safe" },
+ { pkg: "com.zte.burntest.camera", label: "Camera", description: "Possibly a hidden stress testing app for camera.", safety: "caution" },
{ pkg: "com.zte.weather", label: "Weather", description: "ZTE Weather app.", safety: "safe" },
- { pkg: "com.zte.zbackup.platservice", label: "Platservice", description: "ZteBackupService ZteBackupService with a lot of permissions.", safety: "safe" },
- { pkg: "com.zte.zdm.omacp", label: "Omacp", description: "For configuring SMS settings.", safety: "caution" },
- { pkg: "com.zte.zdmdaemon", label: "Zdmdaemon", description: "Useless logs, data collection.", safety: "safe" },
- { pkg: "com.zte.zdmdaemon.install", label: "Install", description: "Useless logs, data collection.", safety: "safe" },
- { pkg: "com.ztefingerprint.service", label: "Service", description: "Probably needed for fingerprint.", safety: "caution" },
- { pkg: "com.zui.android.overlay.common", label: "Common", description: "Useless config to Chinese location.", safety: "safe" },
- { pkg: "com.zui.android.overlay.product", label: "Product", description: "Config to refresh rate 120? Better don't risk.", safety: "keep" },
- { pkg: "com.zui.antitheft", label: "Antitheft", description: "Find the phone Find the phone. (Log out from account before remove)", safety: "safe" },
- { pkg: "com.zui.browser", label: "Browser", description: "Lenovo Browser Stock Lenovo Browser with Chinese trackers.", safety: "safe" },
- { pkg: "com.zui.bugtogo", label: "Bugtogo", description: "Hidden collecting user data.", safety: "safe" },
- { pkg: "com.zui.callsettings", label: "Callsettings", description: "Additional Call Settings also WiFi calling.", safety: "caution" },
- { pkg: "com.zui.camera", label: "Camera", description: "Lenovo ZUI Camera Lenovo Stock Camera App", safety: "caution" },
- { pkg: "com.zui.camera.assistant", label: "Assistant", description: "It's for camera app or WiFi calling?", safety: "caution" },
- { pkg: "com.zui.camera.avatar", label: "Avatar", description: "MakeAvatar MakeAvatar? It's something for face recognition.", safety: "safe" },
- { pkg: "com.zui.camera.plugin.dolphin", label: "Dolphin", description: "Needed for camera settings?", safety: "caution" },
- { pkg: "com.zui.contacts", label: "Contacts", description: "Lenovo Contacts Stock Lenovo Contacts app", safety: "caution" },
- { pkg: "com.zui.continuity", label: "Continuity", description: "Lenovo One Connects phone to PC and more. Not needed.", safety: "safe" },
- { pkg: "com.zui.cores", label: "Cores", description: "Removing will affect a lot of other ZUI functions like the game assistant, etc. so it's a bad idea.", safety: "caution" },
- { pkg: "com.zui.davdroid", label: "Davdroid", description: "Login to iCloud and sync contacts, calendars.", safety: "safe" },
- { pkg: "com.zui.deskclock", label: "Deskclock", description: "Lenovo ZUI Clock Stock Lenovo clock app.", safety: "caution" },
- { pkg: "com.zui.deskclock.overlay.lime", label: "Lime", description: "Overlay to theme icon Clock app.", safety: "safe" },
- { pkg: "com.zui.deskclock.overlay.mostbeautiful", label: "Mostbeautiful", description: "Overlay to theme icon Clock app.", safety: "safe" },
- { pkg: "com.zui.deskclock.overlay.phantom", label: "Phantom", description: "Overlay to theme icon Clock app.", safety: "safe" },
- { pkg: "com.zui.deskclock.overlay.redstorm", label: "Redstorm", description: "Overlay to theme icon Clock app.", safety: "safe" },
- { pkg: "com.zui.deskclock.overlay.steellegion", label: "Steellegion", description: "Overlay to theme icon Clock app.", safety: "safe" },
- { pkg: "com.zui.deskclock.overlay.thinarmor", label: "Thinarmor", description: "Overlay to theme icon Clock app.", safety: "safe" },
- { pkg: "com.zui.deviceidservice", label: "Deviceidservice", description: "Analytics and logs.", safety: "safe" },
- { pkg: "com.zui.filemanager", label: "Filemanager", description: "File manager app", safety: "caution" },
- { pkg: "com.zui.freeform.sidebar", label: "Sidebar", description: "Unused frameworks? Probably split screen for apps will not work, not tested.", safety: "caution" },
- { pkg: "com.zui.gallery", label: "Gallery", description: "Gallery Stock Gallery app for lenovo phones.", safety: "safe" },
- { pkg: "com.zui.game.service", label: "Service", description: "A lot of login things and Chinese.", safety: "safe" },
- { pkg: "com.zui.homesettings", label: "Homesettings", description: "Badges? It's Chinese, so not needed.", safety: "safe" },
- { pkg: "com.zui.launcher", label: "Launcher", description: "Lenovo Launcher ZUI HOME.", safety: "caution" },
- { pkg: "com.zui.legalinfo", label: "Legalinfo", description: "I found only hidden privacy policy activity.", safety: "safe" },
- { pkg: "com.zui.mms", label: "Mms", description: "Stock Messaging App", safety: "caution" },
- { pkg: "com.zui.mms.overlay.mostbeautiful", label: "Mostbeautiful", description: "Overlay to theme icon Messages app.", safety: "caution" },
- { pkg: "com.zui.net.data.monitor", label: "Monitor", description: "Needed for Network control", safety: "safe" },
- { pkg: "com.zui.networkaclr", label: "Networkaclr", description: "Network manager?", safety: "caution" },
- { pkg: "com.zui.oneime", label: "Oneime", description: "Input method for Lenovo One It's input method for Lenovo One.", safety: "safe" },
- { pkg: "com.zui.ota", label: "Ota", description: "Lenovo system update Provides system updates.", safety: "caution" },
- { pkg: "com.zui.radioinfo", label: "Radioinfo", description: "Hidden testing hardware things.", safety: "safe" },
- { pkg: "com.zui.safecenter", label: "Safecenter", description: "Security Center Useless security app? You will lose optimization probably.", safety: "caution" },
- { pkg: "com.zui.safecenter.overlay.lime", label: "Lime", description: "Overlay to theme icon Security app.", safety: "caution" },
- { pkg: "com.zui.safecenter.overlay.mostbeautiful", label: "Mostbeautiful", description: "Overlay to theme icon Security app.", safety: "caution" },
- { pkg: "com.zui.safecenter.overlay.phantom", label: "Phantom", description: "Overlay to theme icon Security app.", safety: "caution" },
- { pkg: "com.zui.safecenter.overlay.redstorm", label: "Redstorm", description: "Overlay to theme icon Security app.", safety: "safe" },
- { pkg: "com.zui.safecenter.overlay.steellegion", label: "Steellegion", description: "Overlay to theme icon Security app.", safety: "safe" },
- { pkg: "com.zui.safecenter.overlay.thinarmor", label: "Thinarmor", description: "Overlay to theme icon Security app.", safety: "safe" },
- { pkg: "com.zui.sdac", label: "Sdac", description: "Not needed for notifications and it's probably testing notification.", safety: "safe" },
- { pkg: "com.zui.setupwizard", label: "Setupwizard", description: "Setup Wizard Needed for first-boot setup.", safety: "safe" },
- { pkg: "com.zui.simcontacts", label: "Simcontacts", description: "It should be named com.qualcomm.simcontacts. It's hidden and not available for users.", safety: "safe" },
- { pkg: "com.zui.tassistent", label: "Tassistent", description: "Assistant Tracking, Logs.", safety: "safe" },
- { pkg: "com.zui.theme.overlay.lime", label: "Lime", description: "Wallpaper to Theme App.", safety: "caution" },
- { pkg: "com.zui.theme.overlay.mostbeautiful", label: "Mostbeautiful", description: "Wallpaper to Theme App.", safety: "caution" },
- { pkg: "com.zui.theme.overlay.phantom", label: "Phantom", description: "Wallpaper to Theme App.", safety: "caution" },
- { pkg: "com.zui.theme.overlay.redstorm", label: "Redstorm", description: "Wallpaper to Theme App.", safety: "caution" },
- { pkg: "com.zui.theme.overlay.steellegion", label: "Steellegion", description: "Wallpaper to Theme App.", safety: "caution" },
- { pkg: "com.zui.theme.overlay.thinarmor", label: "Thinarmor", description: "Wallpaper to Theme App.", safety: "caution" },
- { pkg: "com.zui.theme.settings", label: "Settings", description: "Lenovo theme settings Needed for theme settings.", safety: "caution" },
- { pkg: "com.zui.thirdparty.sdk", label: "Sdk", description: "Third party useless frameworks.", safety: "safe" },
- { pkg: "com.zui.tuface", label: "Tuface", description: "It's for faceid and probably needed for face unlock lock screen.", safety: "safe" },
- { pkg: "com.zui.udevice", label: "Udevice", description: "Useless preview activity to earphones.", safety: "safe" },
- { pkg: "com.zui.userexperience", label: "Userexperience", description: "It's for spying: app usage, device usage.", safety: "safe" },
- { pkg: "com.zui.wallet", label: "Wallet", description: "Chinese payment", safety: "safe" },
- { pkg: "com.zui.wallpapercropper", label: "Wallpapercropper", description: "Crop wallpaper Wallpaper cropper.", safety: "caution" },
- { pkg: "com.zui.wallpapersetting", label: "Wallpapersetting", description: "Needed for wallpaper settings", safety: "caution" },
- { pkg: "com.zui.weather", label: "Weather", description: "Weather Stock weather app.", safety: "caution" },
- { pkg: "com.zui.wifip2p", label: "Wifip2p", description: "Lenovo One file transfer Another app for Lenovo One things.", safety: "safe" },
- { pkg: "com.zui.xlog", label: "Xlog", description: "Hidden logs, package usage collector.", safety: "safe" },
- { pkg: "ctrip.android.view", label: "View", description: "Chinese Ctrip.", safety: "safe" },
- { pkg: "eu.xiaomi.ext", label: "Ext", description: "Xiaomi.eu Extension Calendar app things. Only for China.", safety: "safe" },
- { pkg: "eu.xiaomi.module.inject", label: "Inject", description: "Inject fields Fields name of device info like which os version or security date. Not sure if it's needed.", safety: "caution" },
- { pkg: "fr.bouyguestelecom.agent.custo", label: "Custo", description: "This app wanna include ads to your gallery only. Founded only ads and crashlytics components.", safety: "safe" },
- { pkg: "huawei.android.widget", label: "Widget", description: "App that actually doesnt do anything? Remove it doesnt affect on your widgets.", safety: "safe" },
- { pkg: "in.gov.uidai.pehchaan", label: "Pehchaan", description: "National ID app based on a unique 12 digit number and biometrics information. Privately mandated by Government of India to be pre-installed on devices. Source: https://www.reuters.com/world/china/indias-proposal-preload-national-id-app-aadhaar-phones-faced-pushback-2026-03-19/", safety: "safe" },
- { pkg: "io.chaldeaprjkt.gamespace", label: "Gamespace", description: "The Game Space App, often found in custom ROMs. If you don't need it or don't play games, it's safe to remove.", safety: "caution" },
- { pkg: "jp.co.omronsoft.mushroom.CommonPhrase", label: "CommonPhrase", description: "Provides a feature called \"Mushroom\" that is a phrase table shared between Japanese keyboards. Japanese keyboards still work without this.", safety: "safe" },
- { pkg: "jp.co.omronsoft.mushroom.commonphrase", label: "Commonphrase", description: "Provides a feature called \"Mushroom\" that is a phrase table shared between Japanese keyboards. Japanese keyboards still work without this.", safety: "safe" },
- { pkg: "jp.co.radius.neplayer_asus", label: "Neplayer_asus", description: "NePLAYER Japanese NePLAYER Lite for ASUS", safety: "safe" },
- { pkg: "lineageos.platform", label: "Platform", description: "LineageOS System", safety: "keep" },
- { pkg: "ma.android.com.mafactory", label: "Mafactory", description: "Factory Test It's for hardware components testing.", safety: "safe" },
- { pkg: "me.phh.treble.app", label: "App", description: "Used for settings GSI rom that based by Phh Treble. This should not be remove.", safety: "keep" },
- { pkg: "mitv.service", label: "Service", description: "TvService Has shutdown delay. Safe to remove.", safety: "caution" },
- { pkg: "miui.systemui.plugin", label: "Plugin", description: "System UI Plug-in. When using HyperOS, removing this package breaks the iOS-style quick settings and Android will use the AOSP-version of the volume bar & reboot screen (AKA the option to power off/reboot your device). If your device is using MIUI, only the volume bar will change. WARNING: On Redmi Note 11 (Android 13, MIUI 14), it broke the entire status bar making it unable to draw the notification panel including the quick action menu.", safety: "caution" },
- { pkg: "miuix.stub", label: "Stub", description: "It has something to unknown miuix FrequentPhrase, Chinese things found.", safety: "safe" },
- { pkg: "mobile.miki", label: "Miki", description: "Samsung's Factory Mode app for hardware testing and diagnostics.", safety: "caution" },
- { pkg: "net.oneplus.commonlogtool", label: "Commonlogtool", description: "OnePlus Common Log Tool 9 permissions and given what we know about OnePlus logging apps, it's a good idea to disable this. See com.oneplus.opbugreportlite, com.oem.oemlogkit and net.oneplus.odm", safety: "safe" },
- { pkg: "net.oneplus.forums", label: "Forums", description: "OnePlus Community (https://play.google.com/store/apps/details?id=net.oneplus.forums) Literally just their forum... in an app. Just use a Browser if you wanna access the forums.", safety: "safe" },
- { pkg: "net.oneplus.launcher", label: "Launcher", description: "Oneplus Launcher Runs in the background as part of the system. Aside from obviously handling the default launcher itself, it also handles the Recents UI on Android 9, the home&recents gestures in Android 11, some submenus in the Settings app and possibly more that I'm unaware of. Probably not a good idea to disable.", safety: "caution" },
- { pkg: "net.oneplus.launcher.black.overlay", label: "Overlay", description: "Theme overlay for the Oneplus Launcher?", safety: "caution" },
- { pkg: "net.oneplus.launcher.white.overlay", label: "Overlay", description: "Theme overlay for the Oneplus Launcher?", safety: "caution" },
- { pkg: "net.oneplus.odm", label: "Odm", description: "\"OnePlus System Service\" Shady telemetry app. Sends loads of data to OnePlus' servers, including IMEI, phone number, MAC addresses, mobile network names and IMSI prefixes, Wi-Fi connection info, the phone's serial number and every time an app was opened. Source: https://www.chrisdcmoore.co.uk/post/oneplus-analytics/ Press: https://www.androidpolice.com/2017/10/10/never-settle-oneplus-found-collecting-personally-identifiable-analytics-data-phone-owners/", safety: "safe" },
- { pkg: "net.oneplus.odm.provider", label: "Provider", description: "Insight Provider Provider for net.oneplus.odm? (shady telemetry app) Content providers encapsulate data, providing centralized management of data shared between apps. https://developer.android.com/guide/topics/providers/content-providers.html", safety: "safe" },
- { pkg: "net.oneplus.provider.appcategoryprovider", label: "Appcategoryprovider", description: "AppCategoryProvider Runs in the background. I think this categorizes apps for use with system functionality, for example: automatically adding games to Game Mode.", safety: "safe" },
- { pkg: "net.oneplus.push", label: "Push", description: "Push OnePlus push notifications. Only used by OnePlus' pre-installed apps. Pushes\"surveys and other junk\" according to a user. https://forums.oneplus.com/threads/psa-non-root-root-stop-oneplus-push-notifications.580058/ OnePlus can remotely send push notifications: https://www.androidpolice.com/2019/07/01/oneplus-accidentally-pushed-a-cryptic-notification-to-all-7-pro-users/", safety: "safe" },
- { pkg: "net.oneplus.wallpaperresources", label: "Wallpaperresources", description: "Resources for some live wall papers? Not sure. Only contains a\"WallpaperResourceProvider\", no services, activities or receivers.", safety: "caution" },
- { pkg: "net.oneplus.weather", label: "Weather", description: "OnePlus Weather (https://play.google.com/store/apps/details?id=net.oneplus.weather) Occasionally runs in the background; I think it runs every now and then to change the app icon to current weather conditions.", safety: "safe" },
- { pkg: "net.oneplus.weather.basiccolorblack.overlay", label: "Overlay", description: "Theme overlay for Oneplus Weather app?", safety: "caution" },
- { pkg: "net.oneplus.weather.basiccolorwhite.overlay", label: "Overlay", description: "Theme overlay for Oneplus Weather app?", safety: "caution" },
- { pkg: "net.oneplus.widget", label: "Widget", description: "OnePlus Widget Lets you use OnePlus widgets on the home screen.", safety: "safe" },
- { pkg: "nubia.camera.dualcamtest", label: "Dualcamtest", description: "Dual Camera Test", safety: "safe" },
- { pkg: "ohos.media.medialibrary", label: "Medialibrary", description: "MediaLibrary has hwddmp components `com.huawei.hwddmp` debugging errors, remote device manager that depends on Huawei account", safety: "safe" },
- { pkg: "om.xiaomi.gnss.polaris", label: "Polaris", description: "Polaris Beidou satellite navigation system. Only for China.", safety: "safe" },
- { pkg: "om.zui.resolver", label: "Resolver", description: "Lenovo Share Lenovo Share for Chinese", safety: "safe" },
- { pkg: "oplus.frameworkres.overlay.display.product", label: "Product", description: "Display cutout. A display cutout is an area on some devices that extends into the display surface. It allows for an edge-to-edge experience while providing space for important sensors on the front of the device. https://developer.android.com/develop/ui/views/layout/display-cutout", safety: "caution" },
- { pkg: "org.codeaurora.btmultisim", label: "Btmultisim", description: "it's app without code.", safety: "safe" },
- { pkg: "org.codeaurora.qti.nrNetworkSettingApp", label: "NrNetworkSettingApp", description: "Needed for 5G?", safety: "caution" },
- { pkg: "org.dtx.aidl.manager", label: "Manager", description: "DtxService Ant Dtx Service, unknown app, but safe to remove, probably useful in China.", safety: "safe" },
- { pkg: "org.ifaa.aidl.manager", label: "Manager", description: "IfaaManagerService IFAA = (China’s) Internet Finance Authentication Alliance Provides biometric authentication for Alipay. Probably safe to disable if you don't use it.", safety: "safe" },
- { pkg: "org.lineageos.aperture", label: "Aperture", description: "LineageOS Camera App. Safe to remove if you've replaced it with another app. Otherwise there will be no camera app on your device.", safety: "caution" },
- { pkg: "org.lineageos.camelot", label: "Camelot", description: "LineageOS PDF Viewer App. Safe to remove if you don't need it or have replaced it with another app.", safety: "safe" },
- { pkg: "org.lineageos.etar", label: "Etar", description: "LineageOS Calendar App. Safe to remove if you've replaced it with another app. Otherwise there will be no calendar app on your device.", safety: "caution" },
- { pkg: "org.lineageos.glimpse", label: "Glimpse", description: "LineageOS Gallery App. Safe to remove if you've replaced it with another app. Otherwise there will be no gallery app on your device.", safety: "caution" },
- { pkg: "org.lineageos.jelly", label: "Jelly", description: "LineageOS Browser App, based on chromium. Safe to remove if you don't need it or have replaced it with another app. Otherwise there will be no browser app on your device.", safety: "safe" },
- { pkg: "org.lineageos.recorder", label: "Recorder", description: "LineageOS Voice Recorder App. Safe to remove if you don't need it or have replaced it with another app.", safety: "safe" },
- { pkg: "org.lineageos.twelve", label: "Twelve", description: "LineageOS Music App. Safe to remove if you don't need it or have replaced it with another app.", safety: "safe" },
- { pkg: "org.lineageos.waydroidupdater", label: "Waydroidupdater", description: "Waydroid Updater https://www.virustotal.com/gui/file/543f8eb038c052c4a00a6f3fdda026f2cec327a435c81f62d8738412c748510b/details", safety: "caution" },
- { pkg: "org.mipay.android.manager", label: "Manager", description: "MipayService Xiaomi Payment related services, not used!", safety: "safe" },
- { pkg: "org.omnirom.omnistyle", label: "Omnistyle", description: "OmniRom customization app. It lets you change the header image on the quick settings panel and the wallpaper for custom ROMs. It's included in custom ROMs mostly for the quick settings header images as the wallpaper activity is not normally accessible.", safety: "caution" },
- { pkg: "ru.dublgis.dgismobile", label: "Dgismobile", description: "2GIS, russian mapping service, preinstalled by rus law from 2019", safety: "safe" },
- { pkg: "ru.ivi.client", label: "Client", description: "Ivi, russian video service, preinstalled by russian law from 2019", safety: "safe" },
- { pkg: "ru.litres.android", label: "Android", description: "Litres, russian bookstore service, preinstalled by russian law from 2019", safety: "safe" },
- { pkg: "ru.ozon.app.android", label: "Android", description: "Ozon, russian marketplace, preinstalled by russian law from 2019", safety: "safe" },
- { pkg: "ru.vk.store", label: "Store", description: "Rustore, russian app market, preinstalled by russian law from 2019", safety: "safe" },
- { pkg: "ru.yandex.disk", label: "Disk", description: "Yandex' file cloud storage May be installed with Samsung firmware update to comply with http://publication.pravo.gov.ru/Document/View/0001202011230051 if you're Russian. Can be installed manually from Google Play.", safety: "safe" },
- { pkg: "ru.yandex.searchplugin", label: "Searchplugin", description: "Yandex' search engine plugin May be installed with Samsung firmware update to comply with http://publication.pravo.gov.ru/Document/View/0001202011230051 if you're Russian. Can be installed manually from Google Play.", safety: "safe" },
- { pkg: "ru.yandex.yandexmaps", label: "Yandexmaps", description: "Yandex' Maps May be installed with Samsung firmware update to comply with http://publication.pravo.gov.ru/Document/View/0001202011230051 if you're Russian. Can be installed manually from Google Play.", safety: "safe" },
- { pkg: "screnmirroring.com", label: "Com", description: "Sony's screen mirroring app. Can be removed as chromecasting still works without it", safety: "safe" },
- { pkg: "se.dirac.acs", label: "Acs", description: "Dirac Control Service Sound-system backend? Runs in the background as part of the system. Runs even if disabled.", safety: "caution" },
- { pkg: "service.odtcfactory.sec.com.odtcfactoryservice", label: "Odtcfactoryservice", description: "Purpose of this app is completely unknown, but it eats battery and data and is safe to remove.", safety: "safe" },
- { pkg: "sg.gov.mnd.OneService", label: "OneService", description: "map app with a lot tracking https://play.google.com/store/apps/details?id=sg.gov.mnd.OneService", safety: "safe" },
- { pkg: "tech.palm.id", label: "Id", description: "TECNO ID it's for account? A lot bloated. Instead Uninstall better Disable app because Uninstalling cause Settings app crash", safety: "safe" },
- { pkg: "tokyo.witaqua.updater", label: "Updater", description: "LineageOS Updater rebranded for the WitAqua custom ROM. Not safe to remove; could break Updater UI on devices with WitAqua ROMs.", safety: "caution" },
- { pkg: "tv.alphonso.alphonso_eula", label: "Alphonso_eula", description: "Alphonso Recommendations Enhanced viewing, personalized experience of watching TV.", safety: "safe" },
- { pkg: "tv.danmaku.bili", label: "Bili", description: "Chinese app 'bilibili'.", safety: "safe" },
- { pkg: "udc.lenovo.com.udclient", label: "Udclient", description: "Lenovo Universal Device Client Another Mobile Device Management (MDM) allows company’s IT department to reach inside your phone in the background, allowing them to ensure your device is secure, know where it is, and remotely erase your data if the phone is stolen. It's a way to ensure employees stay productive and do not breach corporate policies You should NEVER have a MDM tool on your personal phone.", safety: "safe" },
- { pkg: "vendor.mediatek.iwlanservice", label: "Iwlanservice", description: "iWlan service, not sure if needed.", safety: "caution" },
- { pkg: "zte.com.cn.alarmclock", label: "Alarmclock", description: "Clock Stock ZTE Clock App", safety: "caution" },
- { pkg: "zte.com.cn.filer", label: "Filer", description: "File Manager Stock File Manager", safety: "caution" },
+ { pkg: "com.zte.contacts.sub", label: "Sub", description: "Possibly related to contact sync.", safety: "caution" },
+ { pkg: "com.zte.privacypolicy", label: "Privacypolicy", description: "ZTE privacy policy app.", safety: "safe" },
+ { pkg: "com.android.bluetooth.tempow", label: "Tempow", description: "Implementation of a improved bluetooth protocol (developed by french company Tempow)", safety: "keep" },
+ { pkg: "com.android.mmi", label: "Mmi", description: "Not an AOSP package at all", safety: "keep" },
+ { pkg: "com.elephanttek.faceunlock", label: "Faceunlock", description: "Standard FaceUnlock functionality?", safety: "caution" },
+ { pkg: "android.autoinstalls.config.oneplus", label: "Oneplus", description: "Device configuration", safety: "safe" },
+ { pkg: "cn.oneplus.nvbackup", label: "Nvbackup", description: "NVBackupUI", safety: "caution" },
+ { pkg: "cn.oneplus.opmms", label: "Opmms", description: "OPMmsLocation", safety: "safe" },
+ { pkg: "com.android.mms.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.android.settings.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.rongcard.eid", label: "Eid", description: "eid probably means Electronic ID. This presumably handles something related to that.", safety: "caution" },
+ { pkg: "com.android.wifi.resources.overlay.common", label: "Common", description: "System Wi-Fi resources Theme pack", safety: "caution" },
+ { pkg: "com.android.wifi.resources.overlay.target", label: "Target", description: "System Wi-Fi resources Theme pack", safety: "caution" },
+ { pkg: "com.google.android.overlay.modules.modulemetadata.forframework", label: "Forframework", description: "Android System Theme pack", safety: "caution" },
+ { pkg: "android.autoinstalls.config.TCL.PAI", label: "Pai", description: "AutoInstalls a set of OEM apps on device setup (first boot/factory reset).", safety: "safe" },
+ { pkg: "com.tcl.faceunlock", label: "Faceunlock", description: "Standard FaceUnlock functionality?", safety: "caution" },
+ { pkg: "com.tct.endusertest", label: "Endusertest", description: "Unused device issue feedback app.", safety: "safe" },
+ { pkg: "com.tct.faceunlock", label: "Faceunlock", description: "Standard FaceUnlock functionality?", safety: "caution" },
+ { pkg: "com.android.LGSetupWizard", label: "Lgsetupwizard", description: "The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of ...", safety: "safe" },
+ { pkg: "com.android.partnerbrowsercustomizations.btl.s600ww.overlay", label: "Overlay", description: "Theme overlay for some browser customization?", safety: "caution" },
+ { pkg: "com.android.providers.calendar.overlay.base.s600ww", label: "S600Ww", description: "Some overlay for a content provider package. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.android.providers.settings.overlay.base.s600ww", label: "S600Ww", description: "Some overlay for a content provider package. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.android.providers.settings.btl.s600ww.overlay", label: "Overlay", description: "Some overlay for a content provider package. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.android.retaildemo.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Retail demonstration mode?", safety: "caution" },
+ { pkg: "com.data.overlay.base.s600ww", label: "S600Ww", description: "Some kind of theme overlay for Nokia devices?", safety: "caution" },
+ { pkg: "com.evenwell.apnwidget.overlay.base.s600ww", label: "S600Ww", description: "Some overlay for an APN widget. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.evenwell.AprUploadService.data.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Apr Upload Service?", safety: "caution" },
+ { pkg: "com.evenwell.autoregistration.overlay.d.base.s600ww", label: "S600Ww", description: "Theme overlay for a Spyware app?", safety: "caution" },
+ { pkg: "com.evenwell.batteryprotect.overlay.d.base.s600e0", label: "S600E0", description: "Theme overlay for Battery Protect?", safety: "caution" },
+ { pkg: "com.evenwell.bboxsbox.app", label: "App", description: "????", safety: "safe" },
+ { pkg: "com.evenwell.bokeheditor.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Bokeh Editor?", safety: "caution" },
+ { pkg: "com.evenwell.CPClient.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for CPClient?", safety: "caution" },
+ { pkg: "com.evenwell.customerfeedback.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Customer Feedback?", safety: "caution" },
+ { pkg: "com.evenwell.dataagent.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Data Agent?", safety: "caution" },
+ { pkg: "com.evenwell.DbgCfgTool.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Debug Config Tool?", safety: "caution" },
+ { pkg: "com.evenwell.defaultappconfigure.overlay.base.s600ww", label: "S600Ww", description: "A theme overlay for selecting default apps or something?", safety: "caution" },
+ { pkg: "com.evenwell.DeviceMonitorControl.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Device Monitor Control?", safety: "caution" },
+ { pkg: "com.evenwell.email.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for email app?", safety: "caution" },
+ { pkg: "com.evenwell.factorywizard.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for setup wizard?", safety: "caution" },
+ { pkg: "com.evenwell.foxlauncher.partner", label: "Partner", description: "Partner Launcher Customization", safety: "safe" },
+ { pkg: "com.evenwell.fqc", label: "Fqc", description: "FQC is a secret test menu. It lets you test the hardware (touch screen, speakers, SD card, SIM card, camera...", safety: "safe" },
+ { pkg: "com.evenwell.legalterm.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for some terms and conditions?", safety: "caution" },
+ { pkg: "com.evenwell.managedprovisioning.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Managed Provisioning?", safety: "caution" },
+ { pkg: "com.evenwell.mappartner", label: "Mappartner", description: "????", safety: "safe" },
+ { pkg: "com.evenwell.nps.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Net Promoter Score?", safety: "caution" },
+ { pkg: "com.evenwell.pandorasbox.app", label: "App", description: "WTF is this?", safety: "safe" },
+ { pkg: "com.evenwell.partnerbrowsercustomizations.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for some browser customization?", safety: "caution" },
+ { pkg: "com.evenwell.permissiondetection.overlay.base.s600ww", label: "S600Ww", description: "A theme overlay for some \"permissiondetection\" package?", safety: "caution" },
+ { pkg: "com.evenwell.phone.overlay.base", label: "Base", description: "Some overlay for the dialer app? Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.evenwell.PowerMonitor.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Power Monitor?", safety: "caution" },
+ { pkg: "com.evenwell.powersaving.g3.overlay.d.base.s600e0", label: "S600E0", description: "Theme overlay for Power Saving?", safety: "caution" },
+ { pkg: "com.evenwell.providers.downloads.ui.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for the downloads app?", safety: "caution" },
+ { pkg: "com.evenwell.providers.partnerbookmarks.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Partner Bookmarks?", safety: "caution" },
+ { pkg: "com.evenwell.providers.weather.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for weather provider?", safety: "caution" },
+ { pkg: "com.evenwell.pushagent.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for pushagent?", safety: "caution" },
+ { pkg: "com.evenwell.retaildemoapp.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Nokia retail demonstration mode?", safety: "caution" },
+ { pkg: "com.evenwell.screenlock.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for the lock-screen?", safety: "caution" },
+ { pkg: "com.evenwell.settings.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for settings?", safety: "caution" },
+ { pkg: "com.evenwell.SettingsUtils.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for SettingsUtils?", safety: "caution" },
+ { pkg: "com.evenwell.SetupWizard.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Setup Wizard?", safety: "caution" },
+ { pkg: "com.evenwell.stbmonitor.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for STB Monitor?", safety: "caution" },
+ { pkg: "com.evenwell.telecom.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for something telecom-related?", safety: "caution" },
+ { pkg: "com.evenwell.UsageStatsLogReceiver.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Usage Stats Log?", safety: "caution" },
+ { pkg: "com.evenwell.weatherservice.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for weather service?", safety: "caution" },
+ { pkg: "com.fih.infodisplay", label: "Infodisplay", description: "Foxconn info display", safety: "safe" },
+ { pkg: "com.fih.StatsdLogger", label: "Statsdlogger", description: "Foxconn stats logger", safety: "safe" },
+ { pkg: "com.foxconn.ifaa", label: "Ifaa", description: "IFAA = (China\u2019s) Internet Finance Authentication Alliance", safety: "safe" },
+ { pkg: "com.android.cellbroadcastreceiver.overlay.base.s600ww", label: "S600Ww", description: "Nokia theme overlay for com.android.cellbroadcastreceiver", safety: "caution", deps: ["com.android.cellbroadcastreceiver"] },
+ { pkg: "com.evenwell.camera2", label: "Camera2", description: "Nokia camera by evenwell (https://play.google.com/store/apps/details?id=com.evenwell.camera2)", safety: "caution" },
+ { pkg: "com.evenwell.fmradio.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Nokia radio app?", safety: "caution" },
+ { pkg: "com.evenwell.hdrservice", label: "Hdrservice", description: "HDR Service (https://play.google.com/store/apps/details?id=com.evenwell.hdrservice)", safety: "caution" },
+ { pkg: "com.evenwell.OTAUpdate.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for OTA Update UI?", safety: "caution" },
+ { pkg: "com.coremobility.app.vnotes", label: "Vnotes", description: "Voicemail App?", safety: "caution" },
+ { pkg: "com.heytap.cloud", label: "Cloud", description: "HeyTap Cloud", safety: "safe", deps: ["com.heytap.mcs"] },
+ { pkg: "com.mobiletools.systemhelper", label: "Systemhelper", description: "System Helper", safety: "safe" },
+ { pkg: "com.sohu.inputmethod.sogouoem", label: "Sogouoem", description: "Default keyboard", safety: "caution" },
+ { pkg: "org.ifaa.aidl.manager", label: "Manager", description: "IfaaManagerService", safety: "safe" },
+ { pkg: "se.dirac.acs", label: "Acs", description: "Dirac Control Service", safety: "caution" },
+ { pkg: "android.autoinstalls.config.Xiaomi.cactus", label: "Cactus", description: "Cactus is the device codename.", safety: "safe" },
+ { pkg: "android.autoinstalls.config.Xiaomi.cepheus", label: "Cepheus", description: "Cepheus is the device codename.", safety: "safe" },
+ { pkg: "android.autoinstalls.config.Xiaomi.daisy", label: "Daisy", description: "Daisy is the device codename.", safety: "safe" },
+ { pkg: "android.autoinstalls.config.Xiaomi.dipper", label: "Dipper", description: "Dipper is the device codename.", safety: "safe" },
+ { pkg: "android.romstats", label: "Romstats", description: "Misleading package name. This is a Xiaomi-only package.", safety: "safe" },
+ { pkg: "cn.wps.xiaomi.abroad.lite", label: "Lite", description: "Mi Doc viewer", safety: "safe" },
+ { pkg: "com.android.backup", label: "Backup", description: "Xiaomi Backup and Restore feature (mislead package name).", safety: "safe" },
+ { pkg: "com.android.midrive", label: "Midrive", description: "Mi Drive", safety: "safe" },
+ { pkg: "com.autonavi.minimap", label: "Minimap", description: "\u9ad8\u5fb7\u5730\u56fe (Yeah no english translation) (https://play.google.com/store/apps/details?id=com.autonavi.minimap)", safety: "safe" },
+ { pkg: "com.baidu.duersdk.opensdk", label: "Opensdk", description: "Duer stuff from Baidu", safety: "safe" },
+ { pkg: "com.baidu.input_mi", label: "Input Mi", description: "Baidu IME (Baidu keyboard)", safety: "caution" },
+ { pkg: "com.baidu.searchbox", label: "Searchbox", description: "\u767e\u5ea6 (https://play.google.com/store/apps/details?id=com.baidu.searchbox)", safety: "safe" },
+ { pkg: "com.bsp.catchlog", label: "Catchlog", description: "bsp = Board support package", safety: "safe" },
+ { pkg: "com.duokan.phone.remotecontroller", label: "Remotecontroller", description: "Mi Remote Controller (https://play.google.com/store/apps/details?id=com.duokan.phone.remotecontroller)", safety: "safe" },
+ { pkg: "com.duokan.phone.remotecontroller.peel.plugin", label: "Plugin", description: "Peel Mi Remote (https://play.google.com/store/apps/details?id=com.duokan.phone.remotecontroller.peel.plugin)", safety: "safe" },
+ { pkg: "com.facemoji.lite.xiaomi.gp", label: "Gp", description: "Facemoji Keyboard Lite for Xiaomi - Emoji & Theme (https://play.google.com/store/apps/details?id=com.facem...", safety: "safe" },
+ { pkg: "com.factory.mmigroup", label: "Mmigroup", description: "Hidden super-menu accessible by dialing *#*#64633#*#*", safety: "safe" },
+ { pkg: "com.fingerprints.sensortesttool", label: "Sensortesttool", description: "Sensor Test Tool", safety: "safe" },
+ { pkg: "com.huaqin.diaglogger", label: "Diaglogger", description: "Secret logging menu only accessible by dialing using a \"secret code\" (*#*#CODE#*#*)", safety: "safe" },
+ { pkg: "com.huaqin.factory", label: "Factory", description: "Hidden test app (dial *#*#64663#*#*)", safety: "safe" },
+ { pkg: "com.huaqin.sar", label: "Sar", description: "SetTransmitPower", safety: "safe" },
+ { pkg: "com.milink.service", label: "Service", description: "UniPlay Service", safety: "safe" },
+ { pkg: "com.mipay.wallet.in", label: "In", description: "Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet)", safety: "safe" },
+ { pkg: "com.mipay.wallet.id", label: "Id", description: "Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet)", safety: "safe" },
+ { pkg: "com.mipay.wallet", label: "Wallet", description: "Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet)", safety: "safe" },
+ { pkg: "com.wapi.wapicertmanager", label: "Wapicertmanager", description: "WAPI Certificates Manager", safety: "safe" },
+ { pkg: "com.mfashiongallery.emag", label: "Emag", description: "Wallpapers by Xiaomi", safety: "safe" },
+ { pkg: "com.qiyi.video", label: "Video", description: "IQIYI (https://play.google.com/store/apps/details?id=com.qiyi.video)", safety: "safe" },
+ { pkg: "com.sohu.inputmethod.sogou.xiaomi", label: "Xiaomi", description: "Sogou keyboard for chinese only.", safety: "safe" },
+ { pkg: "com.wt.secret_code_manager", label: "Secret Code Manager", description: "Hidden app which associates an action (display logging info) to a secret code.", safety: "safe" },
+ { pkg: "com.android.systemui.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.android.systemui.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "android.telephony.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.android.mms.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.android.settings.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.android.systemui.overlay.cmcc", label: "Cmcc", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.android.networksettings.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.android.systemui.overlay.ct", label: "Ct", description: "Likely overlay themes from China Mobile Communications Corporation(CMCC) or China Telecom(CT).", safety: "caution" },
+ { pkg: "com.wingtech.standard", label: "Standard", description: "WTStandardTest", safety: "safe" },
+ { pkg: "com.android.camera2", label: "Camera2", description: "Xiaomi Camera (I don't know why they kept this package name. It's really confusing.)", safety: "caution" },
+ { pkg: "com.android.fileexplorer", label: "Fileexplorer", description: "Xiaomi/Mi File Explorer (Again it's a really poor choice for a package name considering it is not the AOSP ...", safety: "caution" },
+ { pkg: "com.android.globalFileexplorer", label: "Globalfileexplorer", description: "Misleading package name. It's the Xiaomi Files Manager on older phones", safety: "safe" },
+ { pkg: "com.android.incallui", label: "Incallui", description: "Xiaomi (and OnePlus) Phone dialer (here we go again! Another confusing package name)", safety: "caution" },
+ { pkg: "com.android.thememanager", label: "Thememanager", description: "MIUI Themes (manager)", safety: "caution" },
+ { pkg: "com.android.thememanager.module", label: "Module", description: "Something related to Xiaomi's theme manager?", safety: "caution" },
+ { pkg: "com.fido.xiaomi.uafclient", label: "Uafclient", description: "UAF client for FIDO.", safety: "caution" },
+ { pkg: "com.android.updater", label: "Updater", description: "Mi Updater", safety: "keep" },
+ { pkg: "com.lbe.security.miui", label: "Miui", description: "Permission manager", safety: "keep" },
+ { pkg: "com.google.android.overlay.gmsgsaconfig", label: "Gmsgsaconfig", description: "Overlay theme for gmsgsaconfig? Probably an RRO? https://source.android.com/devices/architecture/rros", safety: "caution" },
+ { pkg: "com.evenwell.AprUploadService", label: "Apruploadservice", description: "Apr Upload Service ???? [MORE INFO NEEDED]", safety: "caution" },
+ { pkg: "com.evenwell.AprUploadService.data.overlay.base", label: "Base", description: "Theme overlay for Apr Upload Service?", safety: "caution" },
+ { pkg: "com.evenwell.AprUploadService.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Apr Upload Service?", safety: "caution" },
+ { pkg: "com.evenwell.autoregistration", label: "Autoregistration", description: "Spyware app which sends warranty details to China", safety: "safe" },
+ { pkg: "com.evenwell.autoregistration.overlay.base", label: "Base", description: "Theme overlay for a Spyware app?", safety: "caution" },
+ { pkg: "com.evenwell.autoregistration.overlay.base.s600id", label: "S600Id", description: "Theme overlay for a Spyware app?", safety: "caution" },
+ { pkg: "com.evenwell.autoregistration.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for a Spyware app?", safety: "caution" },
+ { pkg: "com.evenwell.autoregistration.overlay.d.base.s600id", label: "S600Id", description: "Theme overlay for a Spyware app?", safety: "caution" },
+ { pkg: "com.evenwell.batteryprotect", label: "Batteryprotect", description: "Battery protect is advertised to improve battery performance, but in practice it drains your battery and ki...", safety: "safe" },
+ { pkg: "com.evenwell.batteryprotect.overlay.base", label: "Base", description: "Theme overlay for Battery Protect?", safety: "caution" },
+ { pkg: "com.evenwell.batteryprotect.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Battery Protect?", safety: "caution" },
+ { pkg: "com.evenwell.batteryprotect.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Battery Protect?", safety: "caution" },
+ { pkg: "com.evenwell.bboxsbox", label: "Bboxsbox", description: "??? [MORE INFO NEEDED]", safety: "safe" },
+ { pkg: "com.evenwell.bokeheditor", label: "Bokeheditor", description: "Probably related to adding fake bokeh (a focus blur effect) to photos.", safety: "caution" },
+ { pkg: "com.evenwell.CPClient", label: "Cpclient", description: "CP = Client Provisioning.", safety: "caution" },
+ { pkg: "com.evenwell.CPClient.overlay.base", label: "Base", description: "Theme overlay for CPClient?", safety: "caution" },
+ { pkg: "com.evenwell.CPClient.overlay.base.s600id", label: "S600Id", description: "Theme overlay for CPClient?", safety: "caution" },
+ { pkg: "com.evenwell.custmanager", label: "Custmanager", description: "Customer manager", safety: "caution" },
+ { pkg: "com.evenwell.custmanager.data.overlay.base", label: "Base", description: "Theme overlay for Customer Manager?", safety: "caution" },
+ { pkg: "com.evenwell.custmanager.data.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Customer Manager?", safety: "caution" },
+ { pkg: "com.evenwell.custmanager.data.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for Customer Manager?", safety: "caution" },
+ { pkg: "com.evenwell.dataagent", label: "Dataagent", description: "Data agent", safety: "caution" },
+ { pkg: "com.evenwell.dataagent.overlay.base", label: "Base", description: "Theme overlay for Data Agent?", safety: "caution" },
+ { pkg: "com.evenwell.dataagent.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Data Agent?", safety: "caution" },
+ { pkg: "com.evenwell.DbgCfgTool", label: "Dbgcfgtool", description: "Debug Config Tool?", safety: "safe" },
+ { pkg: "com.evenwell.DbgCfgTool.overlay.base", label: "Base", description: "Theme overlay for Debug Config Tool?", safety: "caution" },
+ { pkg: "com.evenwell.DbgCfgTool.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Debug Config Tool?", safety: "caution" },
+ { pkg: "com.evenwell.DeviceMonitorControl", label: "Devicemonitorcontrol", description: "Some form of device monitoring?", safety: "caution" },
+ { pkg: "com.evenwell.DeviceMonitorControl.data.overlay.base", label: "Base", description: "Theme overlay for Device Monitor Control?", safety: "caution" },
+ { pkg: "com.evenwell.DeviceMonitorControl.data.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Device Monitor Control?", safety: "caution" },
+ { pkg: "com.evenwell.factorywizard", label: "Factorywizard", description: "Likely part of the first-boot device setup (new/factory reset device).", safety: "safe" },
+ { pkg: "com.evenwell.factorywizard.overlay.base", label: "Base", description: "Theme overlay for setup wizard?", safety: "caution" },
+ { pkg: "com.evenwell.legalterm", label: "Legalterm", description: "Provides terms and conditions (legal notice)", safety: "safe" },
+ { pkg: "com.evenwell.managedprovisioning", label: "Managedprovisioning", description: "Nokia implementation of com.android.managedprovisioning? If so it manages Android user accounts, allowing y...", safety: "caution" },
+ { pkg: "com.evenwell.managedprovisioning.overlay.base", label: "Base", description: "Theme overlay for Managed Provisioning?", safety: "caution" },
+ { pkg: "com.evenwell.managedprovisioning.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Managed Provisioning?", safety: "caution" },
+ { pkg: "com.evenwell.nps", label: "Nps", description: "Net Promoter Score", safety: "safe" },
+ { pkg: "com.evenwell.nps.overlay.base", label: "Base", description: "Theme overlay for Net Promoter Score?", safety: "caution" },
+ { pkg: "com.evenwell.nps.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Net Promoter Score?", safety: "caution" },
+ { pkg: "com.evenwell.pandorasbox", label: "Pandorasbox", description: "WTF is this? [MORE INFO NEEDED]", safety: "safe" },
+ { pkg: "com.evenwell.partnerbrowsercustomizations", label: "Partnerbrowsercustomizations", description: "Adds something (Nokia-)partner-related to your browser? Probably adds bookmarks.", safety: "safe" },
+ { pkg: "com.evenwell.partnerbrowsercustomizations.overlay.base", label: "Base", description: "Theme overlay for some browser customization?", safety: "caution" },
+ { pkg: "com.evenwell.partnerbrowsercustomizations.overlay.base.s600id", label: "S600Id", description: "Theme overlay for some browser customization?", safety: "caution" },
+ { pkg: "com.evenwell.permissiondetection", label: "Permissiondetection", description: "???? [MORE INFO NEEDED]", safety: "caution" },
+ { pkg: "com.evenwell.phone.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for the dialer app?", safety: "caution" },
+ { pkg: "com.evenwell.PowerMonitor", label: "Powermonitor", description: "Drains more battery than it saves.", safety: "safe" },
+ { pkg: "com.evenwell.PowerMonitor.overlay.base", label: "Base", description: "Theme overlay for Power Monitor?", safety: "caution" },
+ { pkg: "com.evenwell.PowerMonitor.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Power Monitor?", safety: "caution" },
+ { pkg: "com.evenwell.providers.downloads.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for the downloads app?", safety: "caution" },
+ { pkg: "com.evenwell.providers.weather", label: "Weather", description: "Provider for the Nokia weather app.", safety: "safe" },
+ { pkg: "com.evenwell.pushagent", label: "Pushagent", description: "Related to push notifications for Nokia apps?", safety: "safe" },
+ { pkg: "com.evenwell.pushagent.overlay.base", label: "Base", description: "Theme overlay for pushagent?", safety: "caution" },
+ { pkg: "com.evenwell.pushagent.overlay.base.s600id", label: "S600Id", description: "Theme overlay for pushagent?", safety: "caution" },
+ { pkg: "com.evenwell.retaildemoapp", label: "Retaildemoapp", description: "Nokia retail demonstration mode", safety: "safe" },
+ { pkg: "com.evenwell.retaildemoapp.overlay.base", label: "Base", description: "Theme overlay for Nokia retail demonstration mode?", safety: "caution" },
+ { pkg: "com.evenwell.retaildemoapp.overlay.base.s600id", label: "S600Id", description: "Theme overlay for Nokia retail demonstration mode?", safety: "caution" },
+ { pkg: "com.evenwell.settings.data.overlay.base", label: "Base", description: "Overlay related to settings. Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.evenwell.SettingsUtils", label: "Settingsutils", description: "Settings utils", safety: "safe" },
+ { pkg: "com.evenwell.SetupWizard", label: "Setupwizard", description: "The first-boot device setup wizard for new/factory reset devices.", safety: "safe" },
+ { pkg: "com.evenwell.SetupWizard.overlay.base", label: "Base", description: "Theme overlay for Setup Wizard?", safety: "caution" },
+ { pkg: "com.evenwell.setupwizard.btl.s600ww.overlay", label: "Overlay", description: "Theme overlay for Setup Wizard?", safety: "caution" },
+ { pkg: "com.evenwell.SetupWizard.overlay.d.base.s600ww", label: "S600Ww", description: "Theme overlay for Setup Wizard?", safety: "caution" },
+ { pkg: "com.evenwell.stbmonitor", label: "Stbmonitor", description: "Apparently used to stabilize phone usage.", safety: "safe" },
+ { pkg: "com.evenwell.stbmonitor.data.overlay.base", label: "Base", description: "Theme overlay for STB Monitor?", safety: "caution" },
+ { pkg: "com.evenwell.stbmonitor.data.overlay.base.s600id", label: "S600Id", description: "Theme overlay for STB Monitor?", safety: "caution" },
+ { pkg: "com.evenwell.telecom.data.overlay.base", label: "Base", description: "Overlay related to Telecom data? Overlays are usually themes.", safety: "caution" },
+ { pkg: "com.evenwell.telecom.data.overlay.base.s600id", label: "S600Id", description: "Theme overlay for something telecom-related?", safety: "caution" },
+ { pkg: "com.evenwell.UsageStatsLogReceiver", label: "Usagestatslogreceiver", description: "Logging stuff", safety: "caution" },
+ { pkg: "com.evenwell.UsageStatsLogReceiver.data.overlay.back.s600id", label: "S600Id", description: "Theme overlay for Usage Stats Log?", safety: "caution" },
+ { pkg: "com.evenwell.weather.overlay.base.s600ww", label: "S600Ww", description: "Theme overlay for the Nokia weather app?", safety: "caution" },
+ { pkg: "com.evenwell.weatherservice", label: "Weatherservice", description: "Service for the weather app", safety: "safe" },
+ { pkg: "com.hiya.star", label: "Star", description: "also called android-ss-service-lib (Samsung-exclusive)", safety: "safe", neededBy: ["com.samsung.android.smartcallprovider"] },
+ { pkg: "com.agui.game", label: "Game", description: "Game (From Unihertz Jelly2)", safety: "safe" },
+ { pkg: "com.agui.studentmodel", label: "Studentmodel", description: "Student mode (From Unihertz Jelly2)", safety: "safe" },
+ { pkg: "com.fairphone.activator", label: "Activator", description: "Fairphone activation service", safety: "safe" },
+ { pkg: "com.fairphone.myfairphone", label: "Myfairphone", description: "My Fairphone app", safety: "caution" },
+ { pkg: "com.fp.camera", label: "Camera", description: "Fairphone Camera app", safety: "caution" },
+ { pkg: "com.tblenovo.center", label: "Center", description: "Useless dashboard related to the User Experience Program (com.lenovo.ue.device). Has 25 permissions (includ...", safety: "safe" },
+ { pkg: "com.lenovo.ue.device", label: "Device", description: "User Experience Program", safety: "safe" },
+ { pkg: "com.tblenovo.lenovotips", label: "Lenovotips", description: "Useless Lenovo Tips app used by Lenovo to display un-dismissable and un-mutable ads in notifications.", safety: "safe" },
+ { pkg: "com.transsion.tecnospot", label: "Tecnospot", description: "TECNO SPOT (https://play.google.com/store/apps/details?id=com.transsion.tecnospot)", safety: "safe" },
+ { pkg: "com.transsion.carlcare", label: "Carlcare", description: "Carlcare (https://play.google.com/store/apps/details?id=com.transsion.carlcare)", safety: "safe" },
+ { pkg: "com.transsion.hiparty", label: "Hiparty", description: "Hi Party", safety: "safe" },
+ { pkg: "com.transsnet.store", label: "Store", description: "Palm Store. App store with unsecure apps and probably malware. Has ads trackers and lot of intrusives permi...", safety: "safe" },
+ { pkg: "com.transsion.magicshow", label: "Magicshow", description: "(Bad) video Player with Ads and weak security (including an unsecured WebView implementation that can lead ...", safety: "safe" },
+ { pkg: "com.transsion.plat.appupdate", label: "Appupdate", description: "App Update", safety: "safe" },
+ { pkg: "com.transsion.magazineservice.hios", label: "Hios", description: "Shows trending news, games and wallpapers on the lockscreen. Talks to ads services", safety: "safe" },
+ { pkg: "com.transsion.filemanagerx", label: "Filemanagerx", description: "File Manager App (https://play.google.com/store/apps/details?id=com.transsion.filemanagerx)", safety: "caution" },
+ { pkg: "com.gallery20", label: "Gallery20", description: "AI Gallery (https://play.google.com/store/apps/details?id=com.gallery20)", safety: "caution" },
+ { pkg: "com.transsion.videocallenhancer", label: "Videocallenhancer", description: "Applies beauty effect in WhatsApp video calls. Lots of permissions. Talks to Google ads service.", safety: "safe" },
+ { pkg: "com.transsion.magicfont", label: "Magicfont", description: "Magic Fonts (https://play.google.com/store/apps/details?id=com.transsion.magicfont)", safety: "safe" },
+ { pkg: "com.transsion.kolun.assistant", label: "Assistant", description: "Smart Assistant App", safety: "safe" },
+ { pkg: "com.transsion.health", label: "Health", description: "Tecno health app. Sends your personal data to Firebase google servers and Tecno servers. Those data can be ...", safety: "safe" },
+ { pkg: "com.transsion.audioshare", label: "Audioshare", description: "Audio Share", safety: "safe" },
+ { pkg: "com.transsion.microintelligence", label: "Microintelligence", description: "Micro Intelligence", safety: "safe" },
+ { pkg: "com.transsion.phonemaster", label: "Phonemaster", description: "Phone Master.", safety: "safe" },
+ { pkg: "com.transsion.smartpanel", label: "Smartpanel", description: "Smart Panel (Settings -> Smart Assistant)", safety: "safe" },
+ { pkg: "com.transsion.hamal", label: "Hamal", description: "It seems to be an \"aftersales user experience logging app\". Really shady app with questionable code (judgeW...", safety: "safe" },
+ { pkg: "com.transsion.agingfunction", label: "Agingfunction", description: "Quality Assurance (QA) testing app. The app is used by the manufacturer to to test the correction functionn...", safety: "safe" },
+ { pkg: "com.transsion.dirac", label: "Dirac", description: "Improves audio quality depending on your surrounding environment and your headphones.", safety: "caution" },
+ { pkg: "com.transsion.batterylab", label: "Batterylab", description: "Supposed to improve battery life but logs especially lots of usage info and bind it to your unique android ...", safety: "safe" },
+ { pkg: "com.transsion.stasticalsales", label: "Stasticalsales", description: "Sends after-sales telemetry data (including at least the phone number and the IMSI). You don't want this. T...", safety: "safe" },
+ { pkg: "com.transsion.childmode", label: "Childmode", description: "Kids Mode", safety: "safe" },
+ { pkg: "com.transsion.trancare", label: "Trancare", description: "Telemetry. Makes requests (with weak crypto) to the Shalltry CDN (https://mi-test.shalltry.com). Collects I...", safety: "safe" },
+ { pkg: "com.heytap.market", label: "Market", description: "Heytap/Oppo app store.There is no benefit of using this app store and you should not keep a privileged app ...", safety: "safe", deps: ["com.heytap.mcs"] },
+ { pkg: "com.heytap.browser", label: "Browser", description: "Oppo Browser", safety: "safe" },
+ { pkg: "com.heytap.habit.analysis", label: "Analysis", description: "Most likely used to track your habits from IoT HeyTap devices [TO BE CONFIRMED]", safety: "safe" },
+ { pkg: "com.heytap.music", label: "Music", description: "Default Oppo Music App with insecure WebView Implementation (execution of user controlled code in WebView i...", safety: "caution" },
+ { pkg: "com.heytap.pictorial", label: "Pictorial", description: "Lock Screen Magazine which can display ads depending on your ColorOS version", safety: "safe" },
+ { pkg: "com.heytap.themestore", label: "Themestore", description: "Theme Store with 73 permissions! (including CAMERA, CALL_PHONE, READ_CONTACTS, REQUEST_INSTALL_PACKAGES...)...", safety: "safe" },
+ { pkg: "com.heytap.usercenter", label: "Usercenter", description: "Login service for various HeyTap related services like HeyTap Cloud etc.", safety: "caution" },
+ { pkg: "com.agui.usbcamera", label: "Usbcamera", description: "Toolbox > \"USB Camera\" Only usefull if you want to use a USB Camera", safety: "safe" },
+ { pkg: "com.agui.game", label: "Game", description: "Game mode", safety: "safe" },
+ { pkg: "com.agui.newsos", label: "Newsos", description: "SOS", safety: "safe" },
+ { pkg: "com.agui.nfc", label: "Nfc", description: "NFC card emulation: simulates various types of unencrypted entrance cards.", safety: "safe" },
+ { pkg: "com.scanning.agold.agoldscanning", label: "Agoldscanning", description: "\"Scan\" Settings > intelligent assistant: Scan. QR code & Bar code scanner.", safety: "caution" },
+ { pkg: "com.agui.studentmodel", label: "Studentmodel", description: "Student Mode", safety: "safe" },
+ { pkg: "com.agui.update", label: "Update", description: "\"Wireless Update\" Settings > About Phone : Sytem update.", safety: "caution", neededBy: ["com.agui.update.overlay"] },
+ { pkg: "com.agui.update.overlay", label: "Overlay", description: "Overlay for com.agui.update. Overlay are usually themes.", safety: "caution", deps: ["com.agui.update"] },
+ { pkg: "com.agui.screenshot", label: "Screenshot", description: "Screenshot", safety: "caution" },
+ { pkg: "com.agui.batterystatsdumper", label: "Batterystatsdumper", description: "Battery Stats Dumper", safety: "caution" },
+ { pkg: "com.agui.app.imei", label: "Imei", description: "IMEI Tool: Change MEID's & IMEI's of both SIM's", safety: "caution" },
+ { pkg: "com.agui.appblock", label: "Appblock", description: "App blocker", safety: "caution" },
+ { pkg: "com.agui.providers.pedometer", label: "Pedometer", description: "Toolbox > \"Pedometer\" Pedometer/step counter.", safety: "keep" },
+ { pkg: "com.agui.app.memtester", label: "Memtester", description: "Memory tester", safety: "safe" },
+ { pkg: "com.aura.oobe.kbdi", label: "Kbdi", description: "Appcloud", safety: "safe" },
+ { pkg: "com.bkk.theme", label: "Theme", description: "Vivo theme (https://play.google.com/store/apps/details?id=com.bbk.theme)", safety: "safe" },
+ { pkg: "com.bbk.iqoo.logsystem", label: "Logsystem", description: "User experience service", safety: "safe" },
+ { pkg: "com.mobile.iroaming", label: "Iroaming", description: "Data Store", safety: "caution" },
+ { pkg: "com.vivo.space", label: "Space", description: "Open Vivo official website.", safety: "safe" },
+ { pkg: "com.baidu.input_vivo", label: "Input Vivo", description: "Default keyboard (Baidu IME customized for Vivo devices).", safety: "caution" },
+ { pkg: "com.bbk.calendar", label: "Calendar", description: "Default calendar app.", safety: "caution" },
+ { pkg: "com.vivo.share", label: "Share", description: "Vivo share", safety: "caution" },
+ { pkg: "com.yozo.vivo.office", label: "Office", description: "Vivo document reader", safety: "caution" },
+ { pkg: "com.vivo.browser", label: "Browser", description: "Vivo browser full of trackers (https://play.google.com/store/apps/details?id=com.vivo.browser)", safety: "safe" },
+ { pkg: "com.vivo.dream.weather", label: "Weather", description: "Vivo weather app", safety: "safe" },
+ { pkg: "com.vivo.hybrid", label: "Hybrid", description: "Quick App", safety: "caution" },
+ { pkg: "com.vivo.puresearch", label: "Puresearch", description: "Search Widget", safety: "safe" },
+ { pkg: "com.vivo.voicewakeup", label: "Voicewakeup", description: "Voice wake-up. Has a lot of permissions (REQUEST_INSTALL_PACKAGES, READ_EXTERNAL_STORAGE, RECORD_AUDIO...)....", safety: "safe" },
+ { pkg: "com.bbk.appstore", label: "Appstore", description: "Vivo app store.", safety: "caution" },
+ { pkg: "com.bbk.account", label: "Account", description: "Vivo account", safety: "caution" },
+ { pkg: "com.google.android.wearable.assistant", label: "Assistant", description: "Google Assistant for Android wearables (https://play.google.com/store/apps/details?id=com.google.android.we...", safety: "caution" },
+ { pkg: "com.google.android.wearable.batteryservices", label: "Batteryservices", description: "It's used to manage battery-related things on Android smartwatches, like monitoring the battery level, mana...", safety: "caution" },
+ { pkg: "com.google.android.clockwork.oemsetup", label: "Oemsetup", description: "Installs carrier apps after the first time setup. Haven't noticed any consequences after uninstalling. I al...", safety: "safe" },
+ { pkg: "com.google.android.apps.wearable.retailattractloop", label: "Retailattractloop", description: "Demo mode - you see it in the stores (the video playing while idle).", safety: "safe" },
+ { pkg: "com.android.cts.ctsshim", label: "Ctsshim", description: "Compatibility Test Service. Used by developers to identify and resolve compatibility issues with Android apps.", safety: "caution" },
+ { pkg: "com.google.android.wearable.healthservices", label: "Healthservices", description: "Health Services by Google", safety: "caution" },
+ { pkg: "com.google.android.wearable.ambient", label: "Ambient", description: "It's like doze on Android phones. Not recommended to disable, as this package reduces battery drain when idle.", safety: "caution" },
+ { pkg: "com.google.android.apps.wearable.settings", label: "Settings", description: "WearOS settings", safety: "caution" },
],
},
-]
+]
\ No newline at end of file
diff --git a/frontend/src/lib/dismissible.ts b/frontend/src/lib/dismissible.ts
deleted file mode 100644
index 57e32c1..0000000
--- a/frontend/src/lib/dismissible.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-// Remembers which dismissible banners/warnings the user has hidden.
-// Each banner has a stable string id; dismissals persist in localStorage.
-
-const STORAGE_KEY = 'atk-dismissed'
-
-function load(): Record {
- try {
- return JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}')
- } catch {
- return {}
- }
-}
-
-function save(map: Record): void {
- localStorage.setItem(STORAGE_KEY, JSON.stringify(map))
-}
-
-export function isDismissed(id: string): boolean {
- return load()[id] === true
-}
-
-export function dismiss(id: string): void {
- const map = load()
- map[id] = true
- save(map)
-}
-
-export function undismiss(id: string): void {
- const map = load()
- delete map[id]
- save(map)
-}
-
-/** Clear every remembered dismissal (used by a "show all warnings again" action). */
-export function resetDismissed(): void {
- localStorage.removeItem(STORAGE_KEY)
-}
diff --git a/frontend/src/lib/featureflags.ts b/frontend/src/lib/featureflags.ts
deleted file mode 100644
index 2ca04d0..0000000
--- a/frontend/src/lib/featureflags.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-// Opt-in feature flags persisted in localStorage. Read on view mount (no live
-// event needed — switching views remounts and re-reads).
-
-const ROOT_TOOLS_KEY = 'atk-root-tools'
-
-// Rooting / Magisk patching tools in the Flasher. Off by default — these are
-// advanced, destructive-adjacent operations.
-export function getRootTools(): boolean {
- return localStorage.getItem(ROOT_TOOLS_KEY) === '1'
-}
-
-export function setRootTools(on: boolean): void {
- localStorage.setItem(ROOT_TOOLS_KEY, on ? '1' : '0')
-}
-
-// Mute error pop-ups that are just "no device / offline / unauthorized".
-const MUTE_NODEVICE_KEY = 'atk-mute-nodevice'
-export function getMuteNoDevice(): boolean {
- return localStorage.getItem(MUTE_NODEVICE_KEY) === '1'
-}
-export function setMuteNoDevice(on: boolean): void {
- localStorage.setItem(MUTE_NODEVICE_KEY, on ? '1' : '0')
-}
-
-// ── Sidebar feature kill-switch ──────────────────────────────────────────────
-// Users can hide nav entries they don't use. Settings is never hideable.
-const HIDDEN_KEY = 'atk-hidden-views'
-const HIDDEN_EVENT = 'atk-hidden-views-change'
-
-export const TOGGLEABLE_VIEWS: { view: string; label: string }[] = [
- { view: 'dashboard', label: 'Dashboard' },
- { view: 'files', label: 'Files' },
- { view: 'mirror', label: 'Screen Mirror' },
- { view: 'packages', label: 'Packages' },
- { view: 'apkinstaller', label: 'APK Installer' },
- { view: 'debloater', label: 'Debloater' },
- { view: 'shell', label: 'Shell' },
- { view: 'logcat', label: 'Logcat' },
- { view: 'appinspect', label: 'App Inspector' },
- { view: 'intentlab', label: 'Intent Lab' },
- { view: 'apkaudit', label: 'APK Audit' },
- { view: 'certs', label: 'Certificates' },
- { view: 'backup', label: 'Backup' },
- { view: 'props', label: 'Prop Editor' },
- { view: 'utilities', label: 'Utilities' },
- { view: 'flasher', label: 'Flasher' },
- { view: 'gsiloader', label: 'GSI Loader' },
-]
-
-export function getHiddenViews(): string[] {
- try {
- const raw = localStorage.getItem(HIDDEN_KEY)
- return raw ? JSON.parse(raw) : []
- } catch {
- return []
- }
-}
-
-export function setHiddenViews(views: string[]): void {
- localStorage.setItem(HIDDEN_KEY, JSON.stringify(views))
- window.dispatchEvent(new CustomEvent(HIDDEN_EVENT, { detail: views }))
-}
-
-export function onHiddenViewsChange(cb: (views: string[]) => void): () => void {
- const handler = (e: Event) => cb((e as CustomEvent).detail as string[])
- window.addEventListener(HIDDEN_EVENT, handler)
- return () => window.removeEventListener(HIDDEN_EVENT, handler)
-}
-
-// ── Custom sidebar order (drag-to-reorder, dock-style) ───────────────────────
-const ORDER_KEY = 'atk-nav-order'
-
-export function getNavOrder(): string[] {
- try {
- const raw = localStorage.getItem(ORDER_KEY)
- return raw ? JSON.parse(raw) : []
- } catch {
- return []
- }
-}
-
-export function setNavOrder(order: string[]): void {
- localStorage.setItem(ORDER_KEY, JSON.stringify(order))
-}
diff --git a/frontend/src/lib/layout.ts b/frontend/src/lib/layout.ts
deleted file mode 100644
index 08e2b08..0000000
--- a/frontend/src/lib/layout.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-// Sidebar position preference. Mirrors src/lib/theme.ts: persisted in
-// localStorage, but here we also broadcast a window event so App.tsx can swap
-// its layout live (the theme just flips a attribute and needs no React
-// state — the sidebar position changes the React tree, so it does).
-
-export type SidebarPosition = 'left' | 'top' | 'bottom'
-
-export const SIDEBAR_POSITIONS: { id: SidebarPosition; label: string; hint: string }[] = [
- { id: 'left', label: 'Left', hint: 'Vertical rail on the side' },
- { id: 'top', label: 'Top', hint: 'Horizontal bar across the top' },
- { id: 'bottom', label: 'Bottom', hint: 'Horizontal bar across the bottom (default)' },
-]
-
-const STORAGE_KEY = 'atk-sidebar-position'
-const EVENT = 'atk-sidebar-position-change'
-
-export function getSidebarPosition(): SidebarPosition {
- const p = localStorage.getItem(STORAGE_KEY)
- return p === 'top' || p === 'bottom' || p === 'left' ? p : 'bottom'
-}
-
-export function setSidebarPosition(p: SidebarPosition): void {
- localStorage.setItem(STORAGE_KEY, p)
- window.dispatchEvent(new CustomEvent(EVENT, { detail: p }))
-}
-
-export function onSidebarPositionChange(cb: (p: SidebarPosition) => void): () => void {
- const handler = (e: Event) => cb((e as CustomEvent).detail as SidebarPosition)
- window.addEventListener(EVENT, handler)
- return () => window.removeEventListener(EVENT, handler)
-}
-
-// Whether to show the text label under each sidebar icon. Same live-broadcast
-// pattern as the position pref above.
-const LABELS_KEY = 'atk-sidebar-labels'
-const LABELS_EVENT = 'atk-sidebar-labels-change'
-
-export function getSidebarLabels(): boolean {
- return localStorage.getItem(LABELS_KEY) !== '0' // on by default
-}
-
-export function setSidebarLabels(on: boolean): void {
- localStorage.setItem(LABELS_KEY, on ? '1' : '0')
- window.dispatchEvent(new CustomEvent(LABELS_EVENT, { detail: on }))
-}
-
-export function onSidebarLabelsChange(cb: (on: boolean) => void): () => void {
- const handler = (e: Event) => cb((e as CustomEvent).detail as boolean)
- window.addEventListener(LABELS_EVENT, handler)
- return () => window.removeEventListener(LABELS_EVENT, handler)
-}
diff --git a/frontend/src/lib/logcat_tools.ts b/frontend/src/lib/logcat_tools.ts
deleted file mode 100644
index e606a58..0000000
--- a/frontend/src/lib/logcat_tools.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-// Logcat highlight rules + sensitive-data scrubbing for export.
-
-export type HiColor = 'red' | 'amber' | 'green' | 'blue' | 'purple' | 'pink'
-
-export interface HighlightRule {
- id: string
- pattern: string
- mode: 'contains' | 'regex'
- color: HiColor
-}
-
-// Row style per colour (background tint + a left accent + readable text).
-export const HI_STYLES: Record = {
- red: 'bg-danger/25 text-danger',
- amber: 'bg-warn/25 text-warn',
- green: 'bg-accent-green/20 text-accent-green',
- blue: 'bg-blue-500/20 text-blue-300',
- purple: 'bg-purple-500/20 text-purple-300',
- pink: 'bg-pink-500/20 text-pink-300',
-}
-
-export const HI_SWATCH: Record = {
- red: '#e78284', amber: '#e5c890', green: '#a6d189', blue: '#8caaee', purple: '#ca9ee6', pink: '#f4b8e4',
-}
-
-const STORAGE_KEY = 'atk-logcat-highlights'
-
-export function loadHighlightRules(): HighlightRule[] {
- try {
- const raw = localStorage.getItem(STORAGE_KEY)
- if (!raw) return []
- const parsed = JSON.parse(raw)
- return Array.isArray(parsed) ? parsed.filter(r => r && typeof r.pattern === 'string') : []
- } catch {
- return []
- }
-}
-
-export function saveHighlightRules(rules: HighlightRule[]): void {
- try { localStorage.setItem(STORAGE_KEY, JSON.stringify(rules)) } catch {}
-}
-
-// A compiled matcher for one rule. Regex rules that fail to compile become a
-// literal substring match so a bad pattern never throws mid-render.
-export interface CompiledRule {
- rule: HighlightRule
- test: (raw: string) => boolean
- style: string
-}
-
-export function compileRules(rules: HighlightRule[]): CompiledRule[] {
- return rules
- .filter(r => r.pattern.trim() !== '')
- .map(r => {
- let test: (raw: string) => boolean
- if (r.mode === 'regex') {
- try {
- const re = new RegExp(r.pattern, 'i')
- test = (raw) => re.test(raw)
- } catch {
- const needle = r.pattern.toLowerCase()
- test = (raw) => raw.toLowerCase().includes(needle)
- }
- } else {
- const needle = r.pattern.toLowerCase()
- test = (raw) => raw.toLowerCase().includes(needle)
- }
- return { rule: r, test, style: HI_STYLES[r.color] || HI_STYLES.amber }
- })
-}
-
-// ---------------------------------------------------------------------------
-// Sensitive-data scrubbing (applied on export).
-// Order matters: longer / more-specific patterns run before shorter ones so a
-// digit run isn't half-consumed by a broader rule.
-// ---------------------------------------------------------------------------
-const SCRUBBERS: [RegExp, string][] = [
- [/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g, '[redacted-email]'],
- [/\b(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}\b/g, '[redacted-mac]'],
- [/\b\d{19,20}\b/g, '[redacted-iccid]'], // ICCID (SIM serial)
- [/\b\d{14,16}\b/g, '[redacted-imei]'], // IMEI / IMSI / MEID / long device ids
- [/\+\d[\d ()\-.]{6,14}\d/g, '[redacted-phone]'], // international phone numbers
- [/\b\d{3}[-.\s]\d{3}[-.\s]\d{4}\b/g, '[redacted-phone]'], // NANP formatted
-]
-
-// scrubSensitive removes IMEIs, phone numbers, SIM serials, MACs and emails.
-export function scrubSensitive(text: string): string {
- let out = text
- for (const [re, repl] of SCRUBBERS) out = out.replace(re, repl)
- return out
-}
diff --git a/frontend/src/lib/logcatgraph.ts b/frontend/src/lib/logcatgraph.ts
deleted file mode 100644
index 6a74516..0000000
--- a/frontend/src/lib/logcatgraph.ts
+++ /dev/null
@@ -1,788 +0,0 @@
-// LogGraph — the stateful engine behind the Logcat visual map.
-//
-// It turns the firehose of log lines into a *bounded* graph plus an ephemeral
-// particle stream (the two-layer model): persistent nodes/edges that decay over
-// time, and short-lived particles that carry each event along its edge. Layout
-// (force simulation) lives here too so the renderer stays a thin draw loop.
-//
-// Pure TS, no deps, no rendering — testable and reusable.
-
-import type { LogcatLine, RefKind } from './types'
-
-// Relationships are mined natively by the Go backend and arrive on each line as
-// line.refs / line.mentions; this engine just consumes them. Severity weight per
-// kind (used to colour/size the edge) stays here — it's a trivial lookup, not the
-// mining logic.
-const REF_SEVERITY: Record = {
- crash: 5, anr: 5, death: 3, signal: 3, spawn: 2, activity: 1, gfx: 1, mention: 0,
-}
-
-export type EdgeKind = 'cooccur' | RefKind
-export type NodeKind = 'process' | 'tag' | 'package' | 'component'
-
-export interface GNode {
- id: string
- kind: NodeKind
- label: string
- x: number; y: number; vx: number; vy: number
- pinned: boolean
- heat: number // recent activity, decays
- count: number // total lines attributed
- worst: number // recent peak severity 0..5, decays
- lastTs: number
- recent: LogcatLine[] // ring buffer (newest last), for the inspector
- levels: number[] // histogram V..F counts (length 6)
- glat?: number; glon?: number // (legacy globe) cached sphere position
- tx?: number; ty?: number; tz?: number; tdepth?: number // 3D hanging-tree position (stable once set)
- tparent?: string // 3D tree parent node id (the edge we actually draw in 3D)
- baseline?: boolean // existed when the user set a baseline (so non-baseline = "new since")
-}
-
-export interface GEdge {
- id: string
- a: string; b: string // directed a -> b (flow direction)
- kind: EdgeKind
- weight: number // decays
- count: number
- worst: number
- lastTs: number
-}
-
-export interface Particle {
- a: string; b: string
- t: number // 0..1 progress along the edge
- speed: number
- level: number
- kind: EdgeKind
- line?: LogcatLine
-}
-
-// A severe event (Error/Fatal or a crash/ANR/kill/signal relationship) — powers
-// the Alerts panel so the analyst is told WHEN something breaks and WHERE.
-export interface AlertEvent {
- ts: number
- id: string // node id it happened on
- level: number
- tag: string
- msg: string
- rule?: string // the user keyword rule that matched (undefined = severity alert)
-}
-
-// A real event that just flowed along an edge — powers the live "packet feed"
-// so the user can see WHAT each moving particle is (which log line, src->dst).
-export interface FlowEvent {
- ts: number
- a: string; b: string // node ids (labels resolved live in the UI)
- kind: EdgeKind
- level: number
- tag: string
- msg: string
-}
-
-export interface GraphConfig {
- grouping: 'process' | 'tag'
- cooccur: boolean
- cooccurWindowMs: number
- parsed: boolean
- mentions: boolean
- nodeHalfLifeMs: number
- edgeHalfLifeMs: number
- maxNodes: number
- maxEdges: number
- maxParticles: number
- levelFloor: number // ignore lines below this severity (0=V..5=F)
- particleIntensity: number
- particleSpeed: number
- // layout
- repulsion: number
- linkDistance: number
- gravity: number
- damping: number
- freeze: boolean
- clusterByKind: number // extra pull between same-kind nodes
- timeScale: number // global speed multiplier (slow-mo ↔ fast)
- // visual
- glow: number // glow/bloom multiplier
- showGrid: boolean
- edgeColorMode: 'kind' | 'source' | 'severity' // colour edges by kind, source-hub hue, or severity
- nodeColorMode: 'auto' | 'kind' | 'severity' | 'hub' // how node colour is chosen
- boxLayout: boolean // arrange nodes into 8 hub boxes (2x4 grid) instead of force layout
- geometry: GeometryShape // arrange nodes onto a geometric structure ('none' = force/box)
- layoutScale: number // scale the box/geometry arrangement bigger/smaller (around centre)
- wireframe: boolean // schematic look: hollow ring nodes + crisp lines, no fills/halos
-}
-
-export type GeometryShape = 'none' | 'tree' | 'radial' | 'ring' | 'grid' | 'spiral' | 'cube' | 'metatron'
-
-// A box in the "box layout" mode: a screen-space rectangle holding the nodes
-// clustered around one of the busiest hubs.
-export interface BoxRect {
- x: number; y: number; w: number; h: number
- label: string; count: number
-}
-
-export const DEFAULT_CONFIG: GraphConfig = {
- grouping: 'process',
- cooccur: true,
- cooccurWindowMs: 700,
- parsed: true,
- mentions: false,
- nodeHalfLifeMs: 16000,
- edgeHalfLifeMs: 12000,
- maxNodes: 180,
- maxEdges: 900,
- maxParticles: 3500,
- levelFloor: 0,
- particleIntensity: 0.75,
- particleSpeed: 0.9,
- repulsion: 11000,
- linkDistance: 125,
- gravity: 0.004,
- damping: 0.8,
- freeze: false,
- clusterByKind: 0,
- timeScale: 1,
- glow: 0.45,
- showGrid: false,
- edgeColorMode: 'source',
- nodeColorMode: 'auto',
- boxLayout: false,
- geometry: 'none',
- layoutScale: 1,
- wireframe: false,
-}
-
-// Target points for a geometric arrangement of n nodes (ordered by activity).
-// All 2D/projected so the existing renderers can draw them; 3D shapes (cube,
-// metatron) use a fixed isometric projection to read as structure.
-export function geometryPoints(shape: GeometryShape, n: number, w: number, h: number): { x: number; y: number }[] {
- const cx = w / 2, cy = h / 2, R = Math.min(w, h) * 0.42, pts: { x: number; y: number }[] = []
- if (n <= 0) return pts
- const s = R * 0.85, ax = 0.5, ay = 0.62
- const proj3 = (x: number, y: number, z: number) => {
- const x1 = x * Math.cos(ay) + z * Math.sin(ay)
- const z1 = -x * Math.sin(ay) + z * Math.cos(ay)
- const y2 = y * Math.cos(ax) - z1 * Math.sin(ax)
- return { x: cx + x1 * s, y: cy + y2 * s }
- }
- if (shape === 'radial') {
- // biggest / most-active nodes (lowest index — caller sorts by activity desc) on
- // the OUTER rim, smaller ones filling toward the centre. sqrt falloff → even
- // disc fill (not a central clump). Elliptical + near-edge to fill wide screens.
- const rx = w * 0.48, ry = h * 0.46
- for (let i = 0; i < n; i++) {
- const t = n > 1 ? i / (n - 1) : 0
- const rad = 0.1 + 0.9 * Math.sqrt(1 - t)
- const a = i * 2.399963 - Math.PI / 2
- pts.push({ x: cx + Math.cos(a) * rx * rad, y: cy + Math.sin(a) * ry * rad })
- }
- } else if (shape === 'ring') {
- for (let i = 0; i < n; i++) { const a = (i / n) * Math.PI * 2 - Math.PI / 2; pts.push({ x: cx + Math.cos(a) * R, y: cy + Math.sin(a) * R }) }
- } else if (shape === 'grid') {
- const cols = Math.max(1, Math.ceil(Math.sqrt(n * (w / h)))), rows = Math.ceil(n / cols)
- const pad = 64, gw = w - pad * 2, gh = h - pad * 2
- for (let i = 0; i < n; i++) { const c = i % cols, r = Math.floor(i / cols); pts.push({ x: pad + (cols === 1 ? gw / 2 : (c / (cols - 1)) * gw), y: pad + (rows === 1 ? gh / 2 : (r / (rows - 1)) * gh) }) }
- } else if (shape === 'spiral') {
- for (let i = 0; i < n; i++) { const a = i * 2.399963, rr = R * Math.sqrt((i + 1) / n); pts.push({ x: cx + Math.cos(a) * rr, y: cy + Math.sin(a) * rr }) }
- } else if (shape === 'cube') {
- const v = [[-1, -1, -1], [1, -1, -1], [1, 1, -1], [-1, 1, -1], [-1, -1, 1], [1, -1, 1], [1, 1, 1], [-1, 1, 1]]
- const ed = [[0, 1], [1, 2], [2, 3], [3, 0], [4, 5], [5, 6], [6, 7], [7, 4], [0, 4], [1, 5], [2, 6], [3, 7]]
- const per = Math.max(1, Math.ceil(n / ed.length))
- for (let i = 0; i < n; i++) {
- const e = ed[i % ed.length], k = Math.floor(i / ed.length), t = (k + 0.5) / per
- const a = v[e[0]], b = v[e[1]]
- pts.push(proj3(a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t, a[2] + (b[2] - a[2]) * t))
- }
- } else if (shape === 'metatron') {
- // 13 centres: 1 centre + inner hex (r) + outer hex (2r), classic Metatron's cube
- const centres: { x: number; y: number }[] = [{ x: cx, y: cy }]
- for (let ring = 1; ring <= 2; ring++) for (let k = 0; k < 6; k++) {
- const a = (k / 6) * Math.PI * 2 - Math.PI / 2
- centres.push({ x: cx + Math.cos(a) * R * 0.5 * ring, y: cy + Math.sin(a) * R * 0.5 * ring })
- }
- for (let i = 0; i < n; i++) {
- const c = centres[i % centres.length], k = Math.floor(i / centres.length)
- const a = k * 2.399963, rr = k === 0 ? 0 : R * 0.06 * Math.sqrt(k)
- pts.push({ x: c.x + Math.cos(a) * rr, y: c.y + Math.sin(a) * rr })
- }
- }
- return pts
-}
-
-// Named presets — applied on top of the current config from the settings drawer.
-export const PRESETS: Record> = {
- Investigate: { cooccurWindowMs: 700, nodeHalfLifeMs: 16000, edgeHalfLifeMs: 12000, maxNodes: 180, glow: 0.45, particleIntensity: 0.75, particleSpeed: 0.9, gravity: 0.004, repulsion: 11000, linkDistance: 125, timeScale: 1 },
- 'See everything': { cooccurWindowMs: 1200, nodeHalfLifeMs: 600000, edgeHalfLifeMs: 600000, maxNodes: 400, maxEdges: 2500, glow: 0.4, particleIntensity: 0.6, gravity: 0.003, repulsion: 11000, linkDistance: 120, timeScale: 1 },
- 'Live pulse': { cooccurWindowMs: 500, nodeHalfLifeMs: 4000, edgeHalfLifeMs: 3000, maxNodes: 120, glow: 0.55, particleIntensity: 0.9, particleSpeed: 1.2, gravity: 0.008, repulsion: 7500, timeScale: 1 },
- Calm: { glow: 0.4, particleIntensity: 0.45, particleSpeed: 0.6, timeScale: 0.6, nodeHalfLifeMs: 14000, edgeHalfLifeMs: 11000 },
- Cinematic: { glow: 1, particleIntensity: 0.95, particleSpeed: 1.1, maxParticles: 5000, timeScale: 1 },
-}
-
-export const LEVELS = ['V', 'D', 'I', 'W', 'E', 'F']
-export function levelNum(l: string): number {
- const i = LEVELS.indexOf(l)
- return i < 0 ? 2 : i
-}
-
-const RECENT_CAP = 80
-const FLOWLOG_CAP = 160
-
-function now() { return performance.now() }
-
-// Visual radius of a node — shared by the renderer (draw size) and the layout
-// (collision separation) so big nodes can't overlap into a blob.
-export function nodeRadius(n: GNode): number {
- return Math.min(26, 4 + Math.sqrt(Math.max(0, n.heat)) * 2.2 + Math.log(1 + n.count) * 1.6)
-}
-
-export class LogGraph {
- nodes = new Map()
- edges = new Map()
- particles: Particle[] = []
- flowLog: FlowEvent[] = [] // live ring buffer of flowing events (newest last)
- captured: FlowEvent[] = [] // capture/record buffer (large, only while capturing)
- capturing = false
- alerts: AlertEvent[] = [] // severe events (E/F + crash/anr/kill/signal), newest last
- alertRules: string[] = [] // user keyword/tag rules (lowercased) that also raise alerts
- watchedIds = new Set() // user's watchlist — these nodes are never evicted
- baselineActive = false // diff mode: highlight nodes that appeared since baseline
- cfg: GraphConfig = { ...DEFAULT_CONFIG }
- processNames: Record = {}
-
- private recentActive: { id: string; ts: number }[] = []
- private lastDecay = now()
- totalLines = 0
- droppedParticles = 0
-
- // 3D hanging-tree placement state (incremental, stable)
- private treeChildN = new Map()
- private treeRootN = 0
-
- // box-layout state (recomputed on an interval, eased toward each frame)
- boxes: BoxRect[] = []
- private boxTarget = new Map()
- private lastBoxCalc = 0
-
- // timeline: rolling per-second event counts by level [V,D,I,W,E,F], newest last
- tl: number[][] = []
- private tlLast = 0
-
- setConfig(c: Partial) { this.cfg = { ...this.cfg, ...c } }
- setProcessNames(m: Record) {
- this.processNames = m
- // relabel existing process nodes in place
- for (const n of this.nodes.values()) {
- if (n.kind === 'process') {
- const pid = n.id.slice(2)
- n.label = m[pid] || pid
- }
- }
- }
-
- // snapshot the current nodes as the baseline; afterwards any node without the
- // flag is "new since" and gets highlighted by the renderers
- setBaseline(on: boolean) {
- this.baselineActive = on
- if (on) for (const n of this.nodes.values()) n.baseline = true
- }
-
- clear() {
- this.baselineActive = false
- this.treeChildN.clear(); this.treeRootN = 0
- this.nodes.clear(); this.edges.clear(); this.particles = []
- this.flowLog = []; this.captured = []; this.alerts = []; this.boxes = []; this.boxTarget.clear(); this.tl = []
- this.recentActive = []; this.totalLines = 0; this.droppedParticles = 0
- }
-
- // ---- ingestion ---------------------------------------------------------
-
- ingest(line: LogcatLine, w: number, h: number) {
- const lv = levelNum(line.level)
- if (lv < this.cfg.levelFloor) return
- this.totalLines++
- const ts = now()
- this.bumpTimeline(ts, lv)
-
- const primary = this.primaryNode(line, w, h)
- this.touch(primary, line, lv, ts)
-
- let flowed = false
- let severe = lv >= 4 // Error / Fatal
-
- // parsed "real" relationships → directed edges to target nodes
- if (this.cfg.parsed) {
- const refs = line.refs || []
- for (const r of refs) {
- if (REF_SEVERITY[r.kind] >= 4) severe = true // crash / anr / fatal kind
- const target = this.refNode(r.kind, r.target, r.targetKind, w, h)
- if (target && target.id !== primary.id) {
- this.link(primary.id, target.id, r.kind, REF_SEVERITY[r.kind], lv, ts, line)
- flowed = true
- }
- }
- }
- let matchedRule: string | undefined
- if (this.alertRules.length) {
- const hay = ((line.tag || '') + ' ' + (line.message || line.raw || '')).toLowerCase()
- for (const r of this.alertRules) { if (r && hay.includes(r)) { matchedRule = r; severe = true; break } }
- }
- if (severe) {
- this.alerts.push({ ts, id: primary.id, level: lv, tag: line.tag || '', msg: line.message || line.raw || '', rule: matchedRule })
- if (this.alerts.length > 240) this.alerts.shift()
- }
- if (this.cfg.mentions) {
- for (const r of (line.mentions || [])) {
- const target = this.refNode(r.kind, r.target, r.targetKind, w, h)
- if (target && target.id !== primary.id) {
- this.link(primary.id, target.id, 'mention', 0, lv, ts, line)
- flowed = true
- }
- }
- }
-
- // ambient co-occurrence: link to the recently-active OTHER nodes within the
- // window (not just the immediately-previous line). This is what makes a busy
- // process actually connect to — and visibly flow toward — whatever else is
- // active at the same time, instead of looking dead when it dominates the log.
- if (this.cfg.cooccur) {
- let linked = 0
- for (const ra of this.recentActive) {
- if (linked >= 3) break
- if (ra.id === primary.id || ts - ra.ts > this.cfg.cooccurWindowMs) continue
- if (!this.nodes.has(ra.id)) continue
- this.link(ra.id, primary.id, 'cooccur', 0, lv, ts, line)
- flowed = true
- linked++
- }
- }
- // update the recency ring (distinct, most-recent first)
- this.recentActive = this.recentActive.filter(r => r.id !== primary.id)
- this.recentActive.unshift({ id: primary.id, ts })
- if (this.recentActive.length > 8) this.recentActive.length = 8
-
- if (!flowed) primary.heat += 0.4 // truly isolated event: just glow harder
- }
-
- // roll the 1s timeline buckets forward to `ts`, then count this event
- private bumpTimeline(ts: number, lv: number) {
- const BUCKET = 1000, CAP = 120
- if (!this.tl.length) { this.tl.push([0, 0, 0, 0, 0, 0]); this.tlLast = ts }
- while (ts - this.tlLast >= BUCKET) {
- this.tl.push([0, 0, 0, 0, 0, 0]); this.tlLast += BUCKET
- if (this.tl.length > CAP) this.tl.shift()
- }
- this.tl[this.tl.length - 1][lv]++
- }
-
- private primaryNode(line: LogcatLine, w: number, h: number): GNode {
- if (this.cfg.grouping === 'tag') {
- const id = 't:' + (line.tag || '?')
- return this.ensure(id, 'tag', line.tag || '?', w, h)
- }
- const pid = line.pid || '?'
- return this.ensure('p:' + pid, 'process', this.processNames[pid] || pid, w, h)
- }
-
- private refNode(_kind: RefKind, target: string, targetKind: 'package' | 'component' | 'pid', w: number, h: number): GNode | null {
- if (targetKind === 'pid') return this.ensure('p:' + target, 'process', this.processNames[target] || target, w, h)
- if (targetKind === 'component') return this.ensure('cmp:' + target, 'component', target, w, h)
- return this.ensure('pkg:' + target, 'package', target, w, h)
- }
-
- private ensure(id: string, kind: NodeKind, label: string, w: number, h: number): GNode {
- let n = this.nodes.get(id)
- if (!n) {
- // spawn on a wide golden-angle spiral so a burst of new nodes doesn't pile
- // up at the centre and explode outward (the "lots of movement on Start")
- const a = (this.nodes.size * 2.399963) % (Math.PI * 2)
- const r = 90 + (this.nodes.size % 19) * 26
- n = {
- id, kind, label,
- x: w / 2 + Math.cos(a) * r, y: h / 2 + Math.sin(a) * r,
- vx: 0, vy: 0, pinned: false,
- heat: 0, count: 0, worst: 0, lastTs: 0, recent: [], levels: [0, 0, 0, 0, 0, 0],
- }
- this.nodes.set(id, n)
- }
- return n
- }
-
- private touch(n: GNode, line: LogcatLine, lv: number, ts: number) {
- n.count++
- n.heat += 1
- n.worst = Math.max(n.worst, lv)
- n.lastTs = ts
- n.levels[lv]++
- // collapse consecutive identical lines so the inspector shows variety, not
- // 80 copies of the same chatty message
- const last = n.recent[n.recent.length - 1]
- if (!last || last.raw !== line.raw) {
- n.recent.push(line)
- if (n.recent.length > RECENT_CAP) n.recent.shift()
- }
- }
-
- private link(a: string, b: string, kind: EdgeKind, sev: number, lv: number, ts: number, line: LogcatLine) {
- const id = a + '>' + b
- let e = this.edges.get(id)
- if (!e) {
- e = { id, a, b, kind, weight: 0, count: 0, worst: 0, lastTs: ts }
- this.edges.set(id, e)
- }
- e.weight += 1
- e.count++
- e.lastTs = ts
- if (sev >= e.worst) { e.worst = sev; if (sev > 0) e.kind = kind }
- this.spawnParticle(a, b, lv, e.kind, sev, line)
- // record the real event for the live packet feed (dedupe immediate repeats)
- const prev = this.flowLog[this.flowLog.length - 1]
- const msg = line.message || line.raw || ''
- if (!prev || prev.a !== a || prev.b !== b || prev.msg !== msg) {
- const ev: FlowEvent = { ts, a, b, kind: e.kind, level: lv, tag: line.tag || '', msg }
- this.flowLog.push(ev)
- if (this.flowLog.length > FLOWLOG_CAP) this.flowLog.shift()
- if (this.capturing) { this.captured.push(ev); if (this.captured.length > 8000) this.captured.shift() }
- }
- }
-
- private spawnParticle(a: string, b: string, lv: number, kind: EdgeKind, sev: number, line: LogcatLine) {
- // always emit for severe events; otherwise sample by intensity
- if (sev < 3 && Math.random() > this.cfg.particleIntensity) return
- if (this.particles.length >= this.cfg.maxParticles) {
- this.particles.shift(); this.droppedParticles++
- }
- this.particles.push({
- a, b, t: 0,
- speed: (0.45 + Math.random() * 0.4) * this.cfg.particleSpeed * (sev >= 3 ? 1.5 : 1),
- level: lv, kind,
- line, // the actual event this particle carries
- })
- }
-
- // ---- per-frame updates -------------------------------------------------
-
- decay(scale = 1) {
- const t = now()
- // Clamp elapsed: after a pause / hidden view, lastDecay is stale and an
- // unclamped dt would decay all heat+edges in one tick and evict the whole
- // graph, leaving an empty map on return. Cap at 2s of decay per call.
- const dt = Math.min(t - this.lastDecay, 2000) * scale
- this.lastDecay = t
- if (dt <= 0) return
- const nf = Math.pow(0.5, dt / this.cfg.nodeHalfLifeMs)
- const ef = Math.pow(0.5, dt / this.cfg.edgeHalfLifeMs)
- for (const n of this.nodes.values()) { n.heat *= nf; n.worst *= nf }
- for (const [id, e] of this.edges) { e.weight *= ef; e.worst *= ef; if (e.weight < 0.04) this.edges.delete(id) }
- this.evict()
- }
-
- private evict() {
- // drop cold, edgeless, unpinned nodes; then cap total by heat
- const connected = new Set()
- for (const e of this.edges.values()) { connected.add(e.a); connected.add(e.b) }
- for (const [id, n] of this.nodes) {
- if (!n.pinned && !this.watchedIds.has(id) && n.heat < 0.02 && !connected.has(id)) this.nodes.delete(id)
- }
- if (this.nodes.size > this.cfg.maxNodes) {
- const arr = [...this.nodes.values()].filter(n => !n.pinned && !this.watchedIds.has(n.id)).sort((a, b) => a.heat - b.heat)
- let over = this.nodes.size - this.cfg.maxNodes
- for (const n of arr) {
- if (over-- <= 0) break
- this.nodes.delete(n.id)
- for (const [eid, e] of this.edges) if (e.a === n.id || e.b === n.id) this.edges.delete(eid)
- }
- }
- if (this.edges.size > this.cfg.maxEdges) {
- const arr = [...this.edges.values()].sort((a, b) => a.weight - b.weight)
- let over = this.edges.size - this.cfg.maxEdges
- for (const e of arr) { if (over-- <= 0) break; this.edges.delete(e.id) }
- }
- }
-
- advanceParticles(dt: number) {
- const keep: Particle[] = []
- // Clamp the step: a single long frame (view switch, GC pause, WebKitGTK
- // render stall) would otherwise push every particle's t past 1 in one tick
- // and cull the entire stream — the "0 flows" bug. Cap at ~4 frames' worth
- // so motion stays continuous after a hitch instead of resetting to empty.
- const step = Math.min(dt, 64) / 1000
- for (const p of this.particles) {
- p.t += p.speed * step
- if (p.t < 1 && this.nodes.has(p.a) && this.nodes.has(p.b)) keep.push(p)
- }
- this.particles = keep
- }
-
- // Incrementally place every not-yet-placed node into a 3D HANGING TREE: parent =
- // strongest INCOMING edge, child hangs one level below its parent and fans out in
- // the XZ plane (golden angle) so siblings spread into a cone. Parents are placed
- // before children (multi-pass); true roots (no incoming edge) sit at the top.
- // Stable once set → no re-jumping; the tree grows downward as the graph builds.
- placeTree3D() {
- const LEVEL = 115, CR = 230
- const placeRoot = (n: GNode) => {
- const ri = this.treeRootN++, a = ri * 2.399963, rr = 50 + ri * 16
- n.tx = Math.cos(a) * rr; n.tz = Math.sin(a) * rr; n.ty = 0; n.tdepth = 0
- }
- const placeChild = (n: GNode, par: GNode) => {
- const k = this.treeChildN.get(par.id) || 0; this.treeChildN.set(par.id, k + 1)
- const depth = (par.tdepth || 0) + 1
- const r = (CR / Math.sqrt(depth + 1)) * (0.55 + 0.45 * ((k % 6) / 5)), a = k * 2.399963
- n.tx = (par.tx || 0) + Math.cos(a) * r
- n.tz = (par.tz || 0) + Math.sin(a) * r
- n.ty = (par.ty || 0) - LEVEL
- n.tdepth = depth
- n.tparent = par.id
- }
- let changed = true, guard = 0
- while (changed && guard++ < 60) {
- changed = false
- for (const n of this.nodes.values()) {
- if (n.tx !== undefined) continue
- let par: GNode | null = null, bestW = -1, hasIn = false
- for (const e of this.edges.values()) {
- if (e.b !== n.id) continue
- hasIn = true
- const src = this.nodes.get(e.a)
- if (src && src.tx !== undefined && e.weight > bestW) { bestW = e.weight; par = src }
- }
- if (par) { placeChild(n, par); changed = true }
- else if (!hasIn) { placeRoot(n); changed = true }
- }
- }
- for (const n of this.nodes.values()) if (n.tx === undefined) placeRoot(n) // cycles / unreachable
- }
-
- // ---- box layout: 8 hub boxes in a 2-col grid --------------------------
- // Group nodes around the busiest hubs (each box = one hub + the nodes that
- // connect to it most), lay the boxes out 2-wide, and ease nodes to their slot.
- // Recomputed on an interval so the hub set doesn't reshuffle every frame.
- computeBoxes(w: number, h: number, N = 8) {
- const nodes = [...this.nodes.values()]
- this.boxes = []; this.boxTarget.clear()
- if (!nodes.length) return
-
- // degree weight = incident edge weight (+ a little heat as tiebreak)
- const deg = new Map()
- for (const n of nodes) deg.set(n.id, n.heat * 0.5)
- for (const e of this.edges.values()) {
- deg.set(e.a, (deg.get(e.a) || 0) + e.weight)
- deg.set(e.b, (deg.get(e.b) || 0) + e.weight)
- }
- const k = Math.min(N, nodes.length)
- const anchors = [...nodes].sort((a, b) => (deg.get(b.id) || 0) - (deg.get(a.id) || 0)).slice(0, k)
- const anchorBox = new Map()
- anchors.forEach((n, i) => anchorBox.set(n.id, i))
-
- // assign every node to a box: anchors own theirs; others go to the box of
- // their strongest-connected anchor; unconnected fall back to a stable hash.
- const members: string[][] = Array.from({ length: k }, () => [])
- for (const n of nodes) {
- let box = anchorBox.get(n.id)
- if (box === undefined) {
- let bestW = -1
- for (const e of this.edges.values()) {
- const other = e.a === n.id ? e.b : e.b === n.id ? e.a : null
- if (other !== null && anchorBox.has(other) && e.weight > bestW) { bestW = e.weight; box = anchorBox.get(other) }
- }
- if (box === undefined) {
- let hsh = 0; for (let i = 0; i < n.id.length; i++) hsh = (hsh * 31 + n.id.charCodeAt(i)) >>> 0
- box = hsh % k
- }
- }
- members[box].push(n.id)
- }
-
- // grid: 2 columns (like the drawing), rows as needed
- const cols = Math.min(2, k), rows = Math.ceil(k / cols)
- const pad = 36, gap = 46
- const bw = (w - pad * 2 - gap * (cols - 1)) / cols
- const bh = (h - pad * 2 - gap * (rows - 1)) / rows
- for (let i = 0; i < k; i++) {
- const c = i % cols, r = Math.floor(i / cols)
- const x = pad + c * (bw + gap), y = pad + r * (bh + gap)
- this.boxes.push({ x, y, w: bw, h: bh, label: anchors[i].label, count: members[i].length })
- // hierarchy: busiest node (the hub) sits prominently at the box's top-
- // centre, the rest sorted by activity flow into a grid beneath it.
- const mem = members[i].sort((p, q) => (deg.get(q) || 0) - (deg.get(p) || 0))
- const ipad = 26, iw = bw - ipad * 2, ih = bh - ipad * 2
- this.boxTarget.set(mem[0], { x: x + bw / 2, y: y + ipad + 6 })
- const rest = mem.slice(1)
- const top = y + ipad + 36, gh = Math.max(1, ih - 36)
- const gc = Math.max(1, Math.round(Math.sqrt(rest.length * (iw / Math.max(1, gh)))))
- const gr = Math.max(1, Math.ceil(rest.length / gc))
- rest.forEach((id, j) => {
- const cc = j % gc, rr = Math.floor(j / gc)
- const tx = x + ipad + (gc === 1 ? iw / 2 : (cc / (gc - 1)) * iw)
- const ty = top + (gr === 1 ? gh / 2 : (rr / (gr - 1)) * gh)
- this.boxTarget.set(id, { x: tx, y: ty })
- })
- }
- // scale the whole arrangement (boxes + node targets) around the centre
- const sc = this.cfg.layoutScale || 1
- if (sc !== 1) {
- const cx = w / 2, cy = h / 2
- for (const b of this.boxes) { b.x = cx + (b.x - cx) * sc; b.y = cy + (b.y - cy) * sc; b.w *= sc; b.h *= sc }
- for (const [id, t] of this.boxTarget) this.boxTarget.set(id, { x: cx + (t.x - cx) * sc, y: cy + (t.y - cy) * sc })
- }
- }
-
- private easeToTargets() {
- for (const n of this.nodes.values()) {
- if (n.pinned) continue
- const tg = this.boxTarget.get(n.id); if (!tg) continue
- n.vx = 0; n.vy = 0
- n.x += (tg.x - n.x) * 0.16; n.y += (tg.y - n.y) * 0.16
- }
- }
- private stepBoxLayout(w: number, h: number) {
- const t = now()
- if (t - this.lastBoxCalc > 1200 || !this.boxes.length) { this.computeBoxes(w, h); this.lastBoxCalc = t }
- this.easeToTargets()
- }
- // hierarchical tidy tree: parent = strongest INCOMING edge; root(s) at top,
- // children cascade down, leaves spread across the width, internal nodes centred
- // over their children (Reingold–Tilford-ish). Fills the viewport.
- computeTreeTargets(w: number, h: number) {
- const nodes = [...this.nodes.values()]
- this.boxes = []; this.boxTarget.clear()
- if (!nodes.length) return
- const parent = new Map(), inW = new Map()
- for (const e of this.edges.values()) {
- if ((inW.get(e.b) ?? -1) < e.weight) { inW.set(e.b, e.weight); parent.set(e.b, e.a) }
- }
- const children = new Map(), roots: string[] = []
- for (const n of nodes) {
- const p = parent.get(n.id)
- // root if no parent, parent missing, or a 2-cycle where this node is the stronger
- if (p && p !== n.id && this.nodes.has(p) && !(parent.get(p) === n.id && (inW.get(n.id) ?? 0) >= (inW.get(p) ?? 0))) {
- const arr = children.get(p); if (arr) arr.push(n.id); else children.set(p, [n.id])
- } else roots.push(n.id)
- }
- const visited = new Set(), xpos = new Map(), depth = new Map()
- let cursor = 0, maxDepth = 0
- const dfs = (id: string, d: number) => {
- if (visited.has(id)) return
- visited.add(id); depth.set(id, d); if (d > maxDepth) maxDepth = d
- const ch = (children.get(id) || []).filter(c => !visited.has(c))
- if (!ch.length) { xpos.set(id, cursor++); return }
- let sum = 0; for (const c of ch) { dfs(c, d + 1); sum += xpos.get(c) ?? 0 }
- xpos.set(id, sum / ch.length)
- }
- for (const r of roots) dfs(r, 0)
- for (const n of nodes) if (!visited.has(n.id)) { depth.set(n.id, 0); xpos.set(n.id, cursor++) } // stragglers/cycles
- const maxX = Math.max(1, cursor - 1), pad = 60, sc = this.cfg.layoutScale || 1
- const cx = w / 2, cy = h / 2, levelGap = maxDepth > 0 ? (h - pad * 2) / maxDepth : 0
- for (const n of nodes) {
- const x0 = pad + ((xpos.get(n.id) ?? 0) / maxX) * (w - pad * 2)
- const y0 = pad + (depth.get(n.id) ?? 0) * levelGap
- this.boxTarget.set(n.id, { x: cx + (x0 - cx) * sc, y: cy + (y0 - cy) * sc })
- }
- }
-
- // arrange nodes (ordered by activity) onto the chosen geometric structure
- computeGeometry(w: number, h: number) {
- if (this.cfg.geometry === 'tree') { this.computeTreeTargets(w, h); return }
- const nodes = [...this.nodes.values()]
- this.boxes = []; this.boxTarget.clear()
- if (!nodes.length || this.cfg.geometry === 'none') return
- const deg = new Map()
- for (const n of nodes) deg.set(n.id, n.heat)
- for (const e of this.edges.values()) { deg.set(e.a, (deg.get(e.a) || 0) + e.weight); deg.set(e.b, (deg.get(e.b) || 0) + e.weight) }
- const ordered = nodes.sort((a, b) => (deg.get(b.id) || 0) - (deg.get(a.id) || 0))
- const pts = geometryPoints(this.cfg.geometry, ordered.length, w, h)
- if (!pts.length) return
- const cx = w / 2, cy = h / 2, sc = this.cfg.layoutScale || 1
- ordered.forEach((n, i) => {
- const p = pts[i % pts.length]
- this.boxTarget.set(n.id, { x: cx + (p.x - cx) * sc, y: cy + (p.y - cy) * sc })
- })
- }
- private stepGeometry(w: number, h: number) {
- const t = now()
- if (t - this.lastBoxCalc > 1200 || !this.boxTarget.size) { this.computeGeometry(w, h); this.lastBoxCalc = t }
- this.easeToTargets()
- }
-
- // simple O(n²) force layout — fine for the bounded node count
- stepForces(w: number, h: number, dtMs: number) {
- if (this.cfg.freeze) return // freeze = stop ALL node movement, in every layout mode
- if (this.cfg.boxLayout) { this.stepBoxLayout(w, h); return }
- if (this.cfg.geometry !== 'none') { this.stepGeometry(w, h); return }
- this.boxes = []
- const dt = Math.min(dtMs, 40) / 16.67
- const ns = [...this.nodes.values()]
- const cx = w / 2, cy = h / 2
- // layoutScale spreads the force layout too: more repulsion + longer springs +
- // weaker gravity → the whole graph grows/shrinks with the slider.
- const sc = this.cfg.layoutScale || 1
- const rep = this.cfg.repulsion * sc
- const grav = this.cfg.gravity / sc
-
- for (let i = 0; i < ns.length; i++) {
- const a = ns[i]
- for (let j = i + 1; j < ns.length; j++) {
- const b = ns[j]
- let dx = a.x - b.x, dy = a.y - b.y
- let d2 = dx * dx + dy * dy
- if (d2 < 0.01) { dx = (i - j) || 1; dy = 1; d2 = 2 }
- const inv = 1 / d2
- let f = rep * inv
- if (this.cfg.clusterByKind && a.kind === b.kind) f *= (1 - this.cfg.clusterByKind * 0.6)
- const d = Math.sqrt(d2)
- // size-aware collision: if the discs overlap, add a strong extra push so
- // big (hot) nodes separate instead of stacking into a central blob.
- const minSep = nodeRadius(a) + nodeRadius(b) + 10
- if (d < minSep) f += (minSep - d) * 1.4
- const fx = (dx / d) * f, fy = (dy / d) * f
- a.vx += fx; a.vy += fy
- b.vx -= fx; b.vy -= fy
- }
- // gravity toward centre
- a.vx += (cx - a.x) * grav
- a.vy += (cy - a.y) * grav
- }
-
- // springs
- const L = this.cfg.linkDistance * sc
- for (const e of this.edges.values()) {
- const a = this.nodes.get(e.a), b = this.nodes.get(e.b)
- if (!a || !b) continue
- const dx = b.x - a.x, dy = b.y - a.y
- const d = Math.hypot(dx, dy) || 1
- const rest = L / (1 + Math.min(e.weight, 6) * 0.12)
- const f = (d - rest) * 0.02
- const fx = (dx / d) * f, fy = (dy / d) * f
- a.vx += fx; a.vy += fy
- b.vx -= fx; b.vy -= fy
- }
-
- for (const n of ns) {
- if (n.pinned) { n.vx = 0; n.vy = 0; continue }
- n.vx *= this.cfg.damping; n.vy *= this.cfg.damping
- // clamp velocity for stability — lower cap calms the initial settle
- const v = Math.hypot(n.vx, n.vy)
- if (v > 14) { n.vx = (n.vx / v) * 14; n.vy = (n.vy / v) * 14 }
- n.x += n.vx * dt; n.y += n.vy * dt
- }
- }
-
- nodeAt(x: number, y: number, radiusFn: (n: GNode) => number): GNode | null {
- let best: GNode | null = null, bestD = Infinity
- for (const n of this.nodes.values()) {
- const r = radiusFn(n) + 4
- const d = Math.hypot(n.x - x, n.y - y)
- if (d <= r && d < bestD) { best = n; bestD = d }
- }
- return best
- }
-
- neighbors(id: string): { node: GNode; edge: GEdge; dir: 'out' | 'in' }[] {
- const out: { node: GNode; edge: GEdge; dir: 'out' | 'in' }[] = []
- for (const e of this.edges.values()) {
- if (e.a === id) { const n = this.nodes.get(e.b); if (n) out.push({ node: n, edge: e, dir: 'out' }) }
- else if (e.b === id) { const n = this.nodes.get(e.a); if (n) out.push({ node: n, edge: e, dir: 'in' }) }
- }
- return out.sort((x, y) => y.edge.weight - x.edge.weight)
- }
-}
diff --git a/frontend/src/lib/notify.ts b/frontend/src/lib/notify.ts
index 24afec2..46023ed 100644
--- a/frontend/src/lib/notify.ts
+++ b/frontend/src/lib/notify.ts
@@ -1,22 +1,9 @@
// Simple toast state management - used with sonner
import { toast } from 'sonner'
-// When the user enables "mute no-device pop-ups" (Settings), swallow error
-// toasts that are just about a missing/offline/unauthorized device.
-function mutedNoDevice(msg: string): boolean {
- if (localStorage.getItem('atk-mute-nodevice') !== '1') return false
- const s = msg.toLowerCase()
- return s.includes('no device') || s.includes('no devices/emulators') ||
- s.includes('offline') || s.includes('unauthorized') || s.includes('device not found')
-}
-
export const notify = {
success: (msg: string) => toast.success(msg, { duration: 3000 }),
- error: (msg: string) => {
- const s = String(msg)
- if (mutedNoDevice(s)) return
- return toast.error(s, { duration: 5000 })
- },
+ error: (msg: string) => toast.error(msg, { duration: 5000 }),
info: (msg: string) => toast(msg, { duration: 3000 }),
loading: (msg: string) => toast.loading(msg),
dismiss: (id?: string | number) => toast.dismiss(id),
diff --git a/frontend/src/lib/quitgate.ts b/frontend/src/lib/quitgate.ts
deleted file mode 100644
index d73c8ee..0000000
--- a/frontend/src/lib/quitgate.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-// Trigger for the close-confirmation dialog (QuitGate.tsx). The title bar's
-// close button calls requestQuitConfirm() instead of quitting directly, so
-// the user picks Minimize-to-tray vs Quit rather than the window just vanishing.
-let host: (() => void) | null = null
-
-export function _registerQuitHost(fn: () => void): () => void {
- host = fn
- return () => { host = null }
-}
-
-export function requestQuitConfirm() {
- host?.()
-}
diff --git a/frontend/src/lib/scrollfix.ts b/frontend/src/lib/scrollfix.ts
deleted file mode 100644
index 82c1697..0000000
--- a/frontend/src/lib/scrollfix.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// Works around a known Chromium/WebView2 bug where a native scrollbar-thumb
-// drag gets stuck "captured" after a click - typically triggered by precision
-// touchpad drivers that emit mousemove without a matching mouseup right after
-// the click. Symptom: click a scrollbar once, then any further pointer motion
-// keeps dragging it as if the button were still held down. Long lists (the
-// Packages / Debloater views) are where this is actually noticed.
-//
-// Only acts if we saw a mousedown with no matching mouseup yet - `e.buttons
-// === 0` on a subsequent mousemove then means the OS-reported button state
-// disagrees with what we're tracking, i.e. the real mouseup happened but
-// wasn't delivered as an event. That's the stuck-drag signature; a synthetic
-// mouseup nudges the browser's internal scrollbar-drag state to release.
-export function installScrollbarDragFix() {
- let mouseIsDown = false
-
- window.addEventListener('mousedown', () => { mouseIsDown = true }, { capture: true })
- window.addEventListener('mouseup', () => { mouseIsDown = false }, { capture: true })
-
- window.addEventListener(
- 'mousemove',
- (e: MouseEvent) => {
- if (mouseIsDown && e.buttons === 0) {
- mouseIsDown = false
- window.dispatchEvent(
- new MouseEvent('mouseup', {
- bubbles: true,
- cancelable: true,
- clientX: e.clientX,
- clientY: e.clientY,
- })
- )
- }
- },
- { capture: true }
- )
-}
diff --git a/frontend/src/lib/syntax.tsx b/frontend/src/lib/syntax.tsx
deleted file mode 100644
index 0ac2ec1..0000000
--- a/frontend/src/lib/syntax.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-// Dependency-free, theme-aware syntax highlighter.
-//
-// tokenize() splits code into typed tokens; renders them as spans
-// whose colours come from CSS variables (.syn-* classes in global.css), so the
-// highlighting automatically tracks the active theme. Deliberately lightweight —
-// ordered sticky-regex rules per language, capped for large inputs — not a full
-// parser, but good enough for manifests, config, logs and shell output.
-import { useMemo } from 'react'
-
-export type SynLang = 'xml' | 'json' | 'shell' | 'log' | 'text'
-
-interface Rule { re: RegExp; c: string }
-
-// All patterns use the sticky flag so they only match at the cursor position.
-const RULES: Record