Hello Gentlemen - Building a ROM? where to start.. - HTC Desire S

Now I'm completely sure that this thread isn't quite the sort of thing that's intended for this Development forum but in this case I'd like you to make an exception as it's intention is for future development and I'm seeking the input from the current great bunch of developers that we have.
I wouldn't mind having an attempt at putting together my own ROM or at least hacking an existing close to stock ROM and making it my own, I have no plans to release my creation to the mass market (if I ever get that far) but, just want to go through the process in order to give me a better understanding of how it all hangs together so that I can put more into the community and assist more in this section and not just the general one with basic problems.
Any pointers that anyione can give will be gratefully appreciated.
I'm not seeking to build a thin Senseless ROM as there are are already some fine examples of these already (MIUI and CM etc), as I'm new to Android and have come here from Windows Mobile so I've already made HTC my choice mainly as I like Sense its functionality, integration, even though I do believe it could be slimmed downed by a decent degree and loose many unnecessary components and elements from the start. I'd also like to only build a WWE ROM as it would be intended for just my use.
As you may know already or can see from signature (or my many previous posts) my current favorite custom ROM is LBC so I'd like to have a go at creating my own version of something similar, I'll probably only end up using LBC still as my daily ROM as I've loved it since I first moved to it and have no intention of going elsewhere.
I have JDK and ADK installed on both my PC's, I've been a programmer although quite some years ago, but, still have a reasonable amount of IT knowledge and still work in a IT related job. So configuration, UNIX scripting etc isn't a problem although Java programming may well be!
Just looking for some basic pointers even if they are to websites or resource threads here in XDA for further reading. Many thanks for all the pointers offered and any time spent helping me, I'm also sure that anything you guys put together will then prove useful for others if they are in my position.
I've also very recently just done my back in and am suffering from awful sciatica, so can see myself spending some time off work, bizarrely sitting at the computer on certain chairs for medium lengths of times, is one of the few things that I can do without experiencing much pain, so I'm trying to keep my self busy, amused and avoid (further) insanity so this seemed like the best option!
Thanks in advance (again) I appreciate that the people in this forum are exceptionally busy, what with their own life's, their families, their jobs not to mention their relentless dedication to the cause that is Desire S ROM porting and development!

You need first to set up a Linux environment.
1. For personal use, and only for modding, I recommend you installing Cygwin if you are a Windows user.
2. Download Dsixda Kitchen and follow the steps from there.
3. Get a copy of your favourite ROM, or a base of your ROM in a .zip format.
4. Modify it, tweak it, zip it again and enjoy !
If you have any more questions, I am here to answer them.

badeaioan said:
You need first to set up a Linux environment.
1. For personal use, and only for modding, I recommend you installing Cygwin if you are a Windows user.
2. Download Dsixda Kitchen and follow the steps from there.
3. Get a copy of your favourite ROM, or a base of your ROM in a .zip format.
4. Modify it, tweak it, zip it again and enjoy !
If you have any more questions, I am here to answer them.
Click to expand...
Click to collapse
Genuine Question: (Not one of those how fast is your PC ones?....But)
At home I have a very new i7 laptop running windows 7 - 64 and a just under ten year old dual Xeon based workstation still running XP both with 8Gb. which of the two would be the best base O/S machine for creating the linux environment on? I imagine that the new laptop will have much fast CPUs but the workstation has many more faster SCSI disks. Although both have NAS available storage.

It doesn't matter. It's your choice. For example I have only Win7 32-bit both on PC and Notebook. I also have native Ubuntu on Notebook as a dual boot, but I use it only on modifying apps.

I never used the kitchen to make own rom, but its the fast way
and you can run linux on a virtual machine if you want

superkid said:
I never used the kitchen to make own rom, but its the fast way
and you can run linux on a virtual machine if you want
Click to expand...
Click to collapse
I'd seriously appreciate a LINK to a linux disto VM that I could download and get started with. As I'm currently starting with an empty page!?
What O/S or linux flavour/distro do the other chiefs use (a URL or link would be magic)?
LBC?
MaryLandCookie
proxuser?
superkid?
NeoLojik?
(dont feel bad if I missed you out - we've finally too many Cooks to remember!)
etc
As always any assistance much appreciated.
and regarding the Development INDEX thread -I've heard back from the MOD but am still awaiting him to action the change of owner for the thread. SO post any needed updates or ideas into the thread and I'll action them as soon as I can!

Ben, start with this, you won't need anything else for personal use: http://forum.xda-developers.com/showthread.php?t=633246
You will find out here how to set up Cygwin and everything else you need.

Virtual machine here
Linux distro
Use with dsixda's kitchen, you can't go wrong. Although I prefer dual boot.

lol i use debian, but i dont have a vm

superkid said:
lol i use debian, but i dont have a vm
Click to expand...
Click to collapse
I don't use vm myself, but for those not wanting to make big system changes a vm is a good way to go. Never did like cygwin either, but its all about personal preferences I guess
Sent from my HTC Desire S

ben_pyett said:
Now I'm completely sure that this thread isn't quite the sort of thing that's intended for this Development forum but in this case I'd like you to make an exception as it's intention is for future development and I'm seeking the input from the current great bunch of developers that we have.
I wouldn't mind having an attempt at putting together my own ROM or at least hacking an existing close to stock ROM and making it my own, I have no plans to release my creation to the mass market (if I ever get that far) but, just want to go through the process in order to give me a better understanding of how it all hangs together so that I can put more into the community and assist more in this section and not just the general one with basic problems.
Any pointers that anyione can give will be gratefully appreciated.
I'm not seeking to build a thin Senseless ROM as there are are already some fine examples of these already (MIUI and CM etc), as I'm new to Android and have come here from Windows Mobile so I've already made HTC my choice mainly as I like Sense its functionality, integration, even though I do believe it could be slimmed downed by a decent degree and loose many unnecessary components and elements from the start. I'd also like to only build a WWE ROM as it would be intended for just my use.
As you may know already or can see from signature (or my many previous posts) my current favorite custom ROM is LBC so I'd like to have a go at creating my own version of something similar, I'll probably only end up using LBC still as my daily ROM as I've loved it since I first moved to it and have no intention of going elsewhere.
I have JDK and ADK installed on both my PC's, I've been a programmer although quite some years ago, but, still have a reasonable amount of IT knowledge and still work in a IT related job. So configuration, UNIX scripting etc isn't a problem although Java programming may well be!
Just looking for some basic pointers even if they are to websites or resource threads here in XDA for further reading. Many thanks for all the pointers offered and any time spent helping me, I'm also sure that anything you guys put together will then prove useful for others if they are in my position.
I've also very recently just done my back in and am suffering from awful sciatica, so can see myself spending some time off work, bizarrely sitting at the computer on certain chairs for medium lengths of times, is one of the few things that I can do without experiencing much pain, so I'm trying to keep my self busy, amused and avoid (further) insanity so this seemed like the best option!
Thanks in advance (again) I appreciate that the people in this forum are exceptionally busy, what with their own life's, their families, their jobs not to mention their relentless dedication to the cause that is Desire S ROM porting and development!
Click to expand...
Click to collapse
Well in my opinion you are alone here because i dont know what the level here it is that anyone helps someone who dares to port a rom. Like i think i am from a specific country or dont know what only few are here who helps me in porting a rom otherwise all have a very good excuse that he is not ready to help anyone. I would like to mention the names who help me in porting the rom and they are mike1986 and one of his team members otherwise majority are here in a race to become number 1 in a specific forum etc. So brother try to see the above mentioned tutorial of how to port a sense rom and try yourself otherwise i had a bitter experience.

This is an excellent place to start, some excellent support from dsixda, dastin1015 among others.
Basically with their help I built my first AOSP ROM for the DS and further.
Well worth a look.
Peace

Just one thing, AOSP means compiled from cm or Google source. Actually it's not possible to compile from Google sources only from CM.

trismegistos said:
Just one thing, AOSP means compiled from cm or Google source. Actually it's not possible to compile from Google sources only from CM.
Click to expand...
Click to collapse
Android Open Source Project to me is google, without sense or any other "knobs". You can compile a pure rom from these sources, I produced one with help from members on other forums.
Getting it to work fully is another matter, lol.
It's definitely an easier route - but none less valid - to take a stock rom & tweak it with dsixda's excellent kitchen.
Sent from my HTC Desire S

Is there an easy way to change things like default wallpaper, desktop icons, widgets layout and so?
I've been reading and using kitchens but can't find the answer

fosco_ said:
Is there an easy way to change things like default wallpaper, desktop icons, widgets layout and so?
I've been reading and using kitchens but can't find the answer
Click to expand...
Click to collapse
try uot kitchen
http://uot.dakra.lt/
its quite easy to use
you can read this guide to get started

Related

[Q] ROM Development Help

To answer the question that everyone is thinking as they click on this thread... Yes, I am a noob.
Anyway, I downloaded the Android Kitchen and installed it on a Linux Ubuntu Virtual Machine on my Macbook using VMWare Fusion and i watched a video from theunlockr, but all it really let me do was add in apps, change the rom name and give it a few features but no visual customizations... If i posted a link of the "My ROM" no one would be able to tell a difference in the rom i planned on starting from.
Let me know if there is a different way to create that is actually making ROMs or customizing the ROM in it's entirety instead of small unnoticeable features, let me know if I'm just doing something wrong in my Android Kitchen and let me know if theres an easy way to develop ROMs on Mac without Virtual Machines. (The last one isn't a big worry because linux is very lightweight and runs fine on my computer but please help me on the other two questions)
Thanks in advance,
AdamFerg

I want to build a Rom! Need direction...

Sorry for posting a whole new thread for this. I poked around with the search, however I figure the developers that are doing stuff for the Infuse have a lot on their plates to be able to write out a tutorial for this individual phone forum.
But, I have absolutely 0 experience in making a rom for anything. I have flashed Infused on my Infuse. This is my first Android device and I really love the customizability over the iOS software (previous phone). I know Gingerbread is just around the corner but I would love to take my first few steps towards developing with a rom thats been out already. This way by the time I get a better grip of things I can maybe transfer these skills to the new version.
If anyone can be so kind, Ide appreciate it if the helpful devs could maybe point me to some links with the necessary files and programs/files that are needed to build a custom rom. As well as maybe some tutorial threads or videos.
Anybody feel free to shoot me some useful links if possible. Thanks so much in advance! Cant wait to contribute.
Mikeymike had something you're looking for in the Captivate forum. Can't find the thread on my phone but it was basically a how to thread. Good stuff if ur interested
This should be in Q&A. But yeah, MikeyMike has a tutorial somewhere.
In my opinion - start off small. Get familiar with making customizations to a ROM (theming, app replacement, etc) and then grow from there. Don't bite off more than you can chew.
tazbo28 said:
Sorry for posting a whole new thread for this. I poked around with the search, however I figure the developers that are doing stuff for the Infuse have a lot on their plates to be able to write out a tutorial for this individual phone forum.
But, I have absolutely 0 experience in making a rom for anything. I have flashed Infused on my Infuse. This is my first Android device and I really love the customizability over the iOS software (previous phone). I know Gingerbread is just around the corner but I would love to take my first few steps towards developing with a rom thats been out already. This way by the time I get a better grip of things I can maybe transfer these skills to the new version.
If anyone can be so kind, Ide appreciate it if the helpful devs could maybe point me to some links with the necessary files and programs/files that are needed to build a custom rom. As well as maybe some tutorial threads or videos.
Anybody feel free to shoot me some useful links if possible. Thanks so much in advance! Cant wait to contribute.
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=928955
remember to post in the right section next time bud.
Thanks so much guys. Sorry I was totally debating on whether to post this there but I thought that maybe the devs dont frequent that section.
Please do move this thread if possible.
Sent from my SAMSUNG-SGH-I997 using XDA App
Ok so I have one last question.
Is it better/easier to build the rom using an ubuntu virtual machine, dual boot ubuntu, or a Mac OSX Lion virtual machine in Windows 7?
I have the option to run any one of these types of systems. Unfortunately I do not have a Mac available, so Im wondering if it is even possible to build the source using a Mac VM seeing as how there are certain types of partitions necessary.
Thanks in advance.
tazbo28 said:
Ok so I have one last question.
Is it better/easier to build the rom using an ubuntu virtual machine, dual boot ubuntu, or a Mac OSX Lion virtual machine in Windows 7?
I have the option to run any one of these types of systems. Unfortunately I do not have a Mac available, so Im wondering if it is even possible to build the source using a Mac VM seeing as how there are certain types of partitions necessary.
Thanks in advance.
Click to expand...
Click to collapse
I'd dual boot windows and Linux
Samsung infuse running gingerbread!
Dual-booting Linux is your best bet. VMs mean that if you eventually get as far as doing kernel or AOSP/Cyanogenmod compiles, you'll have less RAM available, and also sometimes accessing USB devices (such as to use ADB or Heimdall) is a bit of a pain with VMs.
Awesome thanks a bunch guys i just got my ubuntu dual boot set up but i don't seem to have a working Linus driver for my trendnet wifi adapter.
But i have downloaded the infuse 4g source and im about to start setting up the build components from the android website.
Sent from my SAMSUNG-SGH-I997 using XDA App
tazbo28 said:
Awesome thanks a bunch guys i just got my ubuntu dual boot set up but i don't seem to have a working Linus driver for my trendnet wifi adapter.
But i have downloaded the infuse 4g source and im about to start setting up the build components from the android website.
Sent from my SAMSUNG-SGH-I997 using XDA App
Click to expand...
Click to collapse
Well, there are two routes to building ROMs right now:
1) Start from a Samsung ROM - there is source to the kernel and a few small parts of the userland stack available, but most of it is lacking source. Most custom ROMs available here are created by taking the stock Samsung ROM and tweaking them - removing apps, adding others, or attempting to bring apps from other devices to ours.
2) Cyanogenmod 7 - this is a source build, HOWEVER - it is not complete, open-source reimplementations of some Samsung stuff is not complete, so some features (like Bluetooth) are broken
A lot of ROM devs (those that work on Samsung-derived ROMs) don't even have a copy of Samsung's source code release as it's not useful to them. (Exception are those of us who do kernel work.)
It's not something you can just jump into. To do it properly, you need patience and a willingness to spend a lot of time researching a lot of different things.
1) Some things are easier to do in Linux and other things are best done in Windows due to some tools only being available for Windows. It's best to have both.
2) Learn how to dump the system partition (using the dd command) and mount/extract the resulting factoryfs.rfs on your computer.
3) Learn the /system folder structure. Explorer the files in each folder and try to figure out what those files are.
4) Find and learn how to use a script or program that can deodex the apps and framework from the extracted system image.
5) Learn the structure of flashable zips and what all of the commands in updater-scripts do. Easiest way to do this is to download a bunch of roms and look at their folder structure and updater-scripts. Google commands in them that you do not understand.
6) Learn which apps can be removed and replaced without consequence. If you can't figure out exactly what a particular apk does, best to leave it alone.
7) Experiment with changing build prop entries to see what some of them do.
8) Learn how to manually decompile and compile the dex portion of apk and jar files. Use smali and baksmali for this. This lets you modify app and framework code, but the decompiled smali can be a bit confusing. Try to learn how to read it. Try this AOSP lockscreen mod tutorial.
9) Learn how to use a program that can decompile and compile entire apps, including resources. Apktool is a good program and APK Manager is a good front end for it. Look through all of the folders in the resources (res) directory of a decompiled app. Learn which images and types of files are in each folder. There are a ton of xml files that do various things in the resource folders. Open a bunch of them up and learn some basic xml structure so you can see what all that xml is doing. Most visual app mods are done via xml. Here's a slightly more advanced mod tutorial than the AOSP lockscreen was: http://forum.xda-developers.com/showthread.php?t=811532
10) Learn proper apk compression techniques. Though it works, just dropping images into apks via 7zip and calling it a day isn't really the right way to theme. The default Android Asset Packaging Tool (used by the Android SDK to package apps) does not compress certain file types, including images. This is because images, especially pngs, typically do not compress a great deal anyways and the added cpu time it takes to decompress those images at app launch makes the total app loading time longer than if the images were uncompressed, even if they are slightly larger. Also, compressing some file types, like oggs and system objects, too much can even cause the app to not be able to load them. See here for a handy script to repack apks with proper compression: http://forum.xda-developers.com/showthread.php?t=1123463
I could go on forever, but that should point you in the right direction. At least you know some of the basics you need to learn now even if I didn't tell you exactly how to do each thing. Remember, Google will be your best friend. Use it. A lot.
Man I really appreciate this so much gtg. Its exactly the kind of encouragement i was hoping for. I just get a general sense of excitement when thinking of all the different possibilities in both Rom and app development. And seeing as how im and artist first, its awesome to know that ill down be able to be a double threat in both designing the look of, and building the Rom myself.
I can't thank you enough for pointing me in the right direction. Maybe one day someone will put together a kitchen for the Infuse. Until then ill be happy to dive into all the nitty gritty.
Sent from my SAMSUNG-SGH-I997 using XDA App

[WIP]MVS (Mobile Vulnerability Suite)

My job requires me to use a whole arsenal of native Linux penetration tools. I carry a laptop running backtrack Linux, has all the tools I need, and is ready to go right out of the box.
I thought I would bring over these tools to my phone, and maybe save me some time.
The end result being an update.zip or rom security pros aswell as average android user can flash to thier phone. And have these utilities at there fingertips to check network vulnerabilities without downloading a linux distro and tracking down libraries dependencies , etc.
I just started working on this today. So far I have netcat and some other basic tools working. My main goal is to port the more advanced tools such as nmap, ettercap, metasploit and the aircrack-ng suite. Im aware some of these utilities wont be able to be ported. We won't know till we try .
Im looking for people to help get this off the ground and see how far we can take it.
What do you guys think? Wouldnt it be nice to run a script and find out if your wifi network and computers connectd are secure?
Shoot me a pm if you want to join in
While I wish you the best, I know aircrack has always been that intangible gem. Always getting so close to full functionality but not quite. Though those were the early days and HW and Android has came a long way since then. Have you seen some of the older threads on aircrack? Might be some helpful info in there if you run into any issues.
I wish you the best on that one. You said all the others were running fairly well though?
There was a guy that actually got backtrack running on our phones in its entirety, not everything worked right but it was cool. Not sure where to find his stuff though as that was months ago.
Sent from my MIUI SCH-i500
Questions or Problems Should Not Be Posted in the Development Forum
Please Post in the Correct Forums
Moving to General

MIUI Rom and Newbie Development Questions

Hi Guys,
I am still a very new Android lover (8 months to be exact) and have already rooted my Sensation and looking at other avenues of getting things more exciting.
My first question is this: I recently downloaded the MIUI ROM, namely this version: JBMIUIv4.1 #2.8.17. Here on XDA there is a download for an updated version namely JBMIUIv4.1 #2.8.22, however I cannot access mediafire for some reason and really would love this new ROM. Is there an alternate download link available for this updated version available please?
[HR/]
Ok, now this is something that has been been asked many times BUTas a Windows Mobile developer, it creates an issue because my goal is to get into Android development. However, I do not want to develop the Android Apps (pretty much the same thing I do already but on Windows). What I want to do is to take a ROM, customise it from the bottom up for any specific device for example - HTC Sensation, compile it and deploy this.
Now I have already dabbled a little with the kitchen related stuff and never really got that working. What I am in search of is an accurate, step by step guide for developing, building and deploying various ROM's for the masses BUT on the Windows platform.
I already have Eclipse, cygwin, CRCStudio and and and but cannot get what I am looking for; and I have been searching for some time now and nothing really pops out and says ok, here we go use this to customise you ROM from scratch and by this I mean, the ROM, adding things like Beats Audio, Changing the look and feel of Android itself (like the Sense and MIUI), how to kitchen it properly and all of this as a start for HTC, Samsung, etc.
I want to add some value and have some really cool ideas and opportunities, especially here in South Africa where I am from the only way this will happen is if I get YOUR help.
Can anyone work with me on this or direct me so that I can get things started, PLEASE!!!!

Request for guidance on SGP5 development journey

Hello! I'm a semi-competent programmer (been doing it for fun and profit for the last few years) and I do almost everything in Linux (and in Python/Java).
When I started working with Linux I wanted to learn everything about it, but I was an idiot when I started (probably still am) and didn't understand much of what I was reading so I focused on my programming skills instead of the OS itself.
When I first got an android device (xmas present from my girlfriend about a year ago), I looked at her like she was nuts, "WTH would I want one of them for? Thanks, though." Soon after, I loved the Samsung Galaxy Player 5 (YP-G70 Gingerbread 2.3.5 API level 10) she got me, and started learning how to write useful programs on it, and also stuck several thousand PDF copies of books on it so I could always learn wherever I went.
I had a dream, though, to totally customize it. Every sound, button, box, and bar and especially the boot/shutdown animations, made by me.
In doing so, I hope to learn a ton about embedded Linux and android.
So I started reading through everything I could find about development for Android (especially all the google docs) and my device in particular.
I've confirmed with myself that a so-called "hard-brick" is all but certain, and I will simply buy a new device or take the time to learn how to reflash through a JTAG interface, or both. (Actually, the JTAG would be my preferred option. I've done SOME work with JTAGs before, but didn't understand what I was doing at the time. Thank God for written language, the internet and smarter people than myself!)
I have some questions before I go blowing stuff up, though...
I want to compile Android from source (after making some adjustments, of course!) and flash it to my device. Per the google docs, fastboot makes that pretty easy to do, but per the dozen or so threads on XDA that I've read about fastboot on a SGP5, fastboot isn't available and I'll need to use someone elses stuff to make it work (eg, the great works of Cyanogen).
My question is:
Is it possible to put vanilla AOSP on an SGP5? Is it "possible" like it's "possible" to go to the moon (eg, I'll be reverse engineering the GPU/WIFI/etc hardware and writing drivers for them from scratch?)
Obviously Cyanogen and others have figured it out, and that probably means I could start with his work, but there's a ton of stuff on his github account and none of it speaks about my device specifically.
tl;dr
Basically, if I want to build my own super-minimal Android 2.3.5 distro that will run on a SGP5, whose branch of AOSP am I looking for?
Also, if I did manage to figure out the JTAG interface, I could, say, flash the engineering bootloader to the device and use fastboot, right? Is there another way to achieve this/remove all traces of Samsung?
Thanks!

Categories

Resources