FORUMS
Remove All Ads from XDA

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

2,034 posts
Thanks Meter: 6,899
 
By SuperR., Recognized Developer on 15th September 2015, 10:43 PM
Post Reply Email Thread
Announcement from SuperR.: Please send a support.zip and firmware link with all support requests. Thank you!
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

Main Menu

Please read the usage instructions in post #3 and the troubleshooting in post #4 below before asking for help. Thanks

Source
Standard Changelog

Download/Install

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:
Code:
git clone https://bitbucket.org/superr/superrs-kitchen.git
cd superrs-kitchen
./superr
Download zips here
NOTE: You will not be able to use the kitchen updater if you download zips

Video tutorials by @chevycam94

Credits:
@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

Contributors
SuperR.

Version Information
Status: Stable

Created 2017-04-27
Last Updated 2018-05-14
Attached Thumbnails
Click image for larger version

Name:	rom.png
Views:	5812
Size:	31.1 KB
ID:	4130679   Click image for larger version

Name:	buildzip.png
Views:	5624
Size:	24.9 KB
ID:	4130680   Click image for larger version

Name:	customzip.png
Views:	5542
Size:	26.8 KB
ID:	4130681   Click image for larger version

Name:	boot1.png
Views:	5060
Size:	19.2 KB
ID:	4130682   Click image for larger version

Name:	boot2.png
Views:	4934
Size:	24.5 KB
ID:	4130683   Click image for larger version

Name:	boot3.png
Views:	4818
Size:	40.2 KB
ID:	4130684   Click image for larger version

Name:	deodex.png
Views:	4668
Size:	18.9 KB
ID:	4130685   Click image for larger version

Name:	perm.png
Views:	4570
Size:	24.3 KB
ID:	4130686   Click image for larger version

Name:	recovery.png
Views:	4380
Size:	25.3 KB
ID:	4130687   Click image for larger version

Name:	recovery2.png
Views:	4356
Size:	23.4 KB
ID:	4130688  
The Following 68 Users Say Thank You to SuperR. For This Useful Post: [ View ]
 
 
16th September 2015, 06:19 AM |#2  
SuperR.'s Avatar
OP Recognized Developer
Invisible
Thanks Meter: 6,899
 
Donate to Me
More
Usage:
  1. Run "superr" from it's location in terminal
  2. Create new project using the menu
  3. Copy ROM zip into the superr_NAME directory of this tool (NAME = the name of your new project).
    OR
    Copy system.ext4.tar and boot.img into the superr_NAME directory of this tool.
    OR
    Copy system.ext4.win and boot.emmc.win into the superr_NAME directory of this tool.
    OR
    Copy system.img and boot.img into the superr_NAME directory of this tool.
    OR
    Copy official Nexus tgz into the superr_NAME directory of this tool.
    OR
    Copy Samsung firmware zip into the superr_NAME directory of this tool.
    OR
    Copy Moto firmware zip into the superr_NAME directory of this tool.
    OR
    Leave superr_NAME directory empty to extract from rooted device or custom recovery
  4. Extract for new ROM from the Main menu.
  5. Enjoy!

Example:

In your terminal, type the following where "/home/user/kitchen/" is the directory where the kitchen lives:

Code:
cd /home/user/kitchen/
./superr
NOTE: the above code is 2 separate commands and requires ENTER to be pressed after each command

OR

Double-click the superr file and choose "Run in Terminal" if your OS supports it.

Add your own device support:
  1. Create a new project in the kitchen.
  2. Add your files to the project directory (system.img/boot.img, system.ext4.tar, win, zip, etc.)
  3. Extract for new rom from the menu
  4. 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.
  5. Enjoy
The Following 17 Users Say Thank You to SuperR. For This Useful Post: [ View ]
16th September 2015, 06:19 AM |#3  
SuperR.'s Avatar
OP Recognized Developer
Invisible
Thanks Meter: 6,899
 
Donate to Me
More
Features:

*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
  • system.ext4.win/boot.emmc.win (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)
  • Recovery
  • Media
  • 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
  • open_bump.py compatible (download it and add to the tools directory)
*By-name auto-detection from:
  • Device
  • Existing ROM
  • boot.img
  • kernel.elf
  • **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 ro.build.display.id 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.
  • Custom ro.build.display.id
  • 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.
The Following 15 Users Say Thank You to SuperR. For This Useful Post: [ View ]
16th September 2015, 06:20 AM |#4  
SuperR.'s Avatar
OP Recognized Developer
Invisible
Thanks Meter: 6,899
 
Donate to Me
More
Troubleshooting/FAQ:

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.


Ubuntu4Kitchen
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:
Code:
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.

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 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.

Deodexing
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
The Following 16 Users Say Thank You to SuperR. For This Useful Post: [ View ]
16th September 2015, 06:20 AM |#5  
SuperR.'s Avatar
OP Recognized Developer
Invisible
Thanks Meter: 6,899
 
Donate to Me
More
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
The Following 6 Users Say Thank You to SuperR. For This Useful Post: [ View ]
16th September 2015, 06:21 AM |#6  
SuperR.'s Avatar
OP Recognized Developer
Invisible
Thanks Meter: 6,899
 
Donate to Me
More
reserved
The Following 5 Users Say Thank You to SuperR. For This Useful Post: [ View ]
16th September 2015, 08:29 AM |#7  
Androidwizzard's Avatar
Recognized Contributor
Thanks Meter: 6,872
 
More
Looks promissing, gonna try it asap

I suppose it to work for many devices but are there any already tested for?
16th September 2015, 09:51 AM |#9  
bcrichster's Avatar
Senior Member
Thanks Meter: 680
 
Donate to Me
More
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 ----------

Quote:
Originally Posted by Androidwizzard

Looks promissing, gonna try it asap

I suppose it to work for many devices but are there any already tested for?

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
16th September 2015, 09:58 AM |#10  
Mr Impossible's Avatar
Senior Member
Flag 305
Thanks Meter: 1,204
 
Donate to Me
More
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
sawdoctor
16th September 2015, 10:17 AM |#11  
Guest
Thanks Meter: 0
 
More
[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)

Quote:
Originally Posted by SuperR.

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

Think it needs to be in xda portal as well

Sent from my SM-N920C using Tapatalk
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes