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.
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. Probably will not work very well, but feel free to try.
WSL (Bash on Ubuntu on Windows)
WSL is not supported. Probably will not work very well, but feel free to try.
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