Making ROMs - Droid Eris Android Development

So this is combination question/idea.
I have been reading around and it seems to me that most ROMs are made mostly just by taking existing ROMs (often taking the stock one) and editing the installed applications. This is what Kitchens do - right?
When we want to theme things we have to go through and manually edit all sorts of images, resources, compiled xml files, etc.
That all being said why don't people ever just take the source from google (android is open source) and just modify the source to their liking and compile their own ROM? Do people already do this? Wouldn't this making theming a lot easier by just replacing the files before it is all compiled together?
Why don't we just compile a version that lets you theme most things pretty easily - make large parts of the UI skinnable and then people don't have to spend so much time hacking xml files?
Again, this all may be completely wrong and I apologize for wasting your time for reading this if it is...
Just wondering if there is an easier way to do what we are doing

you should do some research on the Cyanogen mod and Android open source project (AOSP)
you're on the right track with where you're going with this, but it's already been done. most ROMs ARE in fact modified versions of 2.1 with edited image files, added applications and such and that's really all we can do, until now at least. some of our devs are working on porting ROMs based off of the Cyanogen mod, which is based off of AOSP.
someone please correct me if I'M wrong =)

I've found the following links to be really helpful:
1) http://forum.xda-developers.com/showthread.php?t=622916 - compiling Hero kernel & AOSP from source
2) http://blog.coralic.nl/2010/01/28/build-eclair-aka-android-2-1-for-hero-from-source/ - blog entry that #1 was based off of
3) http://forum.androidcentral.com/htc...how-build-your-own-kernel-package-source.html - sort of the same thing again, but it's good to read different takes on things like this
4) http://forum.xda-developers.com/showthread.php?t=633246 - very good kitchen
gnarlyc

I could be wrong, but the Google source code will be rather "generic" or all-encompassing. It will (or should) work for ALL Android hardware devices. Problem with that is that it's not optimized for a specific piece of hardware. Same logic applies with compiling your own kernel in Linux. Linux includes hardware support for thousands and thousands of pieces of hardware (and some obscure sh*t at that). Granted, it's not loaded into memory but the code is still in there. When people compile there own kernel, they only include drivers for their video card, their IDE/SATA controllers, their CPU, and so on.
When people start with an ERIS ROM or HERO ROM from HTC, I have to presume that HTC has already stripped out the non-applicable stuff. It's a much cleaner slate to start from.

gnarlyc said:
I've found the following links to be really helpful:
1) http://forum.xda-developers.com/showthread.php?t=622916 - compiling Hero kernel & AOSP from source
2) http://blog.coralic.nl/2010/01/28/build-eclair-aka-android-2-1-for-hero-from-source/ - blog entry that #1 was based off of
3) http://forum.androidcentral.com/htc...how-build-your-own-kernel-package-source.html - sort of the same thing again, but it's good to read different takes on things like this
4) http://forum.xda-developers.com/showthread.php?t=633246 - very good kitchen
gnarlyc
Click to expand...
Click to collapse
Funny you mention that, I just installed an Ubuntu VM so that I could check out the source and start playing around... see what there is to see

Related

Build OS????

My friend has the Mogul and on PPCgeeks.com he installed buildos which is a totally customizable rom that allows you to choose what you want on it upon installation. I and many others I'm sure would love to have something similar. Any info on this would be great!!!!
Future thanks!!!!!!1
that's what runs inside of the simple wm6.1 kitchen I posted. All you need to do is change OS files (SYS Folder and XIP) from my old clean developer edition to newer and more stable ones made by -MyHTC-, Erofich, etc.
I also recommend learning about UC (User Customization) 2.0. Search for it on xda. Really useful for on-the-fly type customization, but the ROM image needs to be compatible.
Still trying to find some time to develop my WPF kitchen...thinking about multi-device support...
ND4SPD said:
that's what runs inside of the simple wm6.1 kitchen I posted. All you need to do is change OS files (SYS Folder and XIP) from my old clean developer edition to newer and more stable ones made by -MyHTC-, Erofich, etc.
I also recommend learning about UC (User Customization) 2.0. Search for it on xda. Really useful for on-the-fly type customization, but the ROM image needs to be compatible.
Still trying to find some time to develop my WPF kitchen...thinking about multi-device support...
Click to expand...
Click to collapse
So forgive me for my ignorance, but if I'm already running on My-HTC rom will your kitchen work. And I did notice the kitchen before, but I took a look at it and felt I was getting in a little over my head. I have flashed my phone a few times and tweeked it out a lil, but by all means, I am still fairly new here. So I'm gonna do some homework myself based on ur feedback, but thanks again and we all look forward to seeing more of your work

[Q]Modifying Cyanogen: "vendor" overlay or fork?

Hi all,
I've been theming a little but figured it'd be better to compile from source (something to do with custom layout xmls). I'm quite new to ROM compiling so I have a question for the ROM builder here: what is the way to go for modifying/adepting CM?
I can "fork" it and use the structure and build files from the original and just replacing/editing the files in those directories. But a more elegant way would be to add the modifications in a seperate vendor overlay and use that instead (with the DEVICE/PRODUCT_PACKAGE_OVERLAYS). That way I can keep the original files and keep the modifications in a seperate directory. I've been experimenting with that a little, but with no succes so far. So I'm not even sure it can be done.
Thoughts, opinions?
krispijn_s said:
Hi all,
I've been theming a little but figured it'd be better to compile from source (something to do with custom layout xmls). I'm quite new to ROM compiling so I have a question for the ROM builder here: what is the way to go for modifying/adepting CM?
I can "fork" it and use the structure and build files from the original and just replacing/editing the files in those directories. But a more elegant way would be to add the modifications in a seperate vendor overlay and use that instead (with the DEVICE/PRODUCT_PACKAGE_OVERLAYS). That way I can keep the original files and keep the modifications in a seperate directory. I've been experimenting with that a little, but with no succes so far. So I'm not even sure it can be done.
Thoughts, opinions?
Click to expand...
Click to collapse
The way I did it on Floyo is the following:
I forked the android_vendor_cyanogen repository, and then add this line to the products/common.mk:
Code:
# Common CM overlay
[B]+#PRODUCT_PACKAGE_OVERLAYS += vendor/cyanogen/overlay/floyo[/B]
PRODUCT_PACKAGE_OVERLAYS += vendor/cyanogen/overlay/common
Then all my floyo specific theming goes under overlay/floyo in the same repository. You can see my initial commit for this here - unfortunately its not just theming stuff there....
To build the CM untouched theme for floyo, I (almost) only comment the above line and rebuild. In my case, I have also changed some default colors in the code itself, under the framework/base package and the CMParts package. To build the CM theme I undo these changes as well and then rebuild.
One final note, if your building just one ROM with one theme, you should not have any problems with this. If your thinking of using this to build the framework-res.apk only, and possibly other files your theming, and then pushing only them to a CM6 based ROM, from my experience you'll run into all kinds of sh**.
The way I make the CM theme today, is I do the above changes (comment the above line and undo my default colors code in the code of the framework and CMParts). Then do a completely clean build (remove the entire out directory first). Finally I do a full recursive diff of the entire ROM against the entire regular floyo ROM and package only those files which changed under system/framework/ and system/app/. Basically, I am releasing 2 different ROMs, just to save bandwidth I only package the diffs.
Hope this helps.
Exactly what I wanted to know.. thanks man!
krispijn_s said:
Hi all,
I've been theming a little but figured it'd be better to compile from source (something to do with custom layout xmls). I'm quite new to ROM compiling so I have a question for the ROM builder here: what is the way to go for modifying/adepting CM?
I can "fork" it and use the structure and build files from the original and just replacing/editing the files in those directories. But a more elegant way would be to add the modifications in a seperate vendor overlay and use that instead (with the DEVICE/PRODUCT_PACKAGE_OVERLAYS). That way I can keep the original files and keep the modifications in a seperate directory. I've been experimenting with that a little, but with no succes so far. So I'm not even sure it can be done.
Thoughts, opinions?
Click to expand...
Click to collapse
If you want just to change xmls - i think apktool is more simple way to do this .
hawst said:
If you want just to change xmls - i think apktool is more simple way to do this .
Click to expand...
Click to collapse
True, but I want to do more than that eventually... also compiling is fun and it gives me a better understanding of Android

[Q] How to develop ROM?

Hi,
I want to know how can I make my own ROM using paul's ICS sources or build it from the CM9 sources, which software I need to use and is this tut good for beginning?
www(.)theunlockr(.)com/2010/03/26/how-to-create-your-own-custom-rom-for-android-part-1-setting-up-the-kitchen/?
PS: I also want to add the reason why I don't contact with paul is that I wanted to learn & develop it only for me & mine friends
Ofc. for X8 and on nAa kernel ;3
do you know JAVA atleast?
EDIT: wait, you want only to make the build, or to work on the rom and on the source?
EDIT2: Wrong section btw, you should asked on Q&A's
Java on basic level, I do not know any of it's APIs but I can learn them ( I don't know Android API too )
C/C++ on intermediate level
First build it from source, after successful modify source and compile ROM.
MOD: Please move to Q&A if possible, thanks.
You could read my thread (look at my signature). I wrote all the stuff you need to know of ROM-compiling. There's also a thread about kernel making.
eagleeyetom said:
You could read my thread (look at my signature). I wrote all the stuff you need to know of ROM-compiling. There's also a thread about kernel making.
Click to expand...
Click to collapse
Dzięki
Thanks at all, you got the point. I'll try to compile it using yours tut and post result here And one more thing, developing CM9 for X8 build for which phone i need to base on? And where I can get hmmm... X8 Driver sources? Adreno libs and others?
Right now we don't have sources for X8. You need to port most of libs. You could also paul-xxx's drivers from his github. Good luck If you have some questions PM me, I'll help if I'll be able to.
NeveHanter said:
And one more thing, developing CM9 for X8 build for which phone i need to base on?
Click to expand...
Click to collapse
doixanh based his GingerDX ROM - based on Gingerbread - on the Hero source tree. If I recall correctly I read somewhere that a CM9 port to the HTC Hero exists; that might be your best shot as the phone is about the same specs as the X8.
And as eagleeyetom wrote: You either use paul-xxx's drivers or you reverse engineer the Eclair drivers and write them anew from scratch (if your thought was going into the direction of the kernel) - there's no CM9 port for the X8. Your best option would be to try and find devices having a matching hardware component and porting the drivers from there - but chances are pretty slim that other phones use the same hardware SEMC stuffed into the X8.
---------- Post added at 09:13 PM ---------- Previous post was at 09:03 PM ----------
Update: paul-xxx also maintains a GIT repo with a msm7227 kernel ...
paul-xxx / semc-kernel-msm7227-ics
EDIT: Along with some other interesting repos ...
- android_hardware_qcom_camera
- Xperia-TI-Wlan
- android_device_semc_msm7x27-common
These three at least seem to relate to the X8 "Shakira"
Thanks all for help, now I have some basic workaround with this
And one off topic question
ICS is running on 3.0.3 kernel, yes? So why we don't try to port it for X8 and using old 2.6.xx?
NeveHanter said:
And one off topic question
ICS is running on 3.0.3 kernel, yes? So why we don't try to port it for X8 and using old 2.6.xx?
Click to expand...
Click to collapse
It seems the genuine Google AOSP ICS is running Linux 3.0.8
Porting the Kernel might turn into a huge effort. The ABI of 2.6.29 and 3.0 are not really compatible, so the kernel drivers would need to be ported to the CM9 3.0.x series - in case a simple patching them into the kernel tree and trying to compile bombs out with tons of make errors.
Apart from that - the main problem with ICS on the X8 is that a whole lot of devices can't use a custom kernel as a change in the hardware (devices of 11W29 and newer) prevents boot loader unlock.
We could try to see if the CM9 kernel could be slapped into shape ... I got a Quad-Core Phenom II to tackle that task - if someone wants to help out in the research if some msm7227 / Shakira specific parts would need to be patched into the source tree because they aren't part of it.
EDIT: Even the official CM repo uses Linux 2.6.37.6 as their kernel, and the progress on the FXP Kernel seems to have come to a halt; at least I can't see any new stuff in the -shakira repos.
LG GT-540 has ICS on 2.6.35 kernel. Maybe we could try to port Arc's kernel. Maybe this one? Recommend me some C/C++ books to learn basic stuff
You want this book's in english or you prefer in our native? ;3
eagleeyetom said:
Recommend me some C/C++ books to learn basic stuff
Click to expand...
Click to collapse
This is a rather tricky question ...
If you do as I did simply Google up a C/C++ Reference/Tutorial (i.e. http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ or http://www.cplusplus.com/doc/tutorial/) and get going ... you already got gedit to code up .c files, and gcc is also part of your Linux distro to try and compile your "hello_world.c" You could also Google for Online Classes (in the like of http://www2.its.strath.ac.uk/courses/c/) and pick whatever suits you.
However, if you want to read real books ... look through the offers of Addison Wesley and pick what you think is the best book for you. You could also hit up your closest public library and see what they have in store (may be cheaper than buying in case you don't have much money to spend) - or, in case you study, you may want to look into your University's library.
Of course you could also start off with the usual "C/C++ for Dummies" or "Teach yourself <whatever> in 7|14|21|30 days"
Polish would be awesome ;P
Best, simply writed polish C/C++ tutorial, one of the best www(.)warsztat(.)gd/tutorials.php?x=category&id=18
In adddition you can search for ( it's a big ebook ) Symfonia C++ Grębosza ( Symphony in C++ ), you can find it on chomikuj.pl but if U want I can upload it somewhere for you
And if you will have any problems with C/C++ you can write to my GG number 10037533 or PM me here

Deep Android System Programming/Unterstanding - How start?

Hi,
firstly, i have to say, i didn't found a correct section, but this seems to be the most properly, although i could be a noob. If my posting wasn't correct, i hope you will forgive me & move my post in the right section.
In the next months I'd like to start porting CM11 or/and Android 4.4 to my Xperia J, respectively learn how android system works. In this case i thought it would be helpful, if i learn more about Java, especially because i'm learning C# since one year in school.
Really, I'm not interested in "trivial" things things like how to program a own launcher.
(I'd never done something like that, i'm just not interested in.)
My interestings are deeper, e.g. about the implemention of GPRS (want to remove that without damaging the system), the general system settings(want also to modify something in there), the new permission manager in android 4.4, the interaction with the sim card in CM & the original android & their differences(e.g. my Sim only works in android, not in CM), their code & their connection to each other.
Which parts of Android are written in Java, C & C++? (I know the Kernel is wirtten in C, but thats all)
Can you give me some sources about this?
Have you some suggestions what i could do?
Would something like that here:
http://www.amazon.com/Embedded-Android-Porting-Extending-Customizing/dp/1449308295
be helpful?
Or would be something like that better for my project:
http://www.amazon.com/The-Linux-Programming-Interface-Handbook/dp/1593272200/
http://www.amazon.com/Building-Embedded-Linux-Systems-Yaghmour/dp/0596529686/
?
Thanks in advance.
Edit: This Guide: http://forum.xda-developers.com/showthread.php?t=2620389 is a good source, but im still wondering.

Most Customs for G800F

, lets be honest: are ****.
Unstable, Buggy and **** like that.
And instead of just complaining about the devs* I want to know the following:
If I want to contribute on the code what do I need to learn? Since a while I'm teaching myself Java and Python via Solo Learn. What would I need to learn to contribute to the Android OS Code itself NOT APPS!!
It will take me months, years I am aware of that. But I'm just tired of only trying different Custom ROMS, only to see that most of them aren't a real alternative of the Stock Roms, without having the possibility to do something about it.
So feed me with some input. What are good sites to learn that?
Happy for your feedback!
*Because damn I know that the Devs are doing an amazing job!
Google is a good start.. that search engine can point you in the right direction ?
Ghost1607 said:
And instead of just complaining about the devs* I want to know the following:
If I want to contribute on the code what do I need to learn? Since a while I'm teaching myself Java and Python via Solo Learn. What would I need to learn to contribute to the Android OS Code itself NOT APPS!!
It will take me months, years I am aware of that. But I'm just tired of only trying different Custom ROMS, only to see that most of them aren't a real alternative of the Stock Roms, without having the possibility to do something about it.
So feed me with some input. What are good sites to learn that?
Click to expand...
Click to collapse
It really depends on what you want to do with Android. The upper layers are in Java. The lower layers are in C++ or C. If you want to adjust the stock libs you might have to understand ARM assembler code. Also a basic knowledge of microcontrollers and linux kernel does help (especially if it comes to the graphic and camera subsystems).
There is almost no documentation for Android (the code is the documentation) and the subsystems change from version to version. The best way (and probably only one) to learn Android is hands on. Just try to fix the most annoying bug you encounter. Try to understand how the source-code works. Check how the Java, C++ layers, kernel and the stock libs interact with each other.
Also try to understand the adb logcat output.
Also try to understand the G800F device tree. A first step is also to compile the source yourself.
hennymcc said:
It really depends on what you want to do with Android. The upper layers are in Java. The lower layers are in C++ or C. If you want to adjust the stock libs you might have to understand ARM assembler code. Also a basic knowledge of microcontrollers and linux kernel does help (especially if it comes to the graphic and camera subsystems).
There is almost no documentation for Android (the code is the documentation) and the subsystems change from version to version. The best way (and probably only one) to learn Android is hands on. Just try to fix the most annoying bug you encounter. Try to understand how the source-code works. Check how the Java, C++ layers, kernel and the stock libs interact with each other.
Also try to understand the adb logcat output.
Also try to understand the G800F device tree. A first step is also to compile the source yourself.
Click to expand...
Click to collapse
Thank you for the reply I appreciate it!
TWRP
hennymcc said:
It really depends on what you want to do with Android. The upper layers are in Java. The lower layers are in C++ or C. If you want to adjust the stock libs you might have to understand ARM assembler code. Also a basic knowledge of microcontrollers and linux kernel does help (especially if it comes to the graphic and camera subsystems).
There is almost no documentation for Android (the code is the documentation) and the subsystems change from version to version. The best way (and probably only one) to learn Android is hands on. Just try to fix the most annoying bug you encounter. Try to understand how the source-code works. Check how the Java, C++ layers, kernel and the stock libs interact with each other.
Also try to understand the adb logcat output.
Also try to understand the G800F device tree. A first step is also to compile the source yourself.
Click to expand...
Click to collapse
Dear hennymcc,
it is about your TWRP for G800F.
Everthing is ok, till it comes to a restore of a TWRP backup.
After the restore the S5 Mini is in a bootloop.
I have tried it with the version August 2015 and March 2016.
Is there any solution?
Thank you.

Categories

Resources