• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!
Search This thread

lebigmac

Senior Member
Jan 31, 2017
867
504
@quanqw In that case we must try to figure out why e2fsck command failed for vendor_a.img
Can you run the command manually?
e2fsck -y -E unshare_blocks ./vendor_a.img
 
Last edited:
@lebigmac has made more progress than anybody and should be commended for his genius. Now let's help him play process of elimination.

So, all the Chinese branded phones (Xiaomi, Redmi, Poco) works. All the American branded phones (Motorola, Samsung, LG) don't work. I'd say while the script is great and functional, we need to figure out what is so different about the American phones versus the Chinese phones that has the intrusive block in them that stops recompiling.

Does everybody who made the script work on TWRP? If not, were you able to Disable Verity?

For the people with Moto's that tried it, did you try it in TWRP? If not, please say as such.
 
This theory is just wrong.

The script in its current form works great on all devices with slot A only

It doesn't currently work with devices that have a super partition and slot A/B
I am working on it. Don't worry.

If somebody with slot A/B could please send me the download link to their official super.img firmware that would be great! Thank you!

To check if you've got slot A/B check this value in your lpdump
Metadata slot count: 3

if the number is 3 that means you have A/B
if the number is 2 that means you have slot A only
Is that the significant difference? I was under the impression all android 10 phones were running A/B because of the dynamic partition mess.

Here's the link for my firmware: https://mirrors.lolinet.com/firmware/moto/kiev/official/RETEU/

Here's the link for ALL the KIEV firmware: https://mirrors.lolinet.com/firmware/moto/kiev/official/
 
  • Like
Reactions: lebigmac

lebigmac

Senior Member
Jan 31, 2017
867
504
is there a way to WIPE super partitions while flashing cusom roms?
i have SURYA (POCO NFC)
It could be possible with fastboot erase super
but I've never done this before and therefore cannot recommend it

Thanks a lot for this, finally i can get rid unwanted apps.
You're welcome. Did it work on your device?

Any downside of this? impact on performance or anything?
Congratulations for getting it to work on your device!
No downsides to making your system r/w ;)

Working in REDMI K30 Device
Congratulations! Is your device slot A only? Please send me your text files next to the script. Thanks!
 
Last edited:

Rahamatulla

Member
Jun 6, 2018
15
6

makeSystemRW v1.22

automated bash script by lebigmac for Android 10 and above

Creation date: February 2021
Updated: March 2021

Requirements:
  • STOCK Android 10 or newer (custom ROM should already be read-write!)
  • Custom recovery is recommended but no longer required in latest version
  • at least 20 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.

In a nutshell this is what the script is doing:
  • dumps your existing super OR your system / product / vendor partitions depending on whether or not you have super partition
  • extracts embedded read-only partitions (system, vendor, product...) from super if applicable
  • makes these partitions read-write-able
  • joins everything back together to new super.img OR NOT depending on whether or not you have super partition
  • flashes read-write-able images back to device using the super fast Kolibass technique (only in recovery mode)
User data is not affected.

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 BOTH TWRP AND ORANGEFOX!)
The installer binary will auto-detect whether or not your device has a super partition and launch the script accordingly with the proper command line arguments.

Flashable zip custom usage:
You can set these custom installation arguments in the included config.ini file.
Simply extract the flashable.zip and modify the makesysrw_*VERSION*/config.ini file and make your adjustments. Then compress the makesysrw_*VERSION* and META-INF folders again as a new .zip and install it.
First line of config.ini contains the script arguments for those WITHOUT super partition.
By default this line is completely empty (no space).
Second line of config.ini contains the script arguments for those WITH super partition.
For example if you already dumped your super_original and want to skip that process next time you install the .zip then put this in line #2 of config.ini :
Code:
 in=./files/super/super_original.bin size=100
Remember if you decide to use custom arguments in config.ini then the first character should always be an empty space. If no arguments are used such as by default in line #1 (no super) then the line should be completely empty, no space, nothing.

Script usage:
If you've got no super partition then simply call the script with no arguments from the shell.
If you've got a super partition I would recommend using the optional size=100 parameter as well to give some extra free space (in MB) to each partition.
The script can be run both inside custom recovery and inside Android operating system. If you run it in Android you will need to fastboot flash the patched images manually!
Optional arguments: (replace x with your custom value)
  • in=x : *THIS IS IGNORED IF YOU HAVE NO SUPER PARTITION*
    With this flag you can specify an existing super image as input and skip the entire dumping of the super image process. Here you can use the super_original.bin which you dumped earlier with makesysrw or the official unsparsed super.img from your downloaded firmware. (unsparse with simg2img)
    If omitted, makesysrw will dump super image from phone to ./files/super/super_original.bin
    (path is relative to the script)
  • out=x : *THIS IS IGNORED IF YOU HAVE NO SUPER PARTITION*
    With this argument you can specify the output path of the new patched super file.
    If omitted, default output value is ./files/super/super_fixed.bin
  • size=x : *ONLY RECOMMENDED IF YOU HAVE SUPER PARTITION*
    With this parameter you can specify the extra free space (in megabytes) that will be added to each partition.
    If omitted, default extra size is 0 (shrink to minimum)
Examples:
Code:
# Run this command *IF YOU HAVE NO SUPER PARTITION*
./makesysrw.sh

# Run this command if you're first time user *AND YOU HAVE SUPER PARTITION*
# Specify the extra free space in megabytes for each partition:
./makesysrw.sh size=100

# Plug an existing super image into the script like this *ONLY IF YOU HAVE SUPER PARTITION*
./makesysrw.sh in=./files/super/super_original.bin size=100

# Specify both the input file as well as the output destination *ONLY IF YOU HAVE SUPER PARTITION*
./makesysrw.sh in=./files/super/super_original.bin out=./custom/path/super_fixed.bin size=100

To check whether or not you've got a super partition on your device you can run this command:

Code:
adb shell "ls -Alg /dev/block/by-name | grep 'super'"

Troubleshooting:
If you get error 255 when trying to install flashable zip then try to install it manually.
Make sure the script folder was correctly extracted to:
/data/local/tmp/makesysrw_*VERSION*
If you can't run the script try making the file executable like this: chmod +x ./makesysrw.sh
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 have full read write access to the /data/local/tmp directory and that the containing files are not encrypted in custom recovery!

NOTE:
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 coincidentally came across a couple of very interesting threads burried deep inside the new forum interface where this method has been described by various enthousiasts (links can be found in the credits section below). So I take absolutely no credit for the underlying core mechanisms of the script. 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 this annoying 'shared_blocks feature' was implemented.

Credits:
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! This genius also showed me how to flash a 8GB file to my partition in just under 30 seconds! Much faster than fastboot! I still can't believe it!
Big thanks to @Brepro1 for allowing me to basically copy his awesome tutorial and make it into a script. Without your tutorial guiding me I couldn't have created this script.
Thanks @AndyYan your great tutorial also helped me a lot for automating the script especially the lpdump part.
Also big thanks @munjeni for allowing me to use his superunpack tool in the previous version. It helped me to understand how these super images work.
Thanks @bynarie for making available his otatools package! A part of it was bundled with the previous version which helped me to create this version.
More thanks @gabrielfrias for his helpful comment
Thanks @YOisuPU and of course @topjohnwu for discovering the 'shared_blocks feature'

Disclaimer:
This is open source software and 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 or negative consequences that may arrise from the (inappropriate) use of this software.
All responsibility and liability lies with the end-user. You hereby agree not to abuse this software for illegal purposes. Use this software at your own risk!

Please feel free to improve this script as you see fit (as long as you don't add anything malicious).
And make sure to post your feedback, suggestions and improvements in the official thread right here.
If you decide to use my work in your project please send me a message and include a link to this official thread in your project. Thank you.


makesysrw_1-21_01-jpg.5264625
makesysrw_1-21_02-jpg.5264627
makesysrw_1-21_03-jpg.5264631

01-jpg.5259863
03-jpg.5259867


1-jpg.5235933


Download v1.22
current status: experimental/semi-stable
Seems to work well with slot A only devices

Please click my like button below if you like my work! Thanks!

Confirmed working on these devices :

Xiaomi Poco X3 NFC
Xiaomi Redmi Note 9 Pro joyeuse - Android 10
Xiaomi Mi 10 T Lite - Android 11
Xiaomi Mi 10 T lite - Android 11 - TWRP
Xiaomi Mi 10 - Android 11
Xiaomi Mi Note 10 Lite - Android 11 - OrangeFox
Xiaomi Redmi 9T - Android 11 - TWRP

Asus Rog Phone 3 - Android 10 - TWRP
Working in Poco X2 (Redmi K30) miui eu stable Android 10
 
  • Love
Reactions: lebigmac

munjeni

Senior Member
Jun 2, 2011
9,441
22,036
Hello! I have managed to understand how those unshare block feature is setled up! Probably I will update my superunpack tool to make all partitions rw on the fly without need for extra conversions, what I have mannaged to do is to make ext4 partition rw by removing shared_blocks feature from s_feature_compat from superblock. What I need to investigate is to nderstand how to regenerate sha256 hashes inside superimage, that mean my superimage tool will be able to make your partitions inside superimage all rw on the fly without a need for extra conversions and needs for any lpmake, resize2fs and things :)

This is my investigation right now for rw only -> https://pastebin.com/fJTP31n7

the rest I will do when I get some free time for it.
 

lebigmac

Senior Member
Jan 31, 2017
867
504
Hello! I have managed to understand how those unshare block feature is setled up! Probably I will update my superunpack tool to make all partitions rw on the fly without need for extra conversions, what I have mannaged to do is to make ext4 partition rw by removing shared_blocks feature from s_feature_compat from superblock. What I need to investigate is to nderstand how to regenerate sha256 hashes inside superimage, that mean my superimage tool will be able to make your partitions inside superimage all rw on the fly without a need for extra conversions and needs for any lpmake, resize2fs and things :)

This is my investigation right now for rw only -> https://pastebin.com/fJTP31n7

the rest I will do when I get some free time for it.

Congratulations my friend! It was about time you figure this one out :D
Giving customer support for my script can be quite exhausting depending on the technical understanding of the user.
Finally munjeni comes to the rescue :D
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,441
22,036
Hello! I have managed to understand how those unshare block feature is setled up! Probably I will update my superunpack tool to make all partitions rw on the fly without need for extra conversions, what I have mannaged to do is to make ext4 partition rw by removing shared_blocks feature from s_feature_compat from superblock. What I need to investigate is to nderstand how to regenerate sha256 hashes inside superimage, that mean my superimage tool will be able to make your partitions inside superimage all rw on the fly without a need for extra conversions and needs for any lpmake, resize2fs and things :)

This is my investigation right now for rw only -> https://pastebin.com/fJTP31n7

the rest I will do when I get some free time for it.
Probably we not need to modify all three sha256 hashes at all since we do not modify partitions geometry inside super partition!!? I'm able to generate right checksums up to first two -> https://postlmg.cc/jnVVMczK , the last one is not easy but I'm probably can do it too (believing we no need to modify any of those 3 checksums)

/* 44: The total size of all tables. This size is contiguous; tables may not
* have gaps in between, and they immediately follow the header.
*/
unsigned int tables_size;

/* 48: SHA256 checksum of all table contents. */
unsigned char tables_checksum[32];

So I'm believing I can make easy modification to my superunpack to make partitions rw on the fly during superimage extraction, even no need to be extracted but modified on the fly :)
 

munjeni

Senior Member
Jun 2, 2011
9,441
22,036
I'm uploaded changes to git you should compile it and try https://github.com/munjeni/super_image_dumper/commit/e1b7c96a787fa374ace39b7d34c9883741a7d953 what I'm done is simple prompt while extracting each ext4 image it will promt you to make it rw, with it you no need tools like tune2fs and e2fsck anymore

I will implement in next month super image on the fly tool withuot need to extract anything if you confirm hex editing super image didn't giving bootloop. You sholud hex compare rw and ro images to get idea what need to be modified inside superimage
 
  • Like
Reactions: quanqw and aIecxs

lebigmac

Senior Member
Jan 31, 2017
867
504
So I'm believing I can make easy modification to my superunpack to make partitions rw on the fly during superimage extraction, even no need to be extracted but modified on the fly :)

This is great news. Do you mean your tool can change the ro flag to rw directly inside the /dev/block/sda15 super partition block without extracting and dumping the files to internal storage? This would be awesome! Some people don't have much free space on internal storage. I have over 80GB of free space so for me extracting the files to internal storage is not an issue ;)
 
Last edited:

Top Liked Posts

  • 1
    Frankly, your log looks weird. It is not clear how the script can reports about the super partition, if Pixel 4 stock images DON'T have it. Also it doesn't have the
    '/dev/block/by-name/super' file!
    I've been using it for a long time, here are some videos before and after I used it
    Before I could install it automatically using flashable zip, I followed the instructions here: (and it works on both Android 10 and 11):
    Do you use "Magisk" for rooting?
    Did you run just ./systemrw.sh without parameters?
    - Yes i used Magisk to root
    - I simply downloaded and flashed the zip file with TWRP
  • 2
    is there any tutorial on how to use sysrw_repair_v1.32 ? :

    1- Sorry for spamming the thread.
    2- Thank you Keven11 and lebigmac
    3- Finally I got it, first flashed the stock rom (android 11) and started it just to create the /data/media/ folder. Right after that I turned off the device, flashed the twrp and magisk, and placed the systemrw_1.32 in the /data/local/tmp/ folder. I started the script from the twrp terminal "sh /data/local/tmp/systemrw_1.32/systemrw.sh size=15. After getting the error "73" screen, I started sysrw_repair_v1.32 in vmware emulating linux mint... And everything went really well! :)

    View attachment 5425517
    It is definitely a journey. Well worth the work, and time invested in then end. Also, it helps many people understand their devices just that much more. I am glad that you were successful.

    Also, everytime a person manages to get this to work for themselves, and explains how they did. That alone helps many others. So thank you for putting in the work, and sharing your experience.
    2
    1- Sorry for spamming the thread.
    2- Thank you Keven11 and lebigmac
    3- Finally I got it, first flashed the stock rom (android 11) and started it just to create the /data/media/ folder. Right after that I turned off the device, flashed the twrp and magisk, and placed the systemrw_1.32 in the /data/local/tmp/ folder. I started the script from the twrp terminal "sh /data/local/tmp/systemrw_1.32/systemrw.sh size=15. After getting the error "73" screen, I started sysrw_repair_v1.32 in vmware emulating linux mint... And everything went really well! :)

    c74256c2706c6e8f74e5858e4aa85f57.gif
    2
    Thanks. But you can tell in more detail. Where to get the super_original.bin and super_fix files. Please write detailed instructions.
    this script have 2 mode one is from recovery flash as zip second have run it in android environment.
    if you run this in recovery then it patch and flash super automatically.
    second if you run it in android environment with as mention location of /data/local/tmp/here_your_script_folder/here_script.sh then it create a "img" folder inside of script folder then pull super from your device make a backup and rename that to super_orignal.bin then extract that super and patch r/w capability then make that again super and rename it as super_fix.img so simply you get two bin files inside "img" folder
    if you wanna r/w your device flash super_fix.img from bootloader.
    if you wanna go back to original state "flash super_orignal.bin" from bootloader.
    directory tree will like this :-
    data/ ├─ local/ │ ├─ tmp/ │ │ ├─ systemrw_1.32/ │ │ │ ├─img/ │ │ │ │ ├─super_orignal.bin │ │ │ │ ├─super_fix.bin │ │ │ ├─ tools/ │ │ │ ├─ config.ini │ │ │ ├─ systemrw.sh
    thanks this for @The_Tablet
    That's it!
    1
    Thank u so much.. it's working on Redmi note 10.. I really wanted to install Dolby Atmos but failed because the file system is read only
    1
    Frankly, your log looks weird. It is not clear how the script can reports about the super partition, if Pixel 4 stock images DON'T have it. Also it doesn't have the
    '/dev/block/by-name/super' file!
    I've been using it for a long time, here are some videos before and after I used it
    Before I could install it automatically using flashable zip, I followed the instructions here: (and it works on both Android 10 and 11):
    Do you use "Magisk" for rooting?
    Did you run just ./systemrw.sh without parameters?
    - Yes i used Magisk to root
    - I simply downloaded and flashed the zip file with TWRP
  • 100
    If you can't get this script to work on your device check out the brand new sophisticated superrepack tool by @munjeni


    logo_large.jpg

    *NEW* SystemRW v1.32 *NEW*
    automated bash script by lebigmac for Android 10 and above

    Creation date: February 2021
    Updated: August 2021

    Requirements:
    • rooted STOCK Android 10 or newer (custom ROM should already be R/W!)
    • 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.

    In a nutshell this is what the script is doing:
    • dumps your existing super OR your system / product / vendor partitions depending on whether or not you've got super partition
    • extracts embedded read-only partitions (system, vendor, product...) from super if applicable
    • makes these partitions read/write-able
    • joins everything back together to new super.img OR NOT depending on whether or not you've got super partition
    • flashes read/write-able images back to device using the super fast Kolibass technique (only in recovery mode)
    User data is not affected.

    NOTE:
    • Extract BUNDLE.zip (the included sysrw_repair.zip is only for fixing error 73!)
    • Before launching script make sure you've got full read/write access to the /data partition by first decrypting and then mounting /data partition as R/W!
    • 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 you've got a super partition on your device you can run this command:
      adb shell "ls -l /dev/block/by-name/super"
    Manual installation:
    • Extract flashable.zip and copy systemrw_*VERSION* folder into /data/local/tmp/
    • run this command to make the script executable:
    chmod +x /data/local/tmp/systemrw_*VERSION*/systemrw.sh
    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 installer binary will auto-detect whether or not your device has a super partition and launch the script accordingly with the proper command line arguments.

    Flashable zip custom usage:
    You can set these custom installation arguments in the included config.ini file.
    Simply extract the flashable.zip and modify the included config.ini file and then save the file. Then compress the systemrw_*VERSION* and META-INF folders again as a new .zip and install it in recovery.
    First line of config.ini contains the script arguments for those WITHOUT super partition.
    By default this line is completely empty (no space).
    Second line of config.ini contains the script arguments for those WITH super partition.
    For example if you already dumped your super_original.bin and want to skip that process next time you install the .zip then put this in line #2 of config.ini :
    in=`ls -l /dev/block/by-name/super | awk '{print $NF}'` size=15
    Remember if you decide to use custom arguments in config.ini then the first character should always be an empty space. If no arguments are used such as by default in line #1 (no super) then the line should be completely empty, no space, nothing.

    Script usage:
    If you've got no super partition then simply call the script with no arguments from the shell (see examples below).
    If you've got a super partition I would recommend using the optional size=15 parameter as well to give some extra free space (in MB) to each partition.
    Optional script arguments:
    Replace x with your custom value
    • in=x *THIS IS IGNORED IF YOU'VE GOT NO SUPER PARTITION*
      With this flag you can specify an existing super image as input and skip the entire dumping of the super image process. Here you can use the super_original.bin which you dumped earlier with systemrw or the official unsparsed super.img from your downloaded firmware. (unsparse with simg2img). It's also possible to use your super partition block device as input.
      If omitted, systemrw will dump super image from phone to ./img/super_original.bin
      (path is relative to the script)
    • out=x *THIS IS IGNORED IF YOU'VE GOT NO SUPER PARTITION*
      With this argument you can specify the output path of the new patched super file.
      If omitted, default output value is ./img/super_fixed.bin
    • size=x *ONLY RECOMMENDED IF YOU'VE GOT SUPER PARTITION*
      With this parameter you can specify the extra free space (in megabytes) that will be added to each partition. There is a limit as to how much extra free space you can add per partition. Check your lpdump.txt to find out the exact maximum extra size.
      If omitted, default extra size is 0 (shrink to minimum)

    Examples:
    Bash:
    adb shell
    su
    cd /data/local/tmp/systemrw_1.32
    chmod +x ./systemrw.sh
    
    # Run this command *IF YOU'VE GOT NO SUPER PARTITION*
    ./systemrw.sh
    
    # Run this command if you're first time user *AND YOU'VE GOT SUPER PARTITION*
    # Specify the extra free space in megabytes for each partition:
    ./systemrw.sh size=15
    
    # Plug an existing super image into the script like this *ONLY IF YOU'VE GOT SUPER PARTITION*
    ./systemrw.sh in=./img/super_original.bin size=15
    
    # Specify both the input file as well as the output destination *ONLY IF YOU'VE GOT SUPER PARTITION*
    ./systemrw.sh in=./img/super_original.bin out=./custom/path/super_fixed.bin size=15
    
    # EXPERT EXAMPLE:
    ./systemrw.sh in=`ls -l /dev/block/by-name/super | awk '{print $NF}'` out=./img/super_fixed.bin size=50

    Troubleshooting:
    If you get error 255 in custom recovery when trying to install flashable zip then try to install it manually. If you encounter this error please send me this file /tmp/recovery.log
    Make sure the script folder was correctly extracted to:
    /data/local/tmp/systemrw_*VERSION*
    If you can't run the script try making the file executable like this: chmod +x ./systemrw.sh
    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 have full read write access to the /data/local/tmp directory and that the containing files are not encrypted in custom recovery!
    If you experience bootloop after successfully flashing super_fixed.bin then your device probably has additional protection features that prevent it from booting modified super images. Try to undo bootloop simply by flashing original stock super image. You might have to flash stock vbmeta as well. 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 enthousiasts (links can be found in the credits section below). Therefore I take absolutely no credit for the underlying core mechanisms of the script. 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 this annoying 'shared_blocks feature' was implemented.

    Credits:
    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! This genius also showed me how to flash a 5GB file to my partition in just under 30 seconds! Much faster than fastboot! I still can't believe it!
    Big thanks to @Brepro1 for allowing me to basically copy his awesome tutorial and make it into a script. Without your tutorial guiding me I couldn't have created this script.
    Thanks @AndyYan your great tutorial also helped me a lot for automating the script especially the lpdump part.
    Also big thanks @munjeni for allowing me to use his superunpack V1 tool in the previous version. It helped me to understand how these super images work.
    Thanks @bynarie for making available his otatools package! A part of it was bundled with the previous version which helped me to create this version. It's still part of the troubleshooting repair script to fix error 73.
    More thanks @gabrielfrias for his helpful comment
    Thanks @YOisuPU and of course @topjohnwu for discovering the 'shared_blocks feature'
    Thanks @HemanthJabalpuri for assisting me in optimizing the underlying algorithm!

    Disclaimer:
    #Disclaimer v2.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 ensue from the (inappropriate) use of this software.
    • All responsibility, liability and risk lies with the end-user. You hereby agree not to abuse this software for illegal purposes.
    • Under no circumstances shall the comments & title section of the script (lines #1 - #65) as well as the included update-binary be modified or removed by the end-user without the original author's explicit consent.
    • Under no circumstances shall any files included in this project be re-uploaded to 3rd party websites without the original author's explicit consent. That means NO RE-UPLOADS of my files please! Thank you!
    • Under no circumstances shall the end-user disrespect, abuse or steal my project for his own disturbed purposes! The end-user also agrees not to steal my program logo or program name or the names of my functions and variables (and more) only to re-publish them as his/her own without even mentioning the original source.
    • The end-user is encouraged to improve the underlying algorithm (as long as no malicious code is added) and post his/her modifications, results and feedback right here in the official SystemRW project thread @ xda-developers.com
    • If the end-user wants to re-publish my work in his/her own project then he/she shall first ask me (the original author) for permission.
      If you want to make a video tutorial about my script please contact me first!
      Thank you! I can give you high resolution project logo and more!

    Please make sure to post your feedback and suggestions in the official thread right here.
    Enjoy customizing your fully read/write-able Android device! And feel free to share your Android system mods with other users in this thread! Thanks!


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


    1-jpg.5235933


    Confirmed working on these devices :

    Download v1.32 mirror #1
    Download v1.32 mirror #2
    current status:
    experimental
    If you like this project and want to support further development of this project & the creation of more amazing projects like this then please feel free to donate to the developer by clicking the link below. Thanks! Your support is very much appreciated!

    Donate
    9
    If the script works on your device please send me your log files from this folder:
    /data/local/tmp/systemrw_1.32/log/

    Then I can add you to the list of successful devices and it will be helpful for further development. Thank you!
    6
    New version 1.20 is ready! DOWNLOAD HERE
    Good news for those that don't have TWRP or couldn't get it to work in their TWRP. Now the script can also be run directly inside Android. Keep in mind that you will have to flash the patched images manually in this case using fastboot flash.

    The zip can still be flashed in TWRP (make sure zip signature verification isn't checked). This time I bundled my device's stock sh binary (which I used to develop the script) with the archive. Hopefully this will prevent avoidable sh-related syntax errors for some folks. The flashable zip installer update-binary automatically launches the script with the proper arguments using this bundled sh program (it's inside the tools subfolder).

    To those that were having difficulties running the previous version due to empty partitions or multiple partition groups inside their super : this has finally been fixed :D

    Please give this new version a try and let me know if it works for you or not and I will add it to the first post. Thanks for your feedback!
    5
    I try to redo the procedure, i want to change the size. but i get error, can't remove lock.

    Good news. New hotfix available HERE
    I got rid of that buggy get minimum size function and reworked the size querying algorithm a little bit. Should be more stable now.

    Next step will be to make the script compatible with those devices that have empty partitions embedded inside their super partition...
    Also ronnie was complaining about syntax error but I have yet to find the syntax error... If anyone finds it please let me know so I can fix it. Thank you!
    4
    Great news! Flashable zip is almost ready! I'll upload it later today. Any volunteers want to beta test the new flashable zip to help me iron out any bugs? Please send me a message. Thanks!

    Installing the script has never been this easy. Simply swipe with finger inside TWRP and it's automatically installed to correct location on your phone.
    Then it checks a config file for any custom script execution arguments and launches the script with these arguments depending on whether or not your phone has a super partition.

    Let me tell you it was not easy to create this flashable zip installer but I had lots of fun learning about this whole flashable zip concept the past few days.