Skip to main content

Contributing to Cromite

Cromite welcomes contributions from the community! Whether you’re reporting bugs, submitting patches, or helping with documentation, your contributions help make Cromite better for everyone.

Project Goals

Before contributing, understand Cromite’s core objectives:

Privacy First

Limit features that track user habits. If technically impossible to remove, disable by default and let users choose to re-enable.

Independence

Reduce tight integration between browser and manufacturer. Minimize dependencies on Google services.

Bromite Legacy

Continue the excellent work by csagan5 with Bromite, ensuring this research and development isn’t lost.

Collaboration

Promote integration with other non-profit, open-source browsers and contribute improvements back to Chromium when mature.
Privacy Limitations: Cromite’s privacy features, including anti-fingerprinting mitigations (which are not comprehensive), are not suitable for journalists or people living in countries with freedom limitations. Please recommend Tor Browser for such cases.

Ways to Contribute

1. Reporting Issues

Found a bug or have a feature request? Submit it on GitHub!
1

Check Existing Issues

Search GitHub Issues to see if your issue already exists.
2

Use Issue Templates

GitHub provides templates for different issue types. Note: Templates are not visible on mobile.Available templates:
  • Bug Report: For crashes, errors, or unexpected behavior
  • Feature Request: For new functionality
  • Privacy/Security Issue: For privacy or security concerns
3

Provide Details

Include:
  • Cromite version: Check Settings → About
  • Device/OS: Android version, device model, or OS
  • Steps to reproduce: Clear steps to trigger the issue
  • Expected vs actual behavior: What should happen vs what happens
  • Logs/screenshots: If applicable
For Android crashes, include the logcat output. You can enable crash logging in Cromite settings.

2. Submitting Patches

Contribute code improvements, bug fixes, or new features:
1

Fork and Clone

git clone https://github.com/YOUR-USERNAME/cromite.git
cd cromite
git checkout -b my-feature-branch
2

Create Your Patch

Your patch should:
  • Apply cleanly to the Chromium version in build/RELEASE (currently 145.0.7632.120)
  • Follow existing patch naming conventions
  • Include clear commit messages explaining the change
  • Be focused on a single improvement or fix
Example patch structure:
# Edit Chromium source
cd chromium/src/
# Make your changes...

# Create patch file
git add -u
git commit -m "Add feature X to improve privacy"
git format-patch -1 --stdout > ../../cromite/build/patches/Add-feature-X.patch
3

Update Patch List

Add your patch to build/cromite_patches_list.txt in the appropriate position:
echo "Add-feature-X.patch" >> build/cromite_patches_list.txt
Consider where your patch fits logically (privacy patches together, UI patches together, etc.)
4

Test Your Changes

Build Cromite with your patch applied:
# Using Docker (recommended)
docker exec -ti cromite-dev bash
cd chromium/src/
autoninja -C out/Default chrome_public_apk
Test thoroughly:
  • Does the build complete successfully?
  • Does your feature work as expected?
  • Are there any regressions?
5

Submit Pull Request

git add build/patches/Add-feature-X.patch build/cromite_patches_list.txt
git commit -m "Add patch: Feature X for improved privacy"
git push origin my-feature-branch
Open a pull request on GitHub with:
  • Clear title describing the change
  • Description of what the patch does
  • Why this change aligns with Cromite’s goals
  • Testing performed

Patch Acceptance Criteria

Patches are accepted if they: Align with project goals: Privacy, security, or user control improvements Are well-tested: Don’t break existing functionality Follow conventions: Match existing patch style and naming Include documentation: Comments explaining non-obvious changes Maintain compatibility: Work across Android, Linux, and Windows builds Will be rejected if:
  • Add telemetry or tracking
  • Increase integration with Google services
  • Break core browser functionality
  • Introduce security vulnerabilities

3. Join Discussions

For questions, ideas, or general discussion:

GitHub Discussions

Join the community discussion forum for:
  • Usage questions
  • Development discussions
  • Feature ideas
  • General feedback

Help Wanted

The project maintainer has identified several areas where help is especially needed:
Problem: Chromium closes many issues, making it hard to track which new features should be enabled or disabled in Cromite.Needed: A tool that scans the Chromium git log by bug ID and lists related commits.Skills: Git, scripting (Python/Shell), Chromium issue tracker familiarityReference: Chromium development mailing list discussion
Problem: Chromium has hundreds of flags that change behavior. Some improve privacy, others harm it. Tracking all changes is difficult.Needed: A tool that:
  • Queries public Finch (Google’s flag configuration) endpoints daily
  • Records flag changes over time
  • Helps identify new flags to evaluate
Skills: API integration, data collection, web scrapingRelated: Help setting up UI for bromite-flags-list
Problem: Cromite lacks comprehensive automated tests. This is unprofessional and potentially dangerous for users.Needed: A complete test suite including:
  • Privacy feature tests (fingerprinting protection, etc.)
  • Security tests (sandbox, isolation, etc.)
  • Functionality tests (ensure features work)
  • Regression tests (catch breaking changes)
  • Cross-platform tests (Android, Linux, Windows)
Skills: Test automation, Selenium/WebDriver, Chromium testing framework, CI/CD
This is a critical need. Users must know that Cromite is tested properly.
Problem: Build scripts are “haphazard and poorly documented” (maintainer’s words).Needed:
  • Refactor build scripts for clarity
  • Add comprehensive documentation
  • Improve error handling
  • Make scripts more maintainable
Skills: Shell scripting, build systems, documentationSee: tools/ directory in the repository
Interested in any of these areas? Start a discussion on GitHub Discussions or check the help wanted issues.

Development Resources

Build Guide

Learn how to build Cromite from source

Patch System

Understand Cromite’s 333 patches

Docker Setup

Use Docker for development

Chromium Docs

Official Chromium build documentation

Code of Conduct

When contributing, please:
  • Be respectful: Treat all contributors with respect
  • Be constructive: Focus on improving the project
  • Be patient: Maintainers are volunteers with limited time
  • Be clear: Communicate clearly and provide context
  • Be collaborative: Work together to find the best solutions

Contribution Workflow

Getting Help

Need help contributing?
1
2

Search Issues

Someone may have had the same question: GitHub Issues
3

Ask on Discussions

Post your question: GitHub Discussions
4

Be Patient

The maintainer and community are volunteers. Responses may take time.

Support Cromite

If you can’t contribute code, consider:

Financial Support

Support Cromite development through PayPal: Donations help cover:
  • Build server costs
  • Development time
  • Maintenance and testing

Spread the Word

  • Star the GitHub repository
  • Share Cromite with privacy-conscious friends
  • Write reviews or blog posts
  • Answer questions in Discussions

Recognition

Cromite contributors are recognized in:
  • Git commit history
  • Release notes (for significant contributions)
  • Community discussions
All contributions, big or small, help make Cromite better! 🎉

License

By contributing to Cromite, you agree that your contributions will be licensed under:
  • Cromite-specific code: GNU GPL-2+
  • Patches from Bromite: GNU GPL v3
Each patch should include appropriate license headers.

Next Steps

Ready to contribute?

View Issues

Find bugs to fix or features to implement

Join Discussions

Discuss ideas with the community

Build from Source

Set up your development environment

Help Wanted

See where help is most needed

Build docs developers (and LLMs) love