Thank you for considering contributing to UIBloatwareRegistry! We appreciate your interest in making this repository better. This guide will help you contribute safely and effectively.
- Quick Start
- How to Identify Bloatware Packages
- How to Test Package Removal
- Risk Level Guidelines
- Adding New Packages
- Submitting Contributions
- Code Guidelines
- Issue Reporting
- License
We've made contributing easier! Use our contribution tool:
python contribute.pyThis interactive tool will guide you through adding new packages to the registry.
To add a new package, you needed to:
- Edit the brand's Python file (
Samsung/samsung_remover.py) - Edit the brand's Shell script (
Samsung/samsung_remover.sh) - Edit the brand's Markdown file (
Samsung/samsung-bloatware-list.md) - Ensure consistency across all three files
- Know Python, Shell, and Markdown syntax
Now you can:
- Run
python contribute.py(interactive tool) - OR edit
packages_registry.jsondirectly - That's it! One source of truth for all packages
# Run the contribution tool
python contribute.pyThe tool will guide you through:
- Selecting brand and category
- Entering package information
- Validating risk levels
- Saving to the registry
# Add a package directly
python contribute.py add \
--brand samsung \
--category bixby \
--package com.samsung.android.bixby.test \
--description "Bixby Test Service" \
--risk safe
# Search for packages
python contribute.py search --query "bixby"
# Remove a package
python contribute.py remove --brand samsung --package com.example.packageEdit packages_registry.json directly:
{
"brands": {
"samsung": {
"name": "Samsung",
"categories": {
"bixby": {
"name": "Bixby Services",
"description": "Samsung's virtual assistant",
"packages": [
{
"name": "com.samsung.android.bixby.agent",
"description": "Bixby Voice Assistant",
"risk": "safe"
}
]
}
}
}
}
}Connect your device via ADB and run:
adb shell pm list packagesTo understand what a package does:
# Get app name
adb shell pm dump <package.name> | grep -i "label"
# Check if it's a system app
adb shell pm list packages -s | grep <package.name>
# See the package path
adb shell pm path <package.name>- Search the package name online
- Check XDA forums and Reddit r/Android
- Look for the app in the Play Store
- Review similar bloatware lists
DO identify packages that are:
- Manufacturer-specific apps you don't use
- Carrier-installed apps
- Duplicate apps (when alternatives are available)
- Promotional or shopping apps
- OEM assistants you don't use
DO NOT identify packages that are:
- Core system services
- Android framework components
- Google Play Services (unless you know what you're doing)
- Security or authentication services you use
-
Use Test Mode First:
python main.py --test
-
Remove for Current User Only:
adb shell pm uninstall --user 0 <package.name>
This doesn't completely remove the package - it can be restored!
-
Test Device Functionality:
- Make/receive calls
- Send/receive SMS
- Use camera
- Connect to WiFi
- Use fingerprint/face unlock
- Test any features related to the removed package
-
Restore if Needed:
adb shell cmd package install-existing <package.name>
- Test for at least 24-48 hours after removal
- Restart your device during testing
- Try various scenarios related to the removed package
Choose the appropriate risk level for each package:
Definition: Can be removed without affecting system functionality
Criteria:
- Optional apps (games, shopping, news)
- Duplicate functionality (manufacturer apps when Google alternatives exist)
- Services you don't use (Bixby if you don't use it)
- Carrier bloatware
Examples:
com.samsung.android.game.gamehome- Game Launchercom.amazon.mShop.android.shopping- Amazon Shoppingcom.netflix.mediaclient- Netflix (pre-installed)
Definition: May affect some functionality, but system remains stable
Criteria:
- Default apps with system integration (browser, messaging)
- Apps that other apps might depend on
- Features that some users rely on
Examples:
com.sec.android.app.sbrowser- Samsung Internetcom.samsung.android.messaging- Samsung Messagescom.google.android.apps.maps- Google Maps
Definition: May cause system instability, boot loops, or critical feature loss
Criteria:
- Core system services
- Authentication services
- Payment systems
- Device admin apps
- System frameworks
Examples:
com.samsung.android.spay- Samsung Paycom.google.android.gms- Google Play Servicescom.android.systemui- System UI
Definition: Not yet tested or categorized
Usage: Temporary classification until proper testing is done
python contribute.pyFollow the interactive prompts to add packages safely.
- Edit
packages_registry.json - Add your package under the appropriate brand and category:
{
"name": "com.example.bloatware",
"description": "Example Bloatware App",
"risk": "safe"
}- Test your changes locally
- Submit a pull request
When adding a package, provide:
- Package Name: Full package identifier (e.g.,
com.samsung.android.app.example) - Description: Clear, concise description (e.g., "Samsung Example App")
- Risk Level: Based on guidelines above (
safe,caution,dangerous) - Category: Appropriate category for the package
- Testing Evidence: Brief description of how you tested it
When proposing a risk level, explain your reasoning:
**Package**: com.example.app
**Proposed Risk**: safe/caution/dangerous
**Rationale**:
- Tested removal on [Device Model, Android Version]
- Observed behavior: [What happened after removal]
- Affects: [List affected features, or "No issues found"]
- Restore test: [Yes/No - was restore successful?]
- Testing duration: [How long you tested]
- Additional context: [Any other relevant information]
-
Fork the repository on GitHub
-
Create a new branch with a descriptive name:
git checkout -b add-samsung-game-launcher
-
Make your changes following the guidelines above
-
Test thoroughly using test mode and actual removal
-
Commit with a clear message:
git commit -m "add: Samsung Game Launcher to safe removal list - Package: com.samsung.android.game.gamehome - Risk: safe - Tested on Galaxy S21, Android 13 - No issues observed after 48h testing"
-
Push your branch:
git push origin add-samsung-game-launcher
-
Submit a pull request using our PR template
- Follow consistent code formatting and style
- Use meaningful variable and function names
- Include appropriate comments for clarity
- Write clear and concise commit messages
- Test your changes before submitting
Use the "Removal Problem Report" issue template and include:
- Device model and Android version
- Package that caused the issue
- Symptoms observed
- Steps to reproduce
- Whether you were able to restore functionality
Use the "New Package Entry" issue template
Use the "Update Risk Level" issue template if you have evidence that a package's risk level should change
If you're integrating with the registry programmatically:
from core.package_registry import PackageRegistry
# Initialize registry
registry = PackageRegistry()
# Get all brands
brands = registry.get_brands()
# Get packages for a brand
packages = registry.get_packages_for_brand('samsung')
# Get specific package info
info = registry.get_package_info('samsung', 'com.samsung.android.bixby.agent')
# Add a package
registry.add_package('samsung', 'bixby', {
'name': 'com.test.app',
'description': 'Test App',
'risk': 'safe'
})
# Save changes
registry.save_registry()python contribute.py search --query "package-name"
# Check if it's already in the registry# Validate your JSON
python -m json.tool packages_registry.json# Make contribute.py executable
chmod +x contribute.py-
Always test before adding
- Use real device or test mode
- Verify functionality
- Test recovery
-
Use descriptive information
- Clear package descriptions
- Accurate risk levels
- Proper categorization
-
Document your testing
- Device model and Android version
- Features tested
- Issues encountered
-
Follow PR template
- Complete all sections
- Provide evidence
- Link related issues
Q: Do I need to know Python? A: No! Use the interactive tool or edit JSON directly.
Q: Can I still edit the .py files? A: Yes, but it's not recommended. Use the registry instead.
Q: Will old .md files be updated? A: They may be auto-generated from the registry in the future.
Q: How do I add a new brand?
A: Use python contribute.py and select "Add a new brand"
Q: What if I make a mistake? A: Git version control keeps everything safe. Just submit a correction PR!
- Read this contribution guide thoroughly
- Start a Discussion
- Report an Issue
By contributing to the UIBloatwareRegistry repository, you agree that your contributions will be licensed under the MIT License.
We appreciate your contributions and look forward to building a valuable resource for managing Android bloatware together!
Happy Contributing!