• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root How should I set up my laptop to make Andriod Roms?

JumpinJupiter

Android Enthusiast
(I do not know if I am posting this in the right place so please move it if it in the wrong place!)Hello all! Well i have been fascinated in making OS and other programs but have never done it! Well i have finally decided to get into making it and i think that porting/ making/ moding phone Roms is a great place to start! I was just wondering on some suggestions of how i should set up my laptop to get the job done. It is rocking an Intel core 2 duo and 4GB of ram so i think that should get the job done and have found a great way to keep it cool while it is doing something very CPU intensive( Have a windbox fan blow directally into the vents!)

What operating system should i use i am thinking Linux would be great for things like this? Should i stick with something based on Ubuntu. I am using Linux mint 14 which is based on Ubuntu and gets all the benefits it gets. I have been wanting to put a Debian based Os on it. Is it okay to do that or should i stick with an Ubuntu base?

Lastly should I install a 64bit Os for this job? I am using a 32bit( yes i have my reasons) also should i overclock the CPU? Thanks. Cheers! Just trying to start off right:)
 
If you are making android roms, they run on a Linux kernel. I would suggest learning about what the Linux kernel does and using it, no need to reinvent the wheel and you can tweak it to your liking (is open source).
I would also suggest learning the c programming language in order to understand the source code of the Android os. As for your set up, as long as you can compile the android os you should be fine. :)
 
I've heard Ubuntu and Mint recommended, so you should be all set.

I'm also interested in your reasons for retaining 32-bit, because from what I know 64-bit is an improvement in every way, and 32-bit applications still function just fine on a 64-bit OS, lol. The only downside would be due to RAM, but when using Linux it shouldn't make much of a difference there either :p
 
I've heard Ubuntu and Mint recommended, so you should be all set.

I'm also interested in your reasons for retaining 32-bit, because from what I know 64-bit is an improvement in every way, and 32-bit applications still function just fine on a 64-bit OS, lol. The only downside would be due to RAM, but when using Linux it shouldn't make much of a difference there either :p

64bit on linux can be a pain when it comes to some libs and apps. They just dont want to play nice for some reason but its getting better.

EDIT:

what version of linux/windows are you going to be using because the version you plan on building on makes a difference in what apps/libs you should install
 
Hello all and thanks for responding! Any way I was leaning on using solydk which is the new v name for the unofficial Linux mint debian KDE. I was probably going to go with the 64 but in an effort to get a little more processing power out of my laptop! I am having second thoughts with 64 bit now because of what Ken said. Also main reason I am still on 32 bit is because of what Artine said the ram usage! When I got the laptop I had come from a computer that barely had any ram so I was crazy about saving Ram and using more Ram than needed! Pretty much over that now but I have noticed that the 64bit solydk kde uses as much ram as 32bit Mint kde. Which proves that ubuntu is starting to get kind of bloated.for some reason I get more Ram available on 32bit than 64 bit but I guess it is because it is because of the PAE which is rumored to slow down the computer a little anyway.I do wonder if solydk uses .mint files a special type if file that only Linux mint uses. Already started tying to learn how to Linux kernel works, actually quite interesting actually but can get a little confusing. By the way I believe I have 3.7gb free on 64bit and 32bit 3.8 with pae. Not sure were the other .1 is at in 64bit. Maybe it needs more system reserve in 64bit.
 
KDE just plain uses a lot of ram. I use kubuntu on all my computers, which is ubuntu + kde. Yes, you can run with 4GB of ram and kde, but you will soon hit the limit and it will start using swap and getting really slow. I mean, really, really soon. like chrome or firefox with a handful of tabs open wastes 1GB of ram. I'm just using my computer for normal, everyday stuff and it has 5.8GiB of ram used. no photoshop, no video editing. Some text and csv files open in openoffice, a few things in a hex editor, and firefox with 12 tabs.


ramm.png

Id suggest xfce/xubuntu for that thing. It will leave you much more ram available that kde. And you're going to need as much as possible free for actually building android.
 
Alright Xfce it is! Great thing about Linux is I can get a new desktop environment with a few clicks in synaptic package manger! Well what do you guys think? should i go with 64bit and sacrifice some ram for some extra CPU processing power or should i go 32bit and sacrifice that extra processing power in favor for more Ram? Learning this could be a bit tricky because i do not have a "real" internet connection( Free dial up for a few days a month and of course the Vm 3g) I suppose I could purchase a book on C++ programing. Most likely going with solydk OS ( I like to pick an distro that has KDE installed by default because it is a pain to install on another DE) Also anybody have experience with a Mandriva based Or Fedora based distro?
 
Alright Xfce it is! Great thing about Linux is I can get a new desktop environment with a few clicks in synaptic package manger! Well what do you guys think? should i go with 64bit and sacrifice some ram for some extra CPU processing power or should i go 32bit and sacrifice that extra processing power in favor for more Ram? Learning this could be a bit tricky because i do not have a "real" internet connection( Free dial up for a few days a month and of course the Vm 3g) I suppose I could purchase a book on C++ programing. Most likely going with solydk OS ( I like to pick an distro that has KDE installed by default because it is a pain to install on another DE) Also anybody have experience with a Mandriva based Or Fedora based distro?

Ouch... This may be painful for you...

Initializing a Build Environment | Android Developers

"Note: The source download is approximately 8.5GB in size. You will need over 30GB free to complete a single build, and up to 100GB (or more) for a full set of builds."

This is just for gingerbread^, newer versions are larger. I wouldn't want to do that over dial up and an (eventually throttled) tethered 3G connection doesn't seem viable either.

"For Gingerbread (2.3.x) and newer versions, including the master branch, a 64-bit environment is required. Older versions can be compiled on 32-bit systems."
 
Alright Xfce it is! Great thing about Linux is I can get a new desktop environment with a few clicks in synaptic package manger! Well what do you guys think? should i go with 64bit and sacrifice some ram for some extra CPU processing power or should i go 32bit and sacrifice that extra processing power in favor for more Ram? Learning this could be a bit tricky because i do not have a "real" internet connection( Free dial up for a few days a month and of course the Vm 3g) I suppose I could purchase a book on C++ programing. Most likely going with solydk OS ( I like to pick an distro that has KDE installed by default because it is a pain to install on another DE) Also anybody have experience with a Mandriva based Or Fedora based distro?

Also, here's a fantastic (and free) learning resources for C++: C++ Tutorial - Introduction to C++ - Cprogramming.com
 
Lots of places offer free wifi; Starbucks is probably the most common, but around where I live almost every fast food and pizza place has free wifi, though some have a password they print on the receipt. Local libraries and Universities often offer wifi too.
 
The first time I downloaded the android source was from a coffeeshop

Hint: bring something to do, you'll be there a while


When you go to build, it's gonna take all day
 
Just putting in my two cents... I work on 3 separate devices... 80gbs or so down the hole on 3 different rom sources and all of the extra files created once you compile the rom... (cm10, cm10.1, and Sugarkang) download isn't all that bad honestly... I did it over 4 days on a crappy wimax connection... (you can stop and resume the sync process as you please)...

My build machine is shamelessly rocking an intel core 2 quad processor. with 6gbs of ram and takes about 2 hours for a full build of any jellybean based rom... gingerbread was 30 minutes or less and I didn't have as much ram back then... never did ics :p

As far as coding goes... you can go two routes... learn c... or learn Java... with c... you will be able to understand and modify kernels and typically be able to fix a multitude of issues ... with Java... you can customise and create your own self branded rom relatively with ease... I went the Java route... choice is up to you... Java imo is the easiest language to pickup of the two... while a language is recommended... they aren't required in order to actually work with aosp
 
Ouch... This may be painful for you...

Initializing a Build Environment | Android Developers

"Note: The source download is approximately 8.5GB in size. You will need over 30GB free to complete a single build, and up to 100GB (or more) for a full set of builds."

This is just for gingerbread^, newer versions are larger. I wouldn't want to do that over dial up and an (eventually throttled) tethered 3G connection doesn't seem viable either.

"For Gingerbread (2.3.x) and newer versions, including the master branch, a 64-bit environment is required. Older versions can be compiled on 32-bit systems."

Oh thats okay i can just keep my computer on for the next 2 weeks and pray that nobody needs to use the home phone, I dont get cut off the Internet or the download fails:) Just kidding! Thanks for the link but no worries on the big download! As long as its not using any kind of peer to peer networks I am good since that is blocked at were i am going to do my big downloads the library! They probable will not appreciate me sucking up on the bandwidth and traffic but oh well! Back to the programing language( I believe that what it is called) While i have been reading that Java is easier to learn from and would probably be the best thing to start on i am still leaning toward using C. now there is just one problem. I do not know which C to start with. The original C seems to be a good starting point but i would rather start with C++ just because I have heard it referenced in tech class. And then there is C# the only thing i see interesting about it is it comes with a garbage collectors. Who knows how many other "C" there could be! Also what about python "just siting on my Linux laptop already installed" Ada or PHP? I know I need to be more focused on the programing rather than the Language but there is just so many choices! To many Choices! By the way further reading seems that C is more for performance while Java is more for just making the Rom( I think not sure what Java is more for)
 
I installed Gentoo at the library lol twice in one day even. That was a fairly large download, although no where near what android takes. It's funny how an entire desktop operating system is only a fraction of the size of android.
 
Oh thats okay i can just keep my computer on for the next 2 weeks and pray that nobody needs to use the home phone, I dont get cut off the Internet or the download fails:) Just kidding! Thanks for the link but no worries on the big download! As long as its not using any kind of peer to peer networks I am good since that is blocked at were i am going to do my big downloads the library! They probable will not appreciate me sucking up on the bandwidth and traffic but oh well! Back to the programing language( I believe that what it is called) While i have been reading that Java is easier to learn from and would probably be the best thing to start on i am still leaning toward using C. now there is just one problem. I do not know which C to start with. The original C seems to be a good starting point but i would rather start with C++ just because I have heard it referenced in tech class. And then there is C# the only thing i see interesting about it is it comes with a garbage collectors. Who knows how many other "C" there could be! Also what about python "just siting on my Linux laptop already installed" Ada or PHP? I know I need to be more focused on the programing rather than the Language but there is just so many choices! To many Choices! By the way further reading seems that C is more for performance while Java is more for just making the Rom( I think not sure what Java is more for)

The entire android project consists of java, c, c++, and python... Python isnt used much but it pops up in the build process occasionally like for generating the updater-script.... The top level stuff that users interact with and a lot of the behind the scenes ROM work crap is java... The entire kernel is in c... And it interacts with the hardware... And then c++ in conjuction with c kinda from what I've seen bridges the kernel/hardware with the framework (java)... C++ is used in the jni and hals... (Look both of them up)

So basically... C forms the base (kernel), C and C++ bridges kernel and hardware to rom (jni and hals), java forms the rom...

Like I said earlier... Java was easier for me to pickup... And I have the ability to code apps, add/remove features from my teams rom, etc.... C is taking me a bit longer to understand but its typically the language you'll have to use in order to fix issues like Bluetooth, camera, etc

Edit: Also forgot to add... Google released an extra c++ api for developers or whatever... Allows more management and control over an app... Mainly used for games... A game like real racing 3 requires a lot of tweaking and customization to run properly and not lag
 
Alright I have been pondering and thinking and I think Java would probable be the best route for me( I know i need to make a decision already!!) Basically I said in my first post I wanted to port/ make / mod phone ROMS and I can only do that on Java not C! I just think I would have more fun actually making Roms and getting them to boot instead of making kernel mods and getting apps to function with it( I have to try to like doing this so I will not get bored or discouraged!). It would just be so satisfying to turn on my phone and think "Yeah i made this (With help)" I can always learn C later! Any thoughts on my decision? By the way what programing language do you guys use? ( I know you use Java jetx2x asking the others)
 
Hello any body home?(Voice echoes):p

Anyway been taking a look at some java introduction books and i am happy to say i can actually make something! Very basic of course just text on a console and some text in a message box. Also I can make math equation nothing that will really help with android roms. Well in order to get my feet wet i was wondering if I could maybe get the CM7 Rom and take a look at it to see what it looks like and what kind of code and what parts of the Java programming language it uses. Maybe when i get a little more advanced i could finish it. But of course if you all want it in a decent time frame phenomx4 should do it:D

By the way Ken did you ever get that laptop that someone donated? I remember someone sent you one but I do not think you ever posted about it. I can not even see how you can create and program Andriod on this tiny ass phone!
 
Hello any body home?(Voice echoes):p

Anyway been taking a look at some java introduction books and i am happy to say i can actually make something! Very basic of course just text on a console and some text in a message box. Also I can make math equation nothing that will really help with android roms. Well in order to get my feet wet i was wondering if I could maybe get the CM7 Rom and take a look at it to see what it looks like and what kind of code and what parts of the Java programming language it uses. Maybe when i get a little more advanced i could finish it. But of course if you all want it in a decent time frame phenomx4 should do it:D

By the way Ken did you ever get that laptop that someone donated? I remember someone sent you one but I do not think you ever posted about it. I can not even see how you can create and program Andriod on this tiny ass phone!
 
Hello any body home?(Voice echoes):p

Anyway been taking a look at some java introduction books and i am happy to say i can actually make something! Very basic of course just text on a console and some text in a message box. Also I can make math equation nothing that will really help with android roms. Well in order to get my feet wet i was wondering if I could maybe get the CM7 Rom and take a look at it to see what it looks like and what kind of code and what parts of the Java programming language it uses. Maybe when i get a little more advanced i could finish it. But of course if you all want it in a decent time frame phenomx4 should do it:D

By the way Ken did you ever get that laptop that someone donated? I remember someone sent you one but I do not think you ever posted about it. I can not even see how you can create and program Andriod on this tiny ass phone!

You can pull any aosp ROM from github (or straight from Google) if all you want to do is get familiar with how things are set up and what the code looks like.
 
Back
Top Bottom