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, rom.zip, 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 support.zip to your post.
Donate version Info
Access to the donate version of the kitchen requires a minimum donation of $10.00 US
I have chosen Gitlab.com as the host for the donate version after running into a roadblock with the number of users Bitbucket allows in the free private repositories. Once you donate
, set up a Gitlab account (free) and post your Gitlab username in this thread. I will add you to the private repo and you will then have access to the donate version of the Kitchen. Follow the steps below to get it downloaded and running
**Alternate donate option here
for users that can't use the "Donate to Me" feature of xda**
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:
git clone https://gitlab.com/superr/superrs-kitchen2.git
NOTE: After you enter the first line and press enter, it will ask you for your Gitlab username and password. Make sure you enter it correctly or it will not work. Thanks for the donation, enjoy
NOTE2: The Plugin Repo can be found here
An Ubuntu 16.04 distro with all the things you need to get the kitchen working easily.
This was created using the official Ubuntu 16.04.1 iso. It is basically an updated and repacked version of the original iso image.
Here are the changes from standard Ubuntu:
- All dependencies are met for easy kitchen install
- SuperRs-Kitchen installer/launcher script is on the desktop
- Unity panel shortcuts are Nautilus, Chrome, Synaptic Package Manager, and Show Desktop
- Nautilus File Manager asks what to do when you double-click an executable text file (bash script) by default
- Nautilus uses list view by default
- App menus are in the app window by default
- The system notification popups are click-to-close and higher on the screen
- Chrome and Synaptic package manager are installed
- Firefox, Thunderbird, and LibreOffice have been removed
It should work in VM, usb live boot, or dvd. Just double-click SuperRs-Kitchen on the desktop and choose "Run in Terminal" to get started
Language Files (translations)
English - Default/Included in the kitchen
Italian - Translated by @luigimak
Chinese - Translated by @曦颜XY
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?
The last I heard, most things should work. CYGWIN is not officially supported.
WSL (Bash on Ubuntu on Windows)
Not sure how this will work at this point. If your version of WSL supports OS interoperability (can run Windows apps from WSL shell), you might have success. WSL is not officially supported.
Missing Dependencies/One or more tools could not be built.:
Paste into terminal, press enter, type your user password and press enter:
sudo apt-get install binutils libc6-i386 coreutils cpio e2fsprogs findutils gawk gcc grep gzip libc-bin liblz4-tool lzop mount ncurses-bin perl-base sed tar util-linux vim-common wget xz-utils bison gperf build-essential zlib1g-dev zlib1g-dev:i386 g++-multilib libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev libsepol1-dev dpkg-dev make ccache automake squashfs-tools schedtool
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.
: The oldest of the 4. Sets file/directory permissions when flashing a rom. Not recommended for KitKat and above.
: 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.
: 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. May or may not work as expected on Marshmallow and above because the rimg2sdat binary has not been updated and it is closed source.
: 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.
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.
stat: failed to get security context
The problem is that your system is not selinux enabled so the stat utility does not have the required libs to check the file_context.
Download and install stat_alt
. It bypasses your system stat utility in favor of the one in /home/username/bin. This stat however is a bash script that runs /home/username/bin/stat1 with the required selinux libs. There is a README file in the zip with installation instructions.
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.
You can replace the SuperSU.zip 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 rom.zip. 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.
If you want to use the M deodex method from v126.96.36.199, choose smali/baksmali when it asks what method. If you want to use the M deodex method from v188.8.131.52 and later, choose oat2dex. If one does not work properly, try the other.
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.
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
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
The current plugin repo can be found here