Overview
I'm going to discuss forking CM11-based configs to OmniROM, I will not dicuss adapting device configs to TWRP because it's been done to death and most devices do have TWRP.
I'm not going to discuss how to move device, kernel and vendor configs into their proper folders, work at this level is very basic and I'm writing this under the assumption folks have a general understanding of how to build CM11 outside of just using 'breakfast' on an officially supported device. I will be writing this guide assuming you know where to put what, but just don't know how to structure them.
I'll be writing this guide under the assumption that you are using 'moto_msm8960', which I'll be using as an example; however this should apply to any device generally.
Rename the following file from:
cm.mk -> omni_moto_msm8960.mk
http://ift.tt/1Akrkav
full_moto_msm8960.mk (will be merged into omni_moto_msm8960.mk)
http://ift.tt/18wxP4L
If your device config file does not follow this format it's fine. If you have a "Full_device.mk" you will need to import it into your newly made omni_moto_msm8960.mk
I realize you're told to not do this, It's ok hold my hand and we'll walk into the darkness together.
Both files have "device Identifier" values and when using two makefiles with Omni this will cause compile issues 90% of the time unless the entry:
PRODUCT_NAME := full_moto_msm8960
Is above all the other Product_values. (but PRODUCT_value entries must be at the very END of the makefile)
If your Omni has built but has an under 100MB size, do not use dual-makefiles.
Let's construct the omni_moto_msm8960.mk:
Of course some things will vary; If you use a GSM phone you will not use Omnis CDMA config file, but will ALWAYS use common.
The product-values should reflect what is found in your makefile and PRODUCT_NAME should always be at the very top, screen resolution should be the very first thing specified followed by device specific telephony configs, everything inbetween does not matter as much.
Now we must edit Androidproducts.mk to reflect such a dramatic change, as we're now only using a single makefile.
Modify this file in the following way, also make sure entries point to build paths and not something on Github.
cm.dependencies -> omni.dependencies
If not present, add a 'vendorsetup.sh' file containing the following entry
With your kernel and supporting device configs & vendor files intact, Omni will now be able to build functionally.
IF you recieve config.xml error, simply remove that line in config.xml or delete your Overlay folder.
If OmniROM builds but does not seem to boot; use Logcat, do you have this error?
E/Fence ( 220): sync_fence_info returned NUL
If so find the following commit in your kernel:
msm: mdp: Update sync pt. behaviour
and revert it.
I'm going to discuss forking CM11-based configs to OmniROM, I will not dicuss adapting device configs to TWRP because it's been done to death and most devices do have TWRP.
I'm not going to discuss how to move device, kernel and vendor configs into their proper folders, work at this level is very basic and I'm writing this under the assumption folks have a general understanding of how to build CM11 outside of just using 'breakfast' on an officially supported device. I will be writing this guide assuming you know where to put what, but just don't know how to structure them.
I'll be writing this guide under the assumption that you are using 'moto_msm8960', which I'll be using as an example; however this should apply to any device generally.
Rename the following file from:
cm.mk -> omni_moto_msm8960.mk
http://ift.tt/1Akrkav
full_moto_msm8960.mk (will be merged into omni_moto_msm8960.mk)
http://ift.tt/18wxP4L
If your device config file does not follow this format it's fine. If you have a "Full_device.mk" you will need to import it into your newly made omni_moto_msm8960.mk
I realize you're told to not do this, It's ok hold my hand and we'll walk into the darkness together.
Both files have "device Identifier" values and when using two makefiles with Omni this will cause compile issues 90% of the time unless the entry:
PRODUCT_NAME := full_moto_msm8960
Is above all the other Product_values. (but PRODUCT_value entries must be at the very END of the makefile)
If your Omni has built but has an under 100MB size, do not use dual-makefiles.
Let's construct the omni_moto_msm8960.mk:
Quote:
#---------------------------# # Moto_msm8960 unified # # - OmniROM 4.4 - # #---------------------------# # Main product makefile #---------------------------# # First revision, everything is good here. #---------------------------# # Define screen resolution # #---------------------------# # * Change this for HDPI devices like Razr M TARGET_SCREEN_WIDTH := 720 TARGET_SCREEN_HEIGHT := 1280 #---------------------------# # Phone-specific config # #---------------------------# $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk) #---------------------------# # Build for a CDMA phone # #---------------------------# $(call inherit-product, vendor/omni/config/cdma.mk) #---------------------------# # Use generic Omni configs # #---------------------------# $(call inherit-product, vendor/omni/config/common.mk) #---------------------------# # Phone-specific config # #---------------------------# $(call inherit-product, device/motorola/moto_msm8960/device_moto_msm8960.mk) #---------------------------# # Product [name] values # #---------------------------# PRODUCT_NAME := omni_moto_msm8960 PRODUCT_DEVICE := moto_msm8960 PRODUCT_BRAND := motorola PRODUCT_MODEL := MOTOROLA MSM8960 PRODUCT_MANUFACTURER := motorola |
Of course some things will vary; If you use a GSM phone you will not use Omnis CDMA config file, but will ALWAYS use common.
The product-values should reflect what is found in your makefile and PRODUCT_NAME should always be at the very top, screen resolution should be the very first thing specified followed by device specific telephony configs, everything inbetween does not matter as much.
Now we must edit Androidproducts.mk to reflect such a dramatic change, as we're now only using a single makefile.
Quote:
#---------------------------# # Moto_msm8960 unified # # - OmniROM 4.4 - # #---------------------------# # Product Root makefile #---------------------------# PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/omni_moto_msm8960.mk |
Modify this file in the following way, also make sure entries point to build paths and not something on Github.
cm.dependencies -> omni.dependencies
If not present, add a 'vendorsetup.sh' file containing the following entry
Quote:
# ---------------------------------------- # Moto_msm8960 unified configuration # - OmniROM 4.4 - # ---------------------------------------- # Enable support for 'brunch' command # ---------------------------------------- add_lunch_combo omni_moto_msm8960-userdebug add_lunch_combo omni_moto_msm8960-eng |
With your kernel and supporting device configs & vendor files intact, Omni will now be able to build functionally.
IF you recieve config.xml error, simply remove that line in config.xml or delete your Overlay folder.
If OmniROM builds but does not seem to boot; use Logcat, do you have this error?
E/Fence ( 220): sync_fence_info returned NUL
If so find the following commit in your kernel:
msm: mdp: Update sync pt. behaviour
and revert it.
from xda-developers http://ift.tt/1Akri2u
Commentaires
Enregistrer un commentaire