Plugin Repo (Donate Version) - SuperR Kitchen

The donate version has plugin support. This means you can integrate your own script into the kitchen. Each plugin must have its own directory inside the kitchen plugin directory, and it must be named the same as the plugin script.
The first "example" is the directory, the second "example" is the script. You can check the example plugin in the kitchen for more details and use it as a template for your own plugin.
There are 3 variables set in the example plugin to take note of:
base = /path/to/kitchen
romdir = /path/to/kitchen/superr_projectname
plugdir = /path/to/kitchen/tools/plugins/pluginname
SuperR's Kitchen Plugin Repo
Installation: Open the Plugin Manager
Choose Install a Plugin
Choose the plugin you want to install
Choose Run a Plugin
Choose the Plugin you want to run
NOTE: The usage instructions in each plugin description below assume you have already installed it. When the instructions end, that's when you run the plugin from the plugin manager.
NOTE2: If you would like to contribute a plugin, please PM a link to the plugin for review.
SuperR Maintained Plugins:
** Old Bash plugins can be found here **
Add/Remove Files
by #SuperR.
Add all apk files from a directory
Choose apk to import
Choose directory structure to import
Delete files from your ROM based on directory structure
NOTE: To use "Choose directory structure to import" and "Delete files from your ROM based on directory structure", your directory must be set up as the following example:
The above is only an example. You can add anything you want as long as there is a "system" directory inside another directory. When choosing the directory, choose your_directory_name instead of system or it won't work. Think of the directory structure exactly like the kitchen ROM directory. When you import directory structure, your directory will be copied into your ROM directory and files will be overwritten if they already exist. When you remove a directory structure, you will choose your_directory_name again and the plugin will remove the same files it finds from your ROM directory.
by #SuperR.
Choose an apk from your current rom directory.
Decompile the apk.
Build apk.
Sign apk with 3 options (use signapk.jar, copy original META-INF to new apk, or copy new classes.dex and resources.arsc to original apk).
Move apk back to where it came from.
Aroma Install
by #SuperR.
Install Aroma in your existing ROM.
Create aroma-config using a menu.
Choose apk files to add to the option menu.
Usage:Extract your ROM normally using ONLY set_metadata or set_perm.
Download the Aroma Installer of your choice from this link into /plugins/aroma_install directory (DO NOT EXTRACT OR RENAME)
AutoROM Config
by #SuperR.
Creates an AutoROM config file to automate the extraction process and many other tasks.
Currently supports perm type, vendor.img, rom name, custom signature, deodexing, root, su.d, and Busybox
Carliv Image Kitchen (Linux only, not in Plugin Manager)
by #carliv
Copies boot.img or recovery.img from current rom directory to the plugin directory
Runs Carliv Image Kitchen with those those images in the correct place
If unpacking, the unpacked ramdisk will be copied to the rom directory where you can modify it with the kitchen
If repacking, the ramdisk will be copied back over to the plugin directory, the original image will be backed up in the 00_project_files directory, and the new image will replace the old in the rom directory.
More info and downloads can be found in the original thread here.
Usage:Download the correct version of Carliv Image Kitchen for your pc at the link above.
Extract it into the plugin directory so both files, carliv and CarlivImageKitchen, are in the main plugin directory.
Place a boot.img or recovery.img in your rom directory.
In the kitchen main menu, choose Misc Tools > Run a plugin > CarlivImageKitchen
Use the menu to navigate to the image you are working with and unpack it.
Return to the kitchen by exiting Carliv Image Kitchen (Q to main menu, then E to exit)
Do what you want in the kitchen to the ramdisk using the boot/recovery tools menu.
Run the plugin again and choose repack and exit out again.
Now your new image is in the rom directory ready to go
Gapps Installer
by #SuperR.
WARNING: I have no idea if gapps will flash properly. I have not tested the actual flashing. Let me know how it goes if you are brave enough to try it
Download and include Open Gapps with your ROM.
Choice of aroma, super, stock, full, mini, micro, nano, or pico
Detects Android version and architecture from ROM to download the latest available version for your device.
If there is no ROM, it will allow you to choose Android version and architecture.
Remove gapps if it already exists.
Magisk Mod Installer
by #SuperR.
Add Magisk Mod to your rom
Remove Magisk Mod if it already exists.
Mods Install
by #SuperR.
Add any flashable zip to your ROM that uses an update-binary script instead of a updater-script
Remove mods
Shows the kitchen added mods you currently have installed
Partition Zip
by #SuperR.
Create a flashable zip of one or more image files as long as you know the partition name where it should be flashed.
Usage:Copy the partition images you want in the zip into your rom directory.
In the kitchen main menu, choose Misc Tools > Run a plugin > partition_zip
Choose a partition img from the list.
For by-name devices, type the partition name from your device where it should be flashed (ex. aboot)
For mmcblk devices, choose your block from the list (add it to the device superr_mmc file if needed first).
picconv_tool (Linux only, not in Plugin Manager)
by #sorg
WARNING: I have absolutely no idea if this plugin will work
Pushes picconv and picconv.dex to your device.
Pushes res directory from the apkwork directory created by the apktools plugin.
Converts QMG, ASTC, etc images to PNG.
Pulls the converted images back to apkwork/out
Deletes all the new files from the device
Usage:Visit the original thread to download the newest version of the tool (be sure to thank #sorg while you are there).
Copy the zip into the picconv_tool plugin directory.
Run apktools plugin to decompile an apk
NOTE: If you try the plugin while connected to Android and it does not work, try again while connected to your custom recovery.
RUU Decryption Tool
by #Captain_Throwback and #nkk71
Decrypt ruu.exe and files stored in your current rom directory.
Extract system.img & boot.img to the current rom directory for extraction.
**This plugin can also be used as a standalone tool**
More info can be found here about the original tool.
Usage:Copy ruu.exe or to current rom directory ( must be named exactly
by #SuperR.
Asks one-by-one if you want to add ro.config.tima=0, ro.config.knox=0, ro.securestorage.knox=false,,, and wlan.wfd.hdcp=disabled to ramdisk default.prop
Usage:Unpack your boot.img
tar.md5 Create
by #SuperR.
NOTE: The plugin creates a tar.md5 file in alphabetical order. This may cause issues with some devices.Create tar.md5 from all img, mbn, ext4, and bin files in your ROM directory.
Create tar.md5 from all the above except system.img, system.img.ext4, boot.img, and recovery.img
Usage:Add images to your ROM directory
UPDATE.APP Extractor
by #SuperR.
Extract that contains UPDATE.APP
Extract system.img and boot.img from UPDATE.APP
This plugin uses splitupdate by JoeyJiao and updated by marcominetti. The source can be found here.
Usage:Place a or UPDATE.APP in your rom directory.
Xposed Systemless Installer (Linux only, not in Plugin Manager)
by #SuperR.
Add Xposed systemless to your rom
Remove Xposed systemless if it already exists.
Usage:Download the Xposed systemless zip of your choice into the xposed_systemless plugin directory.
User Contributed Plugins:



Supports these types of Roms:Stock samsung updates (tar) or (tar.md5)
Stock image files (system.img, boot.img, cache.img)
Stock sony updates (ftf)
Stock sony rom files (system.sin, kernel.sin)
Zip contents multi tar files
Zip contents ftf files
Zip contents normal system folder
Zip contents sparse_chunks like Motorola roms
System.yaffs2 with kernel
System.ext4 with kernel (converted using flashtool)
Zip contents ext4 system.img with kernel
Zip contents with transfer.list and kernel
Support remove extra header for motorola roms
Any system folder placed in work folder in the kitchen
Supports get valid rom with kernel from:Rooted/Unrooted device booted to
Device booted to custom recovery
Supports to pull symlinks from device using (ls -Rl /system) command even without root
Supports deodeox process:All version from first up to the last
All devices manufactures (Sony, samsung, lg......)
All devices architectures (arm, mips, x86)
All devices cpus (32, 64) bit
Fast and simple process with show count of apks deodexing
Supports add root SuperSU last version:All version up to last
Add root installer for CM/AOSP roms
Add root for 5.1.1/6.0.1+ in system-less or system mode with patch sepolicy
Supports these types of rom recovery installer (META-INF):Build standalone installer
Build aroma installer
Full Support for FlashFire
Compatible with all partitions (ext4, F2FS)
Support dual booting
Set correct permissions for all version
Set (set_perm) permission for version 4.2.2-
Set (set_metadata) permission for 4.3+
Detect files contexts from kernel
Set all permission for all files in file_contexts in kernel that not listed in the kitchen list
Detect all LOCAL symlinks in the rom
Detect symlinks from stock images (system.img) using (find -type l) same as linux
Detect all symlinks from updater-script for old cooked rom and fix them
Extract file_contexts automatically from boot.img or from work folder or from kernel.elf
Add efs backup for installer for samsung roms
Add script to wipe data before installing
Add script to tuning device filesystems into ext4 journal_writeback
Contents file include more than 550 symlinks for rom that doesn't content local symlinks
Supports these type of building:Normal zip contents system folder
Zip contents ext4 system.img
Zip contents with transfer.list
Sign zip file created whatever the size is big
Tar rom same as samsung official updates contents sparse image
Support sparse header 28 and 32 bit and build (img) or (ext4) extension
Detect valid system folder size automatically
Detect device system partition size from adb
Allow user to write the size in Bytes or Kbytes or Mbytes
Detect the system block path from kernel or write from user or from adb
Supports these types of debloating the rom:Remove samsung knox completely
Remove a lot of apps and folders to debloat the rom automatically
Print all rom apks to user and give choice to select an apk number to remove it (manually debloating)
Remove all samsung csc apks
Cleaning up all rom apps to remove broken apks
Support custom debloat list
Very easy to edit the original debloat/deknox menus
Supports unpacking/repacking kernels/recoveries:Support 3 methods to unpacking and repacking the kernel/recovery
Support the kernels that built using linux toolchain
Support extract ramdisk packed using (lz4, lzop, lzma, gzip, xz and bzip2)
Make adb insecure in default.prop
Add init.d support in init.rc in the kernel
Add adbd to (ramdisk/sbin) to make adb run in root mode
Remove dm-verity
Remove force-encrypt
Patch sepolicy using device
Convert kernel.elf to boot.img
Fix kernel/recovery is not SEANDROID enforcing
Supports converting between file_systems images (separate menu):Extracting files from (cache.img/hidden.img/userdata.img)
Extracting files from TWRP recovery backups
Convert between [sfs] and [img]
Convert between [dat] and [img]
Convert between [ext4] and [sprase_28_32]
Supports apktools:Apktool includes (last & 1.5.2 versions) for new and old versions
And support print all apks, jars and dexs in rom then select apk to decompile and recompile
Decompile apk, dex, jar files automatically
Signing selected apks with install sources framework apks
Supports these extra features:busybox last version
Sqlite version 3
sysro and sysrw to mount system read,write during adb connection
Custom bootanimation for all versions
A lot of build.prop tweaks and some init.d tweaks
init.d support in rom itself without kernel
Add su.d support
Add custom zips to install with the rom in the recovery like (busybox, xposed......etc)
Change build number as the user wants
Add personal info in installer (Aroma and stanalone)
Add changelog.txt and license.txt in aroma installer
Push ready roms to the phone to external or internal storage
View installer information
Unlimited count of roms and projects and support save project and restore it
Design:The kitchen uses 7zip (last version) to extract ext4 images (support extract symlinks on FAT32 and NTFS)
Compiled into exe file with administrator manifest for better working
Support all windows versions and 64/32 bit
Easy usage with main menu list support
Using linux tools compiled into busybox.exe
For kernel path and the databases the kitchen supports all devices in the world
Auto detect for kernel path using shell script in recovery and flash the kernel to the correct path
This means you don't need to worry about detect the kernel block path, the kitchen will automatically detects the kernel path and flashes it to the correct path during installation
Support to update all binaries by the user
Separate menu to work with kernel/recovery without existing any project
Separate menu to work with file_systems converter without existing any project
User guide:
How to update to new version:
How to update binaries:
How to add custom debloat/deknox lists:
Releases and changelog:
VERSION 1.82 STABLE:Fixed bootloop after deodex for Nougat
Cygwin: For linux tools
AOSP: For image tools [simg2img, make_ext4fs, adb......etc]
cofface: For bootimg [kernel extractor]
And_pda: For imgextractor.exe
thomas_polaert: For cecho command
Igor Pavlov: For 7zip binary
#Jertlok: For this thread
#howellzhu: For rimg2sdat
#JustArchi: For init.d support in the rom
#iBotPeaches: For apktool
#JesusFreke: For smali & Baksmali
#_riddle: For oat2dex
#amarullz: For Aroma installer
#michfood: For kernel tools
#osm0sis: For kernel tools and Busybox
#Chainfire: For SuperSU
#xpirt: For sdat2img
#A.S._id: For this thread
Hi! I've got error "cygcc_s-1.dll is missing…" during the project creation. How to deal with it?
Download this attachment and extract it
then you will get 4 *.dll files put them in "TOOLS/bin"
folder of the kitchen directory
hope this help
I'm gonna test it.
This looks interesting. I'll have to try it out.
ca has prometeur area . is it possible to have a link other than 4shared ? please
thank you
I have created a new link to mediafire
Download here
thank you
you are the best .
I get "status 7" error when flashing
I can't even flash ext4 with odin.
Working with odin is not easy you need to know
what the extension of tar file that samsung named it "system.img.ext4" or "system.img"
and the hardest part is to know what the device sparse header 28 or 32 bit
if you want to know what the extension it is easy download any stock
tar rom for your device and look for the extension of the system file is "ext4" or "img" and select in the kitchen.
and for sparse header this need to be a developer to deal with it, however create both files 28 and 32 and test them.
the "status 7" error is not from the kitchen try to update or change you recovery.
if you want more help tell me what your device model and upload the updater-script please
Hey, Just downloaded to give this a try. I used a stock tar Rom for Sprint Note 4 and got the following error:
It unpacked it but failed to mount! Pic attached.

[GUIDE][How-to]Create your Own Custom ROM an easy way

This tutorial is specially for
Part 1: Installing the JAVA JDK, Cygwin and Setting up the Kitchen.
->Download and extract the
>Run the set up(make sure there is no previous cygwin installation)
->when it shows all the package names, go to the top and select "all default" until it changes to "all install" (you must click on the arrows)
->Download the kitchen from above. Then, extract the kitchen's .zip file to a folder under your home account. Rename the dsixda-android-kitchen-*** folder to just "kitchen". In Cygwin, this folder would depend on what was set for your Cygwin install directory, e.g. C:\cygwin\home\John\kitchen
NOTE!! If your user folder contains spaces (e.g. C:\cygwin\home\John Smith\kitchen), then the kitchen will not function properly. Instead, copy it under C:\cygwin\home\kitchen.
->Now your ready to run the kitchen type:
those who have their kitchen like this C:\cygwin\home\John\kitchen use these commands given below
those who have their kitchen like this C:\cygwin\home\kitchen use these commands given below.
Part 2:Setting up a working folder
->First our folder structure should look like this:
cygwin folder/home/your user name/kitchen
-> Inside the kitchen it should look like this:
-> Now we need a rom to work on, for KarbonnA5 users i will recommend this rom by ME only but you can use any rom.
-> Just Place the original rom zip in the original_update folder inside the kitchen.
run the cygwin.exe again type:
cd kitchen(enter)
-> Now enter option 1, enter again. You should see your rom listed, choose and enter
you will be asked about changing the working folders name, at this point it makes no difference so just continue.
congratulations you have a working folder!!!
Second METHOD -it is almost like ROM Dumping works on any device!
cygwin folder/home/your user name/kitchen/WORKING_(your rom name)
2. getting system folder
(NOTE - Rooted phone required!!)
This is universal method and can be done easily using terminal emulator.
For this simply download Terminal Emulator from Android Market.
we need freshly flashed device here. OTHERWISE YOU WILL HAVE LOT OF JUNK FILES.
Open it and type:
tar -c system/* >> sdcard/system.tar
This will copy all your /system folder to your SDcard with name System.tar
This will take some time to finish so be patient.
After it's done you should have a tar file in your /sdcard named system.tar
You can extract it using Winrar or 7zip software. But yes this will have huge size , as it has other useless folders so you will have to delete them. After extracting this system.tar file you will get following folders (Similar one)
-> Now simply delete the folders marked in red color and its done.Don't worry if you don't have folders with red colors above,we don't need them.
And the final files that we will have in our system folders will be
3. getting boot.img
Here we have 2 options
1. stock boot.img from stock rom - simple kernel which we get in brand new mobile.
2. custom boot.img from custom kernel - kernel which are modified for overclock or other features
1. getting stock boot.img from stock rom.
extract your stock rom with winrar or 7zip. you will see boot.img there. copy it to working folder
2. getting custom boot.img from custom kernel.
download any custom kernel which is only for your device.
extract it with winrar or 7zip and copy boot.img to working folder
NOTE: many of new devices have kernel.bin and other files instead of boot.img so skip this part if your device don't have it...
Part 3 :Change/modify/update rom
MODIFY USING ANDROID KITCHEN - for basic modification.
MODIFY MANUALLY. - for advanced modification.
Part-4 Theming Your ROM
Via UOT Kitchen
Deaaling with .9 pngs
Some Great and simple Guides
All things needed theming thread by theimpaler747
Theming .apk byAndrewtst
How to make "basic" theming mods + .9.png tutorial by dully79
Cooking with UOT Kitchen by Apex
[GUIDE]Theming Guide for changing system text settings(Recommended)
[TUTORIAL][ICS][GB]How to change Android's black background(By me)(recommeded)
[Tutorial]-ICS-AOKP/CM9-UPDATED-Miscellaneous MODS[Nav bar,Notification header etc](most recommeded)
MORE ADVANCE MODIFICATION (starters for beginners)
editing .apk files
This video by neroyoung teaches you how to setup APKTOOL folder as well as teaches you how to edit .apk files
2. APK Manager
this video by adgoosuc teaches you How to unpack,repack and sign an APK File with APK Manager
Editing .JAR Files
In this video by neroyoung you will get information on how to edit .jar files like services.jar using APKTOOL
How to integrate an app in settings(recommended)
Thread Junction
Few Guides
Last but the not the least: repackage the rom
now convert update script to updater script(in option 23)
now lets edit updater script(optional)
the updater-script basically tells CWM what steps to take during the installation(flashing rom).
If you don't have any experience please don't edit anything other than what is in this simple tutorial.
1.Go to META-INF/com/google/android
2.Open the updater-scrip file with Notepad++
3.Any text that would appear during the CWM install should be in this format :
ui_print("Put your text in HERE");
Add your text start at top and save,
then replace with new updater-scrip
Add New Aroma Installer to your ROMLink to Guide(By Me only)
Now that you have made some changes it's time to pack the rom and test!!
Run the cygwin and type
enter option 99 - "biuld rom from working folder"
Choose your build option and few more enters
I recommend that you go with all default options until you get more experience with the kitchen.
When rom is packed and signed it will ask to change rom zip name (type name of your rom)
When its all done you will find a folder inside "cygwin/home/yousername/kitchen" called output_zip
Inside the folder is your new rom ready to be flashed and tested!!!
congratulations you have build your own rom
If you are facing java related problem with cygwin than refer post #8
If you have a rom without kernel then remove these lines:
assert(package_extract_file("boot.img", "/tmp/boot.img"),
write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p8"),
If there is a package error then extract the files of the rom and repack them using any compression software.
If rom installed correctly but stuck onto logo screen?? Then remove try removing kernel and flashing rom again.
If rom installed correctly but got onto bootloop then there could be many possibilities which could lead to this. If you want accurate cause of it then do a logcat.
If there are some apk's which are not working then check if you correctly modded them.

Well you beat me to it,i was contemplating wether or not i should do this,hahaha,very nice,i see your not finished yet,if you need any help,pm me,i have been using the kitchen for a couple of years now.I've learned a few tricks you can do with the kitchen.
You have done that like a boss..8|
Sent from my Karbonn A5 using xda premium


Hi all,
In this thread, I will try to share the knowledge I have on deodexing, making custom ROMs, modifying initramfs, building kernel and much more.
Please check the below posts for each of these tutorials.
Hope this opens doors to many new ROM and Kernel developers.
What you need to have:
xUltimate v2.3.3 - you can download it HERE (Thanks and Credits to Xeudoxus for this awesome app)
Rooted kernel with busybox
JDK installed on your Windows system
If adb is not available in your windows PC, in xUltimate folder open "jar" folder. You'll find adb there.
Extract stock app & framework folders and Deodex:
Connect your device to computer.
Start xUltimate (double-click on Main.exe)
Select option 1. (Pull /system/app)
Once option is done, select option 2. (Pull /system/framework)
In the same folder, now you'll see two new folders (origi_app, origi_frame)
For I9100G, go to origi_app folder and delete apk and odex files of Maps, PhoneSky and VoiceSearch.
Select option 3 in Main menu (Deodex /system/app)
Once its done, select option 4 in Main menu (Deodex /system/framework)
Now you'll see two new folders done_app and done_frame.
Push deodexed app and framework to device:
Connect your device to PC in USB debugging mode.
Copy done_app and done_frame folders to root of sdcard (/sdcard).
Open Windows command prompt and type the below commands.
In Recovery, Wipe Cache and Wipe Data/Factory reset.
Now you've deodexed app and framework.
For ICS Roms, the process is quite easy. (Thanks and Credits to jaydvn.)
Download the attached zip file.
Extract it on your windows PC.
Copy your /system/app to _app folder
Copy your /system/framework to _framework folder.
Run AutoDEOToolMain.bat
Follow the instructions.
deodexed jars and apks will be found in deodexed_APK and deodexed_JAR.
Push deodexed app and framework to device:
Connect your device to PC in USB debugging mode.
Copy deodexed_APK and deodexed_JAR folders to root of sdcard (/sdcard).
Open Windows command prompt and type the below commands.
In Recovery, Wipe Cache and Wipe Data/Factory reset.
Other references:
How to deodex ICS roms by samyam2002000
Okay. Let's learn how to build kernel for our I9100G. There are many ways to build. I am just presenting here the way I build and make kernel.
NOTE 1: Follow the instructions exactly.
NOTE 2: Kernel is opensource. If you make any changes to it, you're expected to share your source. (Usually people share it over github )
What you need to have:
Ubuntu 10.04 and above (I use 10.04 )
ARM tool chain (Download HERE. Click on IA32 GNU/Linux TAR under Advanced Packages)
Samsung's opensource kernel for I9100G (Download HERE. Go to Mobile->Mobile Phone-> Select I9100G and download the zip)
Setting up toolchain:
Extract the tar you downloaded(Suggestion: Extract to one folder where you can have everything. In my case /home/superatmos/build_kernel).
After extracting, you'll see a folder named arm-2010q1. Inside there will be many folders (ex. bin, lib and so on.)
Folder structure will be: /home/<your_name>/build_kernel/arm-2010q1
Setting up kernel:
Extract the zip you've downloaded from samsung's opensource.
You'll find two zips.
Extract GT-I9100G_Kernel.tar.gz to /home/<your_name>/build_kernel/
Folder structure: /home/<your_name>/build_kernel/GT-I9100G_Kernel
Setting up initramfs:
Samsung's zImage is divided into two parts: Opensource kernel (which you downloaded from samsung's website) and initramfs (which is root file system to boot up the device).
I am providing my initramfs HERE. (You can use it as it is or modify it. But give credits to me. )
Extract the downloaded zip and copy it to /home/<your_name>/build_kernel/
Folder structure: /home/<your_name>/build_kernel/initramfs
Now the entire setup is ready. Let's start modifying kernel configuration.
Setting up kernel config:
Go to /home/<your_name>/build_kernel/GT-I9100G_Kernel/arch/arm/configs folder.
Copy t1_defconfig file and paste it in kernel root folder (/home/<your_name>/build_kernel/GT-I9100G_Kernel/).
Rename t1_defconfig to .config in kernel root folder.
Now open Makefile which is in your kernel root folder(/home/<your_name>/build_kernel/GT-I9100G_Kernel/).
Modify the below lines (I guess line 195 and 196).
Save and close.
Modifying kernel configuration:
Now open .config file(which you renamed). If its not seen, it might be hidden. Go to View->Show hidden files and there you go.
Do the below things:
Adding local version:
Change CONFIG_LOCALVERSION=" " to anything you like. I add this way:
Adding initramfs path:
You need to let kernel know the path from which it needs to take initramfs.
Change CONFIG_INITRAMFS_SOURCE=" " to ../initramfs (In this tutorial it's the path. If you had copied anywhere else, give the path properly).
Enough for now. Once you get experience, you can modify many configurations as per your liking and save. This configuration can be changed by GUI too with the command make menuconfig.
The Important part: Building the kernel:
Open terminal.
Go to path /home/<your_name>/build_kernel/GT-I9100G_Kernel/
Type make.
THAT'S ALL. YOUR zImage is ready and is available in /home/<your_name>/build_kernel/GT-I9100G_Kernel/arch/arm/boot/zImage.
Install the zImage on the device:
Go to the path where zImage is present and type the below line in command line.
Flash the tar using odin.
Other references:
Building Kernel by bedalus
How to compile your first Nexus Kernel by djjonastybe
Give me your feedback so that I can improve this tutorial. And post here about how your build went. All the best.
Let's move on to make a custom ROM.
Inputs/Feedback/Suggestions are more than welcome. Lets improve this tutorial together for the betterment of the android community.
Steps involved in making a custom ROM:
Getting the system dump from the device.
Deodexing app and framework folders.
Creating various mods by modifying framework and system files.
Modifying build.prop and adding tweaks.
Making META-INF folder and writing an updater-script (edify scripting).
Signing the ROM and making a flashable zip.
Folder Structure:
Before going forward, let's follow the below structure folder to make the tutorial more understandable.
Let our ROM name be CustomROM. The folder structure will be C:\Users\<your name>\CustomROM.
Let's move step by step. Are you ready??
<b>Getting the system dump from the device:
Make sure USB debugging is ON and connect your device to the PC.
Open command prompt on your windows PC and go to CustomROM folder path.
Type adb devices. You should be able to see the device detected. (If not check environmental variables whether adb is in system path or not. If not present, add the adb path.)
Type the below command to get the dump of system folder.
Now inside the folder CustomROM, you should be able to see system folder with many folders like app, etc, framework etc inside.
Done with first step.
<b>Deodexing app and framework folders:
Look HERE how to deodex app and framework folders. Copy the app and framework folders to xUltimate folder, rename them to origi_app and origi_frame and follow the given link to deodex.
NOTE: After deodexing, merge origi_app folder with app folder under C:\Users\<your name>\CustomROM\system\app and origi_frame with framework folder under C:\Users\<your name>\CustomROM\system\framework.
<b>Creating various mods by modifying framework and system files
Okay. This the section where your hardwork, innovation and talent comes in. You can use the mods available already, create your own mods, port various mods from other devices and so on.
Below is a list of various mods which can be ported on to I9100G. All the credits go these respective thread owners. Thanks to them.
Lidroid 14 toggle mod
Extended power menu with/without header
CRT Off Animation & SIP Over LTE/HSPA
Swipe to remove notifications
NOTE: Let me know more mods with links so that I can add here.
<b>Modifying build.prop and adding tweaks
Okay. This is one of those files where you name your ROM(to be visible in settings. ) and add many tweaks.
To name your ROM (to be visible in settings), change the below code.
Check the below links for many other tweaks. All credits go to respective thread owners. Thanks to them.
build.prop tweaks by TheFrankenstain
build.prop tweaks by dhlalit11
<b>Making META-INF folder and writing an updater-script (edify scripting)
Once you're done with all the modifications, mods and additions, its time to create META-INF folder and make the updater script. Once the user flashes the ROM zip, this is the script that runs and does everything written inside the script. PLEASE BE CAREFUL WITH THIS. TAKE REFERENCE FROM OTHER (SAME DEVICE) ROMS' UPDATER-SCRIPT. (In this case, take reference from other GT-I9100G roms.)
Check the below links for tutorial and how-to on writing edify script and making updater script. All credits go to respective owners of the threads. Thanks to them.
Edify Scripting, Making Flashable ZIPs, ZIP Signing & Key Creation
Edify Scripting Notes
How to Write an Updater-Script with Edify Code
Edify Installation Script Syntax's
NOTE: system folders path, boot/kernel partition path, modem partition path and so on are COMPLETELY DIFFERENT for DIFFERENT DEVICES. Check the partitions for your device properly, carefully and then work on updater-script. TAKE HELP OR REFERENCE FROM OTHER ROM DEVELOPERS FOR YOUR DEVICE.
Lets move on to last step. Making a signing and making a flashable zip.
<b>Signing the ROM and making a flashable zip
Make sure, now you should be able to find two folders (META-INF and system) inside C:\Users\<your name>\CustomROM.
Check in THIS thread for test signing your ROM. It WORKS with GT-I9100G. TESTED.
or Check THIS thread to create your own signing key and certificate.
Now you're done with making a custom ROM. Hope to see more custom ROMs from many users.
For porting ROMs, refer THIS tutorial. (thanks and credits to ayushrox)
Give me your feedback so that I can improve this tutorial. And post here about how your custom ROM making went. All the best.
If you don't want to modify anything else except to have root and busybox for the stock rom, Check the below link.
How to ROOT/UNROOT your I9100G via Stock Recovery (Credits: Ryuinferno)
Starting Email.odex
* Deodexing... *
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoun dException: Could not find sup
erclass Ljava/awt/Component;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loa dSuperclass(ClassPa
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<in it>(
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef (
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPat h(
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeCl assPath(ClassPath.j
at org.jf.baksmali.baksmali.disassembleDexFile(baksma
at org.jf.baksmali.main.main(
Error while loading class Lgnu/activation/viewers/ImageViewer; from file .\origi
Error while loading ClassPath class Lgnu/activation/viewers/ImageViewer;
Press any key to continue . . .
Which version of xUltimate you're using? only x2.3.3 supports GT-I9100G. Please follow the steps I mentioned above and you should be able to deodex.
ok will try that version also
Sent from my GT-I9100G using XDA App
Does this script work for ICS odexed apk's?
I am not sure about it since I never tested myself on ICS since its not yet released for I9100G.
Did you try? Were you able to deodex using this tutorial?

[LINUX][FREE] SuperR's Kitchen (v1.1.9.5 - 5-14-18)

Disclaimer: I am not responsible for anything bad that may occur from the use of this kitchen, but I will take all the credit you can give me if it works for you
Please read the usage instructions in post #3 and the troubleshooting in post #4 below before asking for help. Thanks
Standard Changelog
Donate version written in Python3 for Windows/Linux:
Dedicated thread found here
Free version written in Bash for Linux:
Open your terminal to the location where you want the kitchen to reside. Enter the following commands one by one pressing ENTER after each line.
Clone and run:
Download zips here
NOTE: You will not be able to use the kitchen updater if you download zips
Video tutorials by #chevycam94
#osm0sis - For Busybox Installer and Android Image Kitchen
#Chainfire - For SuperSU
#JesusFreke - For [Bak]smali
#nkk71 - For creating the TWRP minzip patch
#Captain_Throwback - For providing a pre-compiled update-binary with the minzip patch and squashing bugs
#_riddle - For oat2dex
#iBotPeaches - For Apktool
#AOSP - For zipalign, adb, aapt, img2simg, simg2img, make_ext4fs
#xpirt - for img2sdat
#bcrichster - For extensive testing
XDA:DevDB Information
SuperR's Kitchen, Tool/Utility for the XDA Community Apps
Version Information
Status: Stable
Created 2017-04-27
Last Updated 2018-05-14
Run "superr" from it's location in terminal
Create new project using the menu
Copy ROM zip into the superr_NAME directory of this tool (NAME = the name of your new project).
Copy system.ext4.tar and boot.img into the superr_NAME directory of this tool.
Copy and into the superr_NAME directory of this tool.
Copy system.img and boot.img into the superr_NAME directory of this tool.
Copy official Nexus tgz into the superr_NAME directory of this tool.
Copy Samsung firmware zip into the superr_NAME directory of this tool.
Copy Moto firmware zip into the superr_NAME directory of this tool.
Leave superr_NAME directory empty to extract from rooted device or custom recovery
Extract for new ROM from the Main menu.
In your terminal, type the following where "/home/user/kitchen/" is the directory where the kitchen lives:
NOTE: the above code is 2 separate commands and requires ENTER to be pressed after each command
Double-click the superr file and choose "Run in Terminal" if your OS supports it.
Add your own device support:Create a new project in the kitchen.
Add your files to the project directory (system.img/boot.img, system.ext4.tar, win, zip, etc.)
Extract for new rom from the menu
When asked how to get your partitions, choose detect by-name from boot.img. If it gives you an error, put a recovery.img in your project directory and choose detect mmc from recovery.img.
*Extract and create ROM from:Rooted Device
Custom Recovery
Existing ROM zip
system.img/boot.img (and cache.img on Samsung devices)
system.ext4.tar/boot.img (including multi-file *.win000, *.win001, etc)
Moto and other factory firmware zips containing sparsechunk files
cm12 + roms with sparse dat files
Zips that contain system.img and boot.img
Samsung firmware zips that contain tar.md5 file
Official Nexus firmware tgz
Official Nexus preview tgz
system directory that contains symlinks and boot.img
*Create flashable zips of many varieties including:Full ROM
Switch between set_perm, set_metadata (KitKat+), raw_img, and sparse_dat (Lollipop+)
Kernel (including init.d if you added it with the kitchen)
app, priv-app, and framework
*Deodex the following:N Preview ROMs
Marshmallow ROMs
Lollipop ROMs
KitKat and earlier ROMs
*Root features:Root/unroot
Choose SuperSU zip (add other versions to /tools/root/supersu directory)
Choose system OR systemless root for M+ and Samsung 5.1.1 roms
*Boot features:Unpack/repack boot/recovery img (Big Thanks to #osm0sis for mkbootimg source!!!)
Add/remove init.d support
Add/remove su.d support
Add/remove insecure boot
Remove dm-verity
Remove forceencrypt compatible (download it and add to the tools directory)
*By-name auto-detection from:Device
Existing ROM
**OR**...manually enter it
*mmcblk auto-detection from:recovery.img
*Kitchen updater:View the last 3 changelogs when an update is available.
git pull if the kitchen was cloned
wget zip and extract if kitchen zip was downloaded
Option to check for updates when the kitchen starts
*Create system.img
*Device database for mmcblk devices (currently very small, but will grow over time)
*Add devices to the assert
*Add custom asserts
*Zipalign apks
*Debloat ROM
*Custom Debloat list support
*Remove Knox
*Add/remove busybox (Big thanks to #osm0sis for his Busybox Installer)
*Add/remove user app support (/data/app)
*Sign zips
*Translatable with language files
*Donate version additional features:Cross-platform: Windows and Linux are fully supported
Does not say Built with SuperR's Kitchen in the updater-script
Does not replace with Built.with.SuperRs.Kitchen
Allows you to create a custom entry in the updater-script below the ROM name
Removes all the Place holders (#ASSERT, #SYM, #PERM, etc) from the updater-script before zipping.
Option to convert updater-script to update-binary for all rom zips EXCEPT sparse_dat.
Add custom directory to be included in and flashed with rom zip to location of your choice.
Ability to choose an apk, decompile, modify it manually, recompile, sign, and move it back to where it came from.
Plugin support - Add your own script to the /kitchen/tools/plugins directory and the kitchen will run it for you.
AutoROM - Unattended ROM development using a config file.
When asking for help, please provide as much of the following info as possible so I can help as easily as possible. I am a busy person and would prefer not to ask all of these questions every time someone has a problem. Thank you for understanding.
What Kitchen version?
What environment are you running the kitchen in (OS, 32/64-bit, cygwin, Bash on Windows, etc.)?
What device are you working on (make/model)?
What was the source you started from (system.img, system.ext4.tar,, etc.)
What Android version?
What perm method (set_perm, set_metadata, sparse_dat, raw_img)?
What did you do after extracting and before building?
Were there errors on the screen if you scroll up in the terminal?
Send a recovery.log after flashing if you have problems flashing the ROM.
Send a link that does not require registration to the files you started with (nandroid, system.img, boot.img, etc)
Use the support option in the Misc Tools menu and attach the to your post.
An Ubuntu 16.04 distro with all the things you need to get the kitchen working easily.
Visit the dedicated thread here
Language Files (translations)
English - Default/Included in the kitchen
Italian - Translated by #luigimak
Chinese - Translated by #曦颜XY
Turkish - Translated by #haqanguven
Download language files here
Once the language zip has been downloaded, extract to /kitchen/tools/language and restart the kitchen.
Does this kitchen support Windows CYGWIN?
CYGWIN is not supported and will not work properly. Try the donate kitchen for Windows and Linux.
WSL (Bash on Ubuntu on Windows)
WSL is not supported in the free kitchen and will not work properly. Try the donate kitchen for Windows and Linux.
Missing Dependencies/One or more tools could not be built.:
Paste into terminal, press enter, type your user password and press enter:
There are probably more packages here than you need, but this should cover just about everything on 64-bit Ubuntu 16.04. The kitchen will offer to install them for you if you are on a Debian based system. If not, you will need to find the package equivalents for your system.
If you give up on getting the binaries compiled, you can let the kitchen install the appropriate binaries. It will ask you if you want to install them after trying to build, then installing the dependencies and trying to build again. If it still fails that is when it will offer to install prebuilt binaries.
Which perm type should I choose?
Here is a very brief summary of set_perm, set_metadata, sparse_dat, and raw_img.
set_perm : The oldest of the 4. Sets file/directory permissions when flashing a rom. Not recommended for KitKat and above.
set_metadata: Also sets file/directory permissions when flashing a rom, but also adds file contexts. It was introduced with selinux in KitKat. Recommended for KitKat and above.
sparse_dat: The newest of the 4, and only works on Lollipop +. The permissions, symlinks, and file contexts are all added inside a sparse image. A sparse image is an image with a more efficient space usage. Only for Lollipop and above. The free kitchen uses AOSP permissions/capabilities when building system.img. If your device requires different permissions, this method will not work for you in the free kitchen.
raw_img: This is literally raw images that are flashed to your device. The permissions, symlinks, and file contexts are all added inside the raw image. Works for all Android versions. The free kitchen uses AOSP permissions/capabilities when building system.img. If your device requires different permissions, this method will not work for you in the free kitchen.
Flashing error:
This package is for "xxxxx" devices; this is a "yyyyy"
The problem is the asserts and it is easy to fix. In the kitchen menu, go to ROM Tools > Asserts > Add/Remove device asserts. At the bottom it will say "xxxxx". Edit the line to say "xxxxx,yyyyy" and press enter. Build your rom again and flash.
Why is my ROM zip so small?
blkdiscard failed: Invalid argument
These are generally due to the partition size detection method. You need the correct partition size for ALL partitions you are creating sparse dat and raw_img images for. The kitchen will ask for each one that is included in your rom when you choose to build the full rom zip. If none of the provided auto-detect methods work, you will need to find the partition size on your own and enter it manually in the kitchen.
Root problems?
You can replace the in the kitchen with any flashable SuperSU version you want. It is located in /kitchen/tools/root/supersu. Delete the one that is there and add yours. Then, unroot, re-root and your replacement will be used.
Auto check for updates when kitchen starts
To enable the auto update check, go to "Check for updates" in the main menu. After it checks, you will be asked if you want to enable it.
If you change your mind later, you can navigate to the /kitchen/tools directory and rename the updatecheck-yes or updatecheck-no files accordingly. Alternatively, you can delete the updatecheck-yes/no file and you will be asked again next time you check for updates.
I added root and busybox but there is no su or busybox in my project. Why?
The kitchen does not add Busybox or SuperSU files to the project. Instead it adds flashable zips inside the There are many variables to deal with (Android version, device architecture, manufacturer, system/systemless, etc.). Flashing the zips with the rom accounts for all of these variables and there is no reason to re-invent the wheel.
Debloat and custom debloat
There are 2 options in the debloat menu (besides knox which is self explanatory):
1) Debloat ROM
This option removes all files included in the kitchens standard bloat list file - /kitchen/tools/root/bloat
2) Custom Debloat
This option removes all files included in the bloat_custom file - /kitchen/tools/root/bloat_custom
This file is empty by default and is there for you to add whatever you want to remove. You can either add everything you want to remove and use only option 2, or you can add new files here and use option 1 and 2.
I suggest you take a look at /kitchen/tools/root/bloat to see the format of the listed bloat files. Use the same format for the bloat_custom file.
When you use either option, the files are not deleted. Instead they are moved to the 00_project_files directory in case you want to restore them later.
Deodexing Samsung roms may or may not work. If your rom does not boot after deodexing, try it without. If it works and you must deodex your rom, try a different tool. I hear svadev deodex tool works well for Samsung roms.
boot.img errors
If the kitchen gives you errors about unpacking boot.img, there is a good chance I will not be able to help. I suggest you figure out how to unpack it using Linux commands/binaries and let me know how you did it. You may also find a tutorial about how to unpack your boot.img. If so, please send a link. It does not help me to know another tool works. I need the commands/binaries used in order to update the kitchen.
Feel free to upload your boot.img AND the build.prop from the same rom so I can check to see if I can fix it. I will ignore you if you don't upload both mentioned files
I do not answer support questions through PM. There are no exceptions. Post in the thread if you want help so others can give suggestions and learn from your solution
I will not answer questions if it is clear that you have not read the OP, the info posts after the OP, and searched the thread for answers. I do not have time to answer the same questions over and over. Many questions are already answered in this thread and if you want help, I expect you to try and solve it on your own before posting. If your question has not been answered in the thread, I am happy to assist in any way possible.
If I ask you to upload files, they need to be uploaded on a server that does not require registration for full speed downloads, or registration for downloads at all. Drive, Dropbox, AFH, and Mega are examples of acceptable servers. There are many other good ones, but I hope you get the point.
Thanks for understanding
Looks promissing, gonna try it asap
I suppose it to work for many devices but are there any already tested for?
Looks great mate. Can't wait to give it a go
Its been an honor, testing this out! This deserves to be stickied!!
Sent from my N9510 using Tapatalk
---------- Post added at 04:51 AM ---------- Previous post was at 04:48 AM ----------
Zte Concord 2
Zte Warp4G
Moto E 2015
LG Exceed 2
LG Realm
Still waiting on results from:
MediaTEK VKworld (VS6050S)
[QUOTE=SuperR.;62845957]Disclaimer: I am not responsible for anything bad that may occur from the use of this tool, but I will take all the credit you can give me if it works for you
Sent from my N9510 using Tapatalk
Nice and finally something for Linux. To bad I'm out of town can't wait to test this...
Nice work
Sent from my SM-G928T using Tapatalk
[QUOTE=bcrichster;62847913]Its been an honor, testing this out! This deserves to be stickied!!
Sent from my N9510 using Tapatalk
---------- Post added at 04:51 AM ---------- Previous post was at 04:48 AM ----------
Zte Concord 2
Zte Warp4G
Moto E 2015
LG Exceed 2
LG Realm
Still waiting on results from:
MediaTEK VKworld (VS6050S)
Think it needs to be in xda portal as well
Sent from my SM-N920C using Tapatalk
I'll give it a shot on Samsung Galaxy Note 5 - if there aren't any objections against #SuperR.

[FULL-HOWTO][DEV] Make Your Own CWM-Flashable Custom ROM -Edited on 14th Jan!

What You Need?
-> DSIXda Kitchen
-> A windows/ Linux environment.
-> MagicISO
*Dont take works of Developers of Custom ROM. Develop your OWN custom ROM*
Basic Thing.
Extraction of RFS.
Well, THis is the First thing you should do.
Here are the steps:
-> Download a Firmware of your choice from the above link.
-> If you Firmware is in .zip format, be sure to extract the FW to a folder.
-> In the folder, you should find a PDA file ( The file which use put in the PDA place when you flash using ODIN)
-> Install 7-Zip if you dont have it, if you have it...Proceed to next step
->Right Click on the PDA file and open the archive using 7-zip.
-> Now, you can see a file named "system.rfs" or "factoryfs.rfs" or "systemFS.rfs", just copy the file to your C:\ (YOU CAN COPY IT ANYWHERE. I am taking C:\ as my base location)
Part II - Extracting RFS
-> Download and Open MagicISO.
->Click on File-> Open and browse to the place where you have your extracted system.rfs or factoryfs.rfs or systemfs.rfs.
-> Now, you should be able to see many folders like lib,system,xBin,vendor,etc.
-> Copy ALL the folders to your desired location. Be sure to put all of them in a folder called system. For example, In C:\ , create a folder called ROM and create a sub-folder called "system" and put the files there.
In my case, The Extraction is placed at C:\ROM\system
P.S-> You Just finished Step 1 :P
Step 2-> Editing your ROM and Removing and addition of System Apps
First, Go to the folder where you extracted the ROM and then go to \System\App.
Here, you can find ALL the applications which are un-installable by the user.
So, If you want to REMOVE apps, you can remove them and their .odex's. But, be sure, For what apps you are planning to keep, DONT REMOVE THE ODEXES.
If you want to add up apps, just copy the .apk of that app and put it to \system\app. But, the User can not uninstall this app.
For any Theme changes, replace the Framework-res.apk in the \system\framework.
For Status Bar Changes, replace the systemui.apk in the \system\app.
Do Not Change Anything in xBin and Vendor folder.
On changing stuff there, your ROM will not boot.
If you want to put apps which the user can un-install, here's how to do it.
-> Go to your BASE FOLDER. In my case C:\ROM
-> Create a folder called Data and a sub-folder called \data\app.
-> Put ALL your .apks in here. On doing so, the user of the ROM can un-install the app.
Just copy the META-INF folder of any other ROM and put it in your base folder. (C:\ROM in my Case)
Custom Boot Animation And Boot Sound
Cutom Boot sound
First, navigate to /system/etc and find PowerOn.wav. This will enable you to change the boot sound. Replace it with a short tone of .wav format only. Now you,have changed the boot sound
To change the boot animation
1) Download the bootanimation and samsungani file attached in the Downloads Section
2) Put them in the /system/bin folder and replace the existing files there
------------->>>> The Above two steps are not needed<<<<------------------ Only if the bootanimation does not work, use these files >>>>>>>>>-----------<<<<<<<<
3) Now download any boot animation, and rename the bootanimation to “”.
4) Now, navigate to /system/media and replace the “ODEanim” with “”
You are done with the bootanimation change
Installing the Cygwin and Setting up the Kitchen
Download the Cygwin files attached below. Extract the zip to a folder. Now, you can see 3 icons, a read-me,a setup, and a folder. Choose the setup. Here You will choose install from local directory. Next, Navigate to the the folder of extraction of cygwin and choose the folder Cygwin_packages inside the cygwin extraction folder. Wait for some time. Then, You will come across a list of file. Click the 2-circle-arrows,untill, it displays “install”
After the procedure is complete, run the batch file. Now, minimise it and extract the android kitchen.
Keep it in some location like C:\Kitchen
Now, open the batch file window and type
cd C:\Kitchen
Wait for some time and then when the location the changed, type
As this is a HTC kitchen, you can't use all the features,
Now, go back to the base folder (C:\ROM in my case) and create a zip (Recomended to use Winzip) ( I repeat zip and NOT rar) of all the folder in the “Bse Folder”(C:\ROM in my case). After that is done, navigate to the kitchen folder (C:\Ktichen) and palce the .zip in the “original_update” folder.
Come back to the Cygwin Batch window. Now you select 1 (i.e. the first option and press enter.
Then, again press 1 twice!
Now after this is done, you can also use option 2 (rooting). You can change the ROM's name using option 8.
De-odexing the FW.
In the batch window, choose option 0 and then choose 1.
Using this you can de-odex your FW.
Next, choose 99 to build and pack you ROM.
You are now Done with the custom ROM and can find your build in the Output_zip folder of the Kitchen (C:\Kitchen in my case)
-> IF you are asked to add a fake boot.img, choose yes.
-> If you are asked to change updater-script to update-script, choose NO.
Sent from my SGH-T959V using XDA App
No n00b Post
Extracting and odin build
xvf ODIN_FILE.tar.md5
NOTE:.md5 is optional
Mounting rfs(on linux)
:: Downloads ::
Kitchen (Thanks to dsiXDA)
Custom booting Files
--For the Future!
Last one!
Press The THANKS!