I'd like to start a thread for ROM tools, such as extracting the bootimg file.
There are a bunch of ROMs but not enough consolidated guides and tools for such.
You also can't find detailed relationships between APKs and their functionality, which drives me nuts.
Good idea.
Sent from my panty-dropper.
Great idea. I've found
Droidexplorer and regawMOD zipsigner
Looking for the links now or u can Google it
From a galaxy far far away...
Let's set our standards and provide easy access for talented developers whom may not even have time for trial and error!
I've got some great changes I'm slowly making on top of Myn's 2.2
I'm a big fan of senseless, yet I like some of the included HTC apps.
I'm primarily looking for some IMG extractors that work in windows alongside some more reliable APK signing tools. I've played around with all this but I just don't have time like I used to.
If we can just get ROM development more organized and discuss higher quality standards (such as properly modded bootimg) in all ROMs, I'd be ecstatic.
It's sad when you have a custom ROM and a factory reset ruins much of it.
So here's what I'd like to see and am willing to contribute to:
- Ubuntu VM for Android ROM Dev
- APK Signing Tools for Windows that actually work
- bootimg extractors & packers for windows
- List of APKs and detail relationships between one another alongside functionality
We can take advantage of the Wiki for much of this such as the lists.
dsixda's HTC Android Kitchen
Boot Animation replacer
Avabox
Autosign
OpenRUU
Koush Any Kernel
IncredibleDoes Flash Patch
RegawMod Zip Signer
RegawMOD Zip Maker
Create a flashable update.zip to add several .apks at once to your favorite rom.
RegawMOD Script Editor
Specifically made for Omegasun's script. May work with other scripts. Handy none the less.
APK Manager
Allows easy editing of .apk files.
Theme Porter
Pull a theme from just about any ROM and apply to to just about any other ROM.
Some of those might be geared more towards other sections and not necessarily development, but I have found them helpful and feel the need to share them.
dwertz said:
Boot Animation replacer
Avabox
Autosign
OpenRUU
Koush Any Kernel
IncredibleDoes Flash Patch
RegawMod Zip Signer
Click to expand...
Click to collapse
Looks like you pasted the OpenRUU URL for both OpenRUU and Koush Any Kernel.
Looks like you pasted the OpenRUU URL for both OpenRUU and Koush Any Kernel.
Click to expand...
Click to collapse
HAHA I fixed it. I hate when that happens
I am currently working on a custom rom but I can't get the init.d start up scripts to rewrite the values of certain files and do the thing I want them to do. Anyone have any ideas why?
Sent from my SGH-T839 using XDA Premium App
Busybox? Ask dev.
Depending on which files you are trying to overwrite, it may be writing them before the system sets their values.
if this is the problem any ideas on how i can overwrite the system values AFTER the system sets the values?
i'm currently using the 01insert_file_name_here - 98insert_file_name_here
method and i have it set to 98 so that means that the system should be writing those values last which should mean the values would be overwritten like i wanted but yet NONE of the init.d scripts are running.
hmmm.....
Which kernel are you using?
your kernel from glorious overdose that you said i could use haha
i even also tried switching to a kg2 stock deodex base and doing the same mods and the same result happened.....
i thought that the #filename method in the system/etc/init.d folder was the method used for running startup scripts.....i also gave the ect/init.d folder rwx-rwx-rwx permissions (0777) in the updater-script yet nothing.....
it should be etc/init.d, not sure if you had a typo in your post, or if you're using the wrong folder? I know that init.d scripts work on the KJ2 kernel I made.
sduvick said:
it should be etc/init.d, not sure if you had a typo in your post, or if you're using the wrong folder? I know that init.d scripts work on the KJ2 kernel I made.
Click to expand...
Click to collapse
yeah its the right folder
but does the script have to be named:
98test
or
S98test ?
b/c i noticed in glorious overdoes you put a capital s infront of the script's number and name.....in some other roms though they just use the # then name without the s
-x]Trunks[x- said:
yeah its the right folder
but does the script have to be named:
98test
or
S98test ?
b/c i noticed in glorious overdoes you put a capital s infront of the script's number and name.....in some other roms though they just use the # then name without the s
Click to expand...
Click to collapse
it seems galaxy s phones need the script to start with "S" followed by a number between 01-98 then a file name.....so the 2nd option I posted is correct.
but yet even with using your kernel i can't get the script to set the values i'd like it to for the rom i'm working on.....here's the script i have made (don't worry those who have work that is contributed to that file will be credited when i post the rom w/ this working script)
i've been trying for almost a week with different people's "solutions" yet none work
rom base: kj2 deodex w/ root
modem: kj2
kernel: glorious overdose 2 kernel
hopefully you can figure out the problem
Building Your Own ROM
This took forever. Please hit the thanks button if this helped you lol
I'm the Developer who's currently working on Delta ROM, and I developed Vengeance ROM all the way through Version 3.2. I've had MANY people message me asking how they can develop their own ROM, so, instead of helping everyone individually, I've decided to make a guide for the whole community to use. The preliminary part of this guide will take you through getting a base using two methods, giving your ROM it's own name, debloating your ROM, adding the kernel of your choice, and editing build.prop and adding init.d tweaks.
Future posts will include everything from adding Aroma Installer to adding mods.
So with that, let's begin.
Building A Base
Building from a stock, rooted, de-odexed base WITHOUT the kitchen (recommended):
Downloading and moving the Base
This is how I create my ROMs. Other developers along with myself have found that Dsixda's android kitchen can create issues with your ROM (namely the updater-script), so building from an already existing base is always the safest in my opinion.
First, we will need to get a base. There are many different versions out there, however, they almost are all the exact same. I use Scrosler's base for my ROMs. You can find his base, along with the stock Modem, RPM, and kernel with custom boot animation support here.
Download Scott's base, and extract the files within the ZIP archive somewhere on your computer. I recommend creating a development directory somewhere on your computer.
I work on Mac OS X, so my development directory is in my home folder under /dev.
In Windows, this sample directory would be in C:\\Users\YourName\Dev
Linux is similar to OS X. I recommend placing your Development directory in ~/Dev (~/ is your home folder's directory)
Of course, you can place these files wherever you want this is just how I have my computer set up.
_________________________________________________________________________________________________________________________
Building a base WITH the kitchen (not recommended due to incompatibilities and time consumption):
Downloading and Installing the Kitchen
This will teach you how to create a base of your own using Samsung's ODIN file and Dsixda's Kitchen.
First of all, you must download Dsixda's Kitchen. Luckily, the Verizon S3 is supported by the kitchen, so BUILDING your base using the kitchen is practically painless. Getting the kitchen running is difficult at times, and you may run into issues later. If you want to evade these issues, I suggest building your ROM from an already existing base. If you don't want to do that, keep reading . The kitchen can be downloaded from here. Just click on the latest version, and press the button with the cloud and the word "ZIP" to download the repo as a zip file. Keep that somewhere on your computer...
Setting up the kitchen is a different story. It's relatively easy on Mac and Linux, but because the kitchen is designed to run in UNIX environments, it's a little bit tougher on Windows. You can find a guide for setting up the kitchen here.
Adding The Odin Files for the Kitchen To Compile
The next step to compiling a base using the kitchen is to take Samsung's files, and add them to the kitchen folder. This is pretty simple. Download the VRBLK3 Stock ODIN from here (thanks open1your1eyes0).
Extract the files to the original_update folder in your kitchen folder.
Building Using the Kitchen
Finally, we're ready to build your base using the kitchen. Start the kitchen by navigating to your kitchen folder in terminal (or command prompt through Cygwin on Windows), and typing "./menu" on mac and linux, or just typing "menu" on Windows.
Option 1 within the kitchen should compile a base ROM for you. You can then root, deodex, zipalign, and change the name of your ROM, and much more, from within the kitchen.
When you're done, option 99 will compile your ROM and move a ZIP file to your OUTPUT_ZIP folder within your kitchen folder.
_________________________________________________________________________________________________________________________
Renaming your ROM
Renaming your ROM is very simple. After building your base, unzip the files and navigate to /system/build.prop. In the build prop, find the line that says "ro.build.display.id=". Replace the rest of the text on this line with your desired name. Save your build.prop. Thats it
Debloating Your ROM
Debloating your ROM is fairly simple as well. The list of removable Apps on the S3 can be found here (thanks to whoever made this, you are a god lol). This is a list for the international version of the S3, but most of the files are the same and MOST Verizon Apps can be removed as well.
Just delete the apks that you want to remove from your /system/app folder within your ROM files.
Init.d Tweaks
Init.d tweaks are scripts that allow your ROM to execute certain actions upon boot. For example, in my Delta ROM, I have an init.d tweak that zipaligns all apks upon boot.
While this guide won't cover creating your own init.d tweaks, adding them is simple. Take the init.d script that you find somewhere online, and simply drop it into your /system/etc/init.d folder. That's all.
Be aware that a lot of people make claims for their tweaks like "best RAM management tweaks" whn posing the tweaks in another device forum. For example, if you found a thread with the "best RAM management tweaks" in the Galaxy S forums, those tweaks are probably not good for our device since we have more available RAM than they do. Overall, it's best to DO YOUR RESEARCH and design your own scripts.
Build.prop Tweaks
Build.prop tweaks are lines added to your build.prop file within /system. They can do many things, and many of them improve performance and battery life on your ROM. A simple list of build.prop tweaks can be found here (Thanks for the new link, upndwn4par). Please note that not all build.prop tweaks out there will work for your device. Just add the lines that you want to add to the BOTTOM of your build.prop file, and save it.
Adding a Custom Kernel
When I first started building ROMs, one of the things that I couldn't figure out was how to add a custom kernel to my ROM. It's actually very simple. Find the kernel you want, download it, extract the zip file, and copy it's files into your ROM in the right locations. For example, you would replace the boot.img in your ROM with the boot.img from your custom kernel, and you would replace the modules in your /system/lib/modules folder with the module files from the kernel. Continue doing this until all of the kernels files are in your ROM. However, NEVER copy over the META-INF folder.
Flashing Your ROM
This is pretty simple. Simply compress your ROM files (boot.img, system folder, Meta-inf folder, and anything else) into a regular ZIP file, move the ZIP to your phone, boot into recovery, wipe data, cache, and dalvik cache, and flash your ROM.
If you did everything right, you should now be running your ROM Hopefully my guide helped you. Feel free to message me if you run into any issues or just have any general questions.
There is much more to development than just this. But this is meant to get you guys started
KANGING
Do NOT, I repeat DO NOT, take anything from another developer's ROM without his/her permission. This is called kanging, and it is extremely frowned upon and even rude because another Dev has spent A LOT of time slaving over the work, and then you take it and use it as your own. I can't speak for other Devs, but if you want something from my ROM, just ask. I'm a pretty open-minded guy, and chances are that I'm gonna say yes.
Credit
Always give credit where credit is due. If a developer helped you out in any way with your ROM, it is always courteous to include them in the credits section of your ROM.
Thanks guys
reserved
this is mine too
Re: [GUIDE] Edgehood's All Inclusive ROM Making Guide
First
Thanks I think I'll give it a go.. the best Rom is your own I suppose. .when your adding in some of your init.d when do find weather they will work properly? Is there a program to run your rom on with windows pc or ubuntu before flashing perhaps?
I would like to get Reim's builds props and such(with all do respect)
Nice!!! Thanks for this. You da man!
Sent from my SCH-I535 using xda premium
Edgehood said:
Building Your Own ROM
This took forever. Please hit the thanks button if this helped you lol
I'm the Developer who's currently working on Delta ROM, and I developed Vengeance ROM all the way through Version 3.2. I've had MANY people message me asking how they can develop their own ROM, so, instead of helping everyone individually, I've decided to make a guide for the whole community to use. The preliminary part of this guide will take you through getting a base using two methods, giving your ROM it's own name, debloating your ROM, adding the kernel of your choice, and editing build.prop and adding init.d tweaks.
Future posts will include everything from adding Aroma Installer to adding mods.
So with that, let's begin.
Building A Base
Building from a stock, rooted, de-odexed base WITHOUT the kitchen (recommended):
Downloading and moving the Base
This is how I create my ROMs. Other developers along with myself have found that Dsixda's android kitchen can create issues with your ROM, so building from an already existing base is always the safest in my opinion.
First, we will need to get a base. There are many different versions out there, however, they almost are all the exact same. I use beanstown106's base for my ROMs. You can find his base, along with the stock Modem, RPM, and kernel with custom boot animation support here.
Download Bean's base, and extract the files within the ZIP archive somewhere on your computer. I recommend creating a development directory somewhere on your computer.
I work on Mac OS X, so my development directory is in my home folder under /dev.
In Windows, this sample directory would be in C:\\Users\YourName\Dev
Linux is similar to OS X. I recommend placing your Development directory in ~/Dev (~/ is your home folder's directory)
Of course, you can place these files wherever you want this is just how I have my computer set up.
_________________________________________________________________________________________________________________________
Building a base WITH the kitchen (not recommended due to incompatibilities and time consumption):
Downloading and Installing the Kitchen
This will teach you how to create a base of your own using Samsung's ODIN file and Dsixda's Kitchen.
First of all, you must download Dsixda's Kitchen. Luckily, the Verizon S3 is supported by the kitchen, so BUILDING your base using the kitchen is practically painless. Getting the kitchen running is difficult at times, and you may run into issues later. If you want to evade these issues, I suggest building your ROM from an already existing base. If you don't want to do that, keep reading . The kitchen can be downloaded from here. Just click on the latest version, and press the button with the cloud and the word "ZIP" to download the repo as a zip file. Keep that somewhere on your computer...
Setting up the kitchen is a different story. It's relatively easy on Mac and Linux, but because the kitchen is designed to run in UNIX environments, it's a little bit tougher on Windows. You can find a guide for setting up the kitchen here.
Adding The Odin Files for the Kitchen To Compile
The next step to compiling a base using the kitchen is to take Samsung's files, and add them to the kitchen folder. This is pretty simple. Download the VRBLK3 Stock ODIN from here (thanks open1your1eyes0).
Extract the files to the original_update folder in your kitchen folder.
Building Using the Kitchen
Finally, we're ready to build your base using the kitchen. Start the kitchen by navigating to your kitchen folder in terminal (or command prompt through Cygwin on Windows), and typing "./menu" on mac and linux, or just typing "menu" on Windows.
Option 1 within the kitchen should compile a base ROM for you. You can then root, deodex, zipalign, and change the name of your ROM, and much more, from within the kitchen.
When you're done, option 99 will compile your ROM and move a ZIP file to your OUTPUT_ZIP folder within your kitchen folder.
_________________________________________________________________________________________________________________________
Renaming your ROM
Renaming your ROM is very simple. After building your base, unzip the files and navigate to /system/build.prop. In the build prop, find the line that says "ro.build.display.id=". Replace the rest of the text on this line with your desired name. Save your build.prop. Thats it
Debloating Your ROM
Debloating your ROM is fairly simple as well. The list of removable Apps on the S3 can be found here (thanks to whoever made this, you are a god lol). This is a list for the international version of the S3, but most of the files are the same and MOST Verizon Apps can be removed as well.
Just delete the apks that you want to remove from your /system/app folder within your ROM files.
Init.d Tweaks
Init.d tweaks are scripts that allow your ROM to execute certain actions upon boot. For example, in my Delta ROM, I have an init.d tweak that zipaligns all apks upon boot.
While this guide won't cover creating your own init.d tweaks, adding them is simple. Take the init.d script that you find somewhere online, and simply drop it into your /system/etc/init.d folder. That's all.
Be aware that a lot of people make claims for their tweaks like "best RAM management tweaks" whn posing the tweaks in another device forum. For example, if you found a thread with the "best RAM management tweaks" in the Galaxy S forums, those tweaks are probably not good for our device since we have more available RAM than they do. Overall, it's best to DO YOUR RESEARCH and design your own scripts.
Build.prop Tweaks
Build.prop tweaks are lines added to your build.prop file within /system. They can do many things, and many of them improve performance and battery life on your ROM. A simple list of build.prop tweaks can be found here. Just add the lines that you want to add to the BOTTOM of your build.prop file, and save it.
Adding a Custom Kernel
When I first started building ROMs, one of the things that I couldn't figure out was how to add a custom kernel to my ROM. It's actually very simple. Find the kernel you want, download it, extract the zip file, and copy it's files into your ROM in the right locations. For example, you would replace the boot.img in your ROM with the boot.img from your custom kernel, and you would replace the modules in your /system/lib/modules folder with the module files from the kernel. Continue doing this until all of the kernels files are in your ROM.
Flashing Your ROM
This is pretty simple. Simply compress your ROM files (boot.img, system folder, Meta-inf folder, and anything else) into a regular ZIP file, move the ZIP to your phone, boot into recovery, wipe data, cache, and dalvik cache, and flash your ROM.
If you did everything right, you should now be running your ROM Hopefully my guide helped you. Feel free to message me if you run into any issues or just have any general questions.
There is much more to development than just this. But this is meant to get you guys started
KANGING
Do NOT, I repeat DO NOT, take anything from another developer's ROM without his/her permission. This is called kanging, and it is extremely frowned upon and even rude because another Dev has spent A LOT of time slaving over the work, and then you take it and use it as your own. I can't speak for other Devs, but if you want something from my ROM, just ask. I'm a pretty open-minded guy, and chances are that I'm gonna say yes.
Credit
Always give credit where credit is due. If a developer helped you out in any way with your ROM, it is always courteous to include them in the credits section of your ROM.
Thanks guys
Click to expand...
Click to collapse
you make it look easy. lol nice job. someday possibly. someday....
Thanks for this Edge. I'm gonna try and build my own rom now thanks to you. I really appreciate all the guides. Keep them coming when u get a chance.
Sent from my SCH-I535 using xda premium
Fantastic work,thanks
how do you open the build.prop file?
You sure we should use that link for build props as reference? Seems like a lot of bad reviews fir only 2 pages.
Sent from my SCH-I535 using Tapatalk 2
These threads are always great to encourage people to get involved. Nice work!
Sent from my SCH-I535 using Xparent ICS Tapatalk 2
Nice guide. These are always great to get people started.
Though I must disagree with your comments on using the kitchen for a few reasons.
1) There are no compatibility problems that I have experienced.
2) It is not time consuming. It actually saves a lot of time. For example, if you have a decent PC you can:
a) Deodex a ROM in about 5 minutes.
b) Zipalign every apk in about 30 seconds.
c) Add init.d support, root, and buybox in about 2 minutes.
3) The kitchen builds ROMs, it does not compile them.
Also, most of the build.prop tweaks in the reference you linked (and just about every guide you can find) are bogus. Most have been completely debunked. Also, any tweak with a "mot" in it is strictly for Motorola devices.
Jeff Mixon article on build.prop tweaks.
upndwn4par said:
Nice guide. These are always great to get people started.
Though I must disagree with your comments on using the kitchen for a few reasons.
1) There are no compatibility problems that I have experienced.
2) It is not time consuming. It actually saves a lot of time. For example, if you have a decent PC you can:
a) Deodex a ROM in about 5 minutes.
b) Zipalign every apk in about 30 seconds.
c) Add init.d support, root, and buybox in about 2 minutes.
3) The kitchen builds ROMs, it does not compile them.
Also, most of the build.prop tweaks in the reference you linked (and just about every guide you can find) are bogus. Most have been completely debunked. Also, any tweak with a "mot" in it is strictly for Motorola devices.
Jeff Mixon article on build.prop tweaks.
Click to expand...
Click to collapse
I've experienced a few issues when building with the kitchen. For example, the ROM wouldn't flash after cooking it because it said there was no MD5.
The kitchen does save time once you get it set up. However, its much faster to download a 700-800mb base and move it into a folder than download >1GB ODIN file and get the kitchen set up correctly. Especially if you have to set up Cygwin or a VM if you're on windows. I agree with you that with a good PC, the kitchen will build a ROM fast. But not everyone (including myself lol) has a PC that can build them that fast.
It is completely a matter of preference though. I prefer to build my ROMs from a base, but you prefer to use the kitchen. After all, that's why I included both methods in the guide
I'll look at the build.prop thing, I might've posted the wrong link. I was exhausted lol
Thanks,
Edge
EDIT: I changed the build.prop link to the article you posted. Thanks man
awesome.. will give it a shot when I have some time
thank you
I assume this is for building when one doesn't want to change any other files than the ones you mention. But if I want to alter something, say, on the notification bar, I would need instructions on what files to alter and, if relevant, how to compile my changes into a binary that can then be included in the ROM. This is a good start so thank you.
thornev said:
I assume this is for building when one doesn't want to change any other files than the ones you mention. But if I want to alter something, say, on the notification bar, I would need instructions on what files to alter and, if relevant, how to compile my changes into a binary that can then be included in the ROM. This is a good start so thank you.
Click to expand...
Click to collapse
Correct. It says that there is more to developing and that this should get you started
Nice and quick guide! Good job! It really is simple stuff once you get familiar w/ files and all.
HaVoK C89 said:
Nice and quick guide! Good job! It really is simple stuff once you get familiar w/ files and all.
Click to expand...
Click to collapse
Thanks!
Nice work