[TOOL][WIN,LIN,AND,DARW] Super image tools | extract or make partitions RW in super partition

Search This thread

lebigmac

Senior Member
Jan 31, 2017
703
359
I don't get an error when running e2fsck on the file after piping it through my script.

# e2fsck -yfv ./system.img
e2fsck 1.44.6 (5-Mar-2019)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

2990 inodes used (37.08%, out of 8064)
604 non-contiguous files (20.2%)
5 non-contiguous directories (0.2%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth histogram: 2572/168
319612 blocks used (40.64%, out of 786432)
0 bad blocks
1 large file

2597 regular files
143 directories
0 character device files
0 block device files
0 fifos
0 links
241 symbolic links (241 fast symbolic links)
0 sockets
------------
2981 files
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,283
21,910
@munjeni thanks for the update.
If only some genius could compile lptools by @phhusson for aarch64
Then we could do as mentioned by @Lossyx in this comment
to give extra free space to each partition
Even my primitive script can do this (if one can get it to work that is :D)

Bash:
./superrepack /dev/block/sda15
./lptools resize system $((3*1024*1024*1024))
./lptools resize product $((3*1024*1024*1024))
./lptools resize vendor $((3*1024*1024*1024))

Some users such as @uvzen require 1 GB extra space so they will have to delete a ton of bloatware to free up that much space :D
You need lptools arm64_pie build? Lptools is able to resize e.g. system partition directly on a running android with dynamic partition?
 
  • Like
Reactions: lebigmac

lebigmac

Senior Member
Jan 31, 2017
703
359
Yes it looks like it. Ask the developer @phhusson just to make sure.
Once you figure out that dangerous issue it would make for a great friend for superrepack. Together they would be a great combo!
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,283
21,910
I don't get an error when running e2fsck on the file after piping the file through my script. Does e2fsck throw an error after piping the file through your tool?
I'm getting e2fsck errors while using my tool even without modifying anything. What I doing is repair with e2fsck, than doing unshare blocks with e2fsck, everything went ok without errors, after that I modify single file and repeat checking with e2fsck and getting errors again, that happening I'm pretty sure because of not increasing size of the partition. Definitelly need to learn how this dynamic things working on android, probably not now but when I buy device with dynamic prtition which probably will not happen soon since I not like this definitelly :)
 

munjeni

Senior Member
Jun 2, 2011
9,283
21,910
- version 5 (08.04.2021) implemented resize and repair partitions after switching to rw mode. Implemented build script for building resize2fs, e2fsck, simg2ims, img2simg, lptools

How to use: -> see first post

Let me know!
 
Last edited:
  • Like
Reactions: casouzaj

PEACH-PIT

Senior Member
Jan 22, 2018
76
16
Hello.
Thanks for the great tool.
This tool did not work on my device (Moto G 5G XT2113-3).
The partition it is used on shows "Error, no free loop device!"

kiev:/ $ su
su
kiev:/ # chmod 755 /data/local/tmp/superrepack
chmod 755 /data/local/tmp/superrepack
kiev:/ # setenforce 0
setenforce 0
kiev:/ # /data/local/tmp/superrepack /dev/block/sde26
/data/local/tmp/superrepack /dev/block/sde26
---------------------------------------------------------
Super image repacker v_7 by munjeni @ xda 2021)
---------------------------------------------------------

Removing shared_blocks and making RW on all partitions!

LpMetadataGeometry magic = 0x616c4467
LpMetadataGeometry struct size = 0x34
LpMetadataGeometry sha256 = 12FF55F0ABA7B506F25CB5DA5DCA09344234E8DF1D9C93AE82A499D98019467E
LpMetadataGeometry metadata_max_size = 0x10000
LpMetadataGeometry metadata_slot_count = 0x3
LpMetadataGeometry logical_block_size = 0x1000

LpMetadataHeader magic = 0x414c5030
LpMetadataHeader major_version = 10
LpMetadataHeader minor_version = 0
LpMetadataHeader header_size = 0x80
LpMetadataHeader header sha256 = F66EEAAA572D08E442CD5AC309590C182A4716582C8AC66BFCFF9B5EE1EF82BC
LpMetadataHeader tables_size = 0x268
LpMetadataHeader tables sha256 = 968E2E2AAEF7A8389AFCD94A2269A8DD00123C158643757570F00E008E44BBC3
LpMetadataHeader partitions offset = 0x0
LpMetadataHeader partitions num_entries = 0x6
LpMetadataHeader partitions entry_size = 0x34
LpMetadataHeader extents offset = 0x138
LpMetadataHeader extents num_entries = 0x4
LpMetadataHeader extents entry_size = 0x18
LpMetadataHeader groups offset = 0x198
LpMetadataHeader groups num_entries = 0x3
LpMetadataHeader groups entry_size = 0x30
LpMetadataHeader block_devices offset = 0x228
LpMetadataHeader block_devices num_entries = 0x1
LpMetadataHeader block_devices entry_size = 0x40

Partitions = 4 used, 2 not used, total 6

partition_1_name = system_a
attributes = 0x1
first_extent_index = 0x0
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x19afe8 (0x335fd000 bytes total)
extent target_type = 0x0
extent target_data = 0x800 (dumping offset = 0x100000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: system_a | EXT4 | 0x328f1000 | 4729639D-B5F2-5CC1-A120-9AC5F788683C | 0x0000407B | Error, no free loop device!

partition_2_name = system_b
attributes = 0x1
first_extent_index = 0x1
num_extents = 0x1
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0xb388 (0x1671000 bytes total)
extent target_type = 0x0
extent target_data = 0x19b800 (dumping offset = 0x33700000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: system_b | EXT4 | 0x1603000 | F5CFDC49-271C-5243-83DA-4FED7A45C3EA | 0x0000407B | Error, no free loop device!

partition_3_name = vendor_a
attributes = 0x1
first_extent_index = 0x2
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x16ad48 (0x2d5a9000 bytes total)
extent target_type = 0x0
extent target_data = 0x1a7000 (dumping offset = 0x34e00000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: vendor_a | EXT4 | 0x2ca20000 | 2B96C597-1E2F-5EE1-9851-C4A9FA9DE36E | 0x0000407B | Error, no free loop device!

partition_4_name = vendor_b (unused)
attributes = 0x1
first_extent_index = 0x3
num_extents = 0x0
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0x564740 (0xac8e8000 bytes total)
extent target_type = 0x0
extent target_data = 0x312000 (dumping offset = 0x62400000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: vendor_b | EXT4 | 0xa9d43000 | 453968FF-B43C-54B7-A506-A6A88682C128 | 0x0000407B | Error, no free loop device!

partition_5_name = product_a
attributes = 0x1
first_extent_index = 0x3
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x564740 (0xac8e8000 bytes total)
extent target_type = 0x0
extent target_data = 0x312000 (dumping offset = 0x62400000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: product_a | EXT4 | 0xa9d43000 | 453968FF-B43C-54B7-A506-A6A88682C128 | 0x0000407B | Error, no free loop device!

partition_6_name = product_b (unused)
attributes = 0x1
first_extent_index = 0x4
num_extents = 0x0
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0x746c7561666564 (0xe8d8eac2cccac800 bytes total)
extent target_type = 0x0
extent target_data = 0x0 (dumping offset = 0x0)
extent target_source = 0x0
Partition: product_b | UNKNOWN | U | U | U | skipping
kiev:/ # /data/local/tmp/superrepack /dev/block/sde26

I followed the tutorial.

I am not good at English.
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,283
21,910
Hello.
Thanks for the great tool.
This tool did not work on my device (Moto G 5G XT2113-3).
The partition it is used on shows "Error, no free loop device!"

kiev:/ $ su
su
kiev:/ # chmod 755 /data/local/tmp/superrepack
chmod 755 /data/local/tmp/superrepack
kiev:/ # setenforce 0
setenforce 0
kiev:/ # /data/local/tmp/superrepack /dev/block/sde26
/data/local/tmp/superrepack /dev/block/sde26
---------------------------------------------------------
Super image repacker v_7 by munjeni @ xda 2021)
---------------------------------------------------------

Removing shared_blocks and making RW on all partitions!

LpMetadataGeometry magic = 0x616c4467
LpMetadataGeometry struct size = 0x34
LpMetadataGeometry sha256 = 12FF55F0ABA7B506F25CB5DA5DCA09344234E8DF1D9C93AE82A499D98019467E
LpMetadataGeometry metadata_max_size = 0x10000
LpMetadataGeometry metadata_slot_count = 0x3
LpMetadataGeometry logical_block_size = 0x1000

LpMetadataHeader magic = 0x414c5030
LpMetadataHeader major_version = 10
LpMetadataHeader minor_version = 0
LpMetadataHeader header_size = 0x80
LpMetadataHeader header sha256 = F66EEAAA572D08E442CD5AC309590C182A4716582C8AC66BFCFF9B5EE1EF82BC
LpMetadataHeader tables_size = 0x268
LpMetadataHeader tables sha256 = 968E2E2AAEF7A8389AFCD94A2269A8DD00123C158643757570F00E008E44BBC3
LpMetadataHeader partitions offset = 0x0
LpMetadataHeader partitions num_entries = 0x6
LpMetadataHeader partitions entry_size = 0x34
LpMetadataHeader extents offset = 0x138
LpMetadataHeader extents num_entries = 0x4
LpMetadataHeader extents entry_size = 0x18
LpMetadataHeader groups offset = 0x198
LpMetadataHeader groups num_entries = 0x3
LpMetadataHeader groups entry_size = 0x30
LpMetadataHeader block_devices offset = 0x228
LpMetadataHeader block_devices num_entries = 0x1
LpMetadataHeader block_devices entry_size = 0x40

Partitions = 4 used, 2 not used, total 6

partition_1_name = system_a
attributes = 0x1
first_extent_index = 0x0
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x19afe8 (0x335fd000 bytes total)
extent target_type = 0x0
extent target_data = 0x800 (dumping offset = 0x100000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: system_a | EXT4 | 0x328f1000 | 4729639D-B5F2-5CC1-A120-9AC5F788683C | 0x0000407B | Error, no free loop device!

partition_2_name = system_b
attributes = 0x1
first_extent_index = 0x1
num_extents = 0x1
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0xb388 (0x1671000 bytes total)
extent target_type = 0x0
extent target_data = 0x19b800 (dumping offset = 0x33700000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: system_b | EXT4 | 0x1603000 | F5CFDC49-271C-5243-83DA-4FED7A45C3EA | 0x0000407B | Error, no free loop device!

partition_3_name = vendor_a
attributes = 0x1
first_extent_index = 0x2
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x16ad48 (0x2d5a9000 bytes total)
extent target_type = 0x0
extent target_data = 0x1a7000 (dumping offset = 0x34e00000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: vendor_a | EXT4 | 0x2ca20000 | 2B96C597-1E2F-5EE1-9851-C4A9FA9DE36E | 0x0000407B | Error, no free loop device!

partition_4_name = vendor_b (unused)
attributes = 0x1
first_extent_index = 0x3
num_extents = 0x0
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0x564740 (0xac8e8000 bytes total)
extent target_type = 0x0
extent target_data = 0x312000 (dumping offset = 0x62400000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: vendor_b | EXT4 | 0xa9d43000 | 453968FF-B43C-54B7-A506-A6A88682C128 | 0x0000407B | Error, no free loop device!

partition_5_name = product_a
attributes = 0x1
first_extent_index = 0x3
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x564740 (0xac8e8000 bytes total)
extent target_type = 0x0
extent target_data = 0x312000 (dumping offset = 0x62400000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: product_a | EXT4 | 0xa9d43000 | 453968FF-B43C-54B7-A506-A6A88682C128 | 0x0000407B | Error, no free loop device!

partition_6_name = product_b (unused)
attributes = 0x1
first_extent_index = 0x4
num_extents = 0x0
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0x746c7561666564 (0xe8d8eac2cccac800 bytes total)
extent target_type = 0x0
extent target_data = 0x0 (dumping offset = 0x0)
extent target_source = 0x0
Partition: product_b | UNKNOWN | U | U | U | skipping
kiev:/ # /data/local/tmp/superrepack /dev/block/sde26

I followed the tutorial.

I am not good at English.
You must go to the /data/local/tmp !!! And you must do excatly the same as from tutorial from first post and it will work than!

How to use superrepack:

adb push superrepack.arm64_pie /data/local/tmp
adb shell
cd /data/local/tmp
mv superrepack.arm64_pie superrepack
chmod 755 superrepack
stop
./superrepack /dev/block/bootdevice/by-name/super system_a rw
sync
reboot
 
Last edited:
  • Like
Reactions: lebigmac

PEACH-PIT

Senior Member
Jan 22, 2018
76
16
It did not work.

kiev:/ $ su
kiev:/ # cd /data/local/tmp
kiev:/data/local/tmp # chmod 755 superrepack
kiev:/data/local/tmp # setenforce 0
kiev:/data/local/tmp # stop
kiev:/data/local/tmp # ./superrepack /dev/block/bootdevice/sde26/super system_a rw
---------------------------------------------------------
Super image repacker v_7 by munjeni @ xda 2021)
---------------------------------------------------------

Searching for partitions contain string: system_a and making it: rw
Unable to open /dev/block/bootdevice/sde26/super!
2|kiev:/data/local/tmp #

2|kiev:/data/local/tmp # ./superrepack /dev/block/sde26
---------------------------------------------------------
Super image repacker v_7 by munjeni @ xda 2021)
---------------------------------------------------------

Removing shared_blocks and making RW on all partitions!

LpMetadataGeometry magic = 0x616c4467
LpMetadataGeometry struct size = 0x34
LpMetadataGeometry sha256 = 12FF55F0ABA7B506F25CB5DA5DCA09344234E8DF1D9C93AE82A499D98019467E
LpMetadataGeometry metadata_max_size = 0x10000
LpMetadataGeometry metadata_slot_count = 0x3
LpMetadataGeometry logical_block_size = 0x1000

LpMetadataHeader magic = 0x414c5030
LpMetadataHeader major_version = 10
LpMetadataHeader minor_version = 0
LpMetadataHeader header_size = 0x80
LpMetadataHeader header sha256 = F66EEAAA572D08E442CD5AC309590C182A4716582C8AC66BFCFF9B5EE1EF82BC
LpMetadataHeader tables_size = 0x268
LpMetadataHeader tables sha256 = 968E2E2AAEF7A8389AFCD94A2269A8DD00123C158643757570F00E008E44BBC3
LpMetadataHeader partitions offset = 0x0
LpMetadataHeader partitions num_entries = 0x6
LpMetadataHeader partitions entry_size = 0x34
LpMetadataHeader extents offset = 0x138
LpMetadataHeader extents num_entries = 0x4
LpMetadataHeader extents entry_size = 0x18
LpMetadataHeader groups offset = 0x198
LpMetadataHeader groups num_entries = 0x3
LpMetadataHeader groups entry_size = 0x30
LpMetadataHeader block_devices offset = 0x228
LpMetadataHeader block_devices num_entries = 0x1
LpMetadataHeader block_devices entry_size = 0x40

Partitions = 4 used, 2 not used, total 6

partition_1_name = system_a
attributes = 0x1
first_extent_index = 0x0
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x19afe8 (0x335fd000 bytes total)
extent target_type = 0x0
extent target_data = 0x800 (dumping offset = 0x100000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: system_a | EXT4 | 0x328f1000 | 4729639D-B5F2-5CC1-A120-9AC5F788683C | 0x0000407B | Error, no free loop device!

partition_2_name = system_b
attributes = 0x1
first_extent_index = 0x1
num_extents = 0x1
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0xb388 (0x1671000 bytes total)
extent target_type = 0x0
extent target_data = 0x19b800 (dumping offset = 0x33700000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: system_b | EXT4 | 0x1603000 | F5CFDC49-271C-5243-83DA-4FED7A45C3EA | 0x0000407B | Error, no free loop device!

partition_3_name = vendor_a
attributes = 0x1
first_extent_index = 0x2
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x16ad48 (0x2d5a9000 bytes total)
extent target_type = 0x0
extent target_data = 0x1a7000 (dumping offset = 0x34e00000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: vendor_a | EXT4 | 0x2ca20000 | 2B96C597-1E2F-5EE1-9851-C4A9FA9DE36E | 0x0000407B | Error, no free loop device!

partition_4_name = vendor_b (unused)
attributes = 0x1
first_extent_index = 0x3
num_extents = 0x0
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0x564740 (0xac8e8000 bytes total)
extent target_type = 0x0
extent target_data = 0x312000 (dumping offset = 0x62400000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: vendor_b | EXT4 | 0xa9d43000 | 453968FF-B43C-54B7-A506-A6A88682C128 | 0x0000407B | Error, no free loop device!

partition_5_name = product_a
attributes = 0x1
first_extent_index = 0x3
num_extents = 0x1
group_index = 0x1
partition_group = mot_dp_group_a
extent num_sectors = 0x564740 (0xac8e8000 bytes total)
extent target_type = 0x0
extent target_data = 0x312000 (dumping offset = 0x62400000)
extent target_source = 0x0
sh: ./busybox: inaccessible or not found
Partition: product_a | EXT4 | 0xa9d43000 | 453968FF-B43C-54B7-A506-A6A88682C128 | 0x0000407B | Error, no free loop device!

partition_6_name = product_b (unused)
attributes = 0x1
first_extent_index = 0x4
num_extents = 0x0
group_index = 0x2
partition_group = mot_dp_group_b
extent num_sectors = 0x746c7561666564 (0xe8d8eac2cccac800 bytes total)
extent target_type = 0x0
extent target_data = 0x0 (dumping offset = 0x0)
extent target_source = 0x0
Partition: product_b | UNKNOWN | U | U | U | skipping
 

PEACH-PIT

Senior Member
Jan 22, 2018
76
16
The moto g 5g is almost the same smartphone as the Motorola One 5G Ace.
I think you have to specify /dev/block/sde26 because super.img does not exist.
 

PEACH-PIT

Senior Member
Jan 22, 2018
76
16
In the case of moto g 5g, if you specify anything other than "/dev/block/sde26", the program will not start.
If "/dev/block/sde26" is specified, the program will start but will not function.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    Pixel 4a, working. V13
    2
    Tried it out, kinda doesn't work.
    The script.log doesn't get filled out.

    My Device is an Sony Xperia 5ii on Android 11 with the currently latest version EEA_58.1.A.5.159.

    Here's the log from my cmd window (I did run that tool several times, I don't know which run is this):
    2
    Explained allready 3-4 times, last one is inside post 152! If you compare it with first post and changelog you will notice that resize & repair is inplemented inside version 5 and up, all version before version 5 is bad because partitions get damaged and dangerous since resize & repair feature is not implemented before version 5. If you folow more posts yo can see that even latest version fail to e2fsck on some phones. Inside post 152 is clean instructions and explanation.
    1
    I had the error "sh: ./busybox: inaccessible or not found" with the previous version. Tried the new one, but it didn't change a lot.
    1
    I just found out my phone has a OrangeFox Recovery Port, never knew about OrangeFox, used only CWM and TWRP. Looks like data is decrypted (my phone is still in the bootloop state), without formating data, I will test soon if thats because of your boot img or because of something else.
  • 24
    Disclaimer:

    Super image tools was made for testing and educational purposes, ME is not responsible for what you do on/with your device using our tools, you must agree that you using our tools on your own risk, I am not responsible for anything else!


    How to use superunpack:

    - First step, unpack super.sin using my tool or use @IgorEisberg unsin tool
    - Step two, Superunpack. On windows just drag and drop unpacked super image onto our exe to start extraction. Also you can use it from command line, from script or from etc. On Linux use it from command line. No need to set slot like it was a case on lpunpack, our tool will auto extract all slot images for you, enjoy!
    - If you need to unpack partition images in RW mode add parameter 1 at the end of command line e.g. "superunpack super.img 1", than resize partition using resize2fs, repair and unshare blocks using e2fsck. Or if you unpack without rw you no need to resize or repair it, just mount it ro.

    Note that, superunpack is a tool for extract all logical partitions from super image or directly from super partition.

    How to use superrepack:

    adb push superrepack.arm64_pie /data/local/tmp
    adb shell
    su
    cd /data/local/tmp
    mv superrepack.arm64_pie superrepack
    chmod 755 superrepack
    stop
    ./superrepack /dev/block/bootdevice/by-name/super system_a
    sync
    reboot

    Note that, superrepack is a tool to convert logical RO partitions iside your phone super partition to RW mode. In this example system_a partiton is converted to the rw mode, if you need other partitions to rw just change system_a argument. Or if you need all partitions to rw mode do it without partition rw argumet e.g: "./superrepack /dev/block/bootdevice/by-name/super". YOU MUST RUN TOOL 4-5 TIMES UNTIL ALL ERRORS DISAPEARS!!! One of the well known errors is: "Couldn't clone file: Could not allocate block in ext2 filesystem". Look at /data/local/tmp/script.log each time and make sure it not contain any error otherwise you are not done things right and partition is not repaired yet!!! More info -> https://forum.xda-developers.com/t/...s-rw-in-super-partition.4120963/post-84966715

    Platform:

    - Superunpack is working on Windows, Linux, Android, Darwin11, just chose right binary.
    - Superrepack is working only under android


    Changelog:

    - version 1 (21.Jun.2020), initial version
    - version 1.1 (22.Jun.2020), dump file format detection, partition size correction in case ext4, partition group detection, have extraction progress bar, improvements
    - version 2 (03.04.2021) implemented possibility to extract partition images to rw mode using Superunpack & I have made new tool called Superrepack
    - version 2 (04.04.2021) implemented arguments so you would do conversion on single partition instead of doing it on all partitions
    - version 3 (04.04.2021) implemented return codes and implemented output logs to be more scripting friendly
    - version 4 - not released
    - version 5 (08.04.2021) implemented resize and repair partitions after switching to rw mode. Implemented build script for building resize2fs, e2fsck, simg2ims, img2simg, lptools
    - version 6 (08.04.2021) better loop device detection and setup
    - version 7 (08.04.2021) fix selinux status detection
    - version 8 (15.04.2021) fix loop device setup in superrepack
    - version 9 (16.04.2021) make losetup android compatible
    - version 10 - not released
    - version 11 (01.05.2021) simplified, removed needs for parameter rw, implemented dm-verity disabler
    - version 12 (05.05.2021) make old logs always deleted before fresh log is created, this prevent concentation with old logs
    - version 13 (06.05.2021) make linux version so you should do the things on your super partition dump in linux machine
    - version 14 (07.05.2021) fix compilation mess between linux and android
    - version 15 (08.05.2021) use libselinux to determine and set selinux to permissive mode instead of popening getenforce-setenforce tools

    Credits:

    - me and me :)


    Source code:

    - source code -> https://github.com/munjeni/super_image_dumper
    12
    I'm not one of those who make paid software and promote on xda, my work is always free. Even I'm always providing source code for free, source code of this tool is here -> https://github.com/munjeni/super_image_dumper , enjoy! ;)
    3
    Version 7 is out! V6 had error detecting slinux status. I do not have device with super partition for test my tool but I have only hope that all is ok. Let me know! :)
    3
    Pixel 4a, working. V13
    2
    New version is out, v11, it now detect file format, partition size correction in case ext4, partition group detection, have extraction progress bar, and it looks like:

    Code:
    ---------------------------------------------------------
    Super image dumper v_11 (by expert :) munjeni @ xda 2020)
    ---------------------------------------------------------
    
    LpMetadataGeometry magic = 0x616c4467
    LpMetadataGeometry struct size = 0x34
    LpMetadataGeometry sha256 = 12FF55F0ABA7B506F25CB5DA5DCA09344234E8DF1D9C93AE82A499D98019467E
    LpMetadataGeometry metadata_max_size = 0x10000
    LpMetadataGeometry metadata_slot_count = 0x3
    LpMetadataGeometry logical_block_size = 0x1000
    
    LpMetadataHeader magic = 0x414c5030
    LpMetadataHeader major_version = 10
    LpMetadataHeader minor_version = 0
    LpMetadataHeader header_size = 0x80
    LpMetadataHeader header sha256 = CCF4F5D07842AAAE7C1B87F0E025512CF7AEA426D477B1E5175DA3D74F9B1C8C
    LpMetadataHeader tables_size = 0x2e8
    LpMetadataHeader tables sha256 = 52578668F89D8BCDA1BD1F748F2F69ED874C10A7062C85EF9970EE05D90161B1
    LpMetadataHeader partitions offset = 0x0
    LpMetadataHeader partitions num_entries = 0x8
    LpMetadataHeader partitions entry_size = 0x34
    LpMetadataHeader extents offset = 0x1a0
    LpMetadataHeader extents num_entries = 0x5
    LpMetadataHeader extents entry_size = 0x18
    LpMetadataHeader groups offset = 0x218
    LpMetadataHeader groups num_entries = 0x3
    LpMetadataHeader groups entry_size = 0x30
    LpMetadataHeader block_devices offset = 0x2a8
    LpMetadataHeader block_devices num_entries = 0x1
    LpMetadataHeader block_devices entry_size = 0x40
    
    Partitions = 5 used, 3 not used, total 8
    
      partition_1_name = system_a
        attributes = 0x1
        first_extent_index = 0x0
        num_extents = 0x1
        group_index = 0x1
        partition_group = somc_dynamic_partitions_a
        extent num_sectors = 0x336390 (0x66c72000 bytes total)
        extent target_type = 0x0
        extent target_data = 0x800 (dumping offset = 0x100000)
        extent target_source = 0x0
          Filetype EXT4. EXT4 size = 0x6526c000
          Dumping system_a.ext4 ...
          ....................................................
          ....................................................
          ....................................................
          ..............................................
      partition_2_name = system_b
        attributes = 0x1
        first_extent_index = 0x1
        num_extents = 0x1
        group_index = 0x2
        partition_group = somc_dynamic_partitions_b
        extent num_sectors = 0xab178 (0x1562f000 bytes total)
        extent target_type = 0x0
        extent target_data = 0x337000 (dumping offset = 0x66e00000)
        extent target_source = 0x0
          Filetype EXT4. EXT4 size = 0x150b3000
          Dumping system_b.ext4 ...
          ..........................................
      partition_3_name = product_a
        attributes = 0x1
        first_extent_index = 0x2
        num_extents = 0x1
        group_index = 0x1
        partition_group = somc_dynamic_partitions_a
        extent num_sectors = 0x2b62b8 (0x56c57000 bytes total)
        extent target_type = 0x0
        extent target_data = 0x3e2800 (dumping offset = 0x7c500000)
        extent target_source = 0x0
          Filetype EXT4. EXT4 size = 0x5565b000
          Dumping product_a.ext4 ...
          ....................................................
          ....................................................
          ....................................................
          ..............
      partition_4_name = product_b (not unused)
        attributes = 0x1
        first_extent_index = 0x3
        num_extents = 0x0
        group_index = 0x2
        partition_group = somc_dynamic_partitions_b
        extent num_sectors = NULL
        extent target_type = NULL
        extent target_data = NULL
        extent target_source = NULL
          Skipping dump.
    
      partition_5_name = vendor_a
        attributes = 0x1
        first_extent_index = 0x3
        num_extents = 0x1
        group_index = 0x1
        partition_group = somc_dynamic_partitions_a
        extent num_sectors = 0x186d58 (0x30dab000 bytes total)
        extent target_type = 0x0
        extent target_data = 0x699000 (dumping offset = 0xd3200000)
        extent target_source = 0x0
          Filetype EXT4. EXT4 size = 0x30141000
          Dumping vendor_a.ext4 ...
          ....................................................
          ............................................
      partition_6_name = vendor_b (not unused)
        attributes = 0x1
        first_extent_index = 0x4
        num_extents = 0x0
        group_index = 0x2
        partition_group = somc_dynamic_partitions_b
        extent num_sectors = NULL
        extent target_type = NULL
        extent target_data = NULL
        extent target_source = NULL
          Skipping dump.
    
      partition_7_name = odm_a
        attributes = 0x1
        first_extent_index = 0x4
        num_extents = 0x1
        group_index = 0x1
        partition_group = somc_dynamic_partitions_a
        extent num_sectors = 0xa60 (0x14c000 bytes total)
        extent target_type = 0x0
        extent target_data = 0x820000 (dumping offset = 0x104000000)
        extent target_source = 0x0
          Filetype EXT4. EXT4 size = 0x132000
          Dumping odm_a.ext4 ...
    
      partition_8_name = odm_b (not unused)
        attributes = 0x1
        first_extent_index = 0x5
        num_extents = 0x0
        group_index = 0x2
        partition_group = somc_dynamic_partitions_b
        extent num_sectors = NULL
        extent target_type = NULL
        extent target_data = NULL
        extent target_source = NULL
          Skipping dump.
    Press any key to continue . . .

    If you need to mount ext4 partition on Linux you need to mount partition RO or it will not mount!
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone