[Q] want to learn how to port/Build roms - Vibrant Q&A, Help & Troubleshooting

delete this

No one here is going to tell you how to build, it's just not impracticable... Unless you have a solid foundation in Linux/Unix and hell even Java/JavaScript, building and coding is no easy task.
1. Be familiar with SDK, if you don't know that inside and out don't even bother.
2. Use Google.

http://forum.androidcentral.com/hacking/6037-general-rom-faq.html - contains some very very basic Rom cooking information.
http://developer.android.com/index.html - sdk and other basics
http://source.android.com/ - the serious stuff

Related

[Q]Cooking the framework layer

Dear experts,
like many ppl, I am new to Android Development, and would be able to cook my own rom with amazing home-made features before the end of the week... and I want it to be easy, funny, and eventually Fast....
... Indeed, I don't want all of this, so I'll try to be realistic in my incoming questions and beg for your indulgence if some things sound stupid / inexact / already documented and so on : I have performed a long search process before I decided to post here and would not ask it otherwise.
So, first, here's what I have know about android:
- Android Architecture (various layers)
- Android + java programming (beginner with both but skilled with general OOP and smartphone -iPhone- programming)
- Rom flasing process : rooting, bootloader / recovery flashing , using adb, filesystem of a ROM
- Android official source building (from git repository) and patch apply.
- Basic cooking without any source code modification: use of dsixda's kitchen with xda members' home-made roms mainly
Then, the material I am working with :
- Max OS 10.6.5
- A HTC - Tattoo : rooted, with nandroid and busybox installed (also have an available HTC - Hero)
- adb 1.0.26
- HTC Android Kitchen 0.106 - by dsixda
- Android official source from http://android.git.kernel.org/
Now, what I don't know about is advanced cooking... I read a lot about ppl wondering the same, and generally there was no basic answers (not to mention guide/tutorials).
Since I will surely be the nth to ask this, let's try to ask a specific question.
I downloaded from Android github a patch I am very interested in. This patch applies on the framework and does not impact any other layer (especially not the kernel nor the hardware related libs). After building the source, I thus get a framework.jar I would like to replace some target framework.jar with .
I was quite sure it was not very bright to do such with a custom ROM, even a quite standard FroYo-based one, since there was little chance that such a cooked-rom used a virgin framework taken as-it from android github. But I tried anyway with some of the FroYo-based roms taken from the xda list for my tattoo device. I basicely replaced the framework.jar with mine.
... and indeed, it failed : I kept getting stuck at the boot screen everytime I do such.
So.... I am trying to understand what I do wrong.
- I am quite sure I miss some signing process, but although I read many threads about such a signing about apk files, I did not manage to figure out how to do this with frameworks / jar files. Could someone bring me some light about this?
- Provided the signing is not the (only) problem here, could someone explain where / why I am wrong?
- Eventually, since I did not manage to find full source for a FroYo-based (running) cooked rom , do you know of such a source repository I could work with instead of working with android official sources (including the framework java files + compatible with HTC-tattoo / HTC-hero if possible)?
Thanks for all of you for reading until here, whatever your answers (or silence) may be.
And thanks in advance to those who may have some answers or any constructive criticism.
Roger_Rabbit
--------------------------
An old fashioned rabbit

[HELP]Android Development

hi guys,in the past i made a rom for my wm 6.5 device ,now i want to develop custom ROM's for my Mini,what are the sites/topics that i must see? what are the fundamental things that i must know?how hard it is?is there a Kitchen like in WM?there are REPOS like in WM for specific phone DPI?who is the rom structure?
I had already talked about this in another post so im just going to copy paste it out of laziness:
Some links
Start by going through source.android.com for the general basics if you havent already.
Also, even though Google removed the PDK (Platform Developer's Kit) from the site, it has been mirrored on kandroid here: http://www.kandroid.org/online-pdk/guide/index.html
The stuff in the the PDK, although inadequate, is still very important and explains how to create the necessary makefiles to add to the build, configuring for a new market, etc. etc.
Also,
watch these two videos over here. These were very helpful in my ROM development:
http://www.youtube.com/watch?v=1_H4AlQaNa0
http://www.youtube.com/watch?v=rFqELLB1Kk8
Learn to use github. It is helpful for you to keep track of your changes as well as incorporate others works into your own.
http://help.github.com/
Finally, Cyanogenmod repos are your BEST friend. Almost all major AOSP ROM devs owe some sort of thanks to those guys who have done so much. If you want to check out some of the code changes and patches that you want to incorporate look here on their gerrit:
review.cyanogenmod.com
If you want to look at the other changes that are actually in the cyanogenmod builds, best to look at their git repos here:
https://github.com/CyanogenMod
I am still learning right now while I create my ROM but your welcome to PM me if you have any questions
Click to expand...
Click to collapse
As for kitchens, there are a bunch of them.
For theming, there is UOT: http://uot.dakra.lt/
For HTC based phones (+ some others), there is dsxida: http://forum.xda-developers.com/showthread.php?t=633246
For others, just search the chef threads.
If you want to learn true ROM development, dont use kitchens. Study, study, study from the links above and the source code. Learn to make custom modifications in code. This will give you a much deeper understanding of how everything works.
If you want to just edit, add apps, and repackage them, then kitchen will be easy and clean.
As to how hard is it? If you're gonna work with source and do significant changes, then it will be difficult (as documentation is slim to none) but very satisfying. Like cyanogen said in the other sticky, learn how regular android apps interact with the system. Create a few test apps and go from there.
Hope I helped

How to Self Teach Myself to Build For Android

To all the wise self taught know how to get it done programmers out there, if you had to tell someone how to start with no base knowledge or computer science classes how to learn to build roms and apps for android where would you direct them..is there a list of books or what can i study to help me. Ive unrooted a few phones and done a few things with the help of well written guides and great forums, but im done not understanding how these process work , please point me in whatever direction i need to start for building my base understanding so i can build for android in the future....help me obi-wan...
http://forum.xda-developers.com/showthread.php?t=1415284
If you want to develop apps you must learn programming, object oriented concepts and software design/architecture. The general concepts can be learned with every language but for Android is Java a good start.
For the technical stuff you should know general Linux stuff at first, development of drivers, how compilers work...
My ToDo list would look like this:
1. Learn general programming in Java: address book app,
2. Use the Eclipse IDE, SVN usage, code styles, design patterns
3. Understand the architecture of Android and the Android SDK: App Lifecycle?
4. Play with the Android Samples; write simple apps
5. Look into the Android source and try to tweak/modify some OS related parts
6. There are also open source custom roms you can take as reference
1. Learn some Linux stuff; shell commands;
2. Hardware related topics...(not my world either
All in all it's just a lot of experimenting and learning by doing, but always do small steps in your development process and don't expect miracles.

Questions About Developing

Hello Everyone I Am New In This World And I Have Some Questions About Developing
-Which Programming language Should I Learn To Create Apps.?
-How To Create ROM?
-What About Porting Something From A Device To Another One?
-Is The SDK Of The Mobile Is Enough To Port Something From It?
-Should I Own An Old Phone For Testing?
P.S. I Have GS3
You develop for Android primary in the Java language. You may write native (i.e. compiled) code as well, but Java is recommended in most cases.
Creating custom roms is much like creating a Frankenstein Monster. Decompose your original rom, pick the pieces you like, replace the other with stuff you dig up from other places, or create yourself. Then re-pack everything in your new custom image, flashing you phone. The details about what to use to split images, flash devices etc you have to search this forum for - it'll differ from device to device.
When developing for Android you chose a minimal API level, e.g. Android 1.5. This way your app will run on all devices with at least Android version 1.5, no porting needed. Java is "write once, run many" so to say.
You can test your new apps either on you phone or in the emulator (Android Virtual Device) supplied with the SDK. If you intend to develop lots of code, a dedicated phone may be quite useful for testing, yes, but absolutely not necessary. You'll not crash your phone just because your application crashes, all apps are running in separate processes protected from each others.
You find the official tutorial at developer.android.com/training/basics/firstapp/index.html
Thanks For Your Help. Your Words Are Very Useful
THE.W!ZARD said:
Hello Everyone I Am New In This World And I Have Some Questions About Developing
-Which Programming language Should I Learn To Create Apps.?
-How To Create ROM?
-What About Porting Something From A Device To Another One?
-Is The SDK Of The Mobile Is Enough To Port Something From It?
-Should I Own An Old Phone For Testing?
P.S. I Have GS3
Click to expand...
Click to collapse
you need java to learn programming................
for basic rom making a bit of general knowledge is enought not much of programming is required........
for basic porting you can use cygwin for complex ports u need t change the framwork files which you will learn as the time passes..
sdk is required for building app and adb fastboot not for porting and other kind of stuff(related to api's)............
what do you mean by old phone.. you build mods for your phone so test it on the phone you built the mod for not old phone or something like that.........
The first thing you need to do is learn Java.
http://forum.xda-developers.com/forumdisplay.php?f=613

[Q] Road to developing?

Hey guys,
so this is applicable to all devices and its android specific therefore I think this is the best place to ask these question/s. I learned coding with Python for a few months last year and really enjoyed it. Now I am thinking since I have an android phone that is claimed by most "unbrickable" and I am probably stuck with it for another year I decided to learn android programming and contribute to this awesome community and hopefully make my phone awesome myself. Before I can do all that I have a few questions. Most of the development guides I saw after google searching, referred to how to create apps ( now I know there are guides to creating roms here). If I learn with those guides how to make apps will it be a similar process when I wan't to make custom roms? Also how to start? Start with Java SDK, with eclipse? Point to some guides plox
early thanks
There are guides for building apps... and guides for building ROMs... but AFAIK, guides for customising ROMs don't really exist... ROM customisations are generally just done following the API or using someone's work as a reference point....
craigacgomez said:
There are guides for building apps... and guides for building ROMs... but AFAIK, guides for customising ROMs don't really exist... ROM customisations are generally just done following the API or using someone's work as a reference point....
Click to expand...
Click to collapse
I think I worded that wrong. I know there are guides for building apps and building roms but I was asking If I use one of those guides to build app + learn to build app using a book or something will it help me build roms later? And for the custom rom thing, I meant like theres hellfire ics cm9 then theres eaglesblood ics cm9 for same device but by different people so I when I said custom rom I mean like my own ics cm9. but anyway thanks for your answer.
First and last bump
Making ROM's is different then making apps, while the skills you learn using Eclipse and Java JDK will only teach you Java, XML and ADB at most, when making ROM's you need to know many different things. While you can make custom ROM's with little programming experience to be a true master of making custom ROM's you need to know Java and XML, for modifying and creating your own custom apps you can include in your ROM, C and C++ for tweaking the kernel to truly optimize performance, Shell for creating scripts to automate tasks and performing other functions in your ROM, Photoshop/GIMP for image editing and creation in order to customize the look of your ROM, as well as patience to debug any problems you may run into and a couple other skills as well.
If you want to learn how to compile CM9 check out these guides:
[TUTORIAL]Setting up and compiling CM9/CM10 from source
Galaxy Nexus (GSM): Compile CyanogenMod 9 (Linux) It's for the Galaxy Nexus but it's still a very good place to start with to learn how to compile CM9 from source.
For learning basic customization of ROM's check out these great videos:
Let me know if you still have questions .
shimp208 said:
Making ROM's is different then making apps, while the skills you learn using Eclipse and Java JDK will only teach you Java, XML and ADB at most, when making ROM's you need to know many different things. While you can make custom ROM's with little programming experience to be a true master of making custom ROM's you need to know Java and XML, for modifying and creating your own custom apps you can include in your ROM, C and C++ for tweaking the kernel to truly optimize performance, Shell for creating scripts to automate tasks and performing other functions in your ROM, Photoshop/GIMP for image editing and creation in order to customize the look of your ROM, as well as patience to debug any problems you may run into and a couple other skills as well.
Okay that makes sense. So if I learn to make apps since thats what most guides are, I will learn to work with JDK and XML but creating ROMs requires much more knowledge. I am okay with just being able to compile source codes/porting roms from similar devices and what not. I am pretty decent with Photoshop so thats a win Thank you sir
Click to expand...
Click to collapse

Categories

Resources