Compile Custom ROM For Any Device – The Ultimate Guide
In this tutorial, you’ll learn how to compile custom ROM of your choice for your device! Yes, it’s quite easy if you have messed your hands on Linux. You can compile any rom of your choice if you can grab sources from the Github and your device, vendor tree, and kernel source.
This guide is for those who at least have some basic knowledge of using Github and any Linux because you’ll need to visit Github most of the times for solving errors, checking commits and all you’ll have is a terminal! You can use the GUI based Linux distros, but I love doing it on the terminal to compile custom ROM.
DON’T START COMPILING IF YOU HAVE NO IDEA ABOUT BASIC STUFF OF LINUX!
THINGS NEEDED TO COMPILE CUSTOM ROM
Ubuntu 16.04 server / PC with Ubuntu 16.04. Make sure it is powerful enough to handle tasks.
Device tree, Vendor tree and Kernel source of your device. (You can find it on Github/XDA).
Source of the custom ROM which you want to compile.
You’ll need around 100-300GB free space, super fast internet. Don’t do this on your old pc with slow internet.
Once You have grabbed your trees and sources, you can start the initial setup.
SETTING UP THE ENVIRONMENT
You have to install the tools which are required for making a custom rom! You can simply copy paste the code given below in the terminal to setup the environment.
You can get any ROM source and init the repo, in my case I’m using LineageOS.
You can try some other roms like Resurrection Remix, CrDroid, AEX, etc.
Now sync the repo
Now grab a cup of coffee because it’ll take a long time depending on the speed of your internet connection if you are familiar with repo then use some tweaks like -c, -f, –no-tags to decrease the time. It takes around 20-30 minutes on my server.
CLONING THE STUFF ON YOUR DEVICE
Now you have to clone your device tree, vendor tree and kernel source from Github.
You have to clone like this – git clone *git-url-here* -b *branch* folder/folder/folder
This is how I clone for my device; you can get a better idea with this.