[GUIDE] Universal guide for making your partitions inside super read-writable again.

Search This thread

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
So you could to set the ext4 vendor image to 2G. 2G = 2147483678 bytes. Try to set the -l parameter to 2147483648.
In start this line need to change?
This 123076xxx?
make_ext4fs -J -T 1230764400

Or just replace this

vendor_file_contexts -l %FS_SIZE% -C
%***%
With this number
2147483648

And what about this one? Is this also need to replace somewhere?
2147483678
 

lebigmac

Account currently disabled
Jan 31, 2017
1,206
813
1. Sorry for copying a sentense from your thread (which is modified). But your sentence is good for people to make up their mind to continue the process and get benefited.
2. In my opinion, your script is out of date and your script even cannot get expected result on my Android 11 device (with ext4 partitions in super). This new method was entirely came up from my mind and it as been tested for days. You can compare the guide with your sh scripts. They are fully different.
3. Providing all tools in one zip can deeply help some people without linux environment perform some operations extremely convinient. Not everyone is feeling easy to compile their own binary. These tools can be found on the Internet, but, among lots of the tools for the same purpose, I have selected the best tools. For example, there are a lot of erofs unpack tools but lots of them have problems extracting my vendor.img only the erofsunpackrust works. All tools provided are selected carefully. All I can do is to make people following my guide to complete things they want to do in a very easy way.
4. Anyway, Thanks for your support.
1) Apology accepted but only because you're from Japan and I love Japan :love:. But you must admit that copy/pasting the words out of my mouth without giving proper credit was just totally wrong. You could've at least tried to change some words to your own words maybe? I recommend reading a fantasy book to increase your creativity ;)(y)
Thanks for your compliment though :)

Yes that's true my old script is a bit outdated by now. That's not a problem there's always new versions in the pipeline just waiting to be released. If my old script didn't work properly on your device then why you never said hi or thanks to me and you never sent me your logs or any feedback whatsoever? Together with your skills we could've fixed my old script... If only you worked together with me...

I am happy that you came up with your own way of doing the rw magic using the make_ext4fs tool without copying other people's source code. Hey that's great. Not all can resist the sin of stealing other honest developer's code.
I am always happy about innovations in the rw game. That's only beneficial to the whole open source community. ;)(y)
And I think you got it right when it comes to converting everything to EXT4 file system format. This is definitely the way to go for the future it seems. You hit the bullseye spot-on. Good job on that one! 🎯(y)

4) You're welcome.
 
Last edited:

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
So you could to set the ext4 vendor image to 2G. 2G = 2147483678 bytes. Try to set the -l parameter to 2147483648.
ok i successfully make vendor and i flashed but after boot vendor part is stil ro

make_ext4fs -J -T 1230764400 -S vendor/config/vendor_file_contexts -l 2147483648 -C vendor/config/vendor_fs_config -L vendor -a vendor vendor_a.img vendor/vendor
loaded 2955 fs_config entries
Creating filesystem with parameters:
Size: 2147483648
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 0
Label: vendor
Blocks: 524288
Block groups: 16
Reserved block group size: 127
Created filesystem with 2964/131072 inodes and 368723/524288 blocks


Invalid sparse file format at header magic
Resizing 'vendor_a' OKAY [ 0.000s]
Sending sparse 'vendor_a' 1/6 (259216 KB) OKAY [ 7.490s]
Writing 'vendor_a' OKAY [ 0.860s]
Sending sparse 'vendor_a' 2/6 (261485 KB) OKAY [ 6.315s]
Writing 'vendor_a' OKAY [ 0.703s]
Sending sparse 'vendor_a' 3/6 (262140 KB) OKAY [ 6.220s]
Writing 'vendor_a' OKAY [ 0.712s]
Sending sparse 'vendor_a' 4/6 (258441 KB) OKAY [ 6.188s]
Writing 'vendor_a' OKAY [ 0.719s]
Sending sparse 'vendor_a' 5/6 (258717 KB) OKAY [ 6.191s]
Writing 'vendor_a' OKAY [ 0.712s]
Sending sparse 'vendor_a' 6/6 (100836 KB) OKAY [ 2.422s]
Writing 'vendor_a' OKAY [ 1.792s]
Finished. Total time: 48.503s
 

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
i just edit one line in build prop in vendor and flashed but device rebooting just

Resizing 'vendor_b' OKAY [ 0.000s]
Sending sparse 'vendor_b' 1/6 (259216 KB) OKAY [ 8.907s]
Writing 'vendor_b' OKAY [ 0.890s]
Sending sparse 'vendor_b' 2/6 (261485 KB) OKAY [ 7.546s]
Writing 'vendor_b' OKAY [ 0.813s]
Sending sparse 'vendor_b' 3/6 (262140 KB) OKAY [ 9.717s]
Writing 'vendor_b' OKAY [ 0.786s]
Sending sparse 'vendor_b' 4/6 (258441 KB) OKAY [ 7.500s]
Writing 'vendor_b' OKAY [ 0.703s]
Sending sparse 'vendor_b' 5/6 (258717 KB) OKAY [ 7.532s]
Writing 'vendor_b' OKAY [ 0.704s]
Sending sparse 'vendor_b' 6/6 (100836 KB) OKAY [ 2.843s]
Writing 'vendor_b' OKAY [ 1.781s]
Finished. Total time: 61.032s
 

Yuki1001

Senior Member
i just edit one line in build prop in vendor and flashed but device rebooting just

Resizing 'vendor_b' OKAY [ 0.000s]
Sending sparse 'vendor_b' 1/6 (259216 KB) OKAY [ 8.907s]
Writing 'vendor_b' OKAY [ 0.890s]
Sending sparse 'vendor_b' 2/6 (261485 KB) OKAY [ 7.546s]
Writing 'vendor_b' OKAY [ 0.813s]
Sending sparse 'vendor_b' 3/6 (262140 KB) OKAY [ 9.717s]
Writing 'vendor_b' OKAY [ 0.786s]
Sending sparse 'vendor_b' 4/6 (258441 KB) OKAY [ 7.500s]
Writing 'vendor_b' OKAY [ 0.703s]
Sending sparse 'vendor_b' 5/6 (258717 KB) OKAY [ 7.532s]
Writing 'vendor_b' OKAY [ 0.704s]
Sending sparse 'vendor_b' 6/6 (100836 KB) OKAY [ 2.843s]
Writing 'vendor_b' OKAY [ 1.781s]
Finished. Total time: 61.032s

I suggest you to build a new super image and flash it via fastboot mode instead of flashing vendor via fastbootd. It may modifies your image and causes other problems.

PS: We are increasing each partition's size and rebuilding a new super image. Using fastbootd will shrink your vendor's image and may even cause damage to the filesystem.

i just edit one line in build prop in vendor and flashed but device rebooting just

Maybe you have modified a critical one for booting?
 

Yuki1001

Senior Member
ok i successfully make vendor and i flashed but after boot vendor part is stil ro

make_ext4fs -J -T 1230764400 -S vendor/config/vendor_file_contexts -l 2147483648 -C vendor/config/vendor_fs_config -L vendor -a vendor vendor_a.img vendor/vendor
loaded 2955 fs_config entries
Creating filesystem with parameters:
Size: 2147483648
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 0
Label: vendor
Blocks: 524288
Block groups: 16
Reserved block group size: 127
Created filesystem with 2964/131072 inodes and 368723/524288 blocks


Invalid sparse file format at header magic
Resizing 'vendor_a' OKAY [ 0.000s]
Sending sparse 'vendor_a' 1/6 (259216 KB) OKAY [ 7.490s]
Writing 'vendor_a' OKAY [ 0.860s]
Sending sparse 'vendor_a' 2/6 (261485 KB) OKAY [ 6.315s]
Writing 'vendor_a' OKAY [ 0.703s]
Sending sparse 'vendor_a' 3/6 (262140 KB) OKAY [ 6.220s]
Writing 'vendor_a' OKAY [ 0.712s]
Sending sparse 'vendor_a' 4/6 (258441 KB) OKAY [ 6.188s]
Writing 'vendor_a' OKAY [ 0.719s]
Sending sparse 'vendor_a' 5/6 (258717 KB) OKAY [ 6.191s]
Writing 'vendor_a' OKAY [ 0.712s]
Sending sparse 'vendor_a' 6/6 (100836 KB) OKAY [ 2.422s]
Writing 'vendor_a' OKAY [ 1.792s]
Finished. Total time: 48.503s

The newly built vendor.img is not sparse. They are prepared for the following step of building a new super.img. So if you must flash the vendor.img seperately via fastbootd, transform it from raw format to sparse format and then flash.
 

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
I suggest you to build a new super image and flash it via fastboot mode instead of flashing vendor via fastbootd. It may modifies your image and causes other problems.

PS: We are increasing each partition's size and rebuilding a new super image. Using fastbootd will shrink your vendor's image and may even cause damage to the filesystem.



Maybe you have modified a critical one for booting?
once again thanks for your time why not i dig it little more deeper
i just make dump super.img and flash it without doing anything so device reboot to fastboot
and not booting/// that,s why i,m scared with making super.img

i maked vendor and flash device booted
but again i flash another build.prop edit vendor so device not boot so i decide
to flash old vendor to see its booting or not but its not booted this time
i flashed with many differt commands but its wont booted
i used these commands
fastboot flash vendor vendor.img
vendor_a vendor_a.img
vendor vendor.img --all slot
and also tried in slot b
basiclly my device is ativated in slot b

so i booted my device via stock rom vendor.img
device booted

(Keep in mind i used vendor.img from Fastboot ROM to unpack and repack it)
later i relaized to used device vendor to make another rw.img
but i noticed my device vendor size is now 2gb before it was about 1gb something
but still i try to unpack it but its gived a same error as i show upper in logs and you said i need to change my erofs.img (but i never founded it anywhere)

so here i,m asking your my fastboot rom not have super.img its have table like this
system_ext
system
vendor
product etc

so is it ok to use img files from FB rom?
and still its neccesry to make super.img?
plz shine more light on it thanks
 

Yuki1001

Senior Member
once again thanks for your time why not i dig it little more deeper
i just make dump super.img and flash it without doing anything so device reboot to fastboot
and not booting/// that,s why i,m scared with making super.img

i maked vendor and flash device booted
but again i flash another build.prop edit vendor so device not boot so i decide
to flash old vendor to see its booting or not but its not booted this time
i flashed with many differt commands but its wont booted
i used these commands
fastboot flash vendor vendor.img
vendor_a vendor_a.img
vendor vendor.img --all slot
and also tried in slot b
basiclly my device is ativated in slot b

so i booted my device via stock rom vendor.img
device booted

(Keep in mind i used vendor.img from Fastboot ROM to unpack and repack it)
later i relaized to used device vendor to make another rw.img
but i noticed my device vendor size is now 2gb before it was about 1gb something
but still i try to unpack it but its gived a same error as i show upper in logs and you said i need to change my erofs.img (but i never founded it anywhere)

so here i,m asking your my fastboot rom not have super.img its have table like this
system_ext
system
vendor
product etc

so is it ok to use img files from FB rom?
and still its neccesry to make super.img?
plz shine more light on it thanks
Have you modified fstab.qcom under /vendor/etc? If your fstab only has erofs mount entries, you should add ext4 mount entries for partitions inside super.
 

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
Have you modified fstab.qcom under /vendor/etc? If your fstab only has erofs mount entries, you should add ext4 mount entries for partitions inside super.
Well be honest i don't know anything about it
Can u details about it how should i modify it or how can i know my erofs entries and how can i add ext4 mount entries in this
 

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
Have you modified fstab.qcom under /vendor/etc? If your fstab only has erofs mount entries, you should add ext4 mount entries for partitions inside super.
fstab.png

i,m sure you talk about this place and also you talk about modify it in unpack vendor and flash it
can you talk abou little more which things here need to modify
it have one ext4 and one is erofs now what should i do?
 
Last edited:

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
done everything flashed and device booted i think my dev mapper have rw
but

mount l grep "dm-0"
mount: Max 2 arguments

any idea about this?

in
ls -l
drwxr-xr-x 15 root shell

in my dev mapper have rw access now bro but vendor etc still ro
dont know what to do now


edited here,s some more result bro

:/ # mount /dev/block/dm-19 /
:/ # mount /dev/block/dm-1 /
:/ # mount -o rw,remount /vendor_a
mount: '/vendor_a' not in /proc/mounts
1|OnePlus8:/ #

@

Yuki1001

 
Last edited:

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
You are required to use "|" not "l".

The mount point of your vendor partition is /vendor.
here,s the frist 3 is odm system_a and vendor_a
# mount | grep "dm-0"

# mount | grep "dm-3"
# mount | grep "dm-19"

but in system_ext etc i get this error
these partitions showing ro but not showing which one have rw
i try mount vendor by your command as well but still browser not switch to rw
mount -o rw,remount /vendor

i noticed one command will able to switch root / to rw

mount /dev/block/dm-0 /

this command swtich ro to rw but still nothing able to edit


# mount | grep "dm-1"
/dev/block/dm-10 on /mnt/vendor/my_product type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-13 on /mnt/vendor/my_company type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-14 on /mnt/vendor/my_carrier type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-15 on /mnt/vendor/my_region type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-12 on /mnt/vendor/my_heytap type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-11 on /mnt/vendor/my_stock type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-16 on /mnt/vendor/my_preload type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-17 on /mnt/vendor/my_bigball type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-18 on /mnt/vendor/my_manifest type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-10 on /my_product type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-13 on /my_company type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-14 on /my_carrier type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-15 on /my_region type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-12 on /my_heytap type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-11 on /my_stock type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-16 on /my_preload type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-17 on /my_bigball type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)
/dev/block/dm-18 on /my_manifest type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)



mount -o rw,remount /vendor
mount: '/dev/block/dm-4'->'/vendor': Operation not permitted
 

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
now see this isn,t creepy even its showing my these parts are converted to ext4 and also
rw but still fuSking not able to edit something

OnePlus8:/ # mount | grep "dm-0"
/dev/block/dm-0 on / type ext4 (rw,seclabel,relatime)
OnePlus8:/ # mount | grep "dm-19"
/dev/block/dm-19 on / type ext4 (rw,seclabel,relatime)
OnePlus8:/ # mount | grep "dm-3"

@

Yuki1001

 

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
Disclaimer: I'm not responsible for any result of these operations. Please be careful and well prepared. Always have your important data backed up safely on other place.






If you think it's useful, please click the "Like" button. Thanks!
can u calculate exact size for me becoz i add only 50mb and flashed but getting this error
FAILED (remote: 'Not enough space to resize partition')

this is my unpacked vendor size 1,467,228,472
and this is vendor.img size 952,664,064

make sure its ven
not ven_a
only
its have both
 
Last edited:

Yuki1001

Senior Member
can u calculate exact size for me becoz i add only 50mb and flashed but getting this error
FAILED (remote: 'Not enough space to resize partition')

this is my unpacked vendor size 1,467,228,472
and this is vendor.img size 952,664,064

make sure its ven
not ven_a
only
its have both
So you'd better give your new vendor.img (ext4 format) at least a size of 1,610,612,736 (1.5GB). Or 1.6G, 1.7G? Set the size on your own.
 

Yuki1001

Senior Member
this command swtich ro to rw but still nothing able to edit
Magisk uses "inherit the requester's namespace" by default. Mount the fs as r/w in your Root Explorer (or similar application) not terminal. Then modify as you like.

I noticed that your ext4 image is resized by fastbootd automatically. Try avoid using fastbootd and build a static and new super.img instead. (Flash the super.img under fastboot mode: fastboot flash super super.img).

EDIT: use the command to remount to rw:
Code:
mount -o remount,rw (mount point)


# Example mount root directory rw:

mount -o remount,rw /
 
Last edited:

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
Magisk uses "inherit the requester's namespace" by default. Mount the fs as r/w in your Root Explorer (or similar application) not terminal. Then modify as you like.

I noticed that your ext4 image is resized by fastbootd automatically. Try avoid using fastbootd and build a static and new super.img instead. (Flash the super.img under fastboot mode: fastboot flash super super.img).

EDIT: use the command to remount to rw:
Code:
mount -o remount,rw (mount point)


# Example mount root directory rw:

mount -o remount,rw /
As i explain in pm to you
In odm system etc i don't need even to use this command
Just press rw in root browser and its done
Now need vendor I'm in last step
 

Mr Hassan

Account currently disabled
Feb 14, 2016
935
57
OnePlus 10 Pro
Magisk uses "inherit the requester's namespace" by default. Mount the fs as r/w in your Root Explorer (or similar application) not terminal. Then modify as you like.

I noticed that your ext4 image is resized by fastbootd automatically. Try avoid using fastbootd and build a static and new super.img instead. (Flash the super.img under fastboot mode: fastboot flash super super.img).

EDIT: use the command to remount to rw:
Code:
mount -o remount,rw (mount point)


# Example mount root directory rw:

mount -o remount,rw /
After flash vendor device not booting
?
In stock image its flashing
1/4
And in modded image
1/6
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    1-Can I just make modification to system image and that makes it rw without other images
    ?

    2-Can i add the edited system img to super image without the rest of the steps? Using the lpmake command even it will not be read write?
    Magisk has a module that I use which emulates read/write permissions to system partition. Its called OverlayFS and it works phenomenal. Currently using on Lineage 19.1 for the Oneplus 8T! Much more simple than flashing images, I recommend going this route for the sake of simplicity. It's worth a try! Happy flashing! I hope it helps accomplish your goal.

    https://github.com/Magisk-Modules-Alt-Repo/magisk_overlayfs
    1
    Can you make your whole method with script flashable like @lmabds etc have?
    As I explained to @lebigmac, this solution requires you to switchs between 2 platforms, so a single device cannot finish the whole process.

    My rw unlock steps need to switch between different platforms (Windows and Linux).
    Dump super -> use your lpunpack -> adb pull to Windows PC -> erofsunpackrust and make_ext4fs -> adb push to phone (Linux) -> e2fsck and lpmake -> adb pull new super image to PC -> fastboot flash.

    So everything would easy if all steps can be done on a single platform (whether Windows or Linux).
    Maybe I'll find make_ext4fs and erofsunpack exectuable for arm64 linux, then integrate the whole progress to the phone (Linux side).
    1
    i am getting this error, how to fix this ?
    I had a similar error trying to run erofsunpackRUST-android too. It thinks the first superblock is corrupt and panics. I stopped trying this.
    Head over to lebigmac's thread, my last post shows how i got my super rw (mostly on android if you have already have your super_original, or you could use the script to dump the file directly first)
  • 10
    Disclaimer: I'm not responsible for any result of these operations. Please be careful and well prepared. Always have your important data backed up safely on other place.



    Hello everyone!

    As far as 2022 and Xiaomi gets their new phones updated to MIUI13 and Android 12, they implement the new read-only filesystem "EROFS" on the logical partitions inside super partition. EROFS is a filesystem initial developed by Huawei and then Google select it as a new standard to use in read only logical partition inside super partition from Android 12. The "EROFS", is the short for "Extendable (or Enhanced?) Read-Only Filesystem", conveying that this filesystem is a one-time cooked filesystem and cannot be changed without extracting and re-cooking. With erofs we cannot modify the logical partition anymore so I found a new way to unlock these partitions.

    I just faced and managed to solve the "lock" and I would like to share the solution, which may help more people.


    My device: Xiaomi 12 (cupid).
    System: Stock MIUI13 (Android 12).

    Logical partitions with read-only lock inside super partition: system, vendor, product, system_ext, odm, vendor_dlkm. All of them are erofs filesystem.
    Be aware that this device is virtual a/b and the _b partitions inside super are 0k blank files. No need to do anything with them.

    In theory, all devices shipping with erofs partitions inside super are compatible with this method. Feedbacks are always welcome!

    Before we start: This guide is for Android power users that wish to make their Android 12+ read-only system/vendor.... partitions with EROFS filesystem inside super read-writeable again to remove the bloatware and do more customizations to their device.

    Credits:
    @Yuki1001 - EROFS Guide, research, new rw discoveries.
    @lebigmac - a couple of rw slogans, some binaries, inspiration.


    Requirements:
    1. Your phone must be unlocked as you must flash your new super.img through fastboot command. Root is required to run any command in a terminal (win cmd or linux terminal).
    2. 20GB+ free space on your phone and PC.
    3. The toolkit needed.
    4. A clever brain and courage.


    So in short, the tutorial contains these part:
    (1) Dump and extract your super image.
    (2) Pull the folder with partition images extracted from super image to the PC.
    (3) Convert these erofs images to ext4 images (Extract and Rebuild). These new images are in the same folder.
    (4) Push the folder to the phone and fix any errors of new generated ext4 images.
    (5) Merge them into a new single sparse super image and pull it to the PC.
    (6) Flash the new image through fastboot command.
    (7) Check the rw capability of the logical partitions and do anything you want!

    Let's start now!


    1. Get your super image by dumping your current super partition. We can find our super partition in this way:
    Code:
    su
    cd /dev/block/bootdevice/by-name
    ls -al | grep "super"

    You will get the output like this:
    find-super-block.png


    Then we knows the super partition block number and path immediately. Let's dump its data to a file.
    Code:
    dd if=%PATH_TO_SUPER_BLOCK% of=/data/local/tmp/super_orig.img bs=4096
    Wait for the data transfer done and we can get the super image. DO NOT forget to replace "%PATH_TO_SUPER_BLOCK%" with your own super block path!


    2. Now we can do things with the super_orig.img: Extract logical partitions inside super partition to a folder. I will use Google's official tool: lpunpack. For example, I extract these partitions inside super to "sup_unpack" folder. Give all binaries in tools folder with executive permission in advance.
    Code:
    ./tools/lpunpack ./super_orig.img sup_unpack

    Now check with the folder to confirm whether these partitions insider super are extracted. If so, we can transmit the folder to the PC with adb pull. Extract my unlock-super folder in advance and we need to place the pulled out folder in it.
    Code:
    adb pull /data/local/tmp/sup_unpack
    Now the "sup_unpack" folder exists in the platform-tools folder. Move it to the "unlock-super" folder.


    3. Extract these erofs images one by one with erofsUnpackRust.exe and repack them into ext4 image. Check the folders' size to determine how big space does the new ext4 filesystem need. I'd like to recommend you to preset some free space for every new ext4 images for further modifications.
    You are required to remove all _a suffix for the images in order to make the following program works properly. For example: system_a.img --> system.img. You have been warned!

    For example:
    Code:
    erofsUnpackRust sup_unpack/system.img system
    erofsUnpackRust sup_unpack/vendor.img vendor
    erofsUnpackRust sup_unpack/product.img product
    
    .... (and so on)

    You will get the output like these screenshots:
    unpack-system.png
    unpack-vendor.png


    For building a new image, we need to set a timestamp for all files included. I use 1230764400 as it equals the original file timestamp in erofs image. DO NOT forget to replace %FS_SIZE% with your real fs size you want. So go with the following command:
    Code:
    ***DO NOT COPY!***
    
    Example:
    
    System:
    make_ext4fs -J -T 1230764400 -S system/config/system_file_contexts -l %FS_SIZE% -C system/config/system_fs_config -L system -a system system_a.img system/system
    
    Vendor:
    make_ext4fs -J -T 1230764400 -S vendor/config/vendor_file_contexts -l %FS_SIZE% -C vendor/config/vendor_fs_config -L vendor -a vendor vendor_a.img vendor/vendor
    
    For odm, product, system_ext, vendor_dlkm...... and other partitions, use the same step.

    You should get the output like these screenshots:
    repack-system.png
    repack-vendor.png
    repack-odm.png
    repack-system_ext.png


    When you completed the steps above you should have the images in ext4 format. Then make a folder named "new_ext4" and move the new image files (_a suffix) to the new_ext4 folder. Make sure all partitions' images are correctly rebuilt.
    new gen img.png

    Copy the _b blank files toghether with new built _a images:
    rename all files.png



    4. Push the folder that contains your image to /data/local/tmp again. In my case use this command:
    Code:
    adb push new_ext4 /data/local/tmp/new_ext4
    Then check whether the new folder exists in the correct place. DO NOT forget to use e2fsck -yf to fix any errors of the new images before joining them into a super image.


    5. Now we have all partitions unlocked and corrected but we need to join them into a single "super_new.img" for flashing. Use the lpmake tool to create the new "super_new.img". Again, DO NOT forget to replace %SUPER_SIZE% with your super partition's physical size (the size of super_orig.img) , and replace mulitiple %SIZE% with the real size of your new built ext4 images (with _a suffix) .

    Code:
    ***DO NOT COPY!***
    
    cd /data/local/tmp/new_ext4
    ../tools/lpmake --output super_new.img --sparse --metadata-size 65536 --super-name super --metadata-slots 2 --device super:%SUPER_SIZE% --group slot_a:%SUPER_SIZE% --group slot_b:0 --partition system_a:none:%SIZE%:slot_a --image system_a=./system_a.img --partition vendor_a:none:%SIZE%:slot_a --image vendor_a=./vendor_a.img --partition product_a:none:%SIZE%:slot_a --image product_a=./product_a.img --partition system_ext_a:none:%SIZE%:slot_a --image system_ext_a=./system_ext_a.img --partition odm_a:none:%SIZE%:slot_a --image odm_a=./odm_a.img --partition vendor_dlkm_a:none:%SIZE%:slot_a --image vendor_dlkm_a=./vendor_dlkm_a.img --partition odm_b:none:0:slot_b --image odm_b=./odm_b.img --partition system_b:none:0:slot_b --image system_b=./system_b.img --partition vendor_b:none:0:slot_b --image vendor_b=./vendor_b.img --partition product_b:none:0:slot_b --image product_b=./product_b.img --partition system_ext_b:none:0:slot_b --image system_ext_b=./system_ext_b.img --partition vendor_dlkm_b:none:0:slot_b --image vendor_dlkm_b=./vendor_dlkm_b.img
    rebuild-super_new.png

    In the command we use --sparse parameter to let the new joined super image sparse, for the following fastboot flash.


    6. Pull the new super_new.img to the computer. Do the fastboot flash. Erase the super partition and flash the new image.

    Code:
    adb pull /data/local/tmp/new_ext4/super_new.img
    
    fastboot erase super
    fastboot flash super super_new.img
    flash super.png


    Now the partitions inside super should already have full r/w capability. Reboot the phone to check whether they can be mounted as r/w.


    Voila!
    unlocked-super-show.png



    All tools are provided as attachments.
    Password: super-rw


    If you think it's useful, please click the "Like" button. Thanks!
    1
    My ext have around 900mb
    And vendor something like 1400mb
    And both are getting same error
    I thought maybe big size i just try remove some file but still same

    If its small size issue then how can increase or large it?
    Or should i merge both partitions on same but i don't think it'll be possible

    Would you like to take some screenshots of your extracted folder's size and the original image's size?

    PS: After calculating all your files' total size, I recommend you to reserve at least 500MB+ free space inside your new ext4 image.
    1
    So you could to set the ext4 vendor image to 2G. 2G = 2147483678 bytes. Try to set the -l parameter to 2147483648.
    1
    Yeah, i know it's not directly to make system rw, but this script ( dfe-neo) works on A12+ so it could help decrypt EROFS before trying rw script. Also help with getting TWRP working unencrypted on op9pro.
    Did you try by your self in op9 os12?
    Coz i asked from them he said its not for rw
    1
    No i didn't. Like i said, the script is not for rw. But the devs could find a workaround on a EROFS system.
    maybe...