Posted in Android Experiments, Uncategorized

Building CyanogenMod 12.1 from Ground Up

This is part of a continued series of my experiments with Android. I am pretty sure my device will just pick up its bags one day and walk away from me in Disney movie style of leaving a cruel master. I better make the most of it till then.

Seeing as I had rooted and explored the world of custom ROM for a while, I decided (well having time to kill decided it for me) that it I should try building the CyanogenMod code from scratch. Download the source and all. I will have to ask for forgiveness right here for messing up any technical terms and process as I am not quite sure of all that happened myself. Having a great mentor always helps and I was fortunate enough to have one who guided me to follow :

A very comprehensive and step by step guide. What all the process entails can easily be read but what I wanted to share were the hair pulling difficulties I ran into.

Half the guide was already covered so I began by downloading the source code which on the first attempt brought down my healthy net connection of ~30mbps to some 18kbps. I had to give up and call it a day. The journey was kick started at 5 in the morning in the hopes of Delhi winters keeping everyone in the hostel asleep leaving the LAN all to myself. I was blessed indeed, it was done in matter of half an hour (all 10 – 12gb of it). I even used and intimidating looking commands for running download on threads (not that scary but I deserve brownie points) .Then came the waiting part – my device needed a lot of food. First a ‘breakfast’ then a ‘brunch’. Aptly named as I had both while waiting for it to finish. But before that how could Java not poke its ever demanding nose in the middle? Apparently I had jdk version 1.8x while it worked only for 1.7x, the agonizing search of removing the latest update, countless ‘jdk already in its latest version useless messages and path variables mess up, it approved my jdk version (Android Studio wasn’t too happy about this downgrade though and it let me know.)   After hours of waiting and watching my terminal light up like in Mr. Robot, I saw the grateful message of a successful build!

Finally the build was flashed onto my device (after getting hysterically lost in the myriad of folders that gets created) and seeing no apparent change, was doubtful about the validity of the whole process. But as pointed out by a helpful soul, seeing my name on the kernel version was worth celebrating and that’s what I did right after 🙂 .

kernel name

Do I wish to carry on and be able to actually make changes to source code? Yes.

Am I sure I will be able to? No.

No step of this journey is without complications and I am not sure how much patience I have. I have come this far, I wish to go forward, only time will tell if I actually do. Fingers crossed.

Things learned today:

  • Think before you decide to mess up your only device.
  • Java has grown too complicated for its own good.
  • Linux/Terminal is GOD.
  • Happiness is seeing your name in the Kernel Version.





Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s