• XDA Forums have been migrated to XenForo. We are aware of several issues including missing threads, logins not working, and more. To discuss, use this thread.

FAQs and Common Error while building Custom ROMs.

vibhoothiiaanand

New member
Apr 28, 2015
159
232
0
Calicut
Disclaimer:
Code:
All these FAQs and Solutions are taken from my knowledge and experience if anything wrong please point out so I can correct it.And feel free to add more FAQs and Errors from your side
Disclaimer: All these FAQs and Solutions are taken from my knowledge and experience if anything wrong please point out so I can correct it.And feel free to add more FAQs and Errors from your side

FAQ #1 : Easiest way to setup build environment ?
Answer: Their is a script will will make all the work easy by @akhilnarang
Steps to be followed:

Code:
git clone https://github.com/akhilnarang/scripts
cd scripts
bash setup/<name of script>

FAQ #2: Which is the best distro to build custom rom?

Answer: I will always recommend to use Ubuntu 14.04
Download Link : DOWNLOAD NOW

FAQ #3:If I have low internet speed how to sync sources that too 60Gb and all?

Answer: Use Google cloud Platform which is the best because internet speed syncs source within half an hour build speed max 2hour first build then less than 30mins

FAQ #4: Is any programming language required to study while building ROMs?

Answer: Absolutely No since for making roms from source you just require BASIC English thats it and few logic how does fuctions work etc.

FAQ #5: I have MacBook can I built on it since it is having BASH terminal?

Answer:Sure you don't need to install another distro inbuilt Mac OS is enough.

FAQ #6: While building it stopped what to do ?

Answer: Simplest way is copy whole data and paste in any IDE and search for "FAILED:" line and read it understand what made wrong then google how to fix it,Few common errors and their fixed are their below just bookmark if you need.

FAQ #7:I Googled still not found a solution how to fix it ?

Answer: Their are many ways ask on XDA else you get contact with developer of that rom message him and resolve it.

FAQ #8: Is there any full tutorial for NOOB users ?
Answer:
1 [[GUIDE][COMPLETE] Android ROM Development From Source To End
2 [GUIDE]A Noob Guide On Building Your Own Custom Kernel (ARM & MTK) (ARM64 coming)
3 [GUIDE][COMPLETE]How to build ROM with Google Cloud

FAQ #9: What is Cherry-picking is please explain?

Answer: It is actually taking a feature of one rom and then add to your rom by giving proper credits to author etc.There is a good tutorial for doing this refer to this
How to apply patches to the source ?.This will surely help you a lot.

FAQ #10: Is there any place where I can get full details of rom files folders etc ?

Answer: Yes there is an awesome post explaining everything.
[GUIDE] Understanding the Android Source Code

FAQ #11: I have one commit which is commit but I need to add proper author to it what to do?

Answer:
git commit --amend --author="NAME "
This will add author to last commit

FAQ #12: I have done changes I need to overwrite the commit its not allowing asking for pull and retry like that.

Answer: do same git push command just add " -f " tag so it overwrites the git.
for e.g.: " git push GitHub 7x -f "instead of "git push GitHub 7x "

FAQ #13: Any Simple way to resolve conflicts while cherry-picking ?

Answer: The best way is to use search tool and search for ">>>","<<<","===" remove, add keep both depending on code.Second Method is by using GitHub as search.

FAQ #14: Is there any simpler way to check cherry-picked correctly or not since building whole ROM takes time.

Answer: Build only the required package to check if it worked correctly then build Rom as whole .For e.g. you made changes to kernel and device tree in that case just use time mka boot image rather than time mka bacon.

FAQ #15:How to remove snap camera from building?

Answer:Remove Snap from BoardConfig and use zip contents and manifest to see what permissions to do, use PRODUCT_COPY_FILES command

FAQ #16: How is flashable ZIP of kernels made ?

Answer:Android zips have updater-script which is programmed in edifier,You basically need to make a flashable zip which would write boot.img into /dev/block/bla/bla/boot.

FAQ #17: Should I dexpreopt my builds?

Answer: Not necessary it is just first boot speeding up and take extra size around 100mb more.

FAQ #18: What does boot.img contain?

Answer: it has kernel and ramdisk

FAQ #19 What are BLOBS?

Answer: Blobs are vendor files and prebuilt libs which are found in system, importing them is copy paste + the mk file, It's usually found in /system/vendor and /system/lib.

Common Errors:

All these erros I mention are faced by me and solution which I did is written along.
#1:
libwpa_qmi_eap_proxy_
intermediates/export_includes', needed by '/home/vibhoothiiaanand/nuclea/out/target/product/oneplus2/obj/EXECUTABLE
S/wpa_supplicant_intermediates/import_includes', missing and no known rule to make it
make: *** [ninja_wrapper] Error 1
Solution:
First check wheather your vendor repo is broken or not or is it included or not if not clone it from correct source.
Clone wpa supplicant ,wpa_supplicant8 from lineageos and retry it

#2:Build is successful but its not booting what to do?

Solution: Make another build with permissive by adding
"androidboot.selinux=permissive" to BoardConfig.mk it should work.

#3:I have synced device tree but device is not showing in breakfast nor lunch menu

Solution:
1.first change romname.mk file to your rom name ,for e.g. you synced Du tree and trying to make nitrogen rom so mv du.mk nitrogen.mk.
2.Change vendorsetup.sh make appropriate name of device name with rom.
3.Change .dependencies name to rom name for e.g.. du.dependencies make it nitrogen.dependencies
4.Make AndroidProducts.mk and call device.mk from it.
Will show you how things are done.
Oneplus2 device tree modded for supporting VertexOS: Vertex-fy
Oneplus2 device tree modded for supporting Candy Rom :Candify
there will be so much commits like this just git search then your good to go.
This must be general case for most of the rom and devices just refer this.

#4:

ninja: error: '/home/vibhoothiiaanand/nitrogen/out/target/product/oneplus2/obj/SHARED_LIBRARIES/libqdutils_intermediates/export_includes', needed by '/home/vibhoo
thiiaanand/nitrogen/out/target/product/oneplus2/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates/import_includes', missing and no known rule to make it
make: *** [ninja_wrapper] Error 1
Solution:
this is common error and its due to missing hardware BLOBs so to fix this there are few things to clone
these files are to cross checked if not clone from lineage
hardware/qcom/display
hardware/qcom/display-caf
hardware/qcom/audio
hardware/qcom/audio-caf
hardware/qcom/media
hardware/qcom/media-caf
hardware/qcom/bootctrl
hardware/qcom/bt
hardware/qcom/bt-caf
hardware/qcom/camera
hardware/qcom/gps
hardware/qcom/wlan
hardware/qcom/wlan-caf
hardware/qcom/keymaster
and for cloning I will show you how its done for Oneplus2
git clone https://github.com/LineageOS/android_hardware_qcom_display.git -b cm-14.1 hardware/qcom/display/msm8994
git clone https://github.com/LineageOS/android_hardware_qcom_audio.git -b cm-14.1 hardware/qcom/audio/msm8994
git clone https://github.com/LineageOS/android_hardware_qcom_media.git -b cm-14.1 hardware/qcom/media/msm8994 git clone https://github.com/LineageOS/android_hardware_qcom_display.git -b cm-14.1-caf-8994 hardware/qcom/display-caf/msm8994
git clone https://github.com/LineageOS/android_hardware_qcom_audio.git -b cm-14.1-caf-8994 hardware/qcom/audio-caf/msm8994
git clone https://github.com/LineageOS/android_hardware_qcom_media.git -b cm-14.1-caf-8994 hardware/qcom/media-caf/msm8994
#5
device/generic/goldfish/data/etc/apns-conf.xml', needed by '/home/vibhoothiiaanand/nitrogen/out/target/product/oneplus2/system/etc/apns-conf.xml',
missing and no known rule to make it.

Solution:
just clone generic/goldfish from google since its old AF in lineage source
git clone https://android.googlesource.com/device/generic/goldfish device/generic/goldfish

#6
frameworks/native/build/phone-xxxhdpi-4096-dalvik-heap.mk" does not exist. Stop.

Solution:
Fix is just cherry-pick this commit
https://github.com/CyanogenMod/andr...mmit/6500d428ce816ffa0ba099221a4987ad7bfcb4ab
Done it must be fixed

#7
ERROR: couldn't find ro.product.model in build.prop

Solution:
This is not that common but this happens while compiling
fix is cherry-pick this commit
https://github.com/AICP/build/commit/df574f3e6ae115425b2c25e5b5e6772503ca0f65

#8
Model number unknown.

Solution:
Go to device tree and open init/init*.cpp make device name and instead of std::string device = property_get("ro..device"); change to std::string device = property_get("ro.product.device");

#9
Deleting obsolete path /home/vibhoothiiaanand/vertex/device/oneplus/oneplus2
Deleting obsolete path /home/vibhoothiiaanand/vertex/device/oppo/common
Deleting obsolete path /home/vibhoothiiaanand/vertex/kernel/oneplus/msm8894
Deleting obsolete path /home/vibhoothiiaanand/vertex/vendor/oneplus

Solution:
this is due to not declaring repos in local manifest

#10 Broken gestures
for this two things must be noted kernel and device common must match the node names in case of oneplus2
in kernel: drivers/input/touchscreen/synaptics_driver_s3320.c and configpanel/src/com/cyanogenmod/settings/device/utils/Constants.java should match node declaration values

#11 Dex2oated errors
it usually look like this


For this easy fix is disabling dexpreopt

#12 ninja: error: '/home/vibhoothiiaanand/vertex/out/target/common/obj/JAVA_LIBRARIES/rcscommon_intermediates/javalib.jar', needed by '/home/vibhoothiiaanand/vertex/out/target/product/oneplus2/dex_bootjars/system/framework/arm64/boot.art', missing and no known rule to make it
make: *** [ninja_wrapper] Error 1
make: Leaving directory `/home/vibhoothiiaanand/vertex'
For me this happened while building vertex for that I removed telephony entry from android_vendor_vertex/config/common.mk

#13 /out/target/product/oneplus2/obj/SHARED_LIBRARIES/libdhcpcd_intermediates/export_includes', needed by '/home/coolmohammad98/cr/out/target/product/oneplus2/obj/EXECUTABLES/ipacm_intermediates/

Solution
For this clone https://github.com/lineageos/android_external_libnfnetlink and then your good to go

Credit:
Special Thanks to @MZO
 
Last edited:

falconscrest123

New member
Aug 3, 2015
114
68
0
I was trying to build a rom for the h830 but i got this error similar to number 12 if you could help me out

make: *** No rule to make target '/home/melwyn/du/out/target/common/obj/JAVA_LIBRARIES/tcmiface_intermediates/javalib.jar', needed by '/home/melwyn/du/out/target/product/h830/dex_bootjars/system/framework/arm64/boot.art'. Stop.
make: *** Waiting for unfinished jobs....
host C: libssl_static-host_32 <= external/boringssl/src/ssl/tls_record.c

Full log https://pastebin.com/XftevYy2
 

abhijiths362

New member
Sep 25, 2017
628
1,107
0
pandalam
FAILED: /home/abhivarma362/pix/out/soong/build.ninja
/home/abhivarma362/pix/out/soong/.bootstrap/bin/soong_build -t -l /home/abhivarma362/pix/out/.module_paths/Android.bp.list -b /home/abhivarma362/pix/out/soong -n /home/abhivarma362/pix/out -d /home/abhivarma362/pix/out/soong/build.ninja.d -o /home/abhivarma362/pix/out/soong/build.ninja Android.bp
error: system/bt/include/Android.bp:1:1: module "avrcp_headers" variant "linux_glibc_x86_64": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
error: system/bt/types/Android.bp:9:1: module "libbluetooth-types" variant "linux_glibc_x86_64_static": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
error: system/bt/types/Android.bp:9:1: module "libbluetooth-types" variant "linux_glibc_x86_64_static": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
error: system/bt/packet/base/Android.bp:1:1: module "lib-bt-packets-base" variant "linux_glibc_x86_64_static": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
ninja: build stopped: subcommand failed.
15:21:48 soong bootstrap failed with: exit status 1
what is this
 

azwane

New member
Jul 26, 2019
5
0
0
Hello respected developers,

I loved the rom viper Os on my redmi 4a. I'm very enthusiastic and inspired by viper os to develop it for my other devices too. But first I tried to build the rom for my redmi 4a because i wanted to test the success of my building. I would like to inform you that i have gone through every process of establishing environment to reposync all learnig from aosp document and manifests on the viper os github and even downloaded device tree,vendor and kernel as from hayeki's git hub . and i made neccessary edits to androidproducts.mk , lineage_rolex.mk to naming viper_rolex.mk and setting device path.
And finally i proceeded by :


./build-envsetup.sh
lunch viper_rolex-userdebug
mka poison


The build process then followed for about 5 hrs and i was hopefully waiting close success but alas! I came up with a error given this way:

Warning: Stripped invalid locals information from 2 methods.
In /home/shrawan/Desktop/workon_viper/out/soong/.intermediates/frameworks/base/packages/EasterEgg/EasterEgg/android_common/combined/EasterEgg.jar:kotlin/collections/SlidingWindowKt$windowedIterator$1.class:
Methods with invalid locals information:
java.lang.Object kotlin.collections.SlidingWindowKt$windowedIterator$1.doResume(java.lang.Object, java.lang.Throwable)
In /home/shrawan/Desktop/workon_viper/out/soong/.intermediates/frameworks/base/packages/EasterEgg/EasterEgg/android_common/combined/EasterEgg.jar:kotlin/sequences/SequencesKt___SequencesKt$zipWithNext$2.class:
Methods with invalid locals information:
java.lang.Object kotlin.sequences.SequencesKt___SequencesKt$zipWithNext$2.doResume(java.lang.Object, java.lang.Throwable)
Some warnings are typically a sign of using an outdated Java toolchain. To fix, recompile the source with an updated toolchain.
[ 82% 60970/74331] build /home/shrawan...icy_tests_intermediates/sepolicy_tests
FAILED: /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/sepolicy_tests_intermediates/sepolicy_tests
/bin/bash -c "(/home/shrawan/Desktop/workon_viper/out/host/linux-x86/bin/sepolicy_tests -l /home/shrawan/Desktop/workon_viper/out/host/linux-x86/lib64/libsepolwrap.so -f /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts -f /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts -p /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/sepolicy_intermediates/sepolicy ) && (touch /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/sepolicy_tests_intermediates/sepolicy_tests )"
The following types on /data/ must be associated with the "core_data_file_type" attribute: netmgrd_data_file

[ 82% 60975/74331] //bionic/libc:commo...ioner preprocess include [linux_glibc]
warning: attempted to generate guard with empty availability: obsoleted = 23
warning: attempted to generate guard with empty availability: obsoleted = 21
ninja: build stopped: subcommand failed.
11:58:35 ninja failed with: exit status 1

#### failed to build some targets (04:38:04 (hh:mm:ss)) ####



I did a enough of the search in and out of the forum but i couldn't able to know what problem is this and i dont have any idea how to solve this. Please give me some light on what problem is this and guide me where should i be looking to solve. I have a great enthusiasm of learning but this problem solution isn't available or discussed properly in any place or maybe i didn't find the place where to look. Please help me on this[/QUOTE]
 

azwane

New member
Jul 26, 2019
5
0
0
Even if it takes a lot of time, can we build a ROM with 2GB RAM with patience ?
you mean for a device with 2 GB ram ? or meant your building computer's ram...well if you meant for your computer then you can create a swap partition of about 4-6GB and linux will use it as virtual ram
 

sophimp

New member
Aug 15, 2019
1
0
0
I encountered the same problem

FAILED: /home/abhivarma362/pix/out/soong/build.ninja
/home/abhivarma362/pix/out/soong/.bootstrap/bin/soong_build -t -l /home/abhivarma362/pix/out/.module_paths/Android.bp.list -b /home/abhivarma362/pix/out/soong -n /home/abhivarma362/pix/out -d /home/abhivarma362/pix/out/soong/build.ninja.d -o /home/abhivarma362/pix/out/soong/build.ninja Android.bp
error: system/bt/include/Android.bp:1:1: module "avrcp_headers" variant "linux_glibc_x86_64": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
error: system/bt/types/Android.bp:9:1: module "libbluetooth-types" variant "linux_glibc_x86_64_static": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
error: system/bt/types/Android.bp:9:1: module "libbluetooth-types" variant "linux_glibc_x86_64_static": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
error: system/bt/packet/base/Android.bp:1:1: module "lib-bt-packets-base" variant "linux_glibc_x86_64_static": source path oneplus/oneplus2/sepolicy/bluetooth does not exist
ninja: build stopped: subcommand failed.
15:21:48 soong bootstrap failed with: exit status 1
what is this
Do you have resolved it? I find bluetooth-types appearance in moudle_info.json. I want to delete it, but I don't know what has auto generate the module_info .
 

nit_in

New member
Nov 19, 2012
292
214
0
Hello respected developers,

I loved the rom viper Os on my redmi 4a. I'm very enthusiastic and inspired by viper os to develop it for my other devices too. But first I tried to build the rom for my redmi 4a because i wanted to test the success of my building. I would like to inform you that i have gone through every process of establishing environment to reposync all learnig from aosp document and manifests on the viper os github and even downloaded device tree,vendor and kernel as from hayeki's git hub . and i made neccessary edits to androidproducts.mk , lineage_rolex.mk to naming viper_rolex.mk and setting device path.
And finally i proceeded by :


./build-envsetup.sh
lunch viper_rolex-userdebug
mka poison


The build process then followed for about 5 hrs and i was hopefully waiting close success but alas! I came up with a error given this way:

Warning: Stripped invalid locals information from 2 methods.
In /home/shrawan/Desktop/workon_viper/out/soong/.intermediates/frameworks/base/packages/EasterEgg/EasterEgg/android_common/combined/EasterEgg.jar:kotlin/collections/SlidingWindowKt$windowedIterator$1.class:
Methods with invalid locals information:
java.lang.Object kotlin.collections.SlidingWindowKt$windowedIterator$1.doResume(java.lang.Object, java.lang.Throwable)
In /home/shrawan/Desktop/workon_viper/out/soong/.intermediates/frameworks/base/packages/EasterEgg/EasterEgg/android_common/combined/EasterEgg.jar:kotlin/sequences/SequencesKt___SequencesKt$zipWithNext$2.class:
Methods with invalid locals information:
java.lang.Object kotlin.sequences.SequencesKt___SequencesKt$zipWithNext$2.doResume(java.lang.Object, java.lang.Throwable)
Some warnings are typically a sign of using an outdated Java toolchain. To fix, recompile the source with an updated toolchain.
[ 82% 60970/74331] build /home/shrawan...icy_tests_intermediates/sepolicy_tests
FAILED: /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/sepolicy_tests_intermediates/sepolicy_tests
/bin/bash -c "(/home/shrawan/Desktop/workon_viper/out/host/linux-x86/bin/sepolicy_tests -l /home/shrawan/Desktop/workon_viper/out/host/linux-x86/lib64/libsepolwrap.so -f /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts -f /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts -p /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/sepolicy_intermediates/sepolicy ) && (touch /home/shrawan/Desktop/workon_viper/out/target/product/rolex/obj/ETC/sepolicy_tests_intermediates/sepolicy_tests )"
The following types on /data/ must be associated with the "core_data_file_type" attribute: netmgrd_data_file

[ 82% 60975/74331] //bionic/libc:commo...ioner preprocess include [linux_glibc]
warning: attempted to generate guard with empty availability: obsoleted = 23
warning: attempted to generate guard with empty availability: obsoleted = 21
ninja: build stopped: subcommand failed.
11:58:35 ninja failed with: exit status 1

#### failed to build some targets (04:38:04 (hh:mm:ss)) ####



I did a enough of the search in and out of the forum but i couldn't able to know what problem is this and i dont have any idea how to solve this. Please give me some light on what problem is this and guide me where should i be looking to solve. I have a great enthusiasm of learning but this problem solution isn't available or discussed properly in any place or maybe i didn't find the place where to look. Please help me on this
[/QUOTE]


I guess something is wrong with your sepolicy rules

Go to device/xiaomi/rolex/sepolicy folder
and look at file_contexts file

(also check /device/xiaomi/*-common folder
if you have any for your device)

compare it with other developers/maintainers device tree

also To be safe look at whole folder
 

nit_in

New member
Nov 19, 2012
292
214
0
I guess something is wrong with your sepolicy rules

Go to device/xiaomi/rolex/sepolicy folder
and look at file_contexts file

(also check /device/xiaomi/*-common folder
if you have any for your device)

compare it with other developers/maintainers device tree

also To be safe look at whole folder
[/QUOTE]
????
 

wayneegds

New member
Nov 4, 2013
42
64
0
27
São Felix do Araguaia
hello I have this problem, I tried 2 roms and had the same error if you can help me: [100% 1/1] /home/waynee/android/evox/out/soong/.minibootstrap/minibp /home/wayne
FAILED: /home/waynee/android/evox/out/soong/.bootstrap/build.ninja
/home/waynee/android/evox/out/soong/.minibootstrap/minibp -t -l /home/waynee/android/evox/out/.module_paths/Android.bp.list -b /home/waynee/android/evox/out/soong -n /home/waynee/android/evox/out -d /home/waynee/android/evox/out/soong/.bootstrap/build.ninja.d -globFile /home/waynee/android/evox/out/soong/.minibootstrap/build-globs.ninja -o /home/waynee/android/evox/out/soong/.bootstrap/build.ninja Android.bp
error: vendor/evolutionx/build/soong/Android.bp:1:1: module "soong-aosp" already defined
vendor/aosp/build/soong/Android.bp:1:1 <-- previous definition here
error: vendor/evolutionx/build/soong/Android.bp:9:1: module "soong-custom-generator" already defined
vendor/aosp/build/soong/Android.bp:9:1 <-- previous definition here
09:13:44 soong minibootstrap failed with: exit status 1
 
Our Apps
Get our official app! (coming soon)
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone