Unpacker Kitchen for Android(UKA)

Search This thread
Oct 10, 2020
sounds great!!

I know it is not relevant to current thread but I would definitely need some tool to "Magisk wise" patch the boot.img for Amlogic ROM (S905X3 devices)...
I haven't read much about the XDA posting rule, so I refrain from posting on other's thread. so better regarding this, use XDA conversation with me... I can't say about Amlogic ROM ... b'coz I don't used such rom.. maybe uka can patch 32bit boot.img only, for what purpose do you have to patch boot.img??? magisk is sufficient regarding this. also more important vbmeta.img have to patch because vbmeta only allows boot whether the system is booted or not. UKA can patch vbmeta. I patched vbmeta.img successfully for Xiaomi Redmi note 9 pro max.
Oct 10, 2020
Thanks @kory-vadim and thanks @RajivShastri king for the translation , I confirm UKA_5.4_eng_magisk.zip worked for me as it should , tested many functionalities with gsi a11 👍
Yes, @Hami_Do you are absolutely right! so, already we saved a copy of UKA_5.4_eng_magisk.zip. We have also used many features of 5.4, landed exactly right. I was surprised when converting system_spersechunk, which was in 8 part ("from fastboot rom of motorola" "Oreo" "test device") to system.img (after debloated) then converted to dat.br then successfully installed from recovery flashable zip archive. I thank @Kori-vadim for making so many facilities accessible to all of us in one place.
  • Like
Reactions: Hami_Do
Oct 10, 2020


  • IMG_20211005_044513.jpg
    1 MB · Views: 126
Oct 10, 2020
I found that, translation work has been left a little bit on UKA_v5.6 in option 1) of 1) menu. It is not much necessary but those who have some language problem, to know about results regarding option 1) of 1), then they can replace given bootext with UKAv5.6's bootext. & 🤓
Oct 10, 2020
I don't feel like it because it's a very small tiny leftover that would be possible on a normal mobile by simply replacing the bootext with Zarchiver apk. All the user has to do is simply Unpack/Replace/Repack.
👉Even if you do not change, then only you will see Russian language instead of English language in Extract file_context section, there is no harm in it.....😍

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    A step by step guide so we can take a xiaomi update.zip and make custom builds.
    What kind of update.zip? OTA? Recovery firmware zip? You have to be more specific. It depends on the files inside the zip. Did you already unpack the archive to see what files are in there?

    OTA => never contains whole firmware images! Only single file system blocks. File size < 300MB

    Recovery.zip = whole firmware images with *.dat.br (brotli compressed *.dat files) and *.list file extensions. To unpack them use:
    # use option:
    5.) => Unpack .br
    # and/or
    6.) => Unpack .dat
    # accordingly to the files inside your zip.

    You do not need a step by step guide to use UKA. You need a better understanding of the different file types that are used by Android. I strongly recommend you to use a Linux OS instead of Windows when dealing with ext4 file systems and all the other file types on your desktop to modify them.
    I m interested in taking each update of miui make them debloated ,disable force encrypted e.t.c and then make a zip for flashing the rom.
    It doesn't make sense to build a flashable ROM. I assume you're using TWRP or OF to flash the zips?

    A normal OTA.zip contains 3 files for each updated system partition, e.g. /system => system.transfer.list + system.new.dat + system.patch.dat.
    The last one isn't important, so we ignore it.

    system.new.dat => contains the new blocks for /system (all or only the updated ones)

    system.transfer.list => Holds the information at which address the blocks of system.new.dat should be written to

    What you are trying to do: system.transfer.list + system.new.dat => system.img (raw image by using sdat2img) => modify it => repack it to system.transfer.list + system.new.dat => flash it, where it gets unpacked to a raw image again.

    What you should do: system.transfer.list + system.new.dat => system.img => modify it => flash it to /system using fastboot or TWRP.

    That's much easier than building a complete new OTA.zip.
    yes TWRP and ofox sometimes
    my plan is making a build custom rom from ota.zip
    like this:
    Send me a link to the ota.zip you like to customize.
    I see the spirit. Thank u for extended answer brother.
    Will give a try
    Xiaomi.eu change file
    Now, How to unpack super.img.0
    View attachment 5823507
    Rename all of them into super.img_sparsechunk.0, super.img_sparsechunk.1,......

    Then copy or move them to root/data/local/UnpackerQfil

    Termux > su > menu > 11 > 4 > 1

    Done, the output img will be there in the UnpackerQfil/output. Just unpack it as you unpack img files normally
  • 9
    version: 4.9.4

    Last update of the program in the header: 04/06/2020

    Developer: kory-vadim

    For the program to function, root privileges are required.

    Install: flash as Magisk module

    Short description:
    Unpacking, assembling and converting system (vendor) {. Img} {. New.dat} {. New.dat.br}, mounting raw.images, gluing the system.img broken into parts into a single image (from the firmware for Qfil), unpacking payload.bin, repackaging boot (recovery) .img, extracting file_contexts from boot.img (android <= 8.1), and converting file_contexts.bin on the phone.

    To unpack images, you can use a phone with android 5+.
    The system make_ext4fs is used from the phone’s firmware, so on a phone with android 6+ (or better 7), you can collect system.img images from android 5+.
    We need root rights, busybox (needed before UKA version: 4.4 inclusive) and enough space for the images themselves and unpacking them in ./data.
    Before flashing versions 4.6, 4.7, delete the old version and flash the corresponding archive via twrp.
    In the kitchen there is a utility AIK - Android Image Kitchen for repacking boot (recovery) .img.
    If, for some reason, you do not want to flash AIK-mobile (or, for example: already installed), then delete the file "AIK.Mobile.Installer.v3.4.zip" from the archive and flash "unpack-android_new_4.6. zip "without this file.
    After flashing, install the terminal emulator (if it is not already installed), and check the box for UTF-8 in its settings.

    To start the kitchen, in the terminal enter:

    Go to the item: "Extract file_contexts", and select the subitem: "Install configuration", if this is not done, then the conversion file_contexts.bin -> file_contexts will not work.
    You need to run the configuration installation only once.
    *In version 4.5 and above it should work without applying this item.

    And then enter the numbers corresponding to the desired action.

    To extract file_contexts, put boot.img in the folder: /data/local/UnpackerContexts.
    To unpack .img images, you need to put system.img or vendor.img in the folder: /data/local/UnpackerSystem, and select the .img file (no more than 5) for unpacking.
    When unpacking, the folders will be deleted: "system", or "vendor"; files: * _fs_config and * _pack.sh from the previous unpacking.
    To build the image, copy the received file_contexts to the folder: /data/local/UnpackerSystem, if for some reason it will not be in the folder, then the assembly will be performed with file_contexts obtained when unpacking the image.
    If files or folders were added to the disassembled image, then before assembling it, you must enter everything added into fs_config, and only then collect it.
    If there are spaces in the names of folders or files in the unpacked image, then make_ex4fs will not collect such an image until you rename the files and correct the entries in fs_config.
    Therefore, adding folders and files with spaces to the unpacked image is also not possible.
    In version 4.6, the write assistant in fs_config is added.
    If you just deleted something, then you do not need to edit fs_config.
    Also in the collected folder must be present symlinks.
    Well, in terms of context, Selinux will also need to be watched, depending on what was added.
    To unpack or convert .dat, .br and in other cases, you will be prompted to enter the path to the folder where the image is located (in the same folder should be system (vendor) .transfer.list).
    When converting and assembling in .dat, look behind the phone screen, because in some cases you need to enter a number corresponding to the version of the android, the image being collected.

    There is a choice of compression ratio for converting * .new.dat to br.
    To reduce the conversion time, compression can be selected 3-5 (maximum 7).

    To unpack boot (recovery) .img, put the file in the folder: /data/local/AIK-mobile, and select the file in the menu: "unzip boot"
    For packaging, use the item: "pack boot".
    The collected file will be located in the folder: /data/local/AIK-mobile with the name boot-output.img.
    To clean the working folder, also use the corresponding item. Source and output files will not be deleted.
    AIK-mobile can be completely removed from the phone directly from the menu.

    To mount, use the corresponding menu item, and the raw image must be located in the folder: /data/local/UnpackerSystem.
    Do not forget to unmount the image.
    To remove the kitchen from the phone, go to the corresponding menu item and confirm the removal,
    after confirmation, the phone will be overloaded in twrp, and after working out the script, it will be loaded into the system.

    Screenshots(Gdrive): https://drive.google.com/folderview?id=1-5dSaOQKpDH4gy737gcDp-Anp0vAj_VU

    Download(Gdrive): https://drive.google.com/file/d/1-nOvictMuUNXbowwn3h1lbdrkJur2jJh/view?usp=drivesdk

    MOD EDIT: Link removed
    please try attached ZIP module, compiled by me thanks to RajivShastri king's translation
    Yes, fixed v5.6.
    UKA_5.6_eng_magisk.zip ("Translated in English")