# How to start android custom ROM development?

I know there is no good guide to starting Android custom ROM Development. You can learn about building.

**Note: This guide doesn't contain any technical tutorials. This will show you a good way to start your AOSP / Android Custom ROM development journey in a community-oriented way.**

### 1) Get an android device which has good community support

→ I recommend buying a device with a good community if you don't have any prior experience with android modding/custom ROMs.

→ If you have prior knowledge of custom ROMs, you can go for any good device.

→ How to know if a device has a good community? Check Telegram and XDA (More detail in the next point).

**Why not an emulator?**

You can start learning AOSP (framework, internals) using an emulator but I want you to involve in the android ROMs community and learn from them so the actual device is the best way.

### 2) Join your device community

→ Nowadays, every device has a community in Telegram. You can find it simply by searching your device name or codename in Telegram.

→ How to know my device codename? A simple google search "&lt;device\_name&gt; codename" will do the work.

![](https://pbs.twimg.com/media/FgVHv51VUAAreMd?format=jpg&name=900x900 align="left")

![](https://pbs.twimg.com/media/FgVHwIdVsAAlXGj?format=jpg&name=900x900 align="left")

→ Check XDA Developers Forum for your device forums. There you can find threads (posts) for your device.

Search "&lt;your device name&gt; xda" in google. You can find your device forum easily (only if your device has forums in XDA)

![](https://pbs.twimg.com/media/FgVHwh5VQAECKBB?format=jpg&name=large align="left")

**Now you found your device community, what's next?**

→ Engage with the community members.

→ Talk more about your device.

→ Get help. Give help

→ Make friends. Make friends

→ Learn from them

**Points to remember in a community**

→ Don't expect a spoon feed from the community members.

→ Avoid asking things that you can find by a simple google search.

→ No "Hello" and "Hi". Ask your question directly.

→ Prefer the common chat over DM. Seek help in public. So you will get help from more people and others will learn from your convo.

→ Learn to wait. People have their own life to live - value others' time.

→ Be kind to others.

Sound rude or not friendly? Trust me, follow the above points blindly. You will see the magic in your community. You will realize soon why it's important.

### 3) Use custom ROMs on your device

You joined your device community, Now let's get into the core.

**Note: Make sure you know what you are doing.**

→ Get the basics of android custom ROM and its related terms like ADB, bootloader, recovery and so on.

→ Unlock the bootloader

→ Install a custom recovery

→ Flash a custom ROM via recovery

Properly follow the instructions mentioned in the ROM thread/post.

→ Get help from the community. Don't follow anything blindly or your device will become unusable (worst case).

→ Enjoy the perks of custom ROMs. You will love it for sure.

In this phase, Explore custom ROMs and become familiar with them.

There is a lot to mention. But I am sure you will learn all the things eventually from the community.

### 4) Build a custom ROM for your device

You are a pro user now, let's do something more.

Let's compile an Android ROM for your device.

To build an Android ROM, you need a good specs PC.

Check the requirements: [https://source.android.com/docs/setup/start/requirements](https://source.android.com/docs/setup/start/requirements)

Most people (like me) can't have a machine that meets the requirements. I got you.

**What you can do about that?**

→ Try to get a free trial from services like Google Cloud Platform (GCP), Azure or AWS. Then create a virtual machine (VM)

→ Ask for help from your community friends. They may help you.

Now you have the machine to build.

**How to build?**

I ain't gonna write it about in detail since there are a lot of guides out there. (a thread for another day)

Lineage wiki (device-specific): [https://wiki.lineageos.org/devices/onclite/build](https://wiki.lineageos.org/devices/onclite/build) Official doc: [https://source.android.com/docs/setup/start](https://source.android.com/docs/setup/start)

From the lineage wiki, up to this [https://wiki.lineageos.org/devices/onclite/build#download-the-source-code](https://wiki.lineageos.org/devices/onclite/build#download-the-source-code) are common for all devices.

For the next step

→ You have to download/clone your device sources - Device config tree, kernel tree and vendor tree.

→ Lunch your device

→ Start the build

I recommend you get the details from your community. Learn from them. Get help from them. (no spoonfeeding)

**Build errors:** Try to get help after trying something yourself. Don't go straight to the community without any try. (a thread for another day)

I hope, Now you know how to get started in Android custom ROM development.
