如何向 Wiki 添加新设备
添加设备的要求
LineageOS Wiki 提供的说明基于以下假设:您的设备已将其设备树/内核置于 LineageOS GitHub 组织下,并且它支持构建 LineageOS 21 或更高版本。如果您的设备满足这两个要求,请按照以下说明设置您的设备。
在本地设置 Wiki
有关在本地设置 Wiki 的详细说明,请参阅 使用 repo 进行贡献。
添加您的设备
准备所需的文件
需要一些文件才能在 Wiki 上拥有设备。为了获取它们,请导航到 $LINEAGE_SRC/lineage/wiki/
并运行
./scripts/generate_device.sh your_device
显然,将 your_device
替换为您的设备的代号
填充 YAML
示例模板已复制到 $LINEAGE_SRC/lineage/wiki/_data/devices/your_device.yml
。更新值以匹配您的设备。下面是一些选项的说明。
某些属性允许为同一文件中涵盖的多个型号指定不同的值。在这种情况下,格式与单个设备相同,但在键值样式中使用,如下所示
property:
- Model1: Value
- Model2: Value
使用 battery
属性的示例:仅一个设备
battery: {removable: False, capacity: 1000, tech: 'Li-Ion'}
与两个不同的型号对比
battery:
- Model1: {removable: False, capacity: 1000, tech: 'Li-Ion'}
- Model2: {removable: True, capacity: 2000, tech: 'Li-Po'}
以下列表将提及适用的型号-值对。
属性列表
-
architecture
:设备的 CPU 架构,可以是以下之一arm, arm64, x86, x86_64
如果您的设备具有 64 位架构,但 Android 在 32 位上运行,则可以使用不同的格式:
{cpu: 'arm64', userspace: 'arm'}
-
battery
:使用格式{removable: False, capacity: <number in mAh>, tech: '<tech>'}
。如果您的电池可拆卸,请使用True
代替。对于tech
,您可以使用Li-Ion, Li-Po
此属性支持型号-值对。
-
bluetooth
:正确的格式可以是{spec: '<version>'}
,其中version
是支持的 BT 协议版本,或者{spec: '<version>', profiles: '<profiles>'}
,当您的设备支持其他配置文件时。以下是可能的值For the specification: None, 1.0, 1.0B, 1.1, 1.2, 2.0, 2.0 + EDR, 2.1, 2.1 + EDR, 3.0, 3.0 + HS, 4.0, 4.0 + LE, 4.1, 4.2, 5, 5.1, 5.2, 5.3, 5.4 For the optional profiles: A2DP, A2DP + aptX, A2DP + aptX HD
-
camera
:每个摄像头的条目,格式如下- {flash: '<flash>', info: 'x MP'}
其中
flash
是以下之一Dual LED, Dual LED (dual tone), LED, None
并且
info
的格式为x MP
或x MP (wide)
(可以使用 wide、ultrawide、depth 等),或者x MP (Model1) 或 x MP (Model2)
(如果需要) -
cpu
:设备的 CPU 类型,可以是以下列表之一Cortex-A15, Cortex-A15 & Cortex-A7, Cortex-A53, Cortex-A53 & Cortex-A53, Cortex-A53 & Cortex-A57, Cortex-A53 & Cortex-A72, Cortex-A55, Cortex-A57, Cortex-A7, Cortex-A72, Cortex-A73 & Cortex-A53, Cortex-A75 & Cortex-A55, Cortex-A76 & Cortex-A55, Cortex-A9, Cortex-X1 & Cortex-A76 & Cortex-A55, Cortex-X1 & Cortex-A78 & Cortex-A55, Cortex-X3 & Cortex-A715 & Cortex-A510, Cortex-X4 & Cortex-A720 & Cortex-A520, Denver, Denver 2 & Cortex-A57, Exynos M1 & Cortex-A53, Exynos M3 & Cortex-A55, Exynos M4 & Cortex-A75 & Cortex-A55, Intel Atom, Krait, Krait 200, Krait 300, Krait 400, Krait 450, Kryo, Kryo 240, Kryo 250, Kryo 260, Kryo 265, Kryo 280, Kryo 360, Kryo 385, Kryo 460, Kryo 465, Kryo 465 Gold & Kryo 465 Silver, Kryo 468, Kryo 470, Kryo 475, Kryo 485, Kryo 490, Kryo 495, Kryo 560, Kryo 570, Kryo 585, Kryo 660, Kryo 670, Kryo 680, Kryo 780
dimensions
:使用格式{width: <w>, height: <h>, depth: <d>}
,其中每个都是以 [mm] 为单位的尺寸。此属性支持型号-值对。download_boot
:用于将设备启动到用于安装 recovery 的模式的说明。在大多数设备上,这是 fastboot 模式。image
:位于images/devices/
下的图像,用于此设备。有关添加图像的说明可以在下面找到。-
install_method
:用于确定要使用的 recovery 安装模板。模板可以在 _includes/templates/recovery_install_install_method
.md 中找到,并且必须是以下之一apx, amlogic_update, dd, edl_custom, fastboot_custom, fastboot_fairphone, fastboot_generic, fastboot_htc, fastboot_huawei, fastboot_lenovo, fastboot_lg, fastboot_motorola, fastboot_nexus, fastboot_nokia, fastboot_nubia, fastboot_oppo, fastboot_sony, fastboot_realme, fastboot_unlocked, fastboot_xiaomi, fastboot_xiaomi_hyperos, fastboot_zenfone, heimdall, nintendo, odin, oor
kernel
:使用格式{repo: <repository name>, version: '<major.minor>'}
。network
:各种网络技术的频率和信道。您可以在此处查找它们。保持不可用的技术为空。-
peripherals
:设备上可用的外围设备列表,可以是以下列表中的任何一个3.5mm jack, A-GPS, Accelerometer, Audio Coprocessor, Barometer, Color spectrum sensor, Compass, DP over USB-C, Depth Sensor, Dock, Dot Projector, Dual SIM, Dual front speakers, Dual speakers, Dual side NFC, Dual-frequency GNSS, eSIM, Essential Accessories, FM radio, Fingerprint reader, BeiDou, Galileo, GLONASS, GPS, NAVIC, SBAS, QZSS, Google Assist Button, Gyroscope, HDMI, Hall effect sensor, Hardware keyboard, Heart rate sensor, Hygrometer, IR blaster, IR camera, IR receiver, Iceview Cases, Joycons, Light sensor, MHL, MHL 2.0, MHL HDMI, Mobility DisplayPort (MyDP), Motion Coprocessor, Moto Mods, NavIC, NFC, Pedometer, Proximity sensor, Qi wireless charging, Qi reverse wireless charging, Radar, RGB ambient light, RJ45 Ethernet port, SNS integration, Thermometer, Ultra Wideband (UWB), Ultrasound proximity sensor, USB OTG
-
recovery_partition_name
:recovery 镜像刷入的分区名称,可以是以下之一boot, recovery, vendor_boot
release
:允许的格式为yyyy
、yyyy-mm
和yyyy-mm-dd
。此属性支持型号-值对。-
screen
:使用{size: '<screen size>', resolution: '<1234x567>', technology: ''}
,其中size
为数字,resolution
为1234x567
,technology
为以下值之一OLED, P-OLED, AMOLED, Dynamic AMOLED, Fluid AMOLED, Fluid 2.0 LTPO AMOLED, Fluid 3.0 LTPO AMOLED, Foldable OLED, Foldable LTPO OLED, LTPO AMOLED, LTPO OLED, Optic AMOLED, Super AMOLED, Pentile RGBG AMOLED, Pentile RGBG Super AMOLED, IPS LCD, IPS LTPS LCD, IPS Retinal LCD, IPS+ LCD, Super IPS+ LCD, LCD, Super LCD, PLS LCD, Super PLS LCD, Super clear LCD, TFT LCD
此属性支持型号-值对。
tree
:设备树的 repo 名称 - 例如,android_device_oneplus_bacon
。vendor_short
:用于设备树的供应商名称 - 例如,oneplus
。
可选属性列表
有些可选属性您可能不需要,但如果您需要,下面将对其进行说明
before_install
:有时必须满足一些先决条件才能安装 LineageOS。有关可能的值,请参阅 _includes/templates/device_specific/before_install_before_install
.md。- 一个常见的用途是显示特定固件的先决条件
needs_specific_android_fw
,它传递附加参数version
以指示所需的 Android 版本。此before_install
也接受一些其他可选参数lineage_version
指示最初实施此要求的 LineageOS 版本(以及在这些设备的升级页面上,我们将显示从该版本升级时已满足此条件)- 您只需要传递此参数相关的 Lineage 版本号ships_fw
:当设备在 LineageOS 构建中附带固件时设置为true
(与升级相关),如果未附带固件,则完全不设置
- 一个常见的用途是显示特定固件的先决条件
before_lineage_install
:可以设置此属性以显示在 recovery 启动后以及实际 LineageOS 安装之前的说明。现有(或要创建的)值可以在 _includes/templates/device_specific/before_lineage_install_before_lineage_install_
.md 中找到before_recovery_install
:可以设置此属性以指定在安装 recovery 镜像之前要完成的步骤。值可以在 _includes/templates/device_specific/before_recovery_install_before_recovery_install_
.md 中找到carrier
:如果设备是为特定运营商发布的,则为该运营商的名称。custom_recovery_link
:如果特定设备没有官方 recovery 或官方 recovery 无法正常工作,则可以使用自定义 recovery 链接。custom_recovery_codename
:如果设备存在官方 recovery,但它使用不同的代号,请在此处指定使用的代号。custom_unlock_cmd
:如果通过 fastboot 解锁设备的命令与fastboot oem unlock
不同,则使用此命令。format_on_upgrade
:如果设备由于无法修复的设备特定问题而需要在主要的 LineageOS 版本上擦除数据,则使用此属性。is_ab_device
:如果设备具有 A/B 分区方案,则使用此属性。is_unlockable
:如果官方没有解锁 bootloader 的方法,则设置为 false。提示将出现在设备的概览和安装页面上。如果未设置此属性,则默认为True
-
quirks
:已知怪癖列表(确保它们没有违反 章程 或被豁免!)。以下一个或多个数组(如果不清楚,请单击链接):ai_upscaling、ant、atv_remote_mic、aux_cameras、dock、dolby_vision、esim、face_unlock、fde、hardware_encryption、ims、nfc、nvidia_remotes、usb注意: 设备完整性 怪癖会自动为每个设备显示,无法手动列出 -
required_bootloader
:指定安装 LineageOS 所需的 bootloader 版本。示例required_bootloader: [Version1, Version2]
sdcard
:格式:{size_max: '<size>'}
或{size_max: '<size>', slot: '<slot>'}
,其中size
是一个字符串,例如32 GB
(根据模式^(\d+ (GB|TB)( \([^)]*\)( or )?)?)+$
检查),并且slot
是以下之一dedicated, hybrid, sim
添加设备的图像
找到您设备的高质量图像,并将其添加到 images/devices/<image.png>
。您必须确保以下几点
- 文件名必须与 YAML 文件中的条目
image
匹配 - 图像的背景是透明的
- 图像已裁剪到实际内容
- 最好删除任何投影 - 如果不可能,请确保它不会超出设备的实际轮廓太多
- 可选:如果您已经在编辑器中使用图像,请重新缩放图片,使较大尺寸等于 500px(保持宽高比,使另一个尺寸小于该值)
然后运行
./scripts/prepare_image.sh <image.png>
这将根据最大尺寸检查图像,并在 images/devices/small/<image.png>
中生成较小版本。
较小的图片也需要提交!
测试它是否工作
在您的本地 Jekyll 服务器上启动 Wiki,并导航到 设备列表。您的设备应该在那里。单击它,并检查信息/安装/构建页面是否都看起来正确。
现在运行验证
bundle install
ruby ./test/validate.rb
如果脚本没有给您输出,则所有验证的字段都具有正确的格式。否则,请仔细阅读消息以查看哪些字段必须更正。
提交您的设备
在验证设备特定页面后,提交并将您的更改上传到 Gerrit,并将“Wiki Editors”组添加为审核者。