[Closed] Universal SystemRW / SuperRW feat. MakeRW / ro2rw (read-only-2-read/write super partition converter)

Status
Not open for further replies.
Search This thread

Flashfire5606

Member
Mar 5, 2018
11
1
I don't know what I am doing wrong, device is Oneplus Nord N100 global var. flashed through test version of twrp. also I have tried setting custom size to 15, 50 and 0 all results the same. the end of the log goes as such. (just in case all files in log folder attached.)

systemrw: Joining all extracted images back into one single super image...
systemrw: Please wait and ignore the invalid sparse warnings...

Not enough space on device for partition vendor_b with size 1016492032

systemrw: Error! failed to create super_fixed.img file. Error code: 70

(edit: idk if dmesg log is needed xda wont let me upload it for some reason.)
 

Attachments

  • lpdump.txt
    2.1 KB · Views: 13
  • myargs.txt
    1.1 KB · Views: 6
  • mylog.txt
    7.7 KB · Views: 10
  • Wow
Reactions: lebigmac

lebigmac

Account currently disabled
Jan 31, 2017
1,342
995
Hi @Flashfire5606 thanks for your log files.
Hi @Rahamatulla thanks for your interest in this project.
Please keep in mind that removing shared_blocks read-only feature will duplicate lots of blocks that used to be shared. This will increase size of each partition which is embedded inside your super partition by approximately 200 MB.
Maybe that's why @Flashfire5606 gets error 70 (insufficient space) despite using size=0 (shrink to minimum).
I'm sure this can easily be fixed somehow...
 
Last edited:

Flashfire5606

Member
Mar 5, 2018
11
1
Please keep in mind that removing shared_blocks read-only feature will duplicate lots of blocks that used to be shared. This will increase size of each partition which is embedded inside your super partition by approximately 200 MB.
Maybe that's why @Flashfire5606 gets error 70 (insufficient space) despite using size=0 (shrink to minimum).
I'm sure this can easily be fixed somehow...
that's probably why, stock vendor is 950 mb with this its showing as 1.3gb give or take.
 

jhayprince

Member
Nov 20, 2021
21
9
I really thank you..working for me REDMI NOTE 10 PRO Global....I only flash the zip file then restart the phone...then install the terminal emulator then grant permission after that type su then enter...then I type this command. mount -0 remount,rw /system_root

Now I can delete the system apps ....before when I try to delete says that read only file..
 
  • Love
Reactions: lebigmac

lebigmac

Account currently disabled
Jan 31, 2017
1,342
995
Thanks! It works flawlessly (although I had to do it manually, it's easy enough). My device is a Redmi Note 9S (curtana). If I update my device, do I need to remake the fixed super.img or should I flash the one made before the update?
Hi @LanceLot9980. Congratulations for getting the script to work on your device! Enjoy a fully read/write-able device! :love:(y)
If you upload your log files from script folder and a screenshot of your system mounted as r/w then I can add you to the list of successful devices on front page ;)(y)

@LanceLot9980 yes I noticed your question but I was on the road.
If you update OTA this will most likely restore the shared_blocks read-only feature on your super partition which means you will have to run script again if you want to go full r/w again ;)
Thanks! It works flawlessly (although I had to do it manually, it's easy enough). My device is a Redmi Note 9S (curtana). If I update my device, do I need to remake the fixed super.img or should I flash the one made before the update?
The flashable zip gave you error 255? Don't worry I already fixed this issue in next version ;) Hopefully I can release it soon!
 
Last edited:
Hi @LanceLot9980 and @jhayprince . Congratulations for getting the script to work on your device! Enjoy a fully read/write-able device! :love:(y)
If you upload your log files from script folder and a screenshot of your system mounted as r/w then I can add you to the list of successful devices on front page ;)(y)

@LanceLot9980 yes I noticed your question but I was on the road.
If you update OTA this will most likely restore the shared_blocks read-only feature on your super partition which means you will have to run script again if you want to go full r/w ;)
If you update OTA and flash old super image from previous firmware version this will most likely cause bootloop but you can try it if you feel adventurous. Good luck!

The flashable zip gave you error 255? Don't worry I already fixed this issue in next version ;) Hopefully I can release it soon!
I see. Thanks for clarifying. Guess I'll wait for the next version of the flashable zip then.

I kinda already changed ROMs so I don't have the logs anymore :p. Also, I can't actually mount /system as r/w because I get an error saying it's not in /proc/mounts. I can, however, mount root as r/w and can edit system files that way.

Edit: I noticed there's 0B free in root partition in the new ROM. I recall that not being the case before. Is something wrong?
 
Last edited:

jhayprince

Member
Nov 20, 2021
21
9
This my log files it's working perfectly...Redmi note 10 pro global version...
 

Attachments

  • mylog.txt
    5.9 KB · Views: 14
  • lpdump.txt
    1.5 KB · Views: 13
  • Love
Reactions: lebigmac

jhayprince

Member
Nov 20, 2021
21
9
Successfully flashed on Redmi Note 10 Pro MIUI 12.5 android 11 without error. I can change /system to RW.
But I can only rename or delete files in /system, moving files to /system fails on Root Explorer app (magisk root), reboot is still working at this time.
Then I try to move the file in twrp file manager with "rw remount" command and it works, but my phone gets bootloop when reboot :((
my friend we are thesame model redmi note 10 pro global miui 12.5.8...
but for me is working perfectly..
first thing i did is flash the zip file and give error...
then i restart my phone after flash the zip...and start to flash again and its working perfectly without error..but sad things i can't remove the system file...then i download terminal emulator and grant permission then i type this code su and hit enter then mount -0 remount,rw /system_root
after that i restart my phone and its work like a charm....
 

lebigmac

Account currently disabled
Jan 31, 2017
1,342
995
I see. Thanks for clarifying. Guess I'll wait for the next version of the flashable zip then.

I kinda already changed ROMs so I don't have the logs anymore :p. Also, I can't actually mount /system as r/w because I get an error saying it's not in /proc/mounts. I can, however, mount root as r/w and can edit system files that way.
Hi again @LanceLot9980.
Yes I mean this path in Android /
Or this path in recovery /system_root
I'm happy that now you can finally mount these aforementioned paths as read/write-able and fully debloat your device :D(y)
I noticed there's 0B free in root partition in the new ROM. I recall that not being the case before. Is something wrong?
Try running script again with larger custom size such as size=25 or size=50 for instance. And then please send me your log files. Thanks. Your feedback is useful for further development of script.
Good luck! Have fun debloating your device and make lots of backups before doing so! (y)

This my log files it's working perfectly...Redmi note 10 pro global version...
Hi @jhayprince. Thanks for your log files.
Congratulations! Enjoy a fully read/write-able device! :love:(y)
first thing i did is flash the zip file and give error...
then i restart my phone after flash the zip...and start to flash again and its working perfectly without error..
Which error was it?
 
Last edited:
  • Like
Reactions: LanceLot9980

Daniel_47

Member
Aug 5, 2020
6
2
Redmi 9C
OnePlus Nord 2T
Hello, First of all Thank you very much for this amazing script. Sadly I couldn't get this to work on my device. Could you help me fix this error ? (look at the attachment)

Thank you.
 

Attachments

  • Screenshot_2021-11-25-16-44-35-153_jackpal.androidterm.jpg
    Screenshot_2021-11-25-16-44-35-153_jackpal.androidterm.jpg
    296.6 KB · Views: 45

lebigmac

Account currently disabled
Jan 31, 2017
1,342
995
Hello, First of all Thank you very much for this amazing script. Sadly I couldn't get this to work on my device. Could you help me fix this error ? (look at the attachment)

Thank you.
Hi. Thanks for your interest in this project. Why use old deprecated version? Try latest v1.32 and please send me your log files from script folder. Thanks.
Good luck!

And keep in mind new version is coming soon!
 
  • Love
Reactions: Daniel_47

xda general

Senior Member
Jun 21, 2015
54
9
So while trying to get this script to work again on Redmi 9 I figured out something. @lebigmac if I run the script in recovery then reboot my device to "fastbootd" mode then do the commands fastboot erase system, vendor, product. Then reboot to recovery and reflash my rom I can get vendor and product RW but still no System RW
 
  • Wow
Reactions: lebigmac

jis251

Senior Member
Aug 2, 2013
227
62
HI and thx. Your script works great.
I just flashed it from TWRP (I have Super Partition and I didn't change size, default 15)
It took few mins and all is ok. Now I can get my phone working much better .
OnePlus Nord 2 (DN2103), android 11
Thank you very much.
 
  • Love
Reactions: lebigmac

JLamp

Member
May 9, 2009
8
2
Moto G Power (2021)
Hi there, I'm running rooted Android 11 on a Moto G Power 2021. I have tried and failed a few attempts both with the initial instructions and also the repair method you have provided. I would like to attempt using the SuperRepack process you linked to in the first post but am not sure how to apply it to your method to make it work. Could you provide some guidance on this and if possible the location of the super.bin file and what needs to be entered in the command line? Thank you and please.
 
  • Sad
Reactions: lebigmac

Nad4

New member
Nov 28, 2021
3
0
The manual method worked for Pixel 4a on Android 12 (modified script), but even tho I can mount system R/W, I only get 0kb files when copying and can't create folders anywhere. I tried with FX, Root Explorer and ADB with the same results.
My goal is install Cerberus in priv-apps, I'm rooted with Magisk.
Edit: I just noticed it shows no available space in the file system, maybe that has something to do with it ?
Edit 2: Deleting a system app did not "free space", no luck.
 

Attachments

  • Screenshot_20211128-175104.png
    Screenshot_20211128-175104.png
    231.3 KB · Views: 25
  • Screenshot_20211128-175202.png
    Screenshot_20211128-175202.png
    30.4 KB · Views: 25
  • mylog.txt
    8 KB · Views: 10
  • lpdump.txt
    4.3 KB · Views: 4
Last edited:
  • Wow
Reactions: lebigmac

lebigmac

Account currently disabled
Jan 31, 2017
1,342
995
The manual method worked for Pixel 4a on Android 12 (modified script), but even tho I can mount system R/W, I only get 0kb files when copying and can't create folders anywhere. I tried with FX, Root Explorer and ADB with the same results.
My goal is install Cerberus in priv-apps, I'm rooted with Magisk.
Hi @Nad4. Thanks for your log files (y). This is great news! Does this mean your device still boots after flashing the patched super image? The script actually works in Android 12? That's crazy! I'm surprised they didn't fix this System RW vulnerability in Android 12 yet?!
Which device are you using?

If you can mount your system as rw and delete system files but you cannot write into your system that means script works :love:(y) but it looks like your system has ran out of space :oops:
To increase free system space you can run script again with a larger custom size. For example size=50 or size=100
Good luck! (y)

auto-resize feature in next version should take care of such issues ;)(y)
 
Last edited:
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 243
    Welcome to the one and only, the original, universal,

    System-RW / Super-RW feat. Make-RW / ro2rw (read-only-2-read/write super partition converter) by lebigmac
    Also known as: THE-REAL-RW, FULL-RW, EXT4-RW, EROFS-RW, EROFS-2-RW, F2FS-RW, F2FS-2-RW, EROFS-2-EXT4-CONVERTER, F2FS-2-EXT4-CONVERTER, Super Resizer/Flasher, SYSTEM-RW / PRODUCT-RW / VENDOR-RW / ODM-RW, root enhancer, real root, FULL ROOT, RW MULTI TOOL and many more aliases!
    (NOTE: Full F2FS-RW support coming in 1. quartal 2023 ! Get your Samsungs ready!)



    The prophecy has finally been fulfilled.
    Making Android ten years younger!
    Inspiring a whole generation of talented developers and empowering the open source community.
    The Pandora's Box has been fully unlocked at last!
    The genie has been unleashed from within the bottle!
    Sesame! Open up now!
    Let the Olympic Android System Modding Games (OASMG) begin!
    The power is now in YOUR hands! And don't forget:
    With great power comes great responsibility!


    Creation date: February 2021
    Updated: January 2023

    Requirements:
    • rooted STOCK Android 10 or newer
    • at least 10+ GB free space on phone for dumping data
    Description:
    A script for all Android power users that wish to make their read-only Android 10+ system read/write-able again to remove bloatware and make more thorough customizations to their device.
    Script only modifies super and vbmeta partitions. /data partition is not affected. It's only used for dumping data and for storing script files.
    In a nutshell this is what the script is doing:
    • dumps your existing super partition
    • extracts embedded read-only sub-partitions (system, system_ext, odm, vendor, product...) from specified super image
    • makes these sub-partitions read/write-able using the one and only original MakeRW/ro2rw algorithm
    • joins everything back together to new super.img
    • flashes read/write-able patched super image back to device using the super fast Kolibass technique (only available in recovery mode)

    NOTE:
    • The script can be run both inside custom recovery and inside Android operating system.
      If you run script in Android mode you will need to fastboot flash the patched image(s) manually!
    • To check whether or not the script worked correctly you can run this code:
      Bash:
      adb shell
      su
      mount -o remount,rw /
      mount -o remount,rw /odm
      mount -o remount,rw /product
      mount -o remount,rw /system_ext
      mount -o remount,rw /vendor
      mount | grep dm- | head -5
    Manual installation:
    • Extract flashable.zip and copy sysrw_*VERSION* folder into /data/local/tmp/
    • run this command to make the script executable:
      chmod +x /data/local/tmp/sysrw_*VERSION*/sysrw
    Automatic installation:
    Installation of the script has never been this easy!
    Download the flashable.zip below, do NOT enable zip signature verification and simply install it in your custom recovery (works in TWRP, OrangeFox and PBRP!)
    The update binary will auto-detect the arguments in config.ini and launch the script accordingly

    Flashable zip custom usage:
    You can easily modify the custom script execution arguments in the included config.ini file. Simply extract the flashable.zip, edit the included config.ini file with notepad and then save the file. Next compress the sysrw_*VERSION* and META-INF folders again as a new flashable .zip and install it in recovery. Have fun playing around with your config.ini :D(y)

    Script usage:
    Simply execute the program from the terminal shell with or without custom arguments
    Optional script arguments:
    Replace x with your custom value
    • in=x
      Specify existing super image as input [OPTIONAL]
      Omitting this parameter is equivalent to using in=@auto which is equivalent to using your super block device as input
    • out=x
      Specify patched super image output file path [OPTIONAL]
      Omitting this parameter is equivalent to using out=@auto
      and the patched super image will be saved as ./img/super_patched.bin by default
    • size=x
      Specify the extra free space (in megabytes) to be added to each sub-partition of super.img [OPTIONAL]
      Omitting this parameter is equivalent to using size=@auto which will activate the auto-resize feature
    • -r
      Specify whether or not the patched super image should be output in raw file format [OPTIONAL]
      Omitting this parameter will create a sparse patched super image by default

    Usage examples:
    Bash:
    adb shell
    su
    cd /data/local/tmp/sysrw_1.33
    chmod +x ./sysrw
    
    #  Run program with default settings [RECOMMENDED]
    ./sysrw
    
    # Specify existing super image as input [OPTIONAL]
    ./sysrw in=./img/super_original.img
    
    # Specify patched super image output file path [OPTIONAL]
    ./sysrw out=./img/super_patched_new.img
    
    # Specify the extra free space (in megabytes) to be added to each sub-partition of super.img [OPTIONAL]
    ./sysrw size=15
    
    # Specify whether or not the patched super image should be output in raw file format [OPTIONAL]
    ./sysrw -r
    
    # EXPERT EXAMPLE (Warning! This command could potentially corrupt your system. Only use at your own risk in recovery mode!)
    ./sysrw in=img/super_original.bin out=`realpath /dev/block/by-name/super` -r

    Uninstallation:
    • To free up space and keep script as well as r/w capability you can simply delete /img subfolder at /data/local/tmp/sysrw_*VERSION*/img
    • To delete script and keep r/w capability you can simply delete whole script folder at /data/local/tmp/sysrw_*VERSION*
    • To undo all changes performed by the script you can simply reflash original stock read-only super image and re-enable dm-verity and verification either through adb/fastboot or with the included avbctl binary.

    Troubleshooting:
    If you can't get this script to work on your device check out the brand new sophisticated superrepack tool by @munjeni
    If you get any errors from the update-binary in your custom recovery during installation of the flashable .zip then please send me this log file /tmp/recovery.log
    and a screenshot of your error. Thanks! (y)
    Make sure the script folder was correctly extracted to:
    /data/local/tmp/sysrw_*VERSION*
    If you can't run the script try making the file executable like this: chmod +x ./sysrw
    If you still can't get it to work run which sh in your shell and replace the shebang in the first line of the script with the output of that command. Don't remove the first two #! symbols though. Then save the file and try again.
    Make sure you've got full read / write access to the /data/local/tmp directory and that the containing files are not encrypted in custom recovery!
    If you get a bootloop after successfully creating and flashing super_patched.bin then that's probably because you didn't properly disable your dm-verity and verification.
    To undo any bootloop simply re-flash original stock read-only super image and re-enable dm-verity and verification with the included avbctl binary or through adb/fastboot. Those are the only changes performed by the script. If you have any more questions just ask in this thread. Good luck!

    About:
    I did not come up with all this by myself. After searching for a solution for countless days without success, going even as far as learning hex editing - I accidentally came across a couple of very interesting threads burried deep inside the new forum interface where this method has been described by various rw enthousiasts (links can be found in the credits section below). Therefore most credit goes to these rw enthousiasts. I'm only the amateur who put it all together into a compact script so that everybody can enjoy an Android system that's read/write-able again. Just like it used to be in Android 9 or earlier. Before these annoying 'shared_blocks' and 'EROFS' read-only features were implemented.

    Credits:
    Huge thanks to @Brepro1 for allowing me to use his awesome tutorial and make it into a script. Without your tutorial guiding me I couldn't have created this script.
    Huge thanks to @Kolibass for allowing me to use his partition tools for Android. Without your tools this script would not work on the Android platform!
    Big thanks @munjeni for allowing me to use his amazing superunpack V1 tool in the initial version. It helped me to understand how these super images work.
    Thanks @AndyYan your great tutorial also helped me a lot for automating the script especially the lpdump part.
    Thanks @bynarie for making available his otatools package! A part of it was bundled with the initial version which helped me to create this universal version. It's still part of the troubleshooting repair script to fix error 73.
    Thanks @HemanthJabalpuri for assisting me in optimizing the underlying algorithm!

    Disclaimer:
    #Disclaimer v3.0​
    This open source software is provided as is without any kind of warranty or support whatsoever.
    By using and viewing this software you agree to the following terms:
    • Under no circumstances shall the author be held responsible for any damages that may occur from the (inappropriate) use of this software (or parts thereof).
    • All responsibility, liability and risk lies with the end-user. You hereby agree not to abuse this software for illegal purposes.
    • Please don't steal, hack, crack, mod, hex-edit, decompile, rebrand and / or abuse this software or parts thereof. Thank you!
    • This software can be re-uploaded to 3rd party websites indefinitely as long as the software itself (or any parts thereof) were not modified by unauthorized 3rd parties without the original author's prior knowledge and explicit written consent
    • This software (or parts thereof) were provided for free only for non-commercial, educational, personal, legal purposes
    • To use this software (or parts thereof) for commercial purposes, please rent a commercial usage license
      Thank you very much for your support! Thanks to your amazing support I can continue working on this project and other interesting projects like this. :D(y)

    Enjoy debloating and customizing your fully read/write-able next-gen Android device! :love:(y)

    Please post your feedback, suggestions and your Olympic Android System Mods (OASMG) @ the official SystemRW / SuperRW feat. MakeRW / ro2rw by lebigmac links below. Thanks :D(y)

    https://xdaforums.com/t/universal-s...tition-converter-resizer-by-lebigmac.4247311/

    https://xdaforums.com/t/closed-the-...n-converter-erofs-rw-ext4-rw-f2fs-rw.4536821/


    v1-31d_01-jpg.5309953
    v1-31d_03-jpg.5309957


    1-jpg.5235933


    working-jpg.5525671


    Confirmed working on these devices:


    Download

    current status: experimental


    If you like this project and want to support further development of it & the creation of more amazing projects like this then please feel free to donate to the original developer lebigmac by clicking the button below. Thanks! Your support is very much appreciated!

    Donate
    25
    Thread Closed

    Hello everyone

    As helpful as @lebigmac may be, no one – not even us – is above XDA's Forum Rules. Our work as moderators usually remains in the background but it felt necessary to provide some transparency here. After consulting our team I have decided to ban the OP of this thread for three months and it will remain locked until OP requests to open it back up after the ban expires. For some of you this will come as a complete surprise and may seem unfair but I would like to stress that we have invested a massive amount of energy and a mountain of patience to come to a resolve with lebigmac. Several moderators were involved. Despite our many efforts, (s)he persisted to openly accuse people of plagiarism, inciting conflict, call out the people involved and communicated in a very condescending and demeaning way.
    We of course regret this course of action. Developers and development is everything to us but boundaries must be respected. After several earlier time-outs we had no other option but to proceed this way. We're hoping this will bring back some peace in this feud as well. With so much going on in the world we really don't need opposing developer parties. Open source is about cooperation and improving existing code, not about bitter fights over protecting your own code, which is based on the work of others anyway. One questionable screenshot aside, there hasn't been any viable proof of plagiarism provided to us related to this project.

    Thank you all for your understanding and as always we remain available to answer your questions and concerns via PM. Have an amazing day!

    Kind regards
    Timmy
    Senior Moderator
    17
    If the script works on your device please send me your log files from this folder:
    /data/local/tmp/systemrw_1.32/log/

    And please write your phone model - Android version - firmware version

    Then I can add you to the list of successful devices and it will be helpful for further development. Thank you!(y)
    17
    Allow me to add some more information to above post of my teammate @Timmmmaaahh!

    The account of the author of this thread has been permanently suspended. In your own interest, I ask everybody not to promote a banned user or his website, blog, work etc. on XDA. Thanks very much for your cooperation.

    Regards
    Oswald Boelcke
    Senior Moderator
    10
    Okay I know you guys have been waiting a long time... Thanks for your patience, loyalty, support and your interest in this amazing project for the past year! Unfortunately there's lots of dubious copycats floating around by now. Remember you saw it here first ;)(y)
    The one and only, the original
    SystemRW / SuperRW featuring MakeRW by lebigmac
    This month new version should be ready :D(y)
    I'm working on it hard 🛠️⚙️⛏️🔧✂️🔨
    Hopefully we can start beta testing in 2nd half of April May June July August September October and then it should be ready for final release :love:
    I'm so excited!


    This is awesome! Unfortunately, it doesn't support Android 12 yet : ( .

    The new version has support for Android 12 and beyond! :ROFLMAO:

    Bash:
    sdkCheck(){
        sdkVersion=`getprop ro.build.version.sdk`
        if [ $sdkVersion -lt 29 ]; then
            printf "$app: Please install Android 10 or newer and try again\n\n" && exit 1
        else
            android=$(($sdkVersion - 19))
        fi
        printf "$app: Current Android version: %s\n" $android
    }