Skip to content
AmeChanRain edited this page May 28, 2024 · 5 revisions

欢迎来到 Miku UI wiki!

Miku UI 是一个基于 AOSP 的系统,专注于性能优化与和 Miku 有关的 UI 美化~

因此,我们的项目中可能会含有大量 Miku (ミク) 元素、、

唔...!?

您也喜欢 Miku 吗!

那快通过 wiki 了解一下我们罢!


什么是 AOSP-CAF

唔、、我们的系统是基于 AOSP 的哟

什么是 AOSP&CAF 捏!

AOSP 是 Google 公司的 Android 开源项目,我们可从中获取构建安卓系统所需的代码。

CAF 的全称是 Code Aurora Forum,它是高通公司(Qualcomm™)为适配自身芯片所从 AOSP 修改的项目开源社区。

也就是说,我们的系统在搭载高通芯片的设备上能够得到更好的性能提升哟~


如何获取构建 Miku UI 的材料

我们知道,构建安卓系统离不开一大堆文件

Device Configuration 是比较重要的、、

对于 Kernel Source,请尽量使用基于 CAF Tag 的内核哦!

一般而言,Vendor Blob 都可以在 GitHub 上查找或者手动提取~


如果您的设备已经有安卓 12 的 Device Configuration

那么首先恭喜您,也许您很快就能用上 Miku UI 力~

如果您不懒,并且真的很想使用 Miku UI 但却又找不到人帮你您适配

这说明您也没人要QAQ

您可以尝试自己动手适配


ify 是指对已有设备树进行修改,以适配新系统的行为。

[project-name] 所指的是 ify 之前的项目名称,例如:“aosp”。

[codename] 所指的是设备代号。

-+ 显示的是它们的变化。

通常,ify 步骤仅需要短短几步:

  • 修改 AndroidProducts.mk
...
- PRODUCT_MAKEFILES := \
     $(LOCAL_DIR)/[project-name]_[codename].mk
+ PRODUCT_MAKEFILES := \
     $(LOCAL_DIR)/miku_[codename].mk

- COMMON_LUNCH_CHOICES := \
     [project-name]_[codename]-user \
     [project-name]_[codename]-userdebug \
     [project-name]_[codename]-eng
+ COMMON_LUNCH_CHOICES := \
     miku_[codename]-user \
     miku_[codename]-userdebug \
     miku_[codename]-eng

  • 修改 [project-name]_[codename].mk
...
- # Inherit some common [project-name] stuff.
+ # Inherit some common miku stuff.
- $(call inherit-product, vendor/[project-name]/build/product/*.mk)
+ $(call inherit-product, vendor/miku/build/product/miku_product.mk)
...
# Device identifier. This must come after all inclusions.
- PRODUCT_NAME := [project-name]_[codename]
+ PRODUCT_NAME := miku_[codename]
...

但是事情也许往往没有那么简单

其他系统的 Device Configuration 可能会与 Miku UI 存在部分差异

您可能还需要修改 device.mk

请优先留意您抓取的日志,它们很重要,能够最直观地体现出您的问题。


构建类型相关

现支持的构建类型有:

  • UNOFFICIAL(非官方版)

  • COMMUNITY(社区版)

  • OFFICIAL(官方版)


UNOFFICIAL 是默认的构建类型。

我们强烈建议您不要公开发布非官方版本的 ROM。

若您想要为申请 COMMUNITY 维护做准备,可以适当发布一些 UNOFFICIAL 版本来通过用户体验评估您的工作。


COMMUNITY 通过申请后可进行构建,并将被上传至官方下载站。


OFFICIAL 是官方构建类型,由官方服务器进行编译。


若要申请相关维护或是问询相关事宜,请在我们的设备仓库发起 Issue。

请注意:请不要在我们不知情的情况下发布 COMMUNITY 和 OFFICIAL 构建类型的 ROM。若要发布,请先向我们申请。


如何申请社区版维护

您必须满足以下要求:

  • ❤热爱 Miku 的一颗心!❤
  • 保持让 Miku UI 在您的设备上良好运行的信心
  • 在 GitHub 上公开您规范提交的设备配置仓库
  • Ify-only 的 device 是绝对禁止的

请确保您的设备配置仓库没有出现不规范提交、不清不楚的提交以及 Kang 提交行为。

自您维护 UNOFFICIAL 构建类型的 ROM 一周起,若系统稳定运行且功能正常

您就可以考虑申请社区版维护啦~

我们对社区版的 SELinux 状态不做强制要求,也允许有一点无关紧要的 Bug 存在。

请注意: 社区版 ROM 由维护者自行构建并维护。

如何申请官方版维护

您必须满足以下要求:

  • 有长期维护您的设备的意愿
  • 已向我们申请社区版维护并通过
  • 设备 SELinux 状态为 Enforcing(强制执行)
  • 系统不能出现影响使用的 Bug
  • 使用自己维护的 Kernel Source
  • 多手 device 是绝对不可以的,如果是二手 device 的话,则最少保证你对此 device 的贡献大于原作者(基于 common 发展而来的独立 device 除外)

而以下要求也建议尽量满足:

  • 不要写出 Neverallow 的规则,即不要使用 SELINUX_IGNORE_NEVERALLOWS 标签
  • 不要使用预编译内核,您对内核做的任何改动都应该对所有人透明可见
  • 使用自己维护的 Vendor Blobs

请注意: 官方版维护仍需维护者进行更新改进设备树。(至少确保每月排查)

如果在您官方维护过程中出现不规范提交、Kang 提交行为,一经我们发现,您将会被降至社区版维护。


如何启用 Gapps 构建

如果您要临时启用 Gapps 构建,请在终端执行:

export MIKU_GAPPS=true

或者您可以在 miku 设备的 Makefile 配置文件中定义:

MIKU_GAPPS := true

如何启用 KernelSU 构建

Miku UI 支持在构建期间为内核添加 KernelSU 支持! 如果您要临时启用 KernelSU 构建,请在终端执行:

export TARGET_WITH_KERNEL_SU=true

或者您可以在 miku 设备的 Makefile 配置文件中定义:

TARGET_WITH_KERNEL_SU := true

如何为设备启用 Miku UI Boost Framework

Miku UI 能够在受支持的高通设备上,启用来自 CAF/CLO ROM 的 Boost Framework 优化,能够大幅提升系统运行速度与响应速度哦! 您需要改动您的 device 来启用这项特性,如补齐 Perf Blobs 与配置文件、不要使用 Pixel Power HAL、构建对应的 Power 与 Perf packages、开启 Miku UI Boost Framework overlay 等,详情可以参考以下提交

我们不再支持使用上面的方法来启用 Miku UI Boost Framework,如需在不受支持的设备上启用,请参考这个提交在device/qcom/perf内添加支持哦!

如果您是 LAHAINA 设备(sm8350/sm7325/sm7350)、sm6150或sdm660设备,那么恭喜您,Miku UI 为这些设备提供了一键式的启用方案,您只需要在您的 device.mk 中定义:

TARGET_MIKU_BOOST_FRAMEWORK_PLATFORM := 平台名称
#如TARGET_MIKU_BOOST_FRAMEWORK_PLATFORM := lahaina

即可为您的设备启用 Miku UI Boost Framework !对于其它平台设备的支持,也欢迎各位提交 PR 哦!

  • 注:Miku UI Boost Framework 在 TDA_v0.16.1 与 Udon_v0.1.0 以上的系统版本开始支持,且仅支持高通设备。

如何添加您的编译者信息

在设备 Makefile 配置文件中定义:

MIKU_MASTER := YOURNAME #默认编译者为 BuildBot

如果您想实现点击您的信息跳转到您自定义的 URL 而不是官方仓库、、

请在您定义 Overlay 的 Makefile 配置文件中添加一条:

DEVICE_PACKAGE_OVERLAYS += \
    $(LOCAL_PATH)/overlay-miku

并在根目录的 overlay-miku/packages/apps/Settings/res/values/miku_strings.xml 中添加:

<resources>
    <string name="miku_maintainer_uri" translatable="false">您的自定义 URL</string>
</resources>

规范提交

规范提交是一种好习惯,它不仅仅能够帮助阅读者更好理解您的代码

也能够让您的修改行为有迹可寻。

如果您想参与 Miku UI 的构建并在 GitHub 上开设了仓库

请务必规范提交!


规范提交的要点有以下几点:


  • 总结

总结(Summary)必须明确指出您这条 Commit 做了什么,或是点明改动内容的主题。


  • 解释

解释(Description)应围绕 Commit 的内容进行扼要展开。


  • 用语

请使用英语(English)提交 Commit

您可以根据自己的喜好来拟写,但是请确保不要有低级的拼写错误和语法问题。


  • 代码贡献者信息

如果提交并不是您独自所作的,请务必携带上作者或者协作者的贡献信息!

USERNAME 代表作者或协作者的 GitHub 用户名。

EMAIL@EXAMPLE.COM 代表作者或协作者的 GitHub 提交邮箱。


您可以通过以下命令添加 Commit 作者:

git commit --author="USERNAME <EMAIL@EXAMPLE.COM>" 

您可以在 Commit 的末尾添加以下信息来说明这条 Commit 由其他人共同协作:

Co-authored-by: USERNAME <EMAIL@EXAMPLE.COM>

我们推荐您使用 USERNAME <USERNAME@users.noreply.github.com> 来代替作者或者协作者的署名及邮箱

这样不仅有助于保护协作者的隐私,而且能够方便添加作者或协作者的贡献信息。


参考资料:


如何为 Miku UI 做贡献

如果您有什么比较好的想法的话、、

欢迎直接提交您的 PR 到我们的相关仓库就好啦

感谢您对 Miku UI 的支持~