Related
im new to the android community and im looking to learn how to perform certain tasks such a development. i am keen on picking things up fast, diving in and just learning from trial and error. im hoping some of you guys can shed some light on what are some things i should start out with. ive come a long way in picking things up because before the thunderbolt came out i was unaware of how to root, abd, roms and kernels. since ive owned it, i have rooted manually and put my tb through many flashes. id like to work up and just get a good sense of how to tweak app and mod certain features to make them more useful to me. so if you have any tips, tricks or just knowledge to drop, id love to know where i should begin so i can one day be a contributor to this site and its users. thanks
I'm a C/C++/Java programmer and I'm currently working on some applications myself, and I have found that the general discussion under Android development on XDA has been very helpful. Lots of threads there with nuggets of info.
im going to school for programming and computer science. i havent really been able to go into to much depth with it so this is my attempt to go above and beyond so i will have a little something to bring to the table when i go to class. i want to be able to know to how to do something while understanding how im doing it and what makes it do it. im new to all of this and hope within the next month i can bring something for all of you guys to critique so i can go back to the drawing board and do something better.
Can anyone help with creating custom skins for apps/widgets it is something i have always wanted to get into
check out APK manager, it lets you get into apk's and make some edits and changes to XML files and layouts, etc. but not all of the source code can be extracted from apk's once compiled, just the way it is. but still allows for mods nonetheless!
http://forum.xda-developers.com/showthread.php?t=695701
Hey guys,
I am really curious as to what it takes to build a custom ROM. I am very interested in building my own and want some pointers on the best places to start so I don't waste my time. Any advice will be useful, books, websites, w/e.
Thank you,
r3xx3r
get ready cause this one's going wayyy over your head.
Its one of those things where if you have to ask, you'll never know.
spitefulcheerio said:
Its one of those things where if you have to ask, you'll never know.
Click to expand...
Click to collapse
I really hate this mentality. People have to start somewhere. Sure they could spend years figuring everything out on their own. Or you could save them a year by pointing them in the right direction. There is such little discussion about this and it's honestly just annoying and a huge negative aspect about the development community.
EDIT: This is for HTC and I haven't watched it, but it might get you started: http://www.youtube.com/watch?v=94Az1kcQvc4
Also, you should definitely look through the source code for open source ROMs. I'm not a ROM developer so I can't really help you more than that, but I hope a real dev gives you an answer.
first and foremost, learn how to use ADB. if you cant use ADB without some kind of script/batch file to do it for you, then stop right here!
personally the first thing i learned was how the updater-script (at the time, we didnt have edify scripting, so it was plain-jane update-script) worked. have a look in a rom's zip file and learn the layout.
learn how to edit apks (decompile/compile) with apktool.
get comfortable with linux (this is just an opinion, as you CAN build roms in windows, but i have found it much easier on my dev laptop with ubuntu 10.10 64bit)
apkmanager is a good tool to have if you are on windows (there is a linux/osx version too, but i havent used it)
learn what zip-aligning means and what it does for your rom
learn what deodexing means and what it does for your rom
different devices benefit from different tweaks within your /system/build.prop . learn which ones work best for your rom (this requires a lot of flashing and testing on your own device)
this whole process is very time consuming and takes a ton of effort on your part. be prepared. while it is a lot of work, it is a lot of fun learning.
once you get proficient at building and tweaking roms, you can start learning how to edit smali
Pirateghost said:
first and foremost, learn how to use ADB. if you cant use ADB without some kind of script/batch file to do it for you, then stop right here!
personally the first thing i learned was how the updater-script (at the time, we didnt have edify scripting, so it was plain-jane update-script) worked. have a look in a rom's zip file and learn the layout.
learn how to edit apks (decompile/compile) with apktool.
get comfortable with linux (this is just an opinion, as you CAN build roms in windows, but i have found it much easier on my dev laptop with ubuntu 10.10 64bit)
apkmanager is a good tool to have if you are on windows (there is a linux/osx version too, but i havent used it)
learn what zip-aligning means and what it does for your rom
learn what deodexing means and what it does for your rom
different devices benefit from different tweaks within your /system/build.prop . learn which ones work best for your rom (this requires a lot of flashing and testing on your own device)
this whole process is very time consuming and takes a ton of effort on your part. be prepared. while it is a lot of work, it is a lot of fun learning.
once you get proficient at building and tweaking roms, you can start learning how to edit smali
Click to expand...
Click to collapse
This is good information. I, personally, build Aura completely on windows with minimal assistance from cygwin. I use batch files for the common things I use on ADB and the like but I built the scripts myself, so it isn't like I can't do it manually I just don't wanna.
It is both easier and harder than it looks. Aura is the first rom I have built.
One thing, though, is to not accept the current ways as best. Things can always be improved. I have two common mods in my rom that are done completely differently in my rom, without either database editing through scripts or modifying smali inside apk's (the hotspot entitlement check and the 1 signal bar fix). No other roms for the Atrix (I haven't check other phones...) do it this way, not even Darkside which is based somewhat no Aura.
If you are building a rom through the Rom Kitchen... don't use the garbled updater-script it puts out. It mostly works, but it is trash and you won't learn much from it.
Experimentation!
Diviance said:
This is good information. I, personally, build Aura completely on windows with minimal assistance from cygwin. I use batch files for the common things I use on ADB and the like but I built the scripts myself, so it isn't like I can't do it manually I just don't wanna.
It is both easier and harder than it looks. Aura is the first rom I have built.
One thing, though, is to not accept the current ways as best. Things can always be improved. I have two common mods in my rom that are done completely differently in my rom, without either database editing through scripts or modifying smali inside apk's (the hotspot entitlement check and the 1 signal bar fix). No other roms for the Atrix (I haven't check other phones...) do it this way, not even Darkside which is based somewhat no Aura.
If you are building a rom through the Rom Kitchen... don't use the garbled updater-script it puts out. It mostly works, but it is trash and you won't learn much from it.
Experimentation!
Click to expand...
Click to collapse
Thanks for the input. I love hearing from other devs and the methods they prefer.
Sent from my Inspire 4G
this thread died quickly.
too bad because I want to do some studying up on it and creating some coolness myself eventually.
I know with iphones a lot of development was done right from the phone itself especially for app development, is there the same concept here?
and one other question, do you guys make any money off of these things at all? Im always looking for side work...
supermerkin said:
too bad because I want to do some studying up on it and creating some coolness myself eventually.
I know with iphones a lot of development was done right from the phone itself especially for app development, is there the same concept here?
and one other question, do you guys make any money off of these things at all? Im always looking for side work...
Click to expand...
Click to collapse
you can create scripts, push and pull files directly from the phone, so in a sense, yes you can work straight from the phone.
as for money...LOL...dont look to this for a secondary income by any means.
i have made all of $28 for my work on the inspire, and nothing from my work on the captivate
Pirateghost said:
you can create scripts, push and pull files directly from the phone, so in a sense, yes you can work straight from the phone.
as for money...LOL...dont look to this for a secondary income by any means.
i have made all of $28 for my work on the inspire, and nothing from my work on the captivate
Click to expand...
Click to collapse
Hey 28 bucks is 28 bucks, granted I made 40 per screen when I used to replace iphone digitizers but money is money you never have enough.
Thanks for the info though!
Sent from my MB860 using xda premium
I spend a lot of time flashing my Rom when I am working on it. I usually don't push and pull from the phone since most users aren't doing that and I want to emulate what they will be doing.
As for money... Yeah, not a method of reliable I income if you intend to use it as such. I have probably had around... $125 donated to me by some incredibly awesome people.
If you intend to become a Rom dev, be friendly and responsive. People really appreciate someone who is willing to answer questions and give help where needed. Being standoffish like some I have seen is a sure way to get labeled with some bad words
Thank you guys for the responses. This is something I've been wondering as I've taken the plunge into modifying my Atrix. To say it's been addictive is an understatement. I started toying with the idea of putting my own ROM together pretty early on, so basic info like this is much appreciated.
Like someone said early on in the thread, everyone has to start somewhere so even seemingly small bits of info are always welcome.
The biggest hurdle is understanding adb commands and when to use them. Then, how to view the individual file strings inside the /sytem/build.prop and apks AND actually understand what it means. I have spent hours wandering around in root explorer look in folders and seeing what is inside. Pulling something with adb actually removes it from the phone right? Then I have to adb push back into the folder I pulled from. Should I use Ubuntu on my Win7 pc? I tried eclipse, installer r13, and I do have apkmanager but have yet to figure out how to actually use it.
I learn by doing what someone is telling me so reading it sometimes doesn't make sense since I can't "see" it and what it's supposed to look like. WIsh someone lived nearby to just to help get me started.....Beers and food on me LOL. Or at least had some time over the phone even.
Thanks Diviance (again) and to you PirateGhost for your help.
no adb pull does not remove it from the device. it copies to your local machine
as far as using windows vs linux. use whatever will make you more comfortable. i can assure you a lot of tutorials, and howtos are written with linux in mind, but if you can understand the basics, you will be able to translate it to windows. not to mention once you get into tearing down APKs, jars, dexes, etc....its all the same code inside no matter what tools you are using to get to them. i find linux easier to work with when it comes to stuff like this, some people think windows is easier.
If I were to get linux on my PC, would adb work within the linux evironment...meaning can I adb from linux and compile/decompile etc from there?
Phoneguy589 said:
If I were to get linux on my PC, would adb work within the linux evironment...meaning can I adb from linux and compile/decompile etc from there?
Click to expand...
Click to collapse
well you would compile/decompile directly on the phone unless you were using the sdcard....it wouldnt be pretty
you adb pull /system/file modify it, then adb push /system/file
it works the same in windows as it does in linux from that aspect. i just find working in linux easier.
here, this should help get you started somewhere, its not exactly like this phone, and the guide should be used as a reference and not a manual.
http://forum.xda-developers.com/showthread.php?t=915435
if you are technical enough, just by looking at that thread, you will understand a good portion of whats going on.
Thanks for all the help. Im getting bored flashing other peoples work and would like to help tweak things. And develop some stuff.
Thanks bro.
Hey!
A while ago I got the idea of learning how to cook roms.. I made some research on it and I found some helpful stuff on xda. Well, I tried but quiet didn't understand and manage to be successful in doing what was told there..
I've read lots of stuff like "The hardest part of developing roms is getting started". So I guess this is the part where I need the most help
Whatever, the reason why I opened this thread is that I wanna hear some developers. Their ideas on developing; How to get started, their short story on how they started developing...
Basically I wanna learn where/how to start from those people who experienced and managed to become a developer..
I mean, I wanna know your stories as I really think they will help me, they will be examples to me...
Well, not only me, to anyone who reads them.. I'm hoping that this thread will help other newbies like me...
Thanks!
My first android phone was the g1, didn't install CM until the myTouch on t-mobile. I started writing scripts for android phones. Little ones, like LCD Density script or apk removal. Then worked on a theme. Didn't really go anywhere. Fixed a bug for Salvagemod for the Evo, then started working on SalvageMod. Evo needed a kernel after support was said and done, I figured out how to compile it, looking at other commits, I was able to make changes successfully to the Freedom Kernel for the Evo. Then decided that I wanted to work on some gui application. Cmcompiler came about.
While there are many many more details from start to finish. Point is really, that no one is going to teach this to you. You have to want to learn, and you simply have to do it. Its hard work. I have spent hours and hours of messing with things to get them to work correctly. Trial and error is a great way to learn android. Sadly "Android" isn't the only thing you have to learn when it comes to development. You need to learn the tools that come with the development, like packaging or install script if you have a local gui application, or git/svn/bzr for version control systems. Most importantly, you need to have fun learning. If you are not having fun. Quit.
I do not feel attracted when you ask devs to answer, but still.
I started with XDAs kitchen.
No development ofcourse, but a good place to start.
I felt XDA kitchen was not enough, so I started to learn BASH - the scripting language in wich Kitchen is written.
I started with opening the "menu" file out of the kitchen.
After a while, I neede batch-resize, as I wanted to become a themer.
I made it together with my dad.
After I saw that some themes contain more items then another, I made CopyFrom.
AndroidCentral was my next idea - a combination of all home-made tools.
Just like lithid, I felt a GUI was needed.
But I started to work on it for cross-platform usage.
Conclusion: writing scripts is a good way to start. Google is my best friend, as I am new to scripting also.
Good luck
Sent from my Galaxy Nexus using Tapatalk 2
To echo the sentiments of the two previous posts by lithid and mdroid, I also started by writing simple scripts and small projects. Android Utility was my start up project.
My first real projects involved Rosie (HTC Sense launcher) and theming it. Then it become modding the apk to do other things (remapped, 4x5, 5 column app drawer, transparency, etc). The process of learning how to theme and mod one apk really helps you learn.
My recommendation is to pick one particular aspect of your device/Rom and learn as much as you can about it. You will find quickly that by doing so you inevitably have to learn how to use the Android tools, scripting, BASIC programming fundamentals, and a general idea of how everything works.
And yes, Google is your friend. Also stackoverflow
Sent from my PG86100 using Tapatalk 2
I also wanna to start developing. Thanks the infos. Can you write a few standard dev-tools name?
Sent from my ZTE Blade using XDA app
After creating this thread and reading the opinions of developers I followed this tut and tried this kitchen.. Helps in modifying a ROM.
And as I already had Cygwin installed using the way shown in the above tutorial I tried this tool for modifying the boot.img..
And if you want to modify apps you can give a shot to this tool...
These tools are basically really easy to use and efficient. Especially for a newbie like me.
oh, and these words of cyanogen would be really helpful..
start developing is not easy...but if you really want it and can dedicatebtime and patience all will just be fine... it's not recommended that u try to do all at first...maybe just a mod can be ok for you or anyone starting here...try modding a rom,changing stuff,adding tweaka and playing with build.prop as well...then if all goes right u can think on modding more stuff like apjs,themes,including simo comex apks...those who needs extra settings,etc... you'll gain xperience as long as time goes on and will fibd lot of interesting stuff u'd like to invlude on builds...so don't rush...good roms need time and patience
Sent from my MB860 using XDA
Thanks! when I read your ideas, telling me to play around with a rom and all that. I feel that Im really lucky. I've already been playing around with the ROMs I've used so far.. like editing build.prop, basic theming, editing apks, I once edited framework-res.apk to enable the navigation bar, etc...
Yesterday I tried porting MIUIv4 on the cm9 for for my device following some tuts on xda.. I did everything right, but no luck I get stuck in boot logo... Whatever I'll not give up!
I'm planning to study those kitchen stuff more for now, I'll give a shot to the tutorial mentioned on the portal today..
Whats your device?
My next plan to modding a ROM. I read also the MIUI porting thread, that's not hard. A long time ago, with my previously phone, the Xperia X8 (miss you...), i tuned up the stock ROM and modified a cooked ROM for myself - without XDA. I registered after here.
Sent from my ZTE Blade using XDA app
LG GT-540 optimus
I know. Its really easy. Plus I tried to port MIUI by mikegapinski on cm9 by miroslav_mm.. both roms are developed for GT-540.. I do everything right but I get stuck...
I don't what to mod, I mean I don't have any ideas... so Ill try porting MIUI
Hey bro. My advice? Do some heavy softmodding first (Take lets say tejas rom and add themes, adjust framework, add tweaks, add custom animations.custom this custom that basically add what you think is nice and yeah after long you will get more and more weird ideas )
I am fairly new to developing and I have read countless of sites and watched some youtube videos and I feel I am getting close to being able to customize a rom, but I am curious to know what tools developers are using to develop roms for the S3. I did try out Kitchen for the first time tonight with very limited success. any guide or help would be greatly appreciated as Id love to give back to this awesome android community for all the great roms they have provided us.
Beginners normally start with Rom Kitchen AFAIK or maybe they sync with Github or CM's tree(s). Anyway if you start with Rom Kitchen(may have a different name now), you can modify stock ROMs that were reaped from the GSIII. With the Kitchen I believe you can add nano editor, zipalign, change ram disk, and convert ROMs for other phones/devices.
I never liked Sammy when it came to porting a ROM because it doesn't feel as simple as with htc devices. For instance I managed to port multiple ROMs when I had G1, MT4G, Sensation...However when I had a Sammy SK4G or SGP5' I was unable to port with the same methods. Sorry for ranting it just brought back ole memories. :cyclops:
Thanks Ace for the info. I have had a look at the UOT Kitchen as well and I havent given it alot of time due to the fact that I wasnt sure if it helped create an ICS rom or not.
Tonight was my first time taking a look at the kitchen on my ubuntu vm and I was finally starting to get a grip on what the process of creating/customizing a rom was all about.
I'm a network engineer by trade but am alittle familiar with coding and the thought of customizing or eventually creating my own rom speaks to my inner geek heheh.
So is The Kitchen able to be used in creating a GS3 rom? I did have some errors I encountered so wondering what my next step is.
devantev said:
Thanks Ace for the info. I have had a look at the UOT Kitchen as well and I havent given it alot of time due to the fact that I wasnt sure if it helped create an ICS rom or not.
Tonight was my first time taking a look at the kitchen on my ubuntu vm and I was finally starting to get a grip on what the process of creating/customizing a rom was all about.
I'm a network engineer by trade but am alittle familiar with coding and the thought of customizing or eventually creating my own rom speaks to my inner geek heheh.
So is The Kitchen able to be used in creating a GS3 rom? I did have some errors I encountered so wondering what my next step is.
Click to expand...
Click to collapse
No, not UOT kitchen(lol) I meant ROM Kitchen. UOT kitchen is for custom themes.
http://forum.xda-developers.com/showthread.php?t=633246
^this here is rom kitchen aka dsixda
http://forum.xda-developers.com/showthread.php?t=1303311
^beginner's kitchen guide
I recommend you read as much as you can from the Chef section of xda, I haven' actually built an AOSP/AOPK/CM from scratch so I can't say much on how to setup a git or how to access the other trees.
And dsixda hasn't been updated for the SIII so I guess your errors were natural, however the GSII is supported so there is a slight chance it may accept SIII roms also. I want to mention that dsixda doesn't need Ubuntu or any other OS, it can run straight from Windows if you have that. I used it a few times on win7(x64). However if you want to practice building from source then Ubuntu vm.
http://www.youtube.com/watch?v=1_H4AlQaNa0
^You should watch this video to help you setup building.
Good luck.
i had always meant to do some developing but the drop in activity i realized when i moved from the sensation to the rezound really compelled me to start plus i have some work that i really have to do and really dont want to do so you know how it goes. Anyway to it
i started by googling how to build android roms which lead me to xda university giving me a nice expaination as to the various parts of android which i was already familliar
another search lead me to the offical how to build android from source page. i had a few concerns so i thaught i would ask here
i have knowlage building various web applications(php,js,ect) and not the let the fromework so this for me kinda apps i like thinking and innovating. i have a little experience with c++(i was at the stage of learning a gui when my old laptop crashed) so i think i have atleast good enough programming experience to catch on to java at a nice pace. Am currently reading and following googles nice little guid on developing android. Am in the process of setting up work envo (already got ubuntu 12.04 up). and thaught i would just leave a post here to see if anyone had any advice for me?
what i wanna do is be able to port for us,build original roms AOSP they call it for us, build and or port sense roms for us and eventually get to the point where i can get us sense5 or help neo(or any other dev) help us get sense 5. oh and i think i would like to build/modify kernels as well. oh oh and being able to invent exploits to get root or s-off for devices i might get in the future.
Question: while i was reading i was seeing where the buiding process was doing alot of synceing with google servers ect. i dont actually want to submit whatever garbage i might write to them while am testing so im still on the right track following the guid here correcto??
short version: I wanna build android custom roms ect not just edit files and put it out am i on the right tract following the guid here (i already know a lil programming)? http://source.android.com/source/initializing.html
any advice/resources/links welcomed
oki am on the page that says "building and running" i dont see anything for our device am guessing thats because development from aosp has stopped for us and thats where ppl like neo and cyanogen make thier magic. what is the next tut or read for me?
Try this. You could always pull Neo's CM 10.2 repos instead of the 10.1.
http://signatures.mobile-overload.com/wp-content/uploads/2013/07/sig-cm-5.png