[HELP]Android Development - Android Q&A, Help & Troubleshooting

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

Related

[REF] For The Beginner Chef

I am by no means a chef, I have simply been sourcing all of the info I can find to create my own custom ROM, during that time I have found a multitude of posts from people like myself asking for help or information on building our own android roms.
I am not going to waffle about stuff I dont know much about but simply post links for you to read and learn from for yourself, enjoy.
http://forum.xda-developers.com/showthread.php?t=906161
How to run custom roms in Android emulator written by Perceval from Hyrule, this is a cracking guide. I was very stuck with this bit until I found this.
http://developer.android.com/sdk/index.html
Get The SDK
http://source.android.com/porting/customization.html#androidThemes
A simple resource on customising Android
http://www.eclipse.org/
Eclipse Development Environment.
http://developer.android.com/sdk/eclipse-adt.html
Android Development Tools for Eclipse
http://code.google.com/p/smali/wiki/DeodexInstructions
How to Deodex a rom.
http://forum.xda-developers.com/showthread.php?t=760805
Change your LCD Density on any build, credits to jdsemler
http://forum.xda-developers.com/showthread.php?t=697938
A cracking resource found on these forums and written by Decad3nce
http://wiki.cyanogenmod.com/index.php?title=Main_Page
Cyanogenmod Wiki on Themeing HTC devices.
http://www.satyakomatineni.com/akc/display?url=displaynoteimpurl&ownerUserId=satya&reportId=3279
A fantastic resource about .apk's
http://developer.htc.com/
Guess
http://android.modaco.com/content/z...quick-guide-to-modifying-build-prop-with-adb/
Useful guide on the build.prop file.
http://elinux.org/Android_Glossary
Well..a glossary : )
http://droidpirate.com/2010/08/21/development-everything-for-making-android-themes/
A cool resource for theming.
http://forum.xda-developers.com/showthread.php?t=891604
Custom frameworks written by sopL87
http://droidpirate.com/
Get your goodies here, themes, docks, notification bars and icons.
http://www.jbthemes.com/AndroidThemeingGuide/The Ultimate Android Themeing Guide.pdf
The Ultimate Android Themeing Guide by various.
http://droidpirate.com/links/
Link to more links.
http://gitorious.org/search?q=android
Gitorious Android Search, link to several android projects.
I hope that anybody looking for info on developing there own custom ROM finds this post useful and I look forward to seeing some interesting new builds from people like myself.
Regards.
(All credits to the respective writers)
daz1uk said:
I am by no means a chef, I have simply been sourcing all of the info I can find to create my own custom ROM, during that time I have found a multitude of posts from people like myself asking for help or information on building our own android roms.
Click to expand...
Click to collapse
Good on you for putting this together!
Great work, I'm sure this will save myself and many other a lot of time

[Q] Creating my own ROM

So im a not so newbie here and have picked up a fair knowledge of all the basics etc for my sgs2. Now its time to learn how to create my own ROM. I have played with dsixda rom kitchen and feel reasonably comfortable with that, with sucess' and failures lol.
Can anyone guide me to the software, links to good threads that will help get me started. Self learning from there on.....
I take it you have checked out this thread?
http://forum.xda-developers.com/showthread.php?t=1272270
killall said:
I take it you have checked out this thread?
http://forum.xda-developers.com/showthread.php?t=1272270
Click to expand...
Click to collapse
yes ive use the kitchen and wouldnt say maximised its full potential but am looking to get more involved. Thankyou
I would suggest you download a public ROM repository to start working with, such as CM7 for example, to be able to touch any aspect of the ROM as well as learn the structure, compiling options, etc.
Check Cyanogen Wiki the page of Building from Source to get the full repo for it.
The source should build without problems, then once built, you can start tweaking and adding/removing things from it. This would be a port of CM7, but there are many other public repositories to start from, but CM7 has the most documentation about it.
If this is too hard for what you're looking for, I don't really know if there is an intermediate step between ROM Kitchen and this one...
AzureusPT said:
I would suggest you download a public ROM repository to start working with, such as CM7 for example, to be able to touch any aspect of the ROM as well as learn the structure, compiling options, etc.
Check Cyanogen Wiki the page of Building from Source to get the full repo for it.
The source should build without problems, then once built, you can start tweaking and adding/removing things from it. This would be a port of CM7, but there are many other public repositories to start from, but CM7 has the most documentation about it.
If this is too hard for what you're looking for, I don't really know if there is an intermediate step between ROM Kitchen and this one...
Click to expand...
Click to collapse
thanks for your reply, i will have a look into this and see how i get on.
thanks again

[RANT] Where are all the sources?

OK, this is beginning to give me the s**ts. Where are all the sources to the stuff that is being posted up here? I have been trying to build (rebuild) some of the ROMS on here, if for no other reason than to check there is no dodgy code in them, but also to learn from what everyone has done.
This is supposed to be a DEVELOPMENT forum, where source code is shared and discussed. Not a bazaar where the posters do a bit of hocus-pocus putting together roms from binaries of unknown source code. They fall like crumbs from the majestic sages, that do even more unknown hocus-pocus and cast them down to the unwashed masses to oooh and aahh at, as they give homage to the great compilers in the sky. What is this? Job security?
I have no idea what the legals are around this and I don't really care. The point is that the spirit of the GPL is you post sources (or patches against standard sources) along with any binaries. The binaries are only there to save us the bother of recompiling. The source is what is important in this forum. How else are others going to improve on the code if they can't see it?
I have posted on a couple of threads and/or contacted various people on here, most of whose response is "oh I didn't compile the actual source code, I just stuck it together from the binaries". One of them (thanks kevinlekiller) was kind enough to at least give me rundown on what he did (as best as he could remember - bit of a worry!), but even he didn't have access to the source code. Maybe I haven't looked in the right place, but it shouldn't be this frigging hard - it should be front and centre.
If I had my way, I would ban every ROM post that didn't have a clear link back to all the sources. That's what github etc is for!
Please, please, people, post the source first, binaries can be an afterthought. If you don't have access to the source code, then I reckon it shouldn't be here - who knows what in there? One of these days someone is going to innocently distribute some nefarious program with a ROM. It really isn't that hard to compile a ROM - takes about half an hour on my Linux laptop.
This is actually standard xda-developers policy: see http://forum.xda-developers.com/showpost.php?p=2031989&postcount=45 but seems to be widely ignored.
OK, I'll get off my soapbox now.
Edit: I realise this doesn't apply to everyone, some people are great about posting sources.
Wrong section buddy
Sent from my GT-S5830 using xda premium
djsky2011 said:
Wrong section buddy
Sent from my GT-S5830 using xda premium
Click to expand...
Click to collapse
Huh? You're joking right? I'm discussing the sources not being available in this section, the source is a development topic. Hmm maybe this is such a common complaint that there is a separate section created for it. Sorry I'm getting crabby.
What section should it go in?
You take 30mins , mine takes 2h - it's different for everyone......
Furthermore , if they're basing a ROM off a ROM , what sources are there to be published ?
Furthermore , the sources can already be found online if you want CM7/AOSP:
http://github.com/teamhacksung/android_device_samsung_cooper
Herpderp Defy.
ok man make a rom then talk to us. most of roms here are like this u got new app,launcher and theme voila new rom is posted(no offense).so they cant give you source code.they make roms from the prebuilt ones like using stock or cm7 as base .most of the developers which made roms from source code had there github accounts link in there username ok i agree there are one or two developer who dont share but that dose not mean everyone here is just like them.ok
1.i can make a rom.
2.but i will not make a one unless i compiled it from source code.
3.sure i will share its source code.
i agree a little bit with you
EmoBoiix3 said:
You take 30mins , mine takes 2h - it's different for everyone......
Furthermore , if they're basing a ROM off a ROM , what sources are there to be published ?
Furthermore , the sources can already be found online if you want CM7/AOSP:
http://github.com/teamhacksung/android_device_samsung_cooper
Herpderp Defy.
Click to expand...
Click to collapse
Finally. Thank you! A link to the source code (actually the config files is just what I looking for).
So, since I have your attention, I see a couple of roms from people like vo-1, what is he doing just compiling the source (I have asked him, no reply)?
On the ROMS based on ROMS thing, while there is technically no source code you put through a compiler - there is still source - it is a list of all the changes made to that ROM.
I also can't believe people don't seem to use any sort of build environment - as in a build script - how else are we going to document what's been done and/or recreate it?
xdaboy122 said:
ok man make a rom then talk to us. most of roms here are like this u got new app,launcher and theme voila new rom is posted(no offense).so they cant give you source code.they make roms from the prebuilt ones like using stock or cm7 as base .most of the developers which made roms from source code had there github accounts link in there username ok i agree there are one or two developer who dont share but that dose not mean everyone here is just like them.ok
1.i can make a rom.
2.but i will not make a one unless i compiled it from source code.
3.sure i will share its source code.
i agree a little bit with you
Click to expand...
Click to collapse
Yes I agree this does not apply to everyone. Some people do post source. I suppose my frustration was the source seemed to be forgotten and it shouldn't be so hard to track it down. Maybe I have spent too much time in the Linux world, where source code is king.
I will kick off a make on the source that EmoBoiix3 linked to (thanks mate) and see where we go from there!
A lot of roms here are based off other roms. So much they don't build it themselves, just some editing of the zip.
Other developers merely want to save the technobabble since most xda users are blind to programming.
divereigh said:
Huh? You're joking right? I'm discussing the sources not being available in this section, the source is a development topic. Hmm maybe this is such a common complaint that there is a separate section created for it. Sorry I'm getting crabby.
What section should it go in?
Click to expand...
Click to collapse
still wrong section
this aint a source
this is a discusion so its supposed to be in general section
Should be in general section IMO.
But I fully agree with the OP. It is true lots of ROMs here are "cooked" from other ROMs and are not "developed" denovo. They are "theme" packs.
But for example we have two groups actively working on builds of CM 7.2, they each seem to be building from source and tweaking fixes in. It would really help if everyone used github. Pull a source, build, fix and commit to your fork. Anyone else can see what you changed, what revision of the tree you used, and can learn from your work and it could perhaps inspire them to fix something else, to contribute back to make *your* build better.
Sharing your code, even if it is just 5 line hack on teamhacksung / cyanogenmod /AOSP source, honours the GPL and helps our community grow stronger.
The GalaxyICS team is a great example, I can see where they've pulled their sources, what (hard) work they've done in what components. They are contributing all their work and knowledge back. And their fixes can be pulled into other projects easily, speeding up development and sharing that knowledge for everyone.
A phone like the Ace continually loses developers as they migrate to "better" phones, and we really need to share as much knowledge as possible to keep our software
Sometimes , changes just cannot be shown.....like framework-res tweaks!
Herpderp Defy.
EmoBoiix3 said:
Sometimes , changes just cannot be shown.....like framework-res tweaks!
Click to expand...
Click to collapse
What sort of tweaks are you thinking of? If it's a replaced image file, then that can be a separate file copied in with a script. If it's a changed text file, that can be done with patch or sed.
Let me give you an example of what I did with kevinlekiller's The End 2.5o rom. He based it on a vo-1 rom and did a fair number of replacing files, odexing etc. I produced this bash script (attached) along with his extra (binary) sources which I think replicated what he did. Self documenting! Everyone can see what is in there, maybe even change it again.
More details towards the bottom of this page: http://forum.xda-developers.com/showthread.php?t=1440396&page=31
I see where you are coming from and I sympathize. I'm not a developer, because I don't have the time and patience to work on source code , compile , debug etc.
The Rom's we have for the Galaxy Ace are already very good, the developers that have worked on them have/had the time and patience to iron out most the issues. So for me to try to come out with something better would seem futile.
I still like customizing these Rom's to a way that work better for me, and it doesn't involve having to spend lots of time, because like I said they are already very good. So it just ends up that a few files are added or changed.
Is that a bad thing? I think those that think it is should just not use those types of Rom's, everyone has a right to their opinion.
At first when you asked me for sources, I thought you meant the source code, since I already listed everything that was used in the first post. But then I realized you wanted direct sources (links) to those files. This is something I will do in the future, post the links of every file, I agree with you , things should be more documented, it would save everyone time instead of trial and error and possibly even giving up.
Anyways, I should conclude here, it is getting a long read.
divereigh said:
What sort of tweaks are you thinking of? If it's a replaced image file, then that can be a separate file copied in with a script. If it's a changed text file, that can be done with patch or sed.
Let me give you an example of what I did with kevinlekiller's The End 2.5o rom. He based it on a vo-1 rom and did a fair number of replacing files, odexing etc. I produced this bash script (attached) along with his extra (binary) sources which I think replicated what he did. Self documenting! Everyone can see what is in there, maybe even change it again.
More details towards the bottom of this page: http://forum.xda-developers.com/showthread.php?t=1440396&page=31
Click to expand...
Click to collapse
nice script, thats for sure
but u shouldnt expect everyone to be as geeky and provide such build script.
theres a big different between "providing source" that is mandatory by forum rules and "providing howto step by step" like in your script.
hell most of the roms (the one that is based on previous precompiled rom) were created 100% on windows machine without even touching linux, and maybe the rom creator (modder) doesnt have any clue what in the world is linux. maybe they even dont know that their windows machine do have terminal (cmd). so arent u asking for too much?
an0nym0us_ said:
nice script, thats for sure
but u shouldnt expect everyone to be as geeky and provide such build script.
theres a big different between "providing source" that is mandatory by forum rules and "providing howto step by step" like in your script.
hell most of the roms (the one that is based on previous precompiled rom) were created 100% on windows machine without even touching linux, and maybe the rom creator (modder) doesnt have any clue what in the world is linux. maybe they even dont know that their windows machine do have terminal (cmd). so arent u asking for too much?
Click to expand...
Click to collapse
Actually I only have 1 windows pc, all my other PC's are ubuntu / linux mint installed on them. I use windows on the main PC because most of my games work on it.
Edit: And, I didn't take offense to your post , it is valid, most people have no clue about linux.
kevinlekiller said:
Actually I only have 1 windows pc, all my other PC's are ubuntu / linux mint installed on them. I use windows on the main PC because most of my games work on it.
Edit: And, I didn't take offense to your post , it is valid, most people have no clue about linux.
Click to expand...
Click to collapse
and no offence intended and sorry if anyone feels my post abit too offending
my point is a rom created from previous precompiled rom can be created 100% on windows machine.
in that case the rom also doesnt have sourcecode because it were created from already precompiled rom.
so if the modder just give a valid link to what he put/change it still suites the forum rules to provide source.
let say i've modded a cm rom, i've include ketuts oc kernel, i've include a launcher, and a filemanger, and a theme.
so if i just provide a valid link to the original cm rom, a link to ketuts oc kernel thread, a market link to the launcher, the filemanager and the theme, thats a valid source because the rom were modded from binary precompiled rom/kernel/launcher/filemanager/theme.
so the link to those binary precompiled rom/kernel/launcher/filemanager/theme is a valid "source".
divereigh said:
This is supposed to be a DEVELOPMENT forum, where source code is shared and discussed. Not a bazaar where the posters do a bit of hocus-pocus putting together roms from binaries of unknown source code.
Click to expand...
Click to collapse
I agree. There are two groups of devs:
"Real" developers. They provide repo links and detailed changelogs.
Modders. They should provide repo links and detailed changelogs.
A repo has the benefit of allowing peer review. Peer review improves code quality just like user tests and their reports do. Afterall, this is what XDA is about.
What I like about XDA is how people eagerly send in "works" notes. Not much information, but better than just trying out and telling nobody.
Exactly guys......it seems cyanogenmod has become the only alternative and devs here are only editing it and bringing out new firmware versions. Some also edit stock roms..........but no one here gave a thought of creating a new genre of custom rom right from source.
biswatmak said:
Exactly guys......it seems cyanogenmod has become the only alternative and devs here are only editing it and bringing out new firmware versions. Some also edit stock roms..........but no one here gave a thought of creating a new genre of custom rom right from source.
Click to expand...
Click to collapse
its not as easy as it sounds, thats why the two main dogs are miui and cyanogenmod.
an0nym0us_ said:
nice script, thats for sure
but u shouldnt expect everyone to be as geeky and provide such build script.
Click to expand...
Click to collapse
I get that. I essentially built an interpreter and a source file (the build instructions). Way too much for most. However I think it would be great as developers if we provided be packaging tools so that others can use them and provide repeatable builds and automatically documented builds ("read the source luke").
an0nym0us_ said:
theres a big different between "providing source" that is mandatory by forum rules and "providing howto step by step" like in your script.
Click to expand...
Click to collapse
Agreed, it isn't mandatory, however for the purposes of educating and peer-review it would be great. So my challenge is to make this easy for people.
an0nym0us_ said:
hell most of the roms (the one that is based on previous precompiled rom) were created 100% on windows machine without even touching linux, and maybe the rom creator (modder) doesnt have any clue what in the world is linux. maybe they even dont know that their windows machine do have terminal (cmd). so arent u asking for too much?
Click to expand...
Click to collapse
So we need a graphical version for Windows..

Build own Custom-Rom

Hello XDA-Developers,
I'm 16 Years old an I'm from Germany so please excuse my Gramma mistakes etc.
After the release of Jelly Bean there ist only one thing in my Head: learn how to develop
my own custom rom based on Jelly Bean for a Device which havent got get an update
till now.
It would be nice if someone give me advice how to start developing my own Rom. It would be
nice to know how I can start developing an how I can insert WiFi or Graphic Drivers from an older
(official) Rom to my own Rom.
I'll be happy if you can give my some advice for getting started to be a real XDA-Developer.
Greetings from Germany,
Sascha
Find a book on Linux Kernel/device driver development and read it. Build your kernel, make some modifications. Find a device similar to yours and start porting. We can't give you a step by step or do stuff for you. If you have a question about a specific item, error, feature, or bug then ask about it, but we can't do much with these "how do I start developing" questions. Just read kid that's all I can say.
I highly recommend following this guide and building the "hello world" app. If it doesn't work properly the first time, start from scratch and rewrite it again and again until it works. That's what I did and it really helps you gain a basic understanding of XML and java.
http://developer.android.com/training/basics/firstapp/index.html
Check out some of the various guides on this website as well. I highly recommend reading the "introduction to edify language" which is used for coding updater scripts. I had problems at first with the updater script and I had to decompile other roms and check out their updater scripts in order to gain a proper understanding.
http://www.freeyourandroid.com/index.php
This is also a good guide to check out, it's about building your first app as well but significantly more detailed than googles guide. I haven't read the whole thing myself yet but am in the process of doing so. It's good to have an understanding of how to code apps as well since it helps you understand XML and java which is also needed for ROM development, and makes it easier in general to get a grasp of various coding languages.
http://www.vogella.com/articles/Android/article.html
Also decompile some apps/tweaks/roms for your particular device and check out the code. For example I compared the stock rom for my phone to an AOSP build of ICS just to check out the different code and study it. It's very interesting and a good way to learn. PM other devs in your devices forums if you have questions or get stuck somewhere, that's exactly what I did and the devs were very helpful.
Good luck learning and have fun!

[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