English Wiki - Miku-UI/manifesto GitHub Wiki

Welcome to Miku UI wiki!

Miku UI is an open source project based on AOSP that focuses on performance optimization and UI beautification related to Miku~

Therefore, our project may contain a large number of Miku (ミク) elements.、、

Ummm...!?

Are you a mikufan too?

Then quickly check out our wiki to learn more about Miku UI!


How to get device source for Miku UI building

We know that building an Android system requires a lot of files, and Device Configuration is relatively important.

For the Kernel Source, please try to use a kernel based on the CAF tag!

Generally, Vendor Blobs can be found on GitHub or manually extracted.


If your device already has an Android 12/13 Device Configuration

Congratulations! You may soon be able to enjoy Miku UI.

If you are not lazy and really want to use Miku UI but can't find anyone to help you adapt

You can try to adapt it yourself.


ify refers to modifying an existing device tree to adapt to a new system.

[project-name] refers to the project name before "ify", such as "aosp".

[codename] refers to the device code name.

- and + indicate their changes.

Usually, the ify process only takes a few steps:

  • Modify 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

  • Modify [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]
...

However, things may not always be that simple.

There may be some differences between the Device Configuration of other systems and that of Miku UI, so you may need to modify other parts as well.

Please pay attention to the logs you capture first. They are important and can most directly reflect your problems.


About build variant

Now we got:

  • UNOFFICIAL

  • COMMUNITY

  • OFFICIAL


UNOFFICIAL is the default build variant.

We strongly recommend that you do not publicly release unofficial versions of the ROM.

If you want to prepare for applying for COMMUNITY maintenance, you can appropriately release some UNOFFICIAL versions to evaluate your work through user experience.


COMMUNITY can be built and uploaded to the official download site after approval.


OFFICIAL is the official build variant, compiled by official servers.


If you want to apply for related maintenance or inquire about related matters, please initiate an issue in our device repository.

Note: Do not release COMMUNITY and OFFICIAL build variant of ROM without our knowledge. If you want to release them, please apply to us first.


How to apply for Community Edition maintenance

You must meet the following requirements:

  • ❤ Love Miku with all your heart! ❤
  • Have confidence in keeping the Miku UI running smoothly on your device
  • Publicly submit your standardized device configuration repository on GitHub
  • Ify-only devices are absolutely prohibited

Please ensure that your device configuration repository does not have any non-standard submissions, unclear submissions, or Kang submissions.

From the week you maintain an UNOFFICIAL build type ROM, if the system runs stably and functions properly, you can consider applying for Community Edition maintenance~

We do not require the SELinux status of the Community Edition ROM, and allow some insignificant bugs to exist.

Note: The Community Edition ROM is built and maintained by the maintainer.

How to apply for Official Edition maintenance

In addition to meeting the above requirements, you must also meet the following requirements:

  • Have a willingness to maintain your device for the long term
  • Have applied for and been approved for Community Edition maintenance
  • The SELinux status of the device is Enforcing
  • The system cannot have any bugs that affect use
  • Use your own maintained kernel source
  • Multi-hand devices are absolutely prohibited, and if it is a second-hand device, you must ensure that your contributions to the device are greater than the original author's (excluding independent devices based on common development)

The following requirements are also recommended to be met:

  • Do not write Neverallow rules, that is, do not use the SELINUX_IGNORE_NEVERALLOWS tag
  • Do not use pre-compiled kernels, any changes you make to the kernel should be transparent and visible to everyone
  • Use your own maintained vendor blobs

Note: For Official Edition maintenance, the maintainer still needs to update and improve the device tree.

If non-standard submissions or Kang submissions are discovered during your official maintenance, you will be downgraded to Community Edition maintenance.


How to enable GAPPS build

If you want to temporarily enable Gapps build, please execute in the terminal:

export MIKU_GAPPS=true

Or define it in Makefile:

MIKU_GAPPS := true

How to enable KernelSU build

If you want to temporarily enable Gapps build, please execute in the terminal:

export TARGET_WITH_KERNEL_SU=true

Or define it in Makefile:

TARGET_WITH_KERNEL_SU := true

How to add builder informations

Define it in Makefile:

MIKU_MASTER := YOURNAME 

If you want to make your information clickable to redirect to your custom URL instead of the official repository, please add the following line to the Makefile configuration file where you define the Overlay:

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

And add following lines:

<resources>
    <string name="miku_maintainer_uri" translatable="false">Your custom URL</string>
</resources>

to overlay-miku/packages/apps/Settings/res/values/miku_strings.xml


Standardized submissions

Standardized commit is a good habit that not only helps readers better understand your code but also makes your modification behavior traceable.

If you want to participate in the construction of Miku UI and have created a repository on GitHub, be sure to make standardized commits!


The key points of standardized commits are as follows:


  • Summary

The summary must clearly indicate what your commit did or the main theme of the changes.


  • Description

The description should be a brief explanation centered around the content of the commit.


  • Language

Please use English when making commits.

You can write them according to your own preference, but please make sure there are no basic spelling errors or grammar issues.


  • Code Contributor Information

If the submission is not solely made by you, please make sure to include the author or co-author's contribution information!

USERNAME represents the GitHub username of the author or co-author.

[email protected] represents the GitHub commit email of the author or co-author.


You can add the commit authorship with the following command:

git commit --author="USERNAME <[email protected]>" 

You can add the following information at the end of a commit to indicate collaborative contributions by other people:

Co-authored-by: USERNAME <[email protected]>

We recommend using USERNAME <[email protected]> instead of the author's or co-author's name and email.

This not only helps protect the privacy of co-authors, but also makes it easier to add contribution information for authors or co-authors.


Refs:


How to contribute to Miku UI

If you have any great ideas, you are welcome to submit your PR directly to our relevant repositories.

Thank you for your support of Miku UI~

⚠️ **GitHub.com Fallback** ⚠️