[Verizon Samsung Galaxy S III] Edgehood:
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 :P. 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 :)​