Okay, so I've been looking into porting cyanogenmod for unsupported devices, and the tutorial on the cyanogenmod wiki says to have at least built cyanogenmod before, so that is what I'm trying to do with my LG G3 (vs985). So I've freshly installed Ubuntu 14.04 and followed the setting up of the build environment tutorial the best that I can, but for some reason, I always get errors like "no rule to make target." It also has a buttload of warnings as it's going along, but I just assumed that was normal for an unofficial nightly build. If anyone is willing to help me out, I'll be glad to give more details and such so that we can narrow down my issues. Thanks.
The exact error log will help. Also, if the vs985 is unsupported you will need to include your own device trees, kernel trees etc etc in your local manifest. There is a whole really good guide on building ROM from source here
As @limjh16 has mentioned since its an unofficial build of cm 13 you need to make a local manifest which specifies the kernel source, hardware sources etc so terminal knows where to look for to build for that device.
Example local manifest looks like this
<?xml version="1.0" encoding="UTF-8"?>
<!--Please do not manually edit this file-->
<manifest>
<project name="android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="omnirom" revision="android-4.4" />
<project name="android_device_samsung_aries-common" path="device/samsung/aries-common" remote="omnirom" revision="android-4.4" />
<project name="android_kernel_samsung_aries" path="kernel/samsung/aries" remote="omnirom" revision="android-4.4" />
<project name="android_hardware_samsung" path="hardware/samsung" remote="omnirom" revision="android-4.4" />
<project name="android_device_samsung_vibrantmtd" path="device/samsung/vibrantmtd" remote="omnirom" revision="android-6.0" />
</manifest>
I have had similar problems regarding building as well. I am still new to building roms so hope i helped you
The LG vs985 is a supported device. I will try to find my errors shortly and post them when I can.
*Bump*
Okay, I've finally gotten around to trying to build it again, and this is what I get:
Code:
make: *** No rule to make target `vendor/lge/vs985/proprietary/bin/rfs_access', needed by `/home/spenceboy98/android/system/out/target/product/vs985/system/bin/rfs_access'. Stop.
make: *** Waiting for unfinished jobs....
It doesn't seem like it's getting as far as it used to (I did a fresh install of Ubuntu 14.04).
Any suggestions?
spenceboy98 said:
*Bump*
Okay, I've finally gotten around to trying to build it again, and this is what I get:
Code:
make: *** No rule to make target `vendor/lge/vs985/proprietary/bin/rfs_access', needed by `/home/spenceboy98/android/system/out/target/product/vs985/system/bin/rfs_access'. Stop.
make: *** Waiting for unfinished jobs....
It doesn't seem like it's getting as far as it used to (I did a fresh install of Ubuntu 14.04).
Any suggestions?
Click to expand...
Click to collapse
Your missing your proprietary files which should be located in your vendor folder.
You can get them from here
https://github.com/TheMuppets/proprietary_vendor_lge. Just add it to your manifest.
Edit: Was looking at your devices trees on CM github and seems it isn't part of the dependencies to add the vendor folder. So just make a local_manifest.xml in .repo/local_manifest and then add this
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" revision="cm-13.0" />
</manifest>
Also, next time please include whole log. The error may be found only above. In this case it was found in last 3 lines but next time copy whole terminal output to hastebin.com or pastebin.com and post here
WildfireDEV said:
Your missing your proprietary files which should be located in your vendor folder.
You can get them from here
https://github.com/TheMuppets/proprietary_vendor_lge. Just add it to your manifest.
Edit: Was looking at your devices trees on CM github and seems it isn't part of the dependencies to add the vendor folder. So just make a local_manifest.xml in .repo/local_manifest and then add this
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" revision="cm-13.0" />
</manifest>
Click to expand...
Click to collapse
Thanks. I've done that and tried again.
My current build log can be found in this text file (it exceeds pastebin and hastebin's limit): http://bit.ly/1rawolw
spenceboy98 said:
Thanks. I've done that and tried again.
My current build log can be found in this text file (it exceeds pastebin and hastebin's limit): http://bit.ly/1rawolw
Click to expand...
Click to collapse
It's the same error because you didn't repo sync. Sorry I failed to mention that.
WildfireDEV said:
It's the same error because you didn't repo sync. Sorry I failed to mention that.
Click to expand...
Click to collapse
I did repo sync though? Hm, I'll have to take a look at it when I get home.
Okay, I can confirm that the files were downloaded. Here's the new build log: http://bit.ly/1rawolw
Thanks for your help so far.
Edit: Sorry for the double post. I just feel like people won't see my post if I just edit.
*Bump*
Can anyone help with this?
This may not be the best forum to ask this question, but considering that I'm new to XDA and don't have enough points to post in the development forum, this seemed like the next best place. I'm looking to get into CM development for the Honor 5X and I'm trying to find documentation for building CM (XDA version?) for the wonderful Honor 5X. I was able to find this link: https://wiki.cyanogenmod.org/w/Build_for_kiwi documenting the build process. But, it seemed like a general kiwi build for the phone. I say general because I found this thread in the development section that mentions these three git development repos:
https://github.com/CyanogenMod/andro...ce_huawei_kiwi
https://github.com/CyanogenMod/andro...el_huawei_kiwi
https://github.com/crpalmer/proprietary_vendor_huawei
but when I checked out the code and sync'd the repo, I wasn't sure if it sync'd those repos for me.
So, is there a guide documenting how to build or get started with XDA CM development for the Honor 5X?
Thanks in advance.
Donny3000 said:
This may not be the best forum to ask this question, but considering that I'm new to XDA and don't have enough points to post in the development forum, this seemed like the next best place. I'm looking to get into CM development for the Honor 5X and I'm trying to find documentation for building CM (XDA version?) for the wonderful Honor 5X. I was able to find this link: https://wiki.cyanogenmod.org/w/Build_for_kiwi documenting the build process. But, it seemed like a general kiwi build for the phone. I say general because I found this thread in the development section that mentions these three git development repos:
https://github.com/CyanogenMod/andro...ce_huawei_kiwi
https://github.com/CyanogenMod/andro...el_huawei_kiwi
https://github.com/crpalmer/proprietary_vendor_huawei
but when I checked out the code and sync'd the repo, I wasn't sure if it sync'd those repos for me.
So, is there a guide documenting how to build or get started with XDA CM development for the Honor 5X?
Thanks in advance.
Click to expand...
Click to collapse
I applaud your efforts, But we really already have a good working CM13 team
maybe you should consider picking up one of the many other CM13 based Roms and taking over development of those
the list is quite extensive,but you can begin your quest here
http://forum.xda-developers.com/honor-5x/development/pac-rom-unofficial-build-t3407563
http://forum.xda-developers.com/honor-5x/development/aokp-unofficial-build-mm-t3398902
http://forum.xda-developers.com/honor-5x/development/candyroms-unofficial-build-t3412373
http://forum.xda-developers.com/honor-5x/development/vanir-unofficial-build-6-0-070416-t3411118
http://forum.xda-developers.com/honor-5x/development/aicp-unofficial-build-11-0-t3394492
http://forum.xda-developers.com/honor-5x/development/xperience-unofficial-build-10-0-t3402800
http://forum.xda-developers.com/honor-5x/development/temasek-s-unofficial-build-v8-9-t3390168
http://forum.xda-developers.com/honor-5x/development/collection-roms-flashaholic-t3412367
clsA said:
I applaud your efforts, But we really already have a good working CM13 team
maybe you should consider picking up one of the many other CM13 based Roms and taking over development of those
the list is quite extensive,but you can begin your quest here
http://forum.xda-developers.com/honor-5x/development/pac-rom-unofficial-build-t3407563
http://forum.xda-developers.com/honor-5x/development/aokp-unofficial-build-mm-t3398902
http://forum.xda-developers.com/honor-5x/development/candyroms-unofficial-build-t3412373
http://forum.xda-developers.com/honor-5x/development/vanir-unofficial-build-6-0-070416-t3411118
http://forum.xda-developers.com/honor-5x/development/aicp-unofficial-build-11-0-t3394492
http://forum.xda-developers.com/honor-5x/development/xperience-unofficial-build-10-0-t3402800
http://forum.xda-developers.com/honor-5x/development/temasek-s-unofficial-build-v8-9-t3390168
http://forum.xda-developers.com/honor-5x/development/collection-roms-flashaholic-t3412367
Click to expand...
Click to collapse
hello i want install cm13 on honor 5x KIW-L21 with twrp but when install cm twrp eror 7 plase help me
BASET02 said:
hello i want install cm13 on honor 5x KIW-L21 with twrp but when install cm twrp eror 7 plase help me
Click to expand...
Click to collapse
not the correct thread but to your question- update your phone to stock marshmallow 1st and then try CM13. or else you can flash the CM13 version but older builds than 20th July but that will be without FP. if you want Fp, update your phone to stock marshmallow 1st and then flash any of the CM13 or other marshmallow based ROMs.
BASET02 said:
hello i want install cm13 on honor 5x KIW-L21 with twrp but when install cm twrp eror 7 plase help me
Click to expand...
Click to collapse
Are you kidding me x)
shashank1320 said:
not the correct thread but to your question- update your phone to stock marshmallow 1st and then try CM13. or else you can flash the CM13 version but older builds than 20th July but that will be without FP. if you want Fp, update your phone to stock marshmallow 1st and then flash any of the CM13 or other marshmallow based ROMs.
Click to expand...
Click to collapse
how update KIW-L21 c185b140 to stock marshmallow?
BASET02 said:
how update KIW-L21 c185b140 to stock marshmallow?
Click to expand...
Click to collapse
Check the honor 5X repository thread in guide section. And download stock recovery and appropriate marshmallow package for your phone. And then follow my guide for update. You can find my thread easily.
Or you can flash 18/19th july cm13 build but fp wont work. Try old build and see if u r able to update cm13.
shashank1320 said:
Check the honor 5X repository thread in guide section. And download stock recovery and appropriate marshmallow package for your phone. And then follow my guide for update. You can find my thread easily.
Or you can flash 18/19th july cm13 build but fp wont work. Try old build and see if u r able to update cm13.
Click to expand...
Click to collapse
no stock marshmallow update for kiw-l21c185b140:crying:
BASET02 said:
no stock marshmallow update for kiw-l21c185b140:crying:
Click to expand...
Click to collapse
check this for your model- http://forum.xda-developers.com/honor-5x/how-to/repository-honor-5x-file-depot-t3328288
clsA said:
I applaud your efforts, But we really already have a good working CM13 team
maybe you should consider picking up one of the many other CM13 based Roms and taking over development of those
the list is quite extensive,but you can begin your quest here
http://forum.xda-developers.com/honor-5x/development/pac-rom-unofficial-build-t3407563
http://forum.xda-developers.com/honor-5x/development/aokp-unofficial-build-mm-t3398902
http://forum.xda-developers.com/honor-5x/development/candyroms-unofficial-build-t3412373
http://forum.xda-developers.com/honor-5x/development/vanir-unofficial-build-6-0-070416-t3411118
http://forum.xda-developers.com/honor-5x/development/aicp-unofficial-build-11-0-t3394492
http://forum.xda-developers.com/honor-5x/development/xperience-unofficial-build-10-0-t3402800
http://forum.xda-developers.com/honor-5x/development/temasek-s-unofficial-build-v8-9-t3390168
http://forum.xda-developers.com/honor-5x/development/collection-roms-flashaholic-t3412367
Click to expand...
Click to collapse
Sorry for the delay...I got caught up with family stuff at home. But, thank you clsA for this information. I will take a look and see how I can contribute.
Since many have pm & ask me how to build ROMs for kiwi & i have to repeat myself every time, as might as well once & for all, i post the info here...
Before you can build any other custom ROMs, you'll have to learn to build cm-13.0 referring to this Official Guide then you can move on to other ROMs, Thanks to crpalmer & BadDaemon... :good:
If you're a first time ROM Cooker then i strongly recommends BBQLinux bcos you don't have to setup the build environment, everything is already built-in, my guide here, Thanks to my Master Shifu codeworkx... :good:
There are only two types of Android sources, AOSP & CAF, all custom ROMs will use either one of them including cm... You'll only need two folders AOSP & CAF, syncing all custom ROMs to these same folder will cut the syncing time more than half ! AOSP manifest will have this line while CAF manifest will have this so sync it to the correct folder.
In actual fact, it doesn't really matter, both sources have different file names & you can actually sync it to the same folder but its best practice to have two separate folders for two separate sources.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_huawei_kiwi" path="device/huawei/kiwi" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_external_sony_boringssl-compat" path="external/sony/boringssl-compat" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_external_stlport" path="external/stlport" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_kernel_huawei_kiwi" path="kernel/huawei/kiwi" remote="github" revision="cm-13.0" />
<project name="TheMuppets/proprietary_vendor_huawei" path="vendor/huawei" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-13.0" />
</manifest>
kiwi.xml
To sync the sources, Eg. cm-13.0
Code:
mkdir -p ~/AOSP/.repo/local_manifests
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
Copy [COLOR="Blue"]kiwi.xml[/COLOR] to ~/AOSP/.repo/local_manifests
repo sync -fc[COLOR="blue"]j64[/COLOR] --force-sync [COLOR="blue"]<= Depending on your ISP, this will use parallel threads & cut the downloading time by half. If error then lower it[/COLOR]
To build AOSP based custom ROMs, this Eg. cm-13.0, open a Terminal, copy the below & paste to it
Code:
cd ~/AOSP
prebuilts/misc/linux-x86/ccache/ccache -M 50G
export USE_CCACHE=1
export LC_ALL=C
source build/envsetup.sh
brunch kiwi 2>&1 | tee ~/AOSP/[COLOR="blue"]compile.log[/COLOR]
If there is any build error then refer to the compile.log & start goggling for the fix !
For any other custom ROMs, refer to the guide at their manifest, Eg. below Krexus-CAF
Code:
mkdir -p ~/CAF/.repo/local_manifests
Copy [COLOR="blue"]kiwi.xml[/COLOR] to ~/CAF/.repo/local_manifests [COLOR="Blue"]<= Remove qcom/common as Krexus-CAF already [URL="https://github.com/krexus-caf/manifest/blob/caf/default.xml#L101"]have it[/URL][/COLOR]
cd ~/CAF
repo init -u [url]https://github.com/krexus-caf/manifest.git[/url] -b caf
repo sync -fcj68 --force-sync --no-clone-bundle --no-tags
To build it, you can also create a script as below, name it krexus then simply sh krexus will start the build...
Code:
cd ~/CAF
prebuilts/misc/linux-x86/ccache/ccache -M 50G
export USE_CCACHE=1
export LC_ALL=C
source build/envsetup.sh
lunch [COLOR="blue"]krexus[/COLOR]_kiwi-userdebug
make -j4 otapackage 2>&1 | tee ~/CAF/compile.log
Every ROM mostly will have its own vendor tree formatting, for Krexus-CAF, you'll need to create a new krexus_kiwi.mk so refer to the example there on how to create one. Eg. For AOKP, AICP, PAC-ROM
Building other Custom ROMs
Before you start syncing other custom ROMs, delete everything at AOSP or CAF folder except the hidden source code .repo folder ( To display hidden folders press Ctrl + H )
Sometimes, syncing new ROMs will fail then you'll have to delete all the other files & folders at the hidden .repo folder EXCEPT the project-objects & projects folder, these two are the actual source code folder, a repo init & repo sync then all the files will be extracted out again.
If you've got a very large HDD & would like to build multiple ROMs all at the same time then you'll only need to copy the hidden .repo folder over, Eg. Copy ~/AOSP/.repo to ~/AOKP, ~/AICP, ~/PAC-ROM & syncing it will only take awhile since all are using the exact same google source...
Any other thing that i might have left out then google it yourself...
Good Luck & Happy Building !
Additional Tips
All custom ROMs manifest contains sources to build for almost all Android devices available while some of those sources are not needed for our 5x you can safely remove them by specifying at above kiwi.xml & it will save you not to download of more than 1GB of unused projects !
Code:
<[B]remove[/B]-project path="prebuilts/clang/[COLOR="blue"]darwin[/COLOR]-x86/host/3.6" name="platform/prebuilts/clang/darwin-x86/host/3.6" groups="pdk,darwin" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/aarch64/aarch64-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9" groups="pdk,darwin,arm" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/arm/arm-eabi-4.8" name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" groups="pdk,darwin,arm" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/arm/arm-linux-androideabi-4.9" name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9" groups="pdk,darwin,arm" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/host/i686-apple-darwin-4.2.1" name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" groups="pdk,darwin" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/mips/mips64el-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9" groups="pdk,darwin,mips,notdefault" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/x86/x86_64-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9" groups="pdk,darwin,x86" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/python/[COLOR="blue"]darwin-[/COLOR]x86/2.7.5" name="platform/prebuilts/python/darwin-x86/2.7.5" groups="darwin,pdk,pdk-cw-fs,pdk-fs" clone-depth="1" remote="aosp" />
If you don't own & build on apple PCs or laptops then you can remove all the darwin projects. Source here & here <= item 3
Code:
<[B]remove[/B]-project name="CyanogenMod/android_hardware_qcom_audio" />
<project path="hardware/qcom/audio/default" name="CyanogenMod/android_hardware_qcom_audio" remote="github" revision="cm-13.0" />
<project path="hardware/qcom/audio-caf/msm8916" name="CyanogenMod/android_hardware_qcom_audio" remote="github" revision="cm-13.0-caf-8916" />
<[B]remove[/B]-project name="CyanogenMod/android_hardware_qcom_display" />
<project path="hardware/qcom/display" name="CyanogenMod/android_hardware_qcom_display" remote="github" revision="cm-13.0" />
<project path="hardware/qcom/display-caf/msm8916" name="CyanogenMod/android_hardware_qcom_display" remote="github" revision="cm-13.0-caf-8916" />
<[B]remove[/B]-project name="CyanogenMod/android_hardware_qcom_media" />
<project path="hardware/qcom/media/default" name="CyanogenMod/android_hardware_qcom_media" remote="github" revision="cm-13.0" />
<project path="hardware/qcom/media-caf/msm8916" name="CyanogenMod/android_hardware_qcom_media" remote="github" revision="cm-13.0-caf-8916" />
Our 5x uses msm8939 which uses the same source as msm8916 so you can also safely remove all the other unused apq8084, msm8937, msm8952, msm8960, msm8974, msm8994, msm8996 projects with the above single remove-project then re-specify back the projects that you need. Source Ref
Code:
<[B]remove[/B]-project path="hardware/akm" name="CyanogenMod/android_hardware_akm" />
<[B]remove[/B]-project path="hardware/broadcom/libbt" name="CyanogenMod/android_hardware_broadcom_libbt" groups="pdk" />
<[B]remove[/B]-project path="hardware/broadcom/wlan" name="CyanogenMod/android_hardware_broadcom_wlan" groups="pdk,broadcom_wlan" />
<[B]remove[/B]-project path="hardware/intel/common/libmix" name="CyanogenMod/android_hardware_intel_common_libmix" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/common/libva" name="CyanogenMod/android_hardware_intel_common_libva" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/common/libwsbm" name="CyanogenMod/android_hardware_intel_common_libwsbm" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/common/omx-components" name="CyanogenMod/android_hardware_intel_common_omx-components" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/img/hwcomposer" name="CyanogenMod/android_hardware_intel_img_hwcomposer" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/img/psb_headers" name="CyanogenMod/android_hardware_intel_img_psb_headers" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/img/psb_video" name="CyanogenMod/android_hardware_intel_img_psb_video" groups="intel" />
<[B]remove[/B]-project path="hardware/invensense" name="CyanogenMod/android_hardware_invensense" groups="invensense" />
<[B]remove[/B]-project path="hardware/samsung_slsi/exynos5" name="CyanogenMod/android_hardware_samsung_slsi_exynos5" />
<[B]remove[/B]-project path="hardware/ti/omap4" name="CyanogenMod/android_hardware_ti_omap4" />
<[B]remove[/B]-project path="hardware/ti/omap4xxx" name="CyanogenMod/android_hardware_ti_omap4xxx" groups="omap4" />
<[B]remove[/B]-project path="hardware/ti/wlan" name="CyanogenMod/android_hardware_ti_wlan" />
<[B]remove[/B]-project path="hardware/ti/wpan" name="CyanogenMod/android_hardware_ti_wpan" />
<[B]remove[/B]-project path="hardware/intel/audio_media" name="platform/hardware/intel/audio_media" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/bootstub" name="platform/hardware/intel/bootstub" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/common/bd_prov" name="platform/hardware/intel/common/bd_prov" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/common/libstagefrighthw" name="platform/hardware/intel/common/libstagefrighthw" groups="intel" remote="aosp"/>
<[B]remove[/B]-project path="hardware/intel/common/utils" name="platform/hardware/intel/common/utils" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/common/wrs_omxil_core" name="platform/hardware/intel/common/wrs_omxil_core" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/sensors" name="platform/hardware/intel/sensors" groups="intel_sensors" remote="aosp" />
<[B]remove[/B]-project path="hardware/marvell/bt" name="platform/hardware/marvell/bt" groups="marvell_bt" remote="aosp" />
<[B]remove[/B]-project path="hardware/mediatek" name="platform/hardware/mediatek" groups="mediatek,mediatek_wear" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8960" name="platform/hardware/qcom/msm8960" groups="qcom_msm8960" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8994" name="platform/hardware/qcom/msm8994" groups="qcom_msm8994" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x26" name="platform/hardware/qcom/msm8x26" groups="qcom_msm8x26" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x27" name="platform/hardware/qcom/msm8x27" groups="qcom_msm8x27" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x74" name="platform/hardware/qcom/msm8x74" groups="pdk,qcom_msm8x74" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x84" name="platform/hardware/qcom/msm8x84" groups="qcom_msm8x84" remote="aosp" />
<[B]remove[/B]-project path="hardware/ti/omap3" name="platform/hardware/ti/omap3" groups="omap3" remote="aosp" />
<[B]remove[/B]-project path="hardware/ti/omap4-aah" name="platform/hardware/ti/omap4-aah" groups="omap4-aah" remote="aosp" />
Above are hardware not used on 5x, removing it will save you hours of downloading of these unused projects. ROMs are still buildable with these remove projects, there are still many projects not used that can be safely removed but i don't intend to waste my time on identifying every single one of them... :laugh:
Update 09 Sept 2016 - Everyone can also build their own ROMs
Old PC or laptop ? Slow internet connection, not a problem, gopinaidu77 has shared with me that he is able to build a ROM in just 25 minutes, rebuild a ROM after make clobber took just only 7 minutes ! Syncing any ROM source will only take 3 - 5 mins at 40 Mbps download speed !
Completely FOC, more info refer to here... :good:
Thanks mate. Let me start building the environment and will start this.
Sent from my HUAWEI KIW-L22 using XDA Labs
yuweng said:
Since many have pm & ask me how to build ROMs for kiwi & i have to repeat myself every time, as might as well once & for all, i post the info here...
Before you can build any other custom ROMs, you'll have to learn to build cm-13.0 referring to this Official Guide then you can move on to other ROMs, Thanks to crpalmer & BadDaemon... :good:
If you're a first time ROM Cooker then i strongly recommends BBQLinux bcos you don't have to setup the build environment, everything is already built-in, my guide here, Thanks to my Master Shifu codeworkx... :good:
There are only two types of Android sources, AOSP & CAF, all custom ROMs will use either one of them including cm... You'll only need two folders AOSP & CAF, syncing all custom ROMs to these same folder will cut the syncing time more than half ! AOSP manifest will have this line while CAF manifest will have this so sync it to the correct folder.
In actual fact, it doesn't really matter, both sources have different file names & you can actually sync it to the same folder but its best practice to have two separate folders for two separate sources.
kiwi.xml
To sync the sources, Eg. cm-13.0To build AOSP based custom ROMs, this Eg. cm-13.0, open a Terminal, copy the below & paste to itIf there is any build error then refer to the compile.log & start goggling for the fix !
For any other custom ROMs, refer to the guide at their manifest, Eg. below Krexus-CAFTo build it, you can also create a script as below, name it krexus then simply sh krexus will start the build... Every ROM mostly will have its own vendor tree formatting, for Krexus-CAF, you'll need to create a new krexus_kiwi.mk so refer to the example there on how to create one. Eg. For AOKP, AICP, PAC-ROM
Building other Custom ROMs
Before you start syncing other custom ROMs, delete everything at AOSP or CAF folder except the hidden source code .repo folder ( To display hidden folders press Ctrl + H )
Sometimes, syncing new ROMs will fail then you'll have to delete all the other files & folders at the hidden .repo folder EXCEPT the project-objects & projects folder, these two are the actual source code folder, a repo init & repo sync then all the files will be extracted out again.
If you've got a very large HDD & would like to build multiple ROMs all at the same time then you'll only need to copy the hidden .repo folder over, Eg. Copy ~/AOSP/.repo to ~/AOKP, ~/AICP, ~/PAC-ROM & syncing it will only take awhile since all are using the exact same google source...
Any other thing that i might have left out then google it yourself...
Good Luck & Happy Building !
Click to expand...
Click to collapse
Thank you
yuweng said:
Since many have pm & ask me how to build ROMs for kiwi & i have to repeat myself every time, as might as well once & for all, i post the info here...
Before you can build any other custom ROMs, you'll have to learn to build cm-13.0 referring to this Official Guide then you can move on to other ROMs, Thanks to crpalmer & BadDaemon... :good:
If you're a first time ROM Cooker then i strongly recommends BBQLinux bcos you don't have to setup the build environment, everything is already built-in, my guide here, Thanks to my Master Shifu codeworkx... :good:
There are only two types of Android sources, AOSP & CAF, all custom ROMs will use either one of them including cm... You'll only need two folders AOSP & CAF, syncing all custom ROMs to these same folder will cut the syncing time more than half ! AOSP manifest will have this line while CAF manifest will have this so sync it to the correct folder.
In actual fact, it doesn't really matter, both sources have different file names & you can actually sync it to the same folder but its best practice to have two separate folders for two separate sources.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_huawei_kiwi" path="device/huawei/kiwi" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_external_sony_boringssl-compat" path="external/sony/boringssl-compat" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_external_stlport" path="external/stlport" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_kernel_huawei_kiwi" path="kernel/huawei/kiwi" remote="github" revision="cm-13.0" />
<project name="TheMuppets/proprietary_vendor_huawei" path="vendor/huawei" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-13.0" />
</manifest>
kiwi.xml
To sync the sources, Eg. cm-13.0
Code:
mkdir -p ~/AOSP/.repo/local_manifests
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
Copy [COLOR="Blue"]kiwi.xml[/COLOR] to ~/AOSP/.repo/local_manifests
repo sync -fc[COLOR="blue"]j64[/COLOR] --force-sync [COLOR="blue"]<= Depending on your ISP, this will use parallel threads & cut the downloading time by half. If error then lower it[/COLOR]
To build AOSP based custom ROMs, this Eg. cm-13.0, open a Terminal, copy the below & paste to it
Code:
cd ~/AOSP
prebuilts/misc/linux-x86/ccache/ccache -M 50G
export USE_CCACHE=1
export LC_ALL=C
source build/envsetup.sh
brunch kiwi 2>&1 | tee ~/AOSP/[COLOR="blue"]compile.log[/COLOR]
If there is any build error then refer to the compile.log & start goggling for the fix !
For any other custom ROMs, refer to the guide at their manifest, Eg. below Krexus-CAF
Code:
mkdir -p ~/CAF/.repo/local_manifests
Copy [COLOR="blue"]kiwi.xml[/COLOR] to ~/CAF/.repo/local_manifests [COLOR="Blue"]<= Remove qcom/common as Krexus-CAF already [URL="https://github.com/krexus-caf/manifest/blob/caf/default.xml#L101"]have it[/URL][/COLOR]
cd ~/CAF
repo init -u [url]https://github.com/krexus-caf/manifest.git[/url] -b caf
repo sync -fcj68 --force-sync --no-clone-bundle --no-tags
To build it, you can also create a script as below, name it krexus then simply sh krexus will start the build...
Code:
cd ~/CAF
prebuilts/misc/linux-x86/ccache/ccache -M 50G
export USE_CCACHE=1
export LC_ALL=C
source build/envsetup.sh
lunch [COLOR="blue"]krexus[/COLOR]_kiwi-userdebug
make -j4 otapackage 2>&1 | tee ~/CAF/compile.log
Every ROM mostly will have its own vendor tree formatting, for Krexus-CAF, you'll need to create a new krexus_kiwi.mk so refer to the example there on how to create one. Eg. For AOKP, AICP, PAC-ROM
Building other Custom ROMs
Before you start syncing other custom ROMs, delete everything at AOSP or CAF folder except the hidden source code .repo folder ( To display hidden folders press Ctrl + H )
Sometimes, syncing new ROMs will fail then you'll have to delete all the other files & folders at the hidden .repo folder EXCEPT the project-objects & projects folder, these two are the actual source code folder, a repo init & repo sync then all the files will be extracted out again.
If you've got a very large HDD & would like to build multiple ROMs all at the same time then you'll only need to copy the hidden .repo folder over, Eg. Copy ~/AOSP/.repo to ~/AOKP, ~/AICP, ~/PAC-ROM & syncing it will only take awhile since all are using the exact same google source...
Any other thing that i might have left out then google it yourself...
Good Luck & Happy Building !
Additional Tips
All custom ROMs manifest contains sources to build for almost all Android devices available while some of those sources are not needed for our 5x you can safely remove them by specifying at above kiwi.xml & it will save you not to download of more than 1GB of unused projects !
Code:
<[B]remove[/B]-project path="prebuilts/clang/[COLOR="blue"]darwin[/COLOR]-x86/host/3.6" name="platform/prebuilts/clang/darwin-x86/host/3.6" groups="pdk,darwin" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/aarch64/aarch64-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9" groups="pdk,darwin,arm" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/arm/arm-eabi-4.8" name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" groups="pdk,darwin,arm" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/arm/arm-linux-androideabi-4.9" name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9" groups="pdk,darwin,arm" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/host/i686-apple-darwin-4.2.1" name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" groups="pdk,darwin" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/mips/mips64el-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9" groups="pdk,darwin,mips,notdefault" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/gcc/[COLOR="blue"]darwin[/COLOR]-x86/x86/x86_64-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9" groups="pdk,darwin,x86" clone-depth="1" remote="aosp" />
<[B]remove[/B]-project path="prebuilts/python/[COLOR="blue"]darwin-[/COLOR]x86/2.7.5" name="platform/prebuilts/python/darwin-x86/2.7.5" groups="darwin,pdk,pdk-cw-fs,pdk-fs" clone-depth="1" remote="aosp" />
If you don't own & build on apple PCs or laptops then you can remove all the darwin projects. Source here & here <= item 3
Code:
<[B]remove[/B]-project name="CyanogenMod/android_hardware_qcom_audio" />
<project path="hardware/qcom/audio/default" name="CyanogenMod/android_hardware_qcom_audio" remote="github" revision="cm-13.0" />
<project path="hardware/qcom/audio-caf/msm8916" name="CyanogenMod/android_hardware_qcom_audio" remote="github" revision="cm-13.0-caf-8916" />
<[B]remove[/B]-project name="CyanogenMod/android_hardware_qcom_display" />
<project path="hardware/qcom/display" name="CyanogenMod/android_hardware_qcom_display" remote="github" revision="cm-13.0" />
<project path="hardware/qcom/display-caf/msm8916" name="CyanogenMod/android_hardware_qcom_display" remote="github" revision="cm-13.0-caf-8916" />
<[B]remove[/B]-project name="CyanogenMod/android_hardware_qcom_media" />
<project path="hardware/qcom/media/default" name="CyanogenMod/android_hardware_qcom_media" remote="github" revision="cm-13.0" />
<project path="hardware/qcom/media-caf/msm8916" name="CyanogenMod/android_hardware_qcom_media" remote="github" revision="cm-13.0-caf-8916" />
Our 5x uses msm8939 which uses the same source as msm8916 so you can also safely remove all the other unused apq8084, msm8937, msm8952, msm8960, msm8974, msm8994, msm8996 projects with the above single remove-project then re-specify back the projects that you need. Source Ref
Code:
<[B]remove[/B]-project path="hardware/akm" name="CyanogenMod/android_hardware_akm" />
<[B]remove[/B]-project path="hardware/broadcom/libbt" name="CyanogenMod/android_hardware_broadcom_libbt" groups="pdk" />
<[B]remove[/B]-project path="hardware/broadcom/wlan" name="CyanogenMod/android_hardware_broadcom_wlan" groups="pdk,broadcom_wlan" />
<[B]remove[/B]-project path="hardware/intel/common/libmix" name="CyanogenMod/android_hardware_intel_common_libmix" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/common/libva" name="CyanogenMod/android_hardware_intel_common_libva" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/common/libwsbm" name="CyanogenMod/android_hardware_intel_common_libwsbm" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/common/omx-components" name="CyanogenMod/android_hardware_intel_common_omx-components" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/img/hwcomposer" name="CyanogenMod/android_hardware_intel_img_hwcomposer" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/img/psb_headers" name="CyanogenMod/android_hardware_intel_img_psb_headers" groups="intel" />
<[B]remove[/B]-project path="hardware/intel/img/psb_video" name="CyanogenMod/android_hardware_intel_img_psb_video" groups="intel" />
<[B]remove[/B]-project path="hardware/invensense" name="CyanogenMod/android_hardware_invensense" groups="invensense" />
<[B]remove[/B]-project path="hardware/samsung_slsi/exynos5" name="CyanogenMod/android_hardware_samsung_slsi_exynos5" />
<[B]remove[/B]-project path="hardware/ti/omap4" name="CyanogenMod/android_hardware_ti_omap4" />
<[B]remove[/B]-project path="hardware/ti/omap4xxx" name="CyanogenMod/android_hardware_ti_omap4xxx" groups="omap4" />
<[B]remove[/B]-project path="hardware/ti/wlan" name="CyanogenMod/android_hardware_ti_wlan" />
<[B]remove[/B]-project path="hardware/ti/wpan" name="CyanogenMod/android_hardware_ti_wpan" />
<[B]remove[/B]-project path="hardware/intel/audio_media" name="platform/hardware/intel/audio_media" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/bootstub" name="platform/hardware/intel/bootstub" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/common/bd_prov" name="platform/hardware/intel/common/bd_prov" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/common/libstagefrighthw" name="platform/hardware/intel/common/libstagefrighthw" groups="intel" remote="aosp"/>
<[B]remove[/B]-project path="hardware/intel/common/utils" name="platform/hardware/intel/common/utils" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/common/wrs_omxil_core" name="platform/hardware/intel/common/wrs_omxil_core" groups="intel" remote="aosp" />
<[B]remove[/B]-project path="hardware/intel/sensors" name="platform/hardware/intel/sensors" groups="intel_sensors" remote="aosp" />
<[B]remove[/B]-project path="hardware/marvell/bt" name="platform/hardware/marvell/bt" groups="marvell_bt" remote="aosp" />
<[B]remove[/B]-project path="hardware/mediatek" name="platform/hardware/mediatek" groups="mediatek,mediatek_wear" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8960" name="platform/hardware/qcom/msm8960" groups="qcom_msm8960" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8994" name="platform/hardware/qcom/msm8994" groups="qcom_msm8994" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x26" name="platform/hardware/qcom/msm8x26" groups="qcom_msm8x26" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x27" name="platform/hardware/qcom/msm8x27" groups="qcom_msm8x27" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x74" name="platform/hardware/qcom/msm8x74" groups="pdk,qcom_msm8x74" remote="aosp" />
<[B]remove[/B]-project path="hardware/qcom/msm8x84" name="platform/hardware/qcom/msm8x84" groups="qcom_msm8x84" remote="aosp" />
<[B]remove[/B]-project path="hardware/ti/omap3" name="platform/hardware/ti/omap3" groups="omap3" remote="aosp" />
<[B]remove[/B]-project path="hardware/ti/omap4-aah" name="platform/hardware/ti/omap4-aah" groups="omap4-aah" remote="aosp" />
Above are hardware not used on 5x, removing it will save you hours of downloading of these unused projects. ROMs are still buildable with these remove projects, there are still many projects not used that can be safely removed but i don't intend to waste my time on identifying every single one of them... :laugh:
Update 09 Sept 2016 - Everyone can also build their own ROMs
Old PC or laptop ? Slow internet connection, not a problem, gopinaidu77 has shared with me that he is able to build a ROM in just 25 minutes, rebuild a ROM after make clobber took just only 7 minutes ! Syncing any ROM source will only take 3 - 5 mins at 40 Mbps download speed !
Completely FOC, more info refer to here... :good:
Click to expand...
Click to collapse
Hi yuweng,
Thanks for such a thread. This is almost all knowledge in one place.
I am thinking of compiling my own ROM. Going through your thread.
Will be installing BBQ Linux very soon.
Good luck