This repository defines the quality and maintenance requirements for all official CharaROM device maintainers. These rules are set by the CharaROM core team to ensure consistent standards across all devices, protect user data and deliver a stable user experience.
-
Maintainers must be proficient with source control tools such as git and repo.
-
All device-related sources must be published publicly under the CharaROM Android GitHub organization, including:
- Common device trees (if applicable)
- Device trees
- Kernel sources
-
Providing a vendor repository is not mandatory due to potential proprietary or DMCA-related issues, but it is strongly recommended.
-
Device trees and device-specific sources must be cloned via
chararom.dependenciesor vialocal_manifests. If done vialocal_manifests, the manifest .xml MUST be shared and uploaded to our device manifests repository. Any source alteration or cloning throughvendorsetup.shor other scripts is not allowed. -
All sources must be fully synced and pushed to GitHub before every official build release.
-
Device trees may be co-maintained, but only in the case when maintainers are already part of CharaROM, crDroid, or LineageOS.
-
Maintainers must test every build before release, preferably with external testers, to minimize user-facing issues.
-
If any quality requirement (see below) cannot be met, the maintainer must clearly justify the exception when applying for maintainer status.
-
An official forum thread (usually XDA) must be created using the official template and must include:
- Installation instructions
- Download links
- Source links
- Device documentation
-
Installation instructions must be added to the device repository for the time being. We will make our own installation_docs repository in the future. It is advised to link the install docs from the upstream device tree source, if applicable.
-
Maintainers must be willing to provide an environment free from hatred, discrimination, drama, or crimes.
- If you'd like to report a maintainer's behavior, please open an issue here or join the development group
- Official communication takes place in the Telegram group, to which maintainers are invited upon acceptance.
- New features should be proposed via Pull Requests with clean commits for proper review.
-
Repositories must be kept clean, organized, and readable.
-
Release branches must be named after the CharaROM codename version, except for the main manifest repository, for example:
- Android 16 ->
hershey - This naming is mandatory, except in the case below.
- Android 16 ->
-
If existing hosted sources are incompatible, maintainers must create device-specific branches, e.g.:
hershey-dre
-
Additional branches for testing or backup are allowed.
-
Original commit authorship must be preserved.
-
Commit messages must be descriptive and meaningful, meaning commits must clearly explain what and why, especially reverts.
-
Rebasing and force-pushing are allowed only if they do not disrupt other maintainers.
- Never force-push shared branches without consulting all users.
-
When force-pushing, create a backup branch first, e.g.:
mybranch-oldmybranch-YYYYMMDD
- Reusing open-source code is allowed and encouraged.
- Original authorship must always be preserved.
- Direct copying without attribution is not allowed.
- If copying part of a file, the commit must have a link back to the original file. If the original file is later found to have been kanged, we will add the actual original file within code comments.
- All initial builds MUST be labeled as experimental until:
- The device boots reliably
- Core hardware (RIL, Wi-Fi, etc.) is confirmed working
- Experimental builds may:
- Fail to boot
- Have broken core functionality
- Be unsuitable for daily use
- All audio outputs available in the stock ROM must work.
- Must be fully operational if present in stock ROM.
- Must never crash.
- The default camera app (Aperture) must work.
- Alternative camera apps (e.g. OpenCamera) are allowed only if fully stable.
- MTP, PTP, ADB, and USB tethering must work.
- Must be fully functional.
- A2DP stack may be used if hardware supports it.
- 5 GHz must work if supported by stock ROM.
- Wi-Fi hotspot must work and support 5 GHz where applicable.
- Must work if the device includes a fingerprint sensor.
- All core sensors must be functional.
- Must be operational and support the same satellite systems as stock.
- Internal and external storage (e.g. SD cards) must work.
- Encryption is mandatory.
- If the device includes a battery, its status must be properly detected within the ROM.
- Charging must work properly within the ROM.
- Device must not have known critical hardware safety issues.
A build is considered stable only if:
- It boots consistently
- Core hardware functions without major issues
- No critical crashes or system instability is present
-
Kernel must not alter stock hardware parameters (CPU/GPU/memory frequencies or voltages).
-
Must be built with:
- SELinux enabled
- Audit may be disabled
-
Blocking system tweak apps (e.g. L Speed, LKT) is allowed.
-
Blocking user applications (e.g. games like PUBG) is not allowed.
- Blobs must be obtained from publicly available or legally distributable sources.
-
Only production builds (
useroruserdebug) are allowed, butuserdebugis recommended. -
Official builds may be:
- Weekly
- Monthly
- Nightly but must be released for every, if not every other, CharaROM minor version update.
-
SELinux:
- Permissive allowed only during early bring-up and beta builds.
- Must be enforcing for all official releases.
-
Official builds must not include GApps, unless booting without them is impossible.
-
If GApps are included:
- Only the minimum required package is allowed.
- No extra or non-essential apps.
-
Unless granted permission before hand, no additional apps may be bundled by maintainers, except:
- Stock ROM apps
- Dolby
- 1.5 - Improve clarity, add EXPERIMENTAL build requirement
- 1.4 - Add Battery rule
- 1.3 - Revise Device syncing requirements and naming schema
- 1.2 - Revise co-maintainership requirements
- 1.1 - Revise some things, make it fit more in-line with CharaROM
- 1.0 – Initial release (Based on crDroid's rules and guidelines, with our additions. Thanks, crDroid Team!)