I've been a member of XDA Forums since about October (when I got my vibrant). And I wad wondering how to become a developer. I feel like I should help contribute to this community instead of just being someone downloading and flashing. Im planning on majoring in computer science in college and I know it will help me with this type of stuff but I cant wait another year (Junior in high school)... I would really appreciate it if you guys would point me in the right direction or take me under your wing so I could pursue this interest.
dcaples002 said:
I've been a member of XDA Forums since about October (when I got my vibrant). And I wad wondering how to become a developer. I feel like I should help contribute to this community instead of just being someone downloading and flashing. Im planning on majoring in computer science in college and I know it will help me with this type of stuff but I cant wait another year (Junior in high school)... I would really appreciate it if you guys would point me in the right direction or take me under your wing so I could pursue this interest.
Click to expand...
Click to collapse
I'm doing computer science also to become a dev, I'm a senior! I have no idea, but I would love to dev also, I know it takes a lot of work though.
Step 1 - cut a hole in the box
step 2 - put your junk in the box
step 3 - make her open the box
step 4 - and that's how you do it (its my d$#* in a box)
haha naw i'm jk, I would like a clear way on how to dev specifically for the vibrant, I've seen a bunch of different ideas and tutorials on how to do it, but their specific for that phone, and its hard to comprehend on how to put the knowledge to the vibrant
Yea I know its alot of hard work but it will all pay off in the end.
I think it would be nice if one of the vibrant developers put up a video of how to become a developer and a video of him/her cooking up a rom. Im sure alot of people would take intrest to that. It would also give us enough knowledge to maybe be able to develop other phones or programs.
Learn your way around a linux box as it's pretty much necessary to compile source and what not. If you're wanting to develop programs for Android, learn some Java...
there's a few good e-books on amazon for android developing if you can learn from books.
I think you should start out with themes....so you know exactly which apks control what...which XMLs control what...then get some Linux knowledge so you can know how to tweak for speed....then start to learn some Java and Smali code....and do a sh*t load of research....i tried to create my own ROM based from official Vibrant source....MAJOR FAIL ...i think my phone went into shock ....but find someone who is willing to teach you...but make sure you're patient enough to learn.
Due to the nature of vibrant roms anyone can be a developer! That's a good and bad thing. Anyways... best way to learn is to learn Java. Android is built on it. It may not loom like it on the surface but it helps (ask whitehawk). Mr apocalypse's advice is probably the best.
Also a video is a horrible idea(no offense). It will empower people who have no business making roms to make them. Do you want people who don't know how to make a flashable zip making roms for your phone? It could potentially lead to bad things...
I was where you were a couple years ago (not that I'm much further ahead). Learn you some Linux. Learn you some theming and try and make a simple app for android.
Sent from my SGH-T959 using Tapatalk
So check this out. Who's gonna help me get a leg up and start learning the real stuff now that I have the basics down pat. I have been flashing these great themes and Marvelous Roms and just started to get down correlations between bases and ports etc... Although I still don't know in depth about these matters - I have learned if you don't port - you come up short.
I am working on figuring out how to replace my boot animation in the HoneyHD theme, and how to take that and take out the Sense Parts that aren't available in NoSensi, and finally merging that into NoSensi so that instead of flashing four times - or relying on a recovery, I can make an assembled and flashable Rom package that is perfect from the first flash. Guess I should have asked Victoryo (NoSensi OP), but these aren't even really any of my works, and I am sure a Dev has plenty other stuff to take care of. I know that there is so much more to this than I realize, but every step I learn makes that much clearer how the processes from bootloader to splash to boot to Themed Awesomness and Ultimately Rom Superiority actually work and integrate together. I start school in a month, with a declared major in computer programming, and until a few months ago didn't know diddly about Roms, Kernels, Rooting, or even Android for that matter... So where do I start learning? Or rather, what would be the best way to expand on the knowledge I gain here everyday at XDA, and please be mindful that until my school money is in, I am computerless...
Everything is Inspire Acquired, and Edited, Flashed and Composed from.... Thanks to all the kickarse peeps who remember asking themselves "Where in the world do I begin?"
-MyPocketWizard-
Here are some guides to start you off. Good luck.
http://forum.xda-developers.com/showthread.php?t=916814
http://forum.xda-developers.com/showthread.php?t=674604
http://www.romhacking.net/start/
http://forum.ppcgeeks.com/htc-apache/1904-how-build-your-own-custom-rom.html
Thank You Wolf for everything today. Hope the Universe throws some awesome Karmic Kindness your way sir.
-MyPocketWizard-
I really want to learn how Android works. I want to be able to build Android from source, and compile Roms. The goodies. But anytime I try, it's end up horribly. I just want to know where to start! Should I make a stock based Rom, and learn how to tweak it out? Should I buy a certain book, or read some threads! I don't know Xo I really want to become a Dev. Android is my life, and I want to be able to do what Strapped, XMC, and Tbalden do. Any tips are good tips.
I sure do wish you all the luck in the world Agent. And you certainly want to fashion yourself after three mighty fine developers too. I've had some of those same desires myself after seeing what someone that knows their stuff can do. I had so much trouble with HS Spanish and a few AutoCad Lisp routines that I can't even imagine biting off C++ or some of the other programming languages!
My youngest son though.....now that's a completely different story. :good:
WeekendsR2Short said:
I sure do wish you all the luck in the world Agent. And you certainly want to fashion yourself after three mighty fine developers too. I've had some of those same desires myself after seeing what someone that knows their stuff can do. I had so much trouble with HS Spanish and a few AutoCad Lisp routines that I can't even imagine biting off C++ or some of the other programming languages!
My youngest son though.....now that's a completely different story. :good:
Click to expand...
Click to collapse
I wanna learn while I'm still young, I'm out of school for the time being. I really want to take advantage of these couple Months before life is all about business, and how to properly Manage/Own a T-Mobile.
Sent from my myTouch_4G_Slide using Tapatalk 2
NOW is the time my friend before life gets in the way of your youth and ambitions. It WILL distract you and before you know it spare time will seem like it never comes often enough. I admire ALL of you that persue what interests you and learn while that mind is still fresh. KWIM?
WeekendsR2Short said:
NOW is the time my friend before life gets in the way of your youth and ambitions. It WILL distract you and before you know it spare time will seem like it never comes often enough. I admire ALL of you that persue what interests you and learn while that mind is still fresh. KWIM?
Click to expand...
Click to collapse
Hell Yeah, I'm considering taking classes at the local community college for Java. Apparently it's useful for learning Android. I go to a strictly business college. So I can't learn anything related to Android.
Sent from my myTouch_4G_Slide using Tapatalk 2
OK, so I have an Idea. I want to do what CM said, and learn the basic. I'm going to use Undeads Sense 3.0 Port as a base, and theme it to Sense 4.0. Remove the Bulletproof settings, and push over another tweak app. I want to make it as fast as possible, and have great battery. I always felt Sense 3.0 was the smoothest Sense rom we ever got. Zero Hickups, and No Lag. I'm going to at least do it on a personal level. Try to get a hold of Undead (he's IP Banned on XDA & Rootz), but it may be hard. Maybe even try and get the Amaze Camera Mod working. Just simple, basic things. Once I get used to the waters, I'll try something bigger. Like Paranoid Android.
I just found an Interesting guide about porting any Sense rom, to any Sense Phone. Pssshh, could you image Sense 2.1 on our phone. That would be sweet. The guide is boosted to be made for the most simplest of minds. So I feel I can take extreme advantage of it.
Sent from my myTouch_4G_Slide using Tapatalk 2
Keep on plugging - I admire your determination. And please keep letting us know how you're getting on - the start of a journey.
Sent from my myTouch_4G_Slide using xda premium
Alright agent since I can't quote your last post, I was on the inc2 forums and they have a wifi issue that's solved by turning the always on data off
Sent from my HTC MyTouch 4G Slide running MikXE
Where is Blue when you need him?
::Respect::
Hey guys!
I would say that making a post or thread like this is really the first step - knowledge can be gained, but the passion, that drive to work through all the tedious testing, retesting, writing and re-writing is not something that can be taught.
So start small.
We all have grand designs, plans and ideas - heck there's so much this device is capable of that I want it to do, starting everything at once just leads to unfinished projects and fragmented learning.
If you bring that excitement, that hunger for knowledge, then the rest falls into place but it takes time.
"I never let school interfere with my education"
...is such a fantastic quote. It's up to you to choose to take the time to sit down and read a technical document, white-paper or tutorial while your friends are out wasting time.
Definitely make time to walk away and socialize with real people, but remember that learning how to do this stuff takes a lot of time, effort and tons of frustration and dead ends.
I've been playing with software code for near 20 years now, and I still consider myself not much past amatuer status.
...and status means literally nothing. The only two things that matter are what you know, and what you don't.
So don't lie to yourself. Don't pretend to know something just because you are afraid of what people will think if they find out you don't. It's okay to say "I don't know"
In fact, it's essential to be able to say that not only to yourself, but to be able to admit that to the community, your friends, whomever.
If you don't, then you have no place to start learning. Pretending to know something just prevents you from actually being able to start learning how to do it.
So, after you are comfortable with a truthful assessment of what you can and can't do, the next step is to figure out how to go about learning what you don't know.
The biggest mistake everyone makes is taking on a huge project because that's what the end goal is.
"A journey of a thousand miles begins with a single step"
...another good one!
I'm sure we've all heard it before, but haven't pondered it so deeply. Another way to say it might be:
"The making of an awesome ROM begins with changing a single icon"
Break down the project you want to do into the smallest possible steps.
Can you decompile an app?
If not, definitely learn how to do that.
Once you have it decompiled, browse all the code. Especially what you don't understand or makes no sense. Don't try to understand it all, just absorb it and get to know what it looks like.
Now do that with every app on your device (play with all the stock apps first - they all came from the same place and reflect a certain coding style)
Now that you've browsed through all the code of all your stock apps, do it again. ...and again ...and again ... and again.
Sick of it yet? It's been a few weeks now and you've learned nothing you can directly use.
This part always separates the people serious about doing it from the ones turned off by all the tedious work with nothing concrete to show for it.
I mean, you've spent a couple of weeks just looking at code with no idea what you are looking at.
What you don't immediately notice is that you start to get a sense of the pattern, the layout, and what things are the same, similar, and completely different.
Now you start looking at tutorials you've read in the past and go 'wow, I know kinda what that means, I saw something like that in the code here!'
Ah - now it begins!
When it gets to be too much, do something you can handle from start to finish.
Change an icon, tweak the color of a font, something simple, but that you can feel the pride of success and accomplishment in.
Can you compile an app?
Decompile a working app - change nothing - then recompile it. Install it on your device.
Does it still work? Probably not.
Why?
Ah - the question that drives us.
9 times out of 10 someone releasing something cool is not because they wanted to make it, but because they wanted to learn how to make it.
One thing people forget all the time is that the stock software on the device is built by teams of people with delegated tasks and diverse talents that TOGETHER contribute to the success of the final product.
You? You're alone. You have to do it all. Graphics, sound, coding, planning, research, testing - you are taking a project that requires untold hours of dedication from a team of people ... Maybe just on the graphics alone. A whole other team is working on sound, another team is working on code, there is management to structure goals and delegate tasks.
Managers who may have no technical ability but a good handle on how to keep everyone moving and workikng cohesively. Other management that is keeping the teams on point with each other.
...and it still takes them lots of time to get things done. Not because it's some bloated over-staffed group with too much red tape (though that does happen) - but more because there is simply so much to do.
The next time I spend 40+ hours behind the keyboard with maybe not even a bathroom break won't be the first nor the last. I've sat down to do something on Friday and had someone stop by on Sunday night and I'm still in my work clothes from my day shift Friday, didn't even realize Saturday came and gone.
Does it all require that level of dedication - no, but, you get lost in it and that can happen. Never force myself to do it, just get caught up in learning it all.
Don't expect too much from yourself. You absolutely have the community behind you and so much knowledge here, tons of people willing to help, but in the end it's up to you.
You to do graphics.
You to do sound.
You to write the code.
You to compile it all.
You to figure out why it doesn't work ( and it rarely does).
For every success, you have many, many failures to get there. Especially starting out. Expect to get it wrong. Expect it to be broke just because you touched it. If it isn't, honestly, you're doing it wrong.
We learn so much less from success then we do from failure. If you aren't failing you aren't learning. If it always works the first time, then you are just doing the same tired stuff you always have.
You wanna learn how to code for Android?
Read everything you can, absorb the forums, go download source and browse it. Decompile all your apps and browse them. Start looking up what you don't know.
For every one thing you do learn, you realize there are ten new things you never knew you didn't know.
Now go learn about them, because each one of them will lead you to something else, or many something elses that you didn't even realize you didn't know.
...and did I mention put lots of time into ignoring what you want to do, and learning how to do it one tiny little piece ata time?
Patience is most important.
The patience to only change one variable, recompile, test, test, and test some more. Then, when you are satisfied with the result of one minor little change, make one more tiny change and repeat the process.
Learn the scientific method, and follow it rigorously. If you don't, might as well not bother getting into this stuff because all you will do is get frustrated.
You have to work slowly, patiently, one small step at a time. Try to predict the result of the tiny change you made, and then see if it was what you thought or a surprise. Why was it a surprise?
The question of why is the only thing that matters. Every one of those you answer is one more weapon at your disposal for the battle, one more tool in your box, one more pencil on your desk.
If you have little to no coding experience and expect to sit down and whip out a ROM, you are only setting yourself up for failure. But one day you can, with hard work, lots and lots of time, uncountable failures and hours of frustration and coding something just to have it not even compile, let alone work.
Have you taken the time to map the device?
When you got it stock, you should have put a file browser on it ( root explorer - just buy it already, you need it) and browsed the entire device.
Take a notebook and write out a full device tree on paper, everything you can see. Every folder, every file or folder in them, sizes, permissions, any detail you can see.
Why? Because it already works. You are lookoing at how a working ROM is structured.
I mean, how can you make something if you don't know what it is, looks like, how it acts?
Learned ADB and fastboot yet? Why not? You wonNt be successful if you don't.
This is a pretty long list already - and we've barely scratched the surface. A ROM is not a Sunday afternoon project - a ROM is a dedicated months and months long never ending project that eats up more time then you have every day.
So I'll leave you with one last thing before I go make a thread that people aren't gonna want to see - but I'm not leaving you guys, far from it.
Learn algebra, learn it well, or don't bother attempting to write code. (Or work in any construction trades/build anything professionally.)
Algebra is the single most important learned skill one can pick up across just about anything you can ever do with your life, and absolutely vital in computing.
There really is no "go here, learn this" method - you need to aquire the skills necessary to succeed in your project.
So go break something (minor - don't brick your phone) and then learn how to fix it. ...and pay attention in math class.
Sent from a digital distance.
Blue6IX said:
Huge Epic Post.
Click to expand...
Click to collapse
It's like your a warlock and when I typed your name, POOF! :victory:
This post covers every aspect you could ask for, I'm sure Agent isn't the only one who will gain knowledge from this post, thanks Blue!:highfive:
CoNsPiRiSiZe said:
It's like your a warlock and when I typed your name, POOF! :victory:
This post covers every aspect you could ask for, I'm sure Agent isn't the only one who will gain knowledge from this post, thanks Blue!:highfive:
Click to expand...
Click to collapse
Hell. Yeah. I'm just going to start theming. I want to make the ICS messaging Icon blue, and a blacked out UI.
Sent from my HTC MyTouch 4G Slide using Tapatalk 2
I just got ubuntu on my computer, spent an hour trying to install java lol. Now to figure out why adb doesn't work the way it does in windows haha.
edit: finally got adb working. i have no idea what i did, but after installing a bunch of different libs, time to start exploring haha =D
ekoee said:
I just got ubuntu on my computer, spent an hour trying to install java lol. Now to figure out why adb doesn't work the way it does in windows haha.
edit: finally got adb working. i have no idea what i did, but after installing a bunch of different libs, time to start exploring haha =D
Click to expand...
Click to collapse
Java was a b***h when I installed an unsupported version for compiling. This is helpful though it will guide you through installing and it can even switch java versions if you don't like your current one
AgentCherryColla said:
Hell. Yeah. I'm just going to start theming. I want to make the ICS messaging Icon blue, and a blacked out UI.
Sent from my HTC MyTouch 4G Slide using Tapatalk 2
Click to expand...
Click to collapse
I saw this done on AOKP website as a mod, i think this plus built in messaging pop up like an MIUI thing would b beast
::Respect::
ekoee said:
I just got ubuntu on my computer, spent an hour trying to install java lol. Now to figure out why adb doesn't work the way it does in windows haha.
edit: finally got adb working. i have no idea what i did, but after installing a bunch of different libs, time to start exploring haha =D
Click to expand...
Click to collapse
Man, i'll tell ya - if you had to pick the one thing someone would do to take a step into learning to bend android to your will, installing linux is the best reply possible.
Windows is great to get your feet wet, and can manage some things more easily - frilly stuff, eye candy type details.
If you want to talk about experiencing the thrilling joys of success all that invested effort brings - doing so on a linux box is so much more rewarding then on a windows box.
Definitely see about getting a second monitor if you can swing it. Working with two display panels more then doubles your productivity. You can have a tutorial on one screen and be following along on the other.
That aside, one reason the linux box is so much more rewarding is because of the range of things you can mess with.
You can't work with a kernel in windows. Already right there the most important part of the ROM is off limits to you in a windows box. (as I sit here typing this on windows - mind you.)
Another reason linux is so sweet to work on for coding android is that they speak the same language. Writing code is quicker and easier, connecting the device happens more seamlessly and swiftly.
All these little things add up to save you time.
...and time is your greatest hindrance. It slips by all too quickly and then you are obligated to walk away and do something else. So being able to squeeze more work into less time is the consistent refinement of what you know.
Rarely do you learn how to do something the most efficient way on your own, and really that is the heart of open source. You can see how someone else did something, and learn from how they got there.
I've communicated with people I couldn't speak the language of through code, sending changes back and forth without any written correspondence.
To be able to explain the various joys and experiences learning computer coding has brought me would be impossible. There is so much intangible awesomeness that comes from investing time into learning all of this.
Especially since cell phones are so popular and mobile computing is so easy any more. Being able to bend the device in your hand precisely to your will is ever becoming a more important skill to have.
For those wanting to invest that time into what brings us all here collectively, the rewards really are beyond what you would think starting out.
As much as I wanna delv into this as ACC, I simply have no time haha. However, learning this now will probably help me in the future, so why not.
At the very least I'll finally know what you guys are talking about in the dev section lol.
Blue6IX said:
Another reason linux is so sweet to work on for coding android is that they speak the same language. Writing code is quicker and easier, connecting the device happens more seamlessly and swiftly.
Click to expand...
Click to collapse
This. Install Linux, learn to love it, and learn to customize it. A big part of setting linux up the way you want involves working in a command line, troubleshooting when errors come up, building, and compiling. The time you spend troubleshooting and customizing everything on your linux box will familiarize you with all the commands, shortcuts, quirks, and understanding of why this does that in a linux environment, and will help you to no end.
I'm going to get a new Laptop before school starts up again. Then I can finally get cracking
So I’ve been a member here since the Droid X days and I’ve learned a lot over the years with each device I’ve had but I never really looked into creating ROMs (I always wanted to learn but never got to it).
I know it’s going to be a learning process that takes some time but I’m looking for help on where I should start. Before anyone posts a whole bunch of random looks I’ll say right now that I am a complete beginner when it comes to this stuff. I’ve looked at a bunch on threads and it’s so overwhelming being completely new so I don’t know what’s relevant and what’s not.
From the research I’ve done today I learned about a program called Android Kitchen which from my understanding was used to create and compile ROMs. From what I found it looks like the original dev stopped updating it back in 2013. In the ChefCentral>Android forum it looks like someone else took over and maintains it for Linux. I also came across a variant there called “Assayyed_Kitchen”. Is this the same program just made by someone else? I don’t know you tell me? lol
I also plan to learn some Java in the coming months and Android App development. I don’t have a huge interest in making apps right now but who knows maybe I will down the road. I just figured learning Java can only help with learning to make ROMs? Do I even need to know any of it for this kind of stuff?
So basically I’m looking for some guidance on where to start as a complete beginner in learning ROM development. Even someone taking the time to type out a few basic steps explains what the whole process even involves from start to finish would help a lot. For example..
1. Download source
2. Open in this program and blah blah
3. Do your magic and customize this and that
4. Do some more magic and pack it back up and flash
Just understanding the steps would make a huge difference because then I know what to research and what to learn. Hoping this thread gets some good info in it and maybe at some point I can create a complete noob friendly guide in the OP to help others like me who don’t know where to begin. To anyone that takes the time to reply and help out.. THANK YOU!
You download the source, edit the code you want to edit, then you compile it.
If you have more questions then that it is because you don't know enough to be able to make a ROM. Where to start? Learn how to code and compile, start compiling other peoples Roms and look at their commits and source code to see what changes they made.
You can't really drag and drop then place your logo on it.
Sent from my Pixel using Tapatalk
scryan said:
You download the source, edit the code you want to edit, then you compile it.
If you have more questions then that it is because you don't know enough to be able to make a ROM. Where to start? Learn how to code and compile, start compiling other peoples Roms and look at their commits and source code to see what changes they made.
You can't really drag and drop then place your logo on it.
Click to expand...
Click to collapse
Not sure what the attitude is for I never implied that I could do simple things like drag and drop and use others people's stuff and do it with no programming experience.
Again it's all new to me so I was asking where to start with it all. I am starting to learn Java this week and I'm trying to figure out how it all works.. I'm not interested in making android apps so the android development tutorials all over the internet wouldn't help. Yes they would help with the Java stuff but not with the ROM stuff so that's what I was trying to understand. Imagine being a complete beginner with this stuff. All this talk of compiling and GitHub and commits is all jibberish at first. You gotta start somewhere so I'm trying to get a grasp on everything. My goal is to understand the steps needed to make my own ROM first. Because once I know Step 1: use this program to do this Step 2: do this, etc.. then I know the basic overview and can start the process of actually learning the details involved in doing step 1, 2, etc
If I was teaching someone how to change a tire on a car. They first would have to understand that it involves jacking the car up, loosening lug nuts, take tires off, put new tire on, tighten lug nuts, lower car off jack. Once they get the concept and process of what they are trying to do.. then they can start learning how to jack the car up. Then how to take the lug nuts off.. and so on
If they didn't first understand the general process they might start to learn how to take the lug nuts off first and do that right away
The best place to start is to google , "how to build Android from source." This will help set up your build environment and teach you the basics. The rest is pretty much trial and error.
I started back in 2013 with one of the guides and just started messing with code. I went from not knowing any coding to compiling my first ROM(slimroms) within 2 weeks of starting. I became an official member about 2 months after starting. Here is a link to one of the guides I used to start.
http://forum.xda-developers.com/showthread.php?t=2223690
arcardinal said:
The best place to start is to google , "how to build Android from source." This will help set up your build environment and teach you the basics. The rest is pretty much trial and error.
I started back in 2013 with one of the guides and just started messing with code. I went from not knowing any coding to compiling my first ROM(slimroms) within 2 weeks of starting. I became an official member about 2 months after starting. Here is a link to one of the guides I used to start.
http://forum.xda-developers.com/showthread.php?t=2223690
Click to expand...
Click to collapse
Thanks for the link! I've done some searching around also. So I would need Linux correct? Not an issue I can partition one of my PCs just want to make sure it's definitely needed.
I think my s5 is still running slim ROM haha so thank you! Did you have any programming (Java) experience when you started?
aholeinthewor1d said:
Thanks for the link! I've done some searching around also. So I would need Linux correct? Not an issue I can partition one of my PCs just want to make sure it's definitely needed.
I think my s5 is still running slim ROM haha so thank you! Did you have any programming (Java) experience when you started?
Click to expand...
Click to collapse
I had no coding experience at all before starting.
You need Linux. You will also want a decently speced computer. I have an 8-core processor and 24 gbs of RAM and it takes about 20-30 minutes to compile a build. The computer I started on took about 4 hours.
arcardinal said:
I had no coding experience at all before starting.
You need Linux. You will also want a decently speced computer. I have an 8-core processor and 24 gbs of RAM and it takes about 20-30 minutes to compile a build. The computer I started on took about 4 hours.
Click to expand...
Click to collapse
Yikes. I have a PC I built a few years back running Windows 7 currently
-Asus P8Z77 Pro motherboard
-Intel core i5 3570k
-8GB RAM
I know I could use some more RAM but I was considering getting an SSD first. I have an ancient HDD in there now. Not sure on the exact speed but it's slow
If I was you I'd start with kernel compiling before you get into rom developing. That's what I'm doing anyway, seems like getting a rom to compile is more involving.
You would need to read up on 'git' (it's a version control program) learn some C language and also read up on another program called 'make' what it does and how it does it.
Learn about 'toolchains' how they do and which one to use. I think you can get latest toolchains by downloading android-ndk (it should be one of the folders in the zip file).
With that said you need Linux and depending on the distro you use (Ubuntu,Fedora etc) you would need to download extra packages for development and that you would have to google it to find out which ones. Also you would need to know how to navigate within Linux, use that distro's programs or tools (although 95% are the same across all distros) and all of it using only the terminal.
Google is your friend. I know it is mine. Good luck.
Hi, I started researching and messing with custom ROM/Kernel development 3 weeks ago. I've successfully compiled the kernel for my s5 neo Exynos 7580/MALI 200 (no hardware acceleration yet but I'm a kernel developer and reverse engineer so I can get that working given enough time, and have chosen all the apps I want to include in my first ROM. I made the ROM into and Odin flashable image and bricked my phone because I didn't adjust for the differences between the s7 and the s5 neo's power requirements. I bought 3 more S5 Neo's though, fixed the kernel, and all 3 devices have been 100% stable for 3 days with some minimal usage to test all the features. I am a kernel/driver developer, and as of now have taken over a dozen kernel MOD's from other people's kernels, and applied them to mine. There are more mods I could extract and apply, but I don't care to add them because I don't think they suit the goals of my ROM.
I would like to know things that aren't documented or easy to find that I will have to work with as I progress in the complexity of ROM development. So most of my ROM right now is apps I extracted from other ROMs and the play store and f-droid. But I am a coder and am working on my own settings app is suited for my ROM, including providing all the functionality of the root requiring apps I have installed now, also, I have about $80 of premium paid apps in my current setup, and want to put all the things they do into my custom settings app. I eventually plan on turning this into an android fork but for now, I'm starting out with baby steps to learn at a pace I can handle without overloading myself.
Please, any ROM/Kernel/App developers provide me any things you have learned from experience that I can't find on google and will be useful to know for my project.
Also, I have 2 questions. A) is UBER GCC better than Samsung eabi GNU compiler collection compilers?
B) Is deodexing really so good? because I've looked at the pros and cons and I don't think deodexing is worth the tradeoffs, but I feel like there's a reason almost every custom ROM does it. I know the tools to deodex ROM's don't work on Samsung android or other not AOSP based ROMS, but I already wrote a python script that deodex's my phone perfectly, I tried it, but I wasn't happy with the differences in response time and boot time and I believe it was causing a lot more memory to be used although I'm not sure why. Is deodexing better than I think it is, or is it just the cool thing to do for people who don't know how it really works?
Links, tips, polite criticisms, are all welcome. Also, this is my first post and I'm pretty sure these forums are the only place I can find people with the skill level to do these things well or at all.
I see some very knowledgeable people post here so I hope they find my post and reply with some tips. I tried the Freenode android channels and they are all plebs. They actually made fun of me for claiming I could make a custom ROM for this phone, they said it's impossible, and in 3 hours I had a screenshot of my about device showing my own compiled kernel running on my phone, no mods, just proof this been stuff is doable. Then I told them off about pretending to be experts but really knowing nothing and calling me a fool because they are too ignorant, then I left all 3 Freenode android channels and came here. In the channel for android ROM's and rooting, 99% of them were people who needed help rooting their phone or installing a custom ROM, not people I can learn from and grow to become a member of their community like I hope to do here.
if you didn't stop reading by now because of tl;dr, thanks for taking the time to read my post and please respond if you have helpful info. I've already read all the stuff I can find from google and these forums, I'm looking for the tips that aren't documented or that I may have written off as not important.
-zerorax, AKA Will O
Also if anyone wants to join forces to help me, I'm open to contributions and will give credit for them where it is due.