# New Roms....



## andrewjt19 (Oct 27, 2011)

My post in xda-

http://forum.xda-developers.com/showthread.php?t=1377722

This maybe premature but I figured I would throw it out there; is there any devs who could tell me about the skill level or difficulty level of making new roms or tweaking existing roms? I'm learning about java programming and using j creator and eclipse. I'm still new but I'm a fast learner. I want to help out the charge community by keeping an active dev. I'm still a time away from that but want more insight..... Please no sarcastic remarks.... Thanks.

Reply I made... Sweet, thanks for the advice. I am learning java pretty quick but realistically it would probably be a year before I'm proficient. I also just added computer programming as a minor. I would like another phone, the nexus obviously, but I need to chill on buying phones. I love aosp- if that was possible that would be great, but getting started anywhere is good. Thanks for your help fellas.... I'll keep you all posted here on my progress... I know that the java language will help-but comparing will help me get acquainted with android. So far I've learned everything from forums so this is a new direction... from my post in xda forums


----------



## imnuts (Jun 9, 2011)

I believe you got a decent "how-to" suggestion there, but just to re-iterate it for others. The easiest/best way to learn is to start doing it yourself. Start off theming, or work on making your own stripped down ROM. A good place to start is to look at stock, and compare it to other available ROMs to see what has been taken out. Theming will give you an idea of how to edit apk files, and if you attempt any modifications, you can learn how much of a PITA smali is. Kdiff3 is a good cross-platform program to compare files, and is good at comparing one decompiled apk/jar to another as it can show you where the files are different in the smali/xml. Knowing how to use apktool and an archive utility are also essential. Another thing to learn are basic commands for updater-script as well, in case you want to customize the text output when the file is flashed via CWM.


----------



## andrewjt19 (Oct 27, 2011)

Thanks imnuts..
I know you have done alot for the Charge community- I wish to give back to those who have none or limited knowledge as well. I enjoy learning this stuff. One last question- Is there possibly a list of applications I will need (either for Ubuntu 2011 version or Windows 7/XP) that I can start getting? You mentioned some and the other fellas did in xda as well, but a list would be helpful. Thanks.


----------



## imnuts (Jun 9, 2011)

For Ubuntu, if you want to build kernels (and have them work) for now you'll need version 10.10. If you're just working with apps/apks, you can use any version. For the most part, the default Ubuntu install would give you most of what you need. Gedit and file-roller will be your best friends. The only things you would need outside of that are Java (PITA on Ubuntu anymore, at least for official JAVA), the android sdk, and apktool. If you want to edit images, then you probably want to install GIMP as well if it isn't already installed. Bluefish is good for basic project/code editing, but is somewhat over kill for most theming projects. If you want full application development, you should just step up to Eclipse and set it up as recommended.

On Windows, I'd go with Java, the android sdk, and apktool (just the windows versions of each). Notepad++ for text editing and 7-zip for archive management. Eclipse can still be setup if you want app development, but really, I'd leave that for Linux.

I use Windows with a pair of Linux virtualbox virtual machines (Ubuntu 10.10 and Gentoo). If you use linux and want to keep track of changes, I'd suggest learning how to use git as well (great tool). Also, Dropbox can help you keep multiple machines synced with one another and easily transfer files back and forth.


----------



## andrewjt19 (Oct 27, 2011)

Cool, I actually do have some of these programs. I probably will take it slow and do what I can on windows (Windows 7 xDark Tweaked edition) and then move to linux when I learn what I'm doing. I am not a novice but definitely not a pro at linux. I like the way it works far more than any other OS though. Thanks for your help again.


----------

