├── .gitignore ├── README.md ├── code-of-conduct.md ├── device-support-requirements.md └── directors-working-agreement.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineageOS/charter/91320514b08c86fef1e62c3d7e03522c358bcc38/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LineageOS Charter 2 | --- 3 | 4 | This repository contains a set of governance documents for the LineageOS Project. Most changes to this repository require 3 directors to approve - you can view the proposed/approved/denied changes [here](https://review.lineageos.org/#/q/project:LineageOS/charter). 5 | 6 | Current documents are listed below. 7 | 8 | [Device Support Requirements](device-support-requirements.md) - a set of requirements for a device to recieve LineageOS officially. 9 | [Code of Conduct](code-of-conduct.md) - a set of guidelines for how contributors are expected to treat each other. 10 | [Directors Working Agreement](directors-working-agreement.md) - guidelines for LineageOS Project Directors. 11 | -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and directors pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * Trolling, insulting/derogatory comments, and personal or political attacks 20 | * Public or private harassment 21 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 22 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project directors are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project directors have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project directors. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at directors@lineageos.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project directors who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /device-support-requirements.md: -------------------------------------------------------------------------------- 1 | Welcome to the LineageOS Device Support Requirements. This document enumerates the requirements that must be met in order for devices to be deemed ship ready for LineageOS releases, beginning with Android Oreo. 2 | To be considered ready, device maintainers MUST meet the requirements presented in this document, including any documents incorporated via reference. 3 | 4 | The use of “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” is per the IETF standard defined in RFC2119. 5 | 6 | ### Table of Contents 7 | 8 | * [Device ownership](#device-ownership) 9 | * [Attaining exceptions](#attaining-exceptions) 10 | * [Process](#process) 11 | * [Hardware Support](#hardware-support) 12 | * [Audio](#audio) 13 | * [RIL](#ril) 14 | * [Encryption](#encryption) 15 | * [Wi-Fi](#wi-fi) 16 | * [USB](#usb) 17 | * [GPS](#gps) 18 | * [Bluetooth](#bluetooth) 19 | * [Camera](#camera) 20 | * [Video Recording](#video-recording) 21 | * [Codecs](#codecs) 22 | * [Display](#display) 23 | * [NFC](#nfc) 24 | * [Fingerprint Sensor](#fingerprint-sensor) 25 | * [IR](#ir) 26 | * [SD card](#sd-card) 27 | * [Accelerometer](#accelerometer) 28 | * [Gyroscope](#gyroscope) 29 | * [Proximity](#proximity) 30 | * [Light](#light) 31 | * [Other Sensors](#other-sensors) 32 | * [Accessories](#accessories) 33 | * [Hardware Deviations](#hardware-deviations) 34 | * [Software support](#software-support) 35 | * [Device tree structure](#device-tree-structure) 36 | * [Build type](#build-type) 37 | * [Kernel](#kernel) 38 | * [SELinux status](#selinux-status) 39 | * [Verity](#verity) 40 | * [Updater](#updater) 41 | * [FRP](#frp) 42 | * [Play Integrity](#play-integrity) 43 | * [Binder](#binder) 44 | * [Root (su)](#root-su) 45 | * [Non-PIE Blobs](#non-pie-blobs) 46 | * [Proprietary files extraction](#proprietary-files-extraction) 47 | * [CVE](#cve) 48 | * [Firmware](#firmware) 49 | * [exFAT Support](#exfat-support) 50 | * [Additional Features](#additional-features) 51 | * [Software Deviations](#software-deviations) 52 | * [Vendor Images](#vendor-images) 53 | * [Quality of life](#quality-of-life) 54 | * [Commit Authorship](#commit-authorship) 55 | * [Copyrights](#copyrights) 56 | * [Workflow](#workflow) 57 | * [GitLab Issues](#gitlab-issues) 58 | * [Licensing](#licensing) 59 | * [Wiki](#wiki) 60 | * [Stability](#stability) 61 | * [LineageOS Recovery](#lineageos-recovery) 62 | * [Addon packages](#addon-packages) 63 | * [Exceptions](#exceptions) 64 | 65 | # Device ownership 66 | 67 | * Maintainers MUST own the device or at least a variant of it (devices with similar hardware but a different marketing name are allowed). 68 | 69 | # Attaining exceptions 70 | 71 | ## Process 72 | 73 | * Device or software deviations from our core product (as described below) MUST be approved by no less than 3 Project Directors. 74 | * Device or software exceptions SHOULD be made via change request to this repository. 75 | * All device or software exceptions that are granted MUST be documented on the Wiki for all affected devices. 76 | 77 | # Hardware Support 78 | 79 | ## Audio 80 | 81 | * All devices MUST support audio playback for media content. 82 | * Phones MUST support in-call audio. 83 | * Phones MUST support speaker audio. 84 | * Tablet devices capable of in-call audio/speaker audio MUST support in-call/speaker audio. 85 | * Devices SHOULD support any additional audio configuration inherent to their device (eg. echo cancellation, extra mics, etc). 86 | * All devices MUST support any other audio output supported by their stock OS (eg. headphone jack, USB-C, BT). 87 | * All devices with FM radio capabilities in their stock OS SHOULD support FM. 88 | 89 | ## RIL 90 | 91 | * All devices with RIL supported in their stock OS MUST support RIL for phone calls & data. 92 | * All devices with RIL supported in their stock OS MUST support emergency calling with a SIM inserted (112/911). 93 | * All devices with RIL supported in their stock OS SHOULD support emergency calling without a SIM inserted (112/911). 94 | * Data-only devices (defined as devices that have a RIL but do not support telephony stack due to hardware/firmware restrictions) are EXEMPTED from phone & emergency dialing requirements. 95 | 96 | ## Encryption 97 | 98 | * All devices that supported hardware-backed encryption on their stock OS MUST support hardware-backed encryption. 99 | * All devices that shipped stock as forceencrypt SHOULD default to forceencrypt enabled. 100 | * All devices MUST support software encryption. 101 | 102 | ## Wi-Fi 103 | 104 | * All devices with Wi-Fi supported in their stock OS MUST support Wi-Fi. 105 | * All devices with Wi-Fi MUST report same MAC address as on stock OS. 106 | * All devices with Wi-Fi hotspot capabilities MUST support Wi-Fi tethering. 107 | 108 | ## USB 109 | 110 | * All devices with a USB port MUST support file access via MTP. 111 | * All devices with USB tethering supported on their stock OS MUST support USB tethering. 112 | * All devices with a USB port & Data SHOULD support USB tethering. 113 | 114 | ## GPS 115 | 116 | * All devices with GPS supported in their stock OS MUST support GPS. 117 | 118 | ## Bluetooth 119 | 120 | * All devices with Bluetooth supported in their stock OS MUST support Bluetooth. 121 | * All devices with Bluetooth MUST report same MAC address as on stock OS. 122 | * All devices with Bluetooth SHOULD support Bluetooth tethering. 123 | * All devices with support for Qualcomm® aptX™, aptX™ HD, or any future variant of aptX™, in stock (non-beta releases) OS SHOULD support those variant of aptX™. 124 | * All devices without support for Qualcomm® aptX™, aptX™ HD, or any future variant of aptX™ in stock (non-beta releases) OS MUST NOT support those variants of aptX™. 125 | 126 | ## Camera 127 | 128 | * All devices with Camera supported in their stock OS MUST support Camera, in both front facing and rear camera configurations. 129 | * All devices with Dual (or more) Rear Cameras SHOULD support all rear cameras. 130 | * All devices with Dual (or more) Front Facing Cameras SHOULD support all front cameras. 131 | * All Camera HAL versions accessible with the device's Camera HAL MUST comply with the Camera and Video Recording requirements. 132 | 133 | ## Video Recording 134 | 135 | * All devices with Video Recording supported in their stock OS MUST support Video Recording, in both front facing and rear camera configurations. 136 | 137 | ## Codecs 138 | 139 | * All devices with hardware encoding/decoding support in their stock OS MUST support hardware encoding/decoding for all non-proprietary codecs supported by their stock OS. 140 | 141 | ## Display 142 | 143 | * All devices with a built-in Display MUST support the Display at the same resolution as the stock OS. 144 | * All devices with a built-in Display SHOULD support the Display at the same density as the stock OS. 145 | * All devices that do not include a built-in Display MUST support Display output via the hardware’s supported outputs (eg. Android TV - HDMI). 146 | * All devices that support additional non-USB display interfaces SHOULD support those display output methods. 147 | * All devices that support a USB-out display in their stock OS SHOULD support this display output (eg. MHL/Miracast/OTG). 148 | * All devices that support HDR10 playback in their stock OS SHOULD support HDR10 playback. 149 | 150 | ## NFC 151 | 152 | * All devices with NFC supported in their stock OS MUST support NFC. 153 | 154 | ## Fingerprint Sensor 155 | 156 | * All devices with a Fingerprint Sensor MUST support the Fingerprint Sensor if the stock OS supports it with Marshmallow or higher Android versions. 157 | * All devices with a Fingerprint Sensor SHOULD support the Fingerprint Sensor if the stock OS supports it for all other Android versions. 158 | 159 | ## IR 160 | 161 | * All devices with an IR blaster SHOULD support IR blaster. 162 | 163 | ## SD card 164 | 165 | * All devices with an SD card slot MUST support SD cards. 166 | * All devices with an SD card slot SHOULD support adoptable storage. 167 | 168 | ## Accelerometer 169 | 170 | * All devices with an accelerometer MUST support the accelerometer. 171 | 172 | ## Gyroscope 173 | 174 | * All devices with a gyroscope MUST support the gyroscope. 175 | 176 | ## Proximity 177 | 178 | * All devices with a proximity sensor MUST support the proximity sensor. 179 | 180 | ## Light 181 | 182 | * All devices with a light sensor MUST support the light sensor. 183 | 184 | ## Other Sensors 185 | 186 | * All other sensors supported by a device’s stock OS SHOULD be supported. 187 | 188 | ## Accessories 189 | 190 | * All devices with proprietary accessories SHOULD support those accessories (eg. O-Click, Essential 360 Camera). 191 | 192 | ## Hardware Deviations 193 | 194 | __Hardware deviations are defined as exemptions granted for hardware requirements above that worked in stock, but do not work in LineageOS.__ 195 | 196 | * All hardware deviations from stock MUST be reported on the Wiki page for the device, with a user understandable justification. 197 | 198 | # Software support 199 | 200 | ## Device tree structure 201 | 202 | * Device trees MUST use a unique device codename that is not already used by a device that is previously or currently supported by official builds. 203 | * Device trees MAY use a device codename that is already used by historical device trees that exist in LineageOS organization but never received official builds. 204 | * Device trees MUST contain a Lineage-specific makefile with device declaration of lineage_[devicename]. 205 | * Device trees MUST support a lineage.dependencies file for `breakfast` command & roomservice to be functional. 206 | * This file MUST NOT include any dependencies outside of the "LineageOS" organization. 207 | 208 | ## Build type 209 | 210 | * All devices MUST be configured as userdebug releases. 211 | 212 | ## Kernel 213 | 214 | * All devices MUST NOT ship a prebuilt kernel. 215 | * All devices MUST NOT implement software based touchscreen wake features such as double tap to wake, swipe to wake or gestures if there is no hardware-backed support for them in the touchscreen firmware. 216 | * All devices MUST NOT implement forced fast charge over USB methods that violate the USB specifications. 217 | * All devices MUST NOT implement any form of clock manipulation (underclocking, overclocking, etc.) for any processor (CPU, GPU). 218 | * All devices MUST NOT implement any form of hardware voltage manipulation (undervolting, custom voltage tables, etc.). 219 | * All devices MUST NOT implement any form of hardware register manipulation (sound control, etc.) that is not present on stock. 220 | * All devices MUST NOT implement any form of custom KSM driver (UKSM, etc.). 221 | * All devices MUST NOT ship governors other than the ones specified in the following list: 222 | * conservative 223 | * interactive 224 | * ondemand 225 | * performance 226 | * powersave 227 | * sched 228 | * sched_pixel 229 | * schedutil 230 | * userspace 231 | * walt 232 | 233 | * All devices MUST NOT ship I/O schedulers other than the ones specified in the following list: 234 | * bfq 235 | * cfq 236 | * deadline 237 | * kyber 238 | * mq-deadline 239 | * noop 240 | * row 241 | 242 | * All devices MUST only ship hotplugging drivers provided by the OEM or SoC vendor. 243 | 244 | ## SELinux status 245 | 246 | * All devices MUST be configured for SELinux Enforcing. 247 | 248 | ## Verity 249 | 250 | * All devices MUST disable verity on the system image for userdebug builds. 251 | * All devices SHOULD support verity on the vendor image. 252 | 253 | ## Updater 254 | 255 | * All devices with a shipping build of LineageOS MUST support upgrades via the native LineageOS Updater application & the recovery documented on the Wiki for that device. 256 | 257 | ## FRP 258 | 259 | * All devices with stock support of Factory Reset Protection (FRP) SHOULD support FRP when Google Applications are installed by the user. 260 | 261 | ## Play Integrity 262 | 263 | * All devices MUST NOT alter Play Integrity validation responses. 264 | 265 | ## Binder 266 | * All devices MUST use the 64-bit Binder API. 267 | 268 | ## Root (su) 269 | 270 | * All devices MUST NOT ship with su included. 271 | * All devices shipping LineageOS 16.0 or earlier MUST support su installation via LineageOS provided ‘Extras’ download. 272 | 273 | ## Non-PIE Blobs 274 | 275 | * Devices MUST NOT use non-PIE (position-independent executable) binaries. 276 | 277 | ## Proprietary files extraction 278 | 279 | * Devices MUST have a working proprietary files extraction script in their device tree (or device tree dependencies) that reproduces an exact copy of the binaries required to build LineageOS from an existing LineageOS installation. 280 | * Devices SHOULD use the global extraction script (located in tools/extract-utils). 281 | * If a device maintainer elects to not use the common extraction script, the maintainer MUST ensure that the Wiki page for their device has valid instructions for operating the custom extraction script. 282 | * Devices MUST use proprietary files extracted from, in order of preference, the same device's publicly-released image, another device's publicly-released image, or some other source with appropriately transferrable use/release/dissemination rights. In the event of the last option, artifacts documenting suitable transferability of rights MUST be provided to LineageOS project leadership. 283 | * All proprietary files lists MUST contain a short comment noting the source of any un-pinned (default) proprietary files. 284 | * Any proprietary files not sourced from the noted default MUST be pinned in the respective proprietary files list and have a short comment noting the source of those proprietary files. 285 | * Devices MUST NOT include blobs belonging to Megvii Technology Ltd. or SenseTime Group Ltd. 286 | 287 | ## CVE 288 | 289 | * Devices MUST support CVE patches for “high profile” exploits and vulnerabilities (if the media is reporting on it, then we must have it patched). 290 | * Devices SHOULD receive regular CVE patches to the device kernel and dependencies. 291 | 292 | ## Firmware 293 | 294 | * All devices MUST assert on known to be working firmware versions if some firmware versions are known to be non-working. 295 | * A/B devices are exempted from the above rule, and instead must do one of the following: 296 | * If the device is capable of shipping firmware it MUST do so. 297 | * If the device is not capable of shipping firmware (eg. a device with multiple variants supported in one build) the device MUST ensure both slots are on a known good firmware (eg. using the copy-partitions before_lineage_install template on the Wiki). 298 | 299 | ## exFAT Support 300 | 301 | __LineageOS operates under the assumption that OEM device licensing for exFAT is attached to the device, not software. LineageOS will comply with all requests for removal of exFAT support from OEMs, Microsoft or their representatives upon contact to legal@lineageos.org.__ 302 | 303 | * All devices shipping with a Linux kernel version of lower than 5.7 with exFAT support on stock MAY support exFAT with (and only with) a kernel based implementation of the maintainers choice. 304 | * All devices shipping with a Linux kernel version of greater than or equal to 5.7 MAY support exFAT with the mainline Linux implementation, or the implementation provided by their device's vendor. 305 | * All devices not meeting one of the above requirements MUST NOT support exFAT. 306 | 307 | ## Additional Features 308 | 309 | * All devices SHOULD support in-kernel (MDSS, MDNIE or similar) LiveDisplay colour adjustment. 310 | 311 | ## Software Deviations 312 | 313 | __Software deviations are defined as exemptions granted for software requirements above that worked in stock, but do not work in LineageOS.__ 314 | 315 | * All software deviations from other LineageOS devices of the same type MUST be approved by Directors (eg. if one wants to remove Music app, get approval). 316 | * All software deviations from other LineageOS devices of the same type MUST be reported on the Wiki page for the device, with a user understandable justification. 317 | * Device maintainers MUST ship Jelly or another LineageOS sourced web browser. 318 | 319 | ## Vendor Images 320 | * All non-A/B devices relying on an OEM provided vendor partition must assert vendor image versions at flash-time. 321 | * All A/B devices with a vendor partition MUST either: 322 | * Build a vendor image. 323 | * Detail on the Wiki: The required firmware version, the process of installing it, and a process that ensures all slots are on the same firmware (eg. the Wiki's copy-partitions template). 324 | * All maintainers MUST NOT require a modified prebuilt vendor image either in their build tree, or on the Wiki. 325 | * All Treble enabled devices SHOULD verify basic hardware functionality with an AOSP GSI. 326 | 327 | # Quality of life 328 | ## Commit Authorship 329 | 330 | * All non-original commits MUST have proper authorship attribution from the source it was taken from or adapted from. 331 | 332 | ## Copyrights 333 | 334 | * All original contributions MUST be copyrighted as “(C) [YEAR] The LineageOS Project”. 335 | * All LineageOS copyrights MUST only be additive to the copyright header. 336 | * Do not remove copyrights from CyanogenMod, Cyanogen Inc or any other upstream. 337 | 338 | ## Workflow 339 | 340 | * Force pushing branches SHOULD be avoided. 341 | * In the event of a force pushed branch, backup branches of the pre-forced HEAD MUST be made. 342 | 343 | ## GitLab Issues 344 | 345 | * Device maintainer(s) MUST have a GitLab account for bug tracking and cross-team collaboration. 346 | * Device maintainer(s) MUST routinely triage, answer and close bug reports. 347 | * Device maintainer(s) SHOULD make their GitLab name match their maintainer name as displayed on the Wiki. 348 | 349 | ## Licensing 350 | 351 | * All Kernel contributions MUST be GPLv2. 352 | * All Android contributions SHOULD be Apache 2.0 licensed. 353 | * Any contribution to an existing Apache 2.0 project MUST fall under Apache Compliance Category A. 354 | * Any contribution to an existing Apache 2.0 project MUST NOT be in Apache Compliance Category X. 355 | 356 | ## Wiki 357 | 358 | * All devices with a shipping build of LineageOS MUST have a Wiki page with valid installation instructions. 359 | * All devices with a shipping build of LineageOS MUST document Hardware Deviations from stock capabilities. 360 | * All devices with a shipping build of LineageOS MUST document Software Deviations from other LineageOS releases of the same device type. 361 | 362 | ## Stability 363 | 364 | * Issues like the "screen of death" MUST NOT affect the device. 365 | * The device MUST NOT have abnormal battery drain. 366 | 367 | ## LineageOS Recovery 368 | 369 | * Maintainers wishing to ship LineageOS 17.0+ for their device MUST verify official LineageOS Recovery distributions work for LineageOS installation. 370 | * Maintainers wishing to ship LineageOS 18.1+ MUST ship LineageOS Recovery as the default solution for their device on the Wiki. 371 | * Devices that do not have traditional recovery images MUST support & document another means of installation for LineageOS zip files. 372 | 373 | ## Addon packages 374 | 375 | * Maintainers wishing to ship LineageOS 19.0+ for their device MUST verify addon packages listed on the wiki can be installed through Lineage Recovery. 376 | 377 | # Exceptions 378 | 379 | All currently granted exceptions should be listed in the following table. To request an exception, please submit a change to this repository. 380 | 381 | | Date | Device/OEM | Section Exempted | Reason | 382 | |------------|--------------------|--------------------------------|--------| 383 | | 2018/02/08 | Samsung | Hardware Encryption | Samsung devices that cannot support hardware encryption due to Knox/Tee are exempted from the hardware crypto requirements. MUST still support software crypto. | 384 | | 2018/02/11 | Android TV devices | In-Remote Microphones | Requires proprietary audio routing/methods that have no OSS counterpart, and rely on proprietary functions. MUST support Microphone input through the Android TV Remote app. | 385 | | 2018/02/12 | hlte[can/tmo/usc/vzw] | NFC | Stock NFC HAL is undocumented and doesn't match any known interfaces. Stealing configs and firmware from devices with a proper setup fails due to a signature mismatch when the (required) firmware download is attempted. | 386 | | 2019/10/21 | s3ve3g* | NFC | Stock NFC HAL is undocumented and doesn't match any known interfaces. Stealing configs and firmware from devices with a proper setup fails due to a signature mismatch when the (required) firmware download is attempted. | 387 | | 2023/04/11 | FDE only devices | Encryption | As of Android 13, FDE is no longer supported. All devices that can MUST migrate to FBE, but Some devices have custom keymaster HAL implementations that only allow FDE to function. Devices only capable of using FDE that are promoted to LineageOS 20 or above are exempted from encryption requirements. These devices MUST display a notice on the LineageOS Wiki that details this exemption. | 388 | | 2024/02/07 | Google Pixel | Prebuilt Kernel | As of Pixel 6, Google is building the kernel with bazel, which is very time consuming to integrate in our inline builds and keep it working. Given that these new devices have 5 or 7 years of support, we do not have to compile the kernel from source, since they receive monthly security patches directly from Google. These devices MUST use source built kernel or our own LineageOS compiled prebuilt kernel once they have reached their EOL. | 389 | | 2024/02/16 | coral/flame | Face Unlock | On stock, Face Unlock and Soli features were largely tied to SystemUIGoogle, with a functional Face Unlock hook pushed to AOSP. Unfortunately, Google stopped caring about Face Unlock and let it break on the Pixel 4 series, with no way to fix it without source we don't have. | 390 | 391 | --- 392 | 393 | __This document is licensed CC-BY-3.0, with portions adapted from Google’s CDD requirements.__ 394 | -------------------------------------------------------------------------------- /directors-working-agreement.md: -------------------------------------------------------------------------------- 1 | # Directors Working Agreement 2 | 3 | ## Our Pledge 4 | 5 | As LineageOS Project Directors, we: 6 | 7 | * Commit to working among ourselves and contributors with professionalism and respect - providing well reasoned arguments for any policy decision made. 8 | * Commit to establishing project goals and execution plan. 9 | * Commit to ensuring a safe and productive working environment for our contributors - adhering to the Code of Conduct. 10 | 11 | ## Our Rules: 12 | 1. We will operate on a majority rules basis (5 out of 9) for most scenarios, with the following exceptions: 13 | * Device or software deviations/exceptions from our core product must be approved by no less than 3 Project Directors (see LineageOS Device support requirements). 14 | * Items of significant controversy or substantial change from prior project precedent will require a super-majority of 6 out of 9 Directors in favor. 15 | * Project Directors will decide what issues constitute the need for this measure prior to discussion on it. 16 | * For items requiring a super-majority, contributors will have an open response period where they may share their opinions and thoughts on the matter in a medium moderated by Project Directors. 17 | 2. For items of legal consequence, that is direct or indirect legal and/or financial exposure to the project, veto power is reserved for LineageOS LLC owners. 18 | 3. For items of technical nature and not covered by the above rules, prior to Directors vote, we allow input on the topic from the contributors with domain knowledge/expertise. 19 | 4. Decisions made by Directors, if contributor facing, MUST be communicated by the following mechanism: 20 | * Creating an issue in the GitLab announcements project for contributor visibility. 21 | 5. Decisions made by Directors, if user facing, SHOULD be communicated by the following mechanisms: 22 | * A blog post, wiki update, or other artifact for public consumption of the decision. 23 | 6. Directors may step down on their own at any point they wish. 24 | * A replacement for departing Directors will be voted on by existing Directors, after soliciting feedback and recommendations from the contributor pool. 25 | * Replacement Directors should be evaluated on a meritocracy basis and ability to commit the time necessary to fulfill the role. 26 | 7. A Director may be removed from the position if ALL of the following conditions are met: 27 | * A Director is found to be in continued violation of the Code of Conduct or this Working Agreement, after an initial warning. 28 | * A vote among Project Directors constituting a supermajority (6 out of 9). 29 | * At least one LineageOS LLC owner signs off on result of the vote. 30 | 8. A Director will be removed due to inactivity if ALL of the following conditions are met: 31 | * Lack of new commits for a period of 9 months or more. 32 | * Lack of contribution to processes or infrastructure for a period of 9 months or more. 33 | * Lack of participation in chats for a period of 9 months or more. 34 | * Lack of remediation after no less than 3 attempts to contact the Director in question. 35 | * At least one LineageOS LLC owner signs off on the removal. 36 | * NOTE: If a Director is removed in good standing via this method, the following actions will take place: 37 | * They will be moved from the "Head Developers" Gerrit group to the "Retired Directors" Gerrit group, which inherits the "Committers-Inactive" group, thus retaining global Code-Approval permissions. 38 | * Their GitHub/GitLab permissions will be restricted to that of a Maintainer. 39 | * They will remain in any/all private Directorial communication channels with retained ability to provide thoughts on project direction/decisions. 40 | --------------------------------------------------------------------------------