Skip to content

Porting from other ROMs

Simão Gomes Viana edited this page Jan 1, 2021 · 5 revisions

XOS 10 and newer

We strive for a more standardized and streamlined way of porting ROMs to your device and thus we have decided to stick with the generic word custom as well as simply aosp for pretty much everything.

If you want to port a ROM the ideal scenario would be to simply build – provided the device tree you have is already made compatible. If not, you will have to rename files from e. g. lineage_device.mk to aosp_device.mk as well as adjust all of those. See other device trees for reference.

A note on the vendor tree

Our vendor tree is vendor/aosp and is available as a make variable called CUSTOM_VENDOR_DIR. You can replace any instances of vendor/* with $(CUSTOM_VENDOR_DIR) which (as of now) resolves to vendor/aosp.

Pre-X

If another ROM with the same or similar Android version as XOS is already available for your device, you can port halogenOS for it.

The first and most basic steps to do that is renaming ROM-named files like for example cm.mk, tesla.mk, lineage.mk, omni.mk ... to XOS.mk. Then you have to adjust the things inside that file.

Usually you change the ROM name to XOS, so omni_, cm_, ... becomes XOS_.

If you see a line like this:

$(call inherit-product, vendor/cm/config/common_full_phone.mk)

You have to change that to

$(call inherit-product, vendor/xos/config/common.mk)

Furthermore, make sure to rename the *.dependencies file to XOS.dependencies accordingly.

Here are examples: https://github.com/halogenOS/android_device_oneplus_oneplus2/blob/XOS-7.1/XOS.mk

https://github.com/halogenOS/android_device_oneplus_oneplus2/blob/XOS-7.1/XOS.dependencies

Important: If you want your device to become official and if you are sure that you can maintain the device, contact one of the lead developers for assistance.