So i'm computer programmer and i develop programms, in C#,Pawn,mSL,PHP... A bit C. Mostly in C-Type languages.
And i was wondering , since i don't have much a background for linux Operating Systems, is there any guide in order to create your own Android ROMs, Mods, Like PAC , or Caynogen Mod, or ParanoidAndroid, AOKP ... or even combine them like pac did. I'm allready aware that in order to do that i need to learn this to procceed. Since i know how to develop applications and i know the programming stuff i would like to have for example a Unique Mod for my Phone, something that i can build it exactly to my needs.
PAC ROM is a very good one, but it has a lot of limitations, such us Lack of Radio FM, 2MP Cammera, and so on. Anyway is there any tutorial,guide or whatever in order sto learn the basics about compiling the new Android Base, and how can i embed a mod, or modify its system.?
For kernel side its very easy, just download kernel source, ramdisk, a toolchain, and kernel kitchen or use the Sony script.to pack .elf files
Once you got this just start edit what you want, compile, pack the zimage with a ramdisk and next pack it to .elf.
Finally flash it
Sent from my LT26i using xda premium
Be sure to check out this - http://xda-university.com/
It is very good for learning new stuff
There are many guides around here on XDA which tell us how to build roms from source too. Good luck:laugh:
Thank you for your help guys. Appriciated it.!
Related
Hi guys!
I'm wondering what I'd have to do if I wanted to modify the built in apps inside Android..
I've got a HTC Hero running FroydVillain 1.5.0. Let's say... I want to modify the messaging app that's included, MMS.apk. I wouldn't know how to go about this, and I have a few questions...
Firstly, what sources exactly are used for building the built in apps for a given ROM? The source code link in the FroydVillain post, for example, is just for the kernel. The rest of the OS isn't there.
Secondly, I hear that in order to modify a built in app, you need to build the entire OS. If I just download all the code from Google official repo, and compile that, will it just... work on my phone, provided I use a kernel that is specific to my phone?
Lastly, are there any tips anyone has for someone who just wants to modify a couple of the built in apps? Is it possible to build them as standalone apps? Or import them into Eclipse?
I've had a search around the forum and the internets in general, and people have asked similear questions, but I've yet to find a good answer. This thread comes to mind: http://forum.xda-developers.com/showthread.php?t=635197
If anyone could help me, or point me in the direction of any help, that'd be awesome! Thanks!!
FunkTrooper said:
Hi guys!
I'm wondering what I'd have to do if I wanted to modify the built in apps inside Android..
I've got a HTC Hero running FroydVillain 1.5.0. Let's say... I want to modify the messaging app that's included, MMS.apk. I wouldn't know how to go about this, and I have a few questions...
Firstly, what sources exactly are used for building the built in apps for a given ROM? The source code link in the FroydVillain post, for example, is just for the kernel. The rest of the OS isn't there.
Secondly, I hear that in order to modify a built in app, you need to build the entire OS. If I just download all the code from Google official repo, and compile that, will it just... work on my phone, provided I use a kernel that is specific to my phone?
Lastly, are there any tips anyone has for someone who just wants to modify a couple of the built in apps? Is it possible to build them as standalone apps? Or import them into Eclipse?
I've had a search around the forum and the internets in general, and people have asked similear questions, but I've yet to find a good answer. This thread comes to mind: http://forum.xda-developers.com/showthread.php?t=635197
If anyone could help me, or point me in the direction of any help, that'd be awesome! Thanks!!
Click to expand...
Click to collapse
1) The whole sources for everything are there
http://github.com/ninpo
2) You can import the sources to eclipse, but I think you will need to build the entire tree, as opposed to just what you change
3) Apktool lets you do smali and resource edits on an APK. Without knowing what you aim to do, it's hard to guide you specifically.
Most apps are based on the sources provided by google. I assume you are talking about Froyo Hero ROMs (i.e. FroydVillain), which apps are generally built from the source of CyanogenMod. Specifically for FroydVillain, if you look around ninpo github you will see some packages with some changes to their code, although it does seem that many of the changes in recent releases are not there. I have actually PMed ninpo about this and hopefully this is only a technicality.... I assume that the other packages and apps (most of them) he just compiled off the CM sources without changes.
In any case, if you compile an app either from the CM source or from google's original sources, it should work just to copy the apk file - just make sure you use an appropriate ROM (i.e. Froyo ROM if you built it from Froyo sources). The reason to want the CM sources, is that if they have incorporated further fixes (over the google sources) you may want them.
Finally, some more practical advice: I would start with the google sources: http://source.android.com/source/index.html since I have found these instructions and explanations easier to begin with - it should be quite straight forward to build these sources on a linux machine (or VM).
Then you can also try to tackle the cyanogen source: http://wiki.cyanogenmod.com/index.php?title=Building_from_source currently missing instructions on how to build for hero. But if you only want to copy apks out of it, you can just build a generic build (like in the google souce).
If you have specific problems, ask and I'll try to help you.
Good luck.
pulser_g2 said:
1) The whole sources for everything are there
http://github.com/ninpo
Click to expand...
Click to collapse
For example where are all the changes to the dalvik code? I do not follow closely enough the changes in Froyd to point out other things which might be missing (if at all), but there are relatively few committed changes to the CM code. Specifically the dalvik code, ninpo mentioned hundreds of changes which caught my interest and are definitively not there.
The kernel sources do seem to be up to date always - been following that one closely .
Thanks for the advice I love this forum!
What I'm trying to do, in case you're wondering, ultimately, is to modify the built-in messaging application to give the user the option of sending a message by the normal method, or by using their provider's free webtext service, something that all the carriers seem to offer here in Ireland.
So, for example, you'd press the Send button, and you'd be able to select one of those methods. (of course, you'd have to have a data connection for the webtext). There's also be an interface for entering your login credentials for your carrier's website.
I'm doing this party because it would be very useful. I also feel that it would give me a good introduction to how you'd go about modifying Android. I mean, from a programming point of view, it shouldn't be *too* hard to do. I already have a simple standalone app that I made which can send a text message via an Irish carrier's webtext service. But it's all good experience to try to modify other people big codebases.
I have a good bit of experience with web application development, but my experience with other programming is a little more limited. I usually use PHP, where there's none of this compiling nonsense. You just write scripts and off they go!
So I'm gonna go off and see if I can set up an environment where I can build.. the OS, I guess.
If I was to take the vanilla official Google sources, would they work on my phone? Or would I have to use an official Google developer phone... or the emulator? Or maybe if I stopped writing here and investigated those links you've provided, I'd know that by know.
Brb, investigating
Yeh investigating and just trying to do it is usually the best way
To clarify what I was trying to say above: All the java code is obvious very portable - one of the big advantages of java. In the case of android it is compiled to an .apk file and this file should be, at the very least, portable to all android "devices" running this android version. So the apk you build (for example from the vanilla 2.2 sources) should work on the emulator (good for initial debugging) and any 2.2 ROMs.
erasmux said:
For example where are all the changes to the dalvik code? I do not follow closely enough the changes in Froyd to point out other things which might be missing (if at all), but there are relatively few committed changes to the CM code. Specifically the dalvik code, ninpo mentioned hundreds of changes which caught my interest and are definitively not there.
The kernel sources do seem to be up to date always - been following that one closely .
Click to expand...
Click to collapse
I'm currently on "vacation" from any and all Android development for a week. I'll be back after the weekend, at which time my modifications will be cleaned up and committed to git. The kernel is always current with my latest kernel release due to GPL obligations. The extra time away has also highlighted some changes I need to make both to the kernel and to my Android modifications when I get back.
Hacre said:
I'm currently on "vacation" from any and all Android development for a week. I'll be back after the weekend, at which time my modifications will be cleaned up and committed to git. The kernel is always current with my latest kernel release due to GPL obligations. The extra time away has also highlighted some changes I need to make both to the kernel and to my Android modifications when I get back.
Click to expand...
Click to collapse
Thanks Ninpo
Hello developers,
I'm starting this thread because I'm interested in designing a development environment for the Samsung Galaxy Tab so that developers, like myself, can have an easy environment for modifying the Android OS. I'll be aiming this environment at all Android Devices but I want to start with the Samsung Galaxy Tab.
At the moment I don't have much of a structure for this project, nor much direction, so if anyone has any ideas for what tools etc I should include in this please let me know. If anyone wants to get on board with the project it would also be appreciated. Send me an email.
tool ideas:
- integrating the GCC and Javac compilers into the environment.
- integrating a way to generate make files and to build from these files.
- GUI for editing files from the kernel and application framework.
- easy to use way of setting up branches for projects with the Repo and Git included in the Android Source Code.
Count me in. I am getting a Tab tonight and I plan to develop for it. Currently, I have got the froyo source on my machine and want to integrate the open source code that Samsung released for this device.
Has anyone successfully built a custom ROM using the Samsung source code? Any help on this will be appreciated.
Awesome!
I've got Froyo working on the Tab, which I built from the source code from the android open source project website but it's just a generic build from the straight source, nothing special. not with the samsung code though. do you have any links for it?
I've put a small amount of stuff into the Dev Environment, most just shell files etc to make installing everything easier. One click sort of thing.
My first task though is going to be to try and fix the failure that is the Samsung display driver. Most noticeable are the 4 by 1 widgets that don't stretch across the whole screen.
After that I'm going to start work on a GUI for the environment and the iOS Emulator.
thoughts?
Whats wrong with Android SDK and Eclipse?
It's not the most straight forward thing. I'm looking to make something that includes its own libraries too. It's aimed at beginning developers mostly, so you can literally download one file which includes everything you'll need then start editting and then one click to compile and have it all work. Simplicity
I'm also interested in this... The SGT is my first android device, and my company will want android apps for internal and external uses... and a one click dev environment would be a most welcome option!
DevShroom said:
I've got Froyo working on the Tab, which I built from the source code from the android open source project website but it's just a generic build from the straight source, nothing special. not with the samsung code though. do you have any links for it?
Click to expand...
Click to collapse
Straight up AOSP? Could you have a crack at CM?
Anything you need, including testers, I'm in.
I have programmed some programs in android. If you need my help, i will be glad to help,
Sent from my GT-P1000 using Tapatalk
i'm currently setting up a new galaxy Tab ubuntu 10.10 VM but I always fail at installing java5-jdk, but when im ready i'm going to have a look at the CM and AOSP source and i !try! to port CM to the tab!
I am working on a custom rom , if you need any help do not hesitate
yann06 said:
I am working on a custom rom , if you need any help do not hesitate
Click to expand...
Click to collapse
are u building from source or are you modifing a stock rom?
DevShroom said:
Hello developers,
I'm starting this thread because I'm interested in designing a development environment for the Samsung Galaxy Tab so that developers, like myself, can have an easy environment for modifying the Android OS. I'll be aiming this environment at all Android Devices but I want to start with the Samsung Galaxy Tab.
At the moment I don't have much of a structure for this project, nor much direction, so if anyone has any ideas for what tools etc I should include in this please let me know. If anyone wants to get on board with the project it would also be appreciated. Send me an email.
tool ideas:
- integrating the GCC and Javac compilers into the environment.
- integrating a way to generate make files and to build from these files.
- GUI for editing files from the kernel and application framework.
- easy to use way of setting up branches for projects with the Repo and Git included in the Android Source Code.
Click to expand...
Click to collapse
I'll be interested in getting involved in a community driven project for the SGT. I'm a unix admin with lots of experience in the OS and system development field. Interested in what ideas you have on this.
Try using openjdk. It works for me.
Sent from my GT-P1000 using Tapatalk
Thanks everyone for the positive feedback on all this! it'll be good to have as many people on board as possible.
if you have troubles downloading the sun-java5-jdk there is a good tutorial on it on this site, it doesnt come as part of the repository by default so until you add it in sudo apt-get install sun-java5-jdk will not work.
atm i am only working with AOSP not CM, i am trying to set this dev environment up for a nice simple build and then i'll start working on more complex builds so we can start developing custom roms.
@paulshields - do you know much about linux/android drivers? i wanna fix the widget sizing problem on SGT but my driver knowledge is limited
Hello devs I was wondering if you guys are able to help me out with an inquiry question. I been researching online for guides on how to create your own roms and cook roms but the information is so overwhelming that I don’t know what to do or where to start. Here I was wondering how you guys learned, and what guides did you use. So far I have only experienced basic programming in python along with c++ but just basic stuff. What kind of programs do I need and how should I start what advice can you guys give me? Anything helps. I know you guys are busy with tweaking the jellybean source trying to port cm10 and aosp , but if you guys have time I would really appreciate it if you guys would help me out. May be it will be good for the long run maybe if I get the hang of it I would be creating roms and tweaks for the community, but the main thing I want to learn.
Thanks for taking your time on reading this message devs.
There are 3 forms of roms.
Source built(best/hardest) - cm,aosp,etc
Ports(medium difficulty) - sense, touchwiz, miui, etc
Modified stock(easiest) - any modified stock rom.
Each type requires different levels of knowledge. For stock roms you could make one using your phone(my first stock rom was made using nothing but root explorer), but i would recommend a decent zip program to unzip the rom at least. If youre serious about deving then you need linux. Ubuntu is the most supported. Windows will work but you need to have a good zip program, notepad++, maybe a kitchen or other tools for deodexing, decompiling frameworks/apks/etc and of course sdk installed.
Most stock roms are just slightly modified, a few scripts, removal of bloat, etc. More advanced mods would be themeing and framework editing to add or remove features. A popular mod is the power options mod that gives reboot to recovery when you hit the power button.
If you want to know where to start i would say start with theming. Its harder than basic roms but worth it because you learn more from the experience. You can either theme an existing devs rom or make your own. Personally i think its best to theme the stock rom and only include your changes in your cwm zip. So if you modify the frameworks and other aspects of the rom you dont need to release an 800mb zip just for a pink notification bar.
Example mods would be lock screens, themes, changes in text, adding features from other roms, etc.
If you have questions just ask.
Sent from my LG-LS970 using xda app-developers app
jokersax11 said:
There are 3 forms of roms.
Source built(best/hardest) - cm,aosp,etc
Ports(medium difficulty) - sense, touchwiz, miui, etc
Modified stock(easiest) - any modified stock rom.
Each type requires different levels of knowledge. For stock roms you could make one using your phone(my first stock rom was made using nothing but root explorer), but i would recommend a decent zip program to unzip the rom at least. If youre serious about deving then you need linux. Ubuntu is the most supported. Windows will work but you need to have a good zip program, notepad++, maybe a kitchen or other tools for deodexing, decompiling frameworks/apks/etc and of course sdk installed.
Most stock roms are just slightly modified, a few scripts, removal of bloat, etc. More advanced mods would be themeing and framework editing to add or remove features. A popular mod is the power options mod that gives reboot to recovery when you hit the power button.
If you want to know where to start i would say start with theming. Its harder than basic roms but worth it because you learn more from the experience. You can either theme an existing devs rom or make your own. Personally i think its best to theme the stock rom and only include your changes in your cwm zip. So if you modify the frameworks and other aspects of the rom you dont need to release an 800mb zip just for a pink notification bar.
Example mods would be lock screens, themes, changes in text, adding features from other roms, etc.
If you have questions just ask.
Sent from my LG-LS970 using xda app-developers app
Click to expand...
Click to collapse
i want to thank you for replying back im going to start out tomorrow and see how far i get and im glad you and maybe other people are willing to help. i appreciate you taking your time for explaining some differences and i will need help but atleast i know i wont be ignored thanks again :victory:
If you have any questions or issues just ask any of us.
Sent from my LG-LS970 using xda premium
Most devs will help, it just comes down to time. If im bored at work ill be online. Most of the stuff i used to do involved a very useful set of servers that allowed me to modify source, build, and place on my site all from my phone. I dont have that setup anymore so im limited to my build computer.
Look through the android forums for some useful tools and guides to get started. Every dev started where you started so keep your chin up
Sent from my LG-LS970 using xda app-developers app
jokersax11 said:
There are 3 forms of roms.
Source built(best/hardest) - cm,aosp,etc
Ports(medium difficulty) - sense, touchwiz, miui, etc
Modified stock(easiest) - any modified stock rom.
Each type requires different levels of knowledge. For stock roms you could make one using your phone(my first stock rom was made using nothing but root explorer), but i would recommend a decent zip program to unzip the rom at least. If youre serious about deving then you need linux. Ubuntu is the most supported. Windows will work but you need to have a good zip program, notepad++, maybe a kitchen or other tools for deodexing, decompiling frameworks/apks/etc and of course sdk installed.
Most stock roms are just slightly modified, a few scripts, removal of bloat, etc. More advanced mods would be themeing and framework editing to add or remove features. A popular mod is the power options mod that gives reboot to recovery when you hit the power button.
If you want to know where to start i would say start with theming. Its harder than basic roms but worth it because you learn more from the experience. You can either theme an existing devs rom or make your own. Personally i think its best to theme the stock rom and only include your changes in your cwm zip. So if you modify the frameworks and other aspects of the rom you dont need to release an 800mb zip just for a pink notification bar.
Example mods would be lock screens, themes, changes in text, adding features from other roms, etc.
If you have questions just ask.
Sent from my LG-LS970 using xda app-developers app
Click to expand...
Click to collapse
very cool joker... made that very easy to understand for all levels of knowledge
Hey people!
I was trying to learn how to build AOSP ROMs for my E8 (also called the M8 Ace and basically a plastic shell version of the M8). I tried that sub as well but people aren't much into development there as of now. But as I understand the sources are in more or less the same format and I really needed to understand where what goes. As you may know, the HTC Dev source zip has two zips inside it - the kernel and the platform archive. I read many guides on how people do this in Sony Xperia devices but I found no help on HTC.
I feel kind of lost right now.. I have uploaded the kernel source for the device on to GitHub: [LINK]
Now, I'm sync-ing the AOSP source (from HERE) to my Ubuntu VM (which is a huge download). What do I do next? Will this be enough to build the ROM or will I need other help as well?
Sorry, I've never really done this before. So, I have some really noobish questions.
Thanks!
Just checking, but you've had a peek at this wealth of knowledge?
http://forum.xda-developers.com/chef-central/android
?
Hi !
I was searching for a new rom on my OP3 and i asked myself : But how did they do that ???. So I search for tutorial but I can't find anything except kitchen or obsolet tutorial. So, where can I Find a good way to learn ? The goal is to create my first custom rom.
Thanks
(Sorry if my english is bad, it's not my primary language)
Download "Brain.zip"
Elarmix said:
Hi !
I was searching for a new rom on my OP3 and i asked myself : But how did they do that ???. So I search for tutorial but I can't find anything except kitchen or obsolet tutorial. So, where can I Find a good way to learn ? The goal is to create my first custom rom.
Thanks
(Sorry if my english is bad, it's not my primary language)
Click to expand...
Click to collapse
Depending if you mean a stock based build or lineage, AOSP based etc. Stock based, you don't build, or compile. Mainly taking a clean stock build and tweaking it to what you want. A lineage based build is compiled by basically syncing source code, compile it and if you want you can cherry pick from other repos if you see extra functions, possible bug fixes etc. Most non stock builds are lineage based, compiled with some cherry picks.
There's a big difference between compiling a build a pulling others sources and actually developing. You can find numerous guides to get started with lineage, checking the wiki for whatever device they support will guide you.
You need a fairly modern CPU, recommended minimum of 8gb ram, SSD HD would speed it up, decently fast internet and when I compile I'll use Ubuntu as IMO it's easiest to get started with, tho I have compiled using ARCH as well, just took more fiddling.
https://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763
I think he mean how to coding etc
Gesendet von meinem ONEPLUS A3003 mit Tapatalk
Sidenote question, in the newer nougat builds how can you repack system.new.dat? The file_contexts is no longer a plain text file but a .bin and haven't found a workaround. Any tips?
Thanks
Hi ! And first, thanks to everyone
To be more precise in my question : If I want to make my own AOSP / LineageOS rom, I have to sync the source code and, if I want, tweak it then, compile and flash it ? Or there is another way ?
And, I don't have a good computer for that. It will be more slowly but is it alway possible ?
you can start by looking at http://wiki.lineageos.org/oneplus3_build.html for building LineageOS