I want to build a Rom! Need direction... - Samsung Infuse 4G

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

Related

Hello Gentlemen - Building a ROM? where to start..

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

Mac Users&Android

Recently I've been trying to teach myself how to develop for our phone, but I'm using a Mac. I have a Windows Partition, and can run Windows on my Mac, but it's a pain to have to restart just to use a single program for whatever it is that I need done. So I've done some research and thought it would be nice to share all the programs that I've found that help in Android Development.
It would also be nice if other Mac Users would share what they have found as well or what they use when trying to accomplish certain tasks when working with android. So here goes:
--Android SDK--
This is rather obvious…that being said you can download this from android.com. However, if you chose to install Eclipse I find installing the SDK from Android to be rather Redundant, if you agree go on and read the part about Eclipse.
--Wine/MacPorts/xCode--
First, sometimes it's useful to use Windows programs on Mac, and an one quick way to do that without having to reboot is with Wine. It takes a while to set up, but it is useful for running MOST executables. The last two programs you install as part of the tutorial, so follow on:
So here is the website I used to set up Wine: http://www.davidbaumgold.com/tutorials/wine-mac/
All of his instructions are accurate excluding where he talks about installing xCode. It is OK to install xCode through the App Store, all you have to do afterwards is install Command Line Tools. To do this:
1. Open xCode
2. Open Preferences (cmd+,)
3. Click the Downloads tab
4. Use the link to create an Apple Dev account
5. Click Command Line Tools
Now you can continue to follow the rest of the Tutorial
--Eclipse--
This program is useful for creating Android Applications on your phone. If you choose to install Eclipse I would follow this guide once you're done. I realize it is for creating Android Applications but it also explains how to set up a working environment.
So here is the website I used to set up Eclipse: http://www.vogella.de/articles/Android/article.html
I would start at section 5.1
Also Eclipse can be used for compiling .9.png files…I found a good tutorial for this on XDA: http://forum.xda-developers.com/showthread.php?t=487001
Go hit damnitpud's thank meter if you find his thread useful
--APK Manager--
I found this tool extremely useful for pulling APK's and pushing them to your phone. This app can be used for Themeing apks, or editing the XML files.
I found this application on XDA as well: http://forum.xda-developers.com/showthread.php?t=1285130
Go hit s0niq3's thanks button, maybe it'll convince her that people actually care about her program.
--android-utility or AU--
This little program looks to be extremely useful, I found it while searching for a way to compile .9.png files without having to use Eclipse. But it also has a host of other applications and uses. Make sure you read the thread thoroughly and follow all instructions.
I found this application on XDA as well: http://forum.xda-developers.com/showthread.php?t=1167623
Go hit tommytomatoe's thanks button as well, he gave us a marvelous little program. There is also a version for windows now, well at least part of it.
[For windows, and Linux Users: http://forum.xda-developers.com/showthread.php?t=1272513]
Go hit kakomalo's thanks button
If you download the version 1.0.1 and you try to compile a .9.png file, and you receive an error telling you that aapt is missing, all you have to do is drag and drop the aapt from the Android SDK into /android-utility/utility/
--xUlitimate--
I'm not sure if this one is worth mentioning for Mac, but it would be kinda cool if someone figured out how to get this to work with Wine…so here it is:
So here is its link: http://www.droidforums.net/forum/xeudoxus/47283-release-xultimate.html
This one has some theme tools. I found it specifically for the Draw9Patch Compiler, but I could not get it to work nicely with wine.
--Gimp--
This one is well known, so I don't think it needs much explanation…but it is image editing software.
Here is the download link if you don't already have it: http://gimp.lisanet.de/Website/Download.html
---Finally
After spending hours searching, downloading, and finding out what works I thought I would share to save someone else the expense of having to go through the trial and error. I would love it if other Mac Users, or any one else would share their knowledge on programs they use when working with Android; to theme, compile ROMs, or any other activity related to Android while pertaining to Mac.
Also, if you mess up your computer while doing this it is your own responsibility
Don't know why you haven't got any thanks for this, here's one from me for a very detailed and informative post. I am not a Mac user but thanks for your contribution.
Well I guess I just gave you your first thanks!
This post should be a little useful for Mac users... especially those that don't understand Unix.
Developing on Mac can be very similar to developing on Linux. Mac is just slightly more GUI oriented. Unix commands are the same, though.
So Linux users could use this guide as well!
EDIT: After I posted... I noticed 4 more users had thanked you as well... o-o that was fast
Haha oh thanks guys! After the first couple of days I thought my thread was going to get swallowed up. I'm starting to think that Mac Users are rare amongst Android developers. I do realize that other Unix OSs like Ubuntu are favored more, but sometimes it's a pain to run these back and forth. I've even tried to VM UBUNTU, but I had a problem getting the USB to interface with the program, whether it was how I sent it up, or the program itself I have no idea. So I went out looking for alternatives. There is always triple booting I suppose.
Sent from my SAMSUNG-SGH-I727
I'm use a Mac at my office, and not by choice. Thank you for this extremely helpful post!
Great guide for anyone who is looking to start developing for Android. Better yet, for people who need to get the jist of what is going on in UNIX!

Chroot ubuntu on android device - brainstorm

Okay so basically, if you check out www.androlinux.com or search for youtube for ZedoMax, the guy has hacked ubuntu onto android.
I followed his instructions to a point, had to use rootstock to create a lucid kernel though (for lts). He provides four scripts, another file and an .IMG - I made mine.
Basically, documentation issues + a linux noob mean I cant find all the files it created on my phone, kill em all, and try again.
If somebody could take a look at the scripts and let me know what they think, I would be wholly appreciative!!
Also if anyone knows of a workaround to viewing the GUI over vnc thatd be awesome too!
Ps I know of the official version.. Thats not the solution im looking for.. As you can run apps directly in ubuntu im thinking of an interface app for it but thats another days tasking.
Sent from my LT18i using XDA
Some of the ported games use SDL for the Interface, maybe that is a way?
I'll bear this in mind - my Coursework atm is modding IOQuake3 Thanks dude

Question for Development

So is it easy as just editing XML files to Mod? For example media_profiles.xml has a bunch of camera related variables. If I just change those and reboot, is that going to change anything? I know it could screw up my phone, but I am going for tips and tricks on how to mess with Android.
I know how to code, and would like someone to maybe point me to a guide.
Thanks
When I say know how to code. I mean I know xml and SQL....some Java. Was going to see what I could do with Android and maybe help community if I can learn.
Thanks
Depends on what you're trying to do. You can modify the ROM's apk's by deodexing and extracting. Depending on what you want to do, you can either modify whatever xml files or jpegs or whatnot that are inside, or if the task requires it, decompile, mod and recompile the code with smali/baksmali. A program called apk manager is also pretty handy for modifying apks. You can modify certain aspects of the rom with simple shell scripts, like you would on any regular linux installation. And then there's system development that will require you to learn C. If you want to get into that sort of thing, there's a guide on http://developer.android.com that goes over how to grab the android source and compile it. You could try poking around the CM9 code for an example too, even better if you have a device to flash it to.
Actually, there's a pretty decent how-to-get-started guide written by an awesome chap in the Captivate forum:
http://forum.xda-developers.com/showthread.php?t=928955

Looking for help on porting .. I think? crDroid specific (Wallpaper won't set)

I've been using crDroid for a few years now -- it's my preferred ROM.
Someone recently ported it to work on the Pixel 2 XL, which is honestly the only reason I bought the phone. Well that and its bootloader was easily unlockable and is CDMA capable (Verizon.. sigh.)
However, regardless of how one goes about doing it, the wallpaper won't change. It's a bug within the ROM and I'm wondering how I might be able to fix it myself without having to wait for the original poster to release an update -- I've got a lot of free time and this kind of stuff genuinely interests me.
I've got (albeit basic) experience with python, perl, batch and shell scripting, pretty limited knowledge with C++ but am familiar with system architectures and such though have no knowledge of using java or porting apps, that kind of thing. I'm thinking this issue is just a problem with how the wallpaper's linked when selected.. or just a simple permission issue.
I've gone through the process of extracting the payload.bin and the image files within, looked through a few files and their contents (specifically for *wall*) but don't see anything promising. Anyone have any ideas who might be able to help a newbie with this stuff? I see a lot of posts on how to extract apk contents and recompile, that sort of thing. But I'm .. honestly not sure what I'm looking for, or whether it's an app-specific issue or a system issue, you know?
Kudos in advance.

Categories

Resources