[SuperR Kitchen] SuperR.:
v3.1.7.3

Changes:

Validate checksum of all kitchen files during install and after updates.

Add required libs for new apktools and concatimg plugins.

NOTES:

It was brought to my attention that it is possible for kitchen files to get corrupted during an update. Now, when the kitchen restarts after this update (and all future updates), all kitchen files will be checked for corruption. If a file checksum fails from any file included in the kitchen, a message will be presented telling you to try a fresh install. This will ensure everyone is running a good install. This check will happen after a fresh install as well. It is fast, so you may not even notice :)

NEW PLUGINS (requires kitchen v3.1.7.3+):

CONCATIMG PLUGIN:

This plugin will extract img file parts (ex. system_1.img, system_2.img, etc.) from a firmware zip and concatenate them into a single img file. It will extract all useful parts automatically, and the img files will be operated on at the same time. (ex. vendor_*.img, system_other_*.img, etc.). Additionally, if the firmware contains a rawprogram0*.xml file, it will be used to determine starting sectors to ensure proper concatenation.

APKTOOLS PLUGIN UPDATE:

The apktools plugin has a new feature...patch smali files using .ptch files. Some of you may be familiar with this concept from other tools. Basically, you create a .ptch file with directives on which apk/jar to work on, which smali files to patch, and what to patch them with. The plugin will read these .ptch files, and perform the patches automatically on apk/jar files within your project directory. You can have as many .ptch files as you want in each project and they will all be processed consecutively.

smali/baksmali (included in the kitchen) is used to decompile/compile the apk/jar classes in the new patch feature.

The .ptch syntax is similar to other tools that provide this functionality with a few differences:

Single quotes (') are used as separators.

No need to escape double quotes (").

New line character (\n) is supported in search string and new string.

method.m file path is relative to the patch directory (either superr_project/, or superr_project/smali_patch/).

smali file path starts after the initial smali directory. If you are patching classes.dex, you would use smali/path/to/file. If you are patching classes2.dex, you would use smali_classes2/path/to/file, etc.

Available Patch Modes:

appfile <AppName.apk>

replaceinall 'search string' 'new string'

replaceinfile 'smali/path/to/file' 'search string' 'new string'

replaceindir 'smali/path/to/dir' 'search string' 'new string'

methodreplace 'smali/path/to/file' 'search method' 'methods/method.m'

addmethod 'smali/path/to/file' 'methods/method.m'

All different modes can be used in the same .ptch file for each apk/jar. If a .ptch file exists for an apk/jar file that does not exist, it will be skipped. If a patch search string does not exist, it will be skipped. If a patch refers to a smali file that does not exist, it will be skipped. Everything is clearly logged on screen and in the smali_patch.log file in your project directory.

If you run the patch option without adding .ptch files to your project, it will provide the patch modes listed above, along with instructions on where to put the patches.