File structer must be UFS then for the script to work. Stock firmware from A12 and up uses EROFS and the script doesn't work for that file structure!C63, i was on crdroid8, then upgraded to PixelEx 13 then Nameless 13, then ParanoidAndroid13.
File structer must be UFS then for the script to work. Stock firmware from A12 and up uses EROFS and the script doesn't work for that file structure!C63, i was on crdroid8, then upgraded to PixelEx 13 then Nameless 13, then ParanoidAndroid13.
It didn't work on LE2127 after multiple tries...unless I am doing something wrong!All custom roms now are based on OOS12+ (EROFS) and i'm on A13, so yeah. The script extracts the partitions and rebuilds them as ext4 (and un-shares blocks), add a bit of space so it can switch the RO to RW.
custom roms have ext4 not erofsC63, i was on crdroid8, then upgraded to PixelEx 13 then Nameless 13, then ParanoidAndroid13.
i am also using it on custom roms but oos12.13 have erofs and custom doesn't that's the reason for working custom rom, ( CUSTOM ROM DONT HAVE EROFS ) ......It didn't work on LE2127 after multiple tries...unless I am doing something wrong!
It workedTransfer the file to you adb folder, type cmd in the folder's address bar. It will open a terminal window.
Reboot your phone to fastboot. (Power off and then boot with 3 buttons)
Then type the code above. It will erase the super and flash the fixed one. It takes a lot of time, the cursor keeps blinking.. leave it for a ½ hour or more.
It does not reset your phone to factory. Just replaces the system partitions.
Yeah, i think so.It workedThanks a lot
Pixel 6a, unlocked bootloader, Android 13.
Do I need to re-do the steps every time there is an android update?
systemrw: Please wait and ignore the invalid sparse warnings...
Not enough space on device for partition product with size 1089863680
systemrw: Error! failed to create super_fixed.img file. Error code: 70
remove anything from the .img system partitions before expanding the partition, and packing it into super. unfortunately the lebigmac script can't do that.Code:systemrw: Please wait and ignore the invalid sparse warnings... Not enough space on device for partition product with size 1089863680 systemrw: Error! failed to create super_fixed.img file. Error code: 70
How to fix this error. Thank
I don think so, I have done ota's on my pixels and it stays (its the super partition which does change with a/b) however I haven't done a/b and another a/b update so I dont know 100%. Dont worry though since its so easy to do it.It workedThanks a lot
Pixel 6a, unlocked bootloader, Android 13.
Do I need to re-do the steps every time there is an android update?
Code:systemrw: Please wait and ignore the invalid sparse warnings... Not enough space on device for partition product with size 1089863680 systemrw: Error! failed to create super_fixed.img file. Error code: 70
How to fix this error. Thank
Not sure, but you may have -cow partitions taking up space in super (those are temp partitions created after ota) so before dumping your super from your device you need this:remove anything from the .img system partitions before expanding the partition, and packing it into super. unfortunately the lebigmac script can't do that.![]()
Thanks for you info.Not sure, but you may have -cow partitions taking up space in super (those are temp partitions created after ota) so before dumping your super from your device you need this:
In fastbootd you can see if it's present:
fastboot getvar-all
Anything ending in -cow is a temp file that can be deleted, like this:
fastboot delete-logical-partition system_a-cow
fastboot delete-logical-partition system_ext_a-cow
fastboot delete-logical-partition system_b-cow
fastboot delete-logical-partition system_ext_b-cow
fastboot delete-logical-partition system-cow
fastboot delete-logical-partition system_ext-cow
See this post:
Also there's Enhanced Fastboot and Payload dumper which could show you the cow partitions and let you delete them![]()
[Closed] Universal SystemRW / SuperRW feat. MakeRW / ro2rw (read-only-2-read/write super partition converter) by lebigmac
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...forum.xda-developers.com
![]()
[TOOL][Windows] Fastboot Enhance [Payload Dumper & Image Flasher]
Fastboot Enhance What it can do? - Show fastboot vars - Switch between fastbootd & bootloader - Switch between A & B slot - Flash Payload.bin in fastbootd - Flash images - Erase partitions - Delete logical partitions - Create logical partitions...forum.xda-developers.com
GOodluck on a vmHi everybody, perhaps someone will be able to help me...
My need is not the apply the script to a real phone but to an AVD (android virtual device) on Android Studio.
I applied the script on my AVD running on Android 11.
The script works well and I have now 5 files :
If I correctly understand, the super_fixed.bin is simply a .ZIP of all the others ? Am i right ?
- product.img
- scratch.img
- system.img
- system_ext.img
- vendor.img
- super_fixed.bin
Now that I have those files, I would like to recreate a new AVD with the files above.
I've noticed that the AVD uses a Google "system.img" file located in C:\Users\<ID>\AppData\Local\Android\Sdk\system-images\android-30\google_apis\x86_64.
When I unzip this system.img there are 2 files in it : 0.vbmeta.img and 1.super.img.
If I unzip the "1.super.img" file I have 4 files in it : product.img, system.img, system_ext.img and vendor.img.
My first question is : why I have that scratch.img with the script and not in the img files of Google ?
Here are all my unsuccessfull tries :
First try :
I rename the "super_fixed.bin" file in "1.super.img", overwrite the Google 1.super.img and ZIP the Google 0.vbmeta.img + 1.super.img in a new file called system.img.
I overwrite the Google system.img in C:\Users\<ID>\AppData\Local\Android\Sdk\system-images\android-30\google_apis\x86_64 with my new system.img
I try to create a new AVD in Android Studio and launched it with : emulator.exe -avd Pixel_6 -writable-system -no-snapshot
Black screen...
Second Try :
I was thinking that it can be due to scratch.img that I have in super_fixed.bin and not in Google system.img.
Then I created a ZIP with only my new product.img, system.img, system_ext.img and vendor.img.
I rename the ZIP in "1.super.img".
I ZIP the Google 0.vbmeta.img + 1.super.img in a new file called system.img.
I overwrite the Google system.img in C:\Users\<ID>\AppData\Local\Android\Sdk\system-images\android-30\google_apis\x86_64 with my new system.img
I try to create a new AVD in Android Studio and launched it with : emulator.exe -avd Pixel_6 -writable-system -no-snapshot
Black screen...
Do you know If i have a chance to succeed or am I doing something wrong in my steps ?
Best Regards,
Guillaume
No on stock firmware, very possible on custom firmware
I disagree, I have tried on STOCK, QPR1 so it works on most pixels. Custom ROMs don't require this script as they all have resized and RW partitions.
The new version v1.35 will run from anywhere and has no hard-coded project path like the old version v1.32. You can for example push the sysrw_1.35 folder into /data on an encrypted device and it should still work as long as there is sufficient free space to work with in /data drive.When flashing sysrw_1.35.zp it creates a sysrw_1.35 directory in sdcard/sysrw_1.35 which is different from when flashing systemrw_1.32.zip will create data/local/tmp/systemrw_1.32. Can you give me an explanation for this difference?
Whenever you'd create the patched super image, there will be 2 commands that use the "avbctl" binary. However, just to give myself time to prepare for a wipe of my data, I disabled those commands, with @lebigmac's help of course, and flashed the "vbmeta" image, with the following command:
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
.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
chmod +x /data/local/tmp/sysrw_*VERSION*/sysrw
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
/data/local/tmp/sysrw_*VERSION*/img
/data/local/tmp/sysrw_*VERSION*
chmod +x ./sysrw
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./data/local/tmp
directory and that the containing files are not encrypted in custom recovery!/data/local/tmp/systemrw_1.32/log/
This is awesome! Unfortunately, it doesn't support Android 12 yet : ( .
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
}