[GUIDE] Overlapping Partition Tables? Let's fix that - Google Pixel 2 XL Guides, News, & Discussion

WARNING! Main partition table overlaps the first partition by 6 blocks!
You will need to delete this partition or resize it in an other utility.
This guide is to help those, facing this message, who have been in a mixup when repartitioning their Google Pixel 2 XL devices with the introduction of Android 12 and later ROMs/GSI Images.
More specifically this situation occurs when one follows Dollscythe's 3.8GiB system guide, followed by my (PixelExperience) repartition script.
No worries, let's solve this.
DISCLAIMER:
I AM NOT RESPONSIBLE IF THESE FOLLOWING INSTRUCTIONS ARE NOT EXECUTED PROPERLY.
KINDLY TRIPLE CHECK THE COPIED COMMANDS BEFORE EXECUTING THEM.
ANY ALTERATION TO THE PARTITIONS NOT MENTIONED BELOW COULD CAUSE SERIOUS ISSUES.
Firstly, let's understand why this occurs.
When it comes to repartitioning using sgdisk, with the case of the PixelExperience repartition method, blocks strictly defined from a starting to an ending logical sector.
(FYI: 1 logical sector = 4096 bytes)
When a user follows Dollscythe's 3.8GiB system guide, using parted, in contrast to sgdisk, the logical system sectors are modified to allow 3.8GiB of size.
Whilst this method is ideal for those planning to either flash GSI images which require specifically a larger system image, rather than making use of both product and system_ext partitions on PixelExperience and other ROMs, it is not ideal to mix them both up with each other.
(Both product and system_ext partitions offload large data from the system image, with such system apps like GApps)
So to break this down:
System is modified to adapt to 3.8GiB.
Logical starting and ending sectors system_a, system_b, pstore, aes_a, aes_b, align_parti and userdata partitions are modified.
PixelExperience script attempts to delete stock partition's userdata, but instead conflicts with 3.8GiB table.
Partition table becomes overlapped. (numerical partition numbers are not in order)
That is why it is important to keep track of which partition table your device is currently running, before making any further alterations to your system's table.
To check your current partition table, reboot into a custom recovery that supports the ADB interface via platform tools and:
Code:
adb shell
Code:
sgdisk --print /dev/block/sda
The output of this command should indicate what table you are currently running, depending on the sizes of both system_a and system_b partitions (2.5GiB on stock), or any added ones such as product and system_ext.
So double check that you are running the stock partition table before undergoing any of the guides mentioned above.
It is also worth noting that Pixel 2 XL (taimen) devices, do not revert to the stock partition table upon flashing the stock image.
This behaviour is not the same for Pixel 2 (walleye) devices, as when the stock image is flashed, the partition table is reverted to default.
(This is due to LG and HTC's bootloader behaving in different ways.)
Now, let's untie this knot!
Got the error now? Let's get started.
In short, we're going to undo the changes made, that includes both system_a and system_b partitions to the device, and redo it carefully.
Since sgdisk (installed on the device, by default) is unable to make any changes if it is found in an overlapping state, we will be using parted instead.
Download parted
Ensure you are in an ADB supported custom recovery.
Using platform-tools on an external device, push parted to the device:
Code:
adb push path/to/parted /sbin
Enter adb shell:
Code:
adb shell
Change permissions of parted:
Code:
chmod 777 /sbin/parted
Execute parted:
Code:
parted /dev/block/sda
Print current partition table:
Code:
p free
Remove overlapped partitions (when prompted, return ignore)
Code:
rm 17
rm 16
rm 15
rm 12
rm 11
rm 10
rm 9
rm 8
Recreate stock partitions
Code:
mkpart system_a ext4 169MB 2853MB
mkpart system_b ext4 2853MB 5538MB
mkpart pstore 5538MB 5546MB
mkpart aes_a 5546MB 5547MB
mkpart aes_b 5547MB 5548MB
mkpart align_parti 5548MB 5549MB
mkpart userdata ext4 5549MB 62400MB (for 64GB)
mkpart userdata ext4 5549MB 126300MB (for 128GB)
Wipe -> Format Data -> Yes
Wipe -> Factory Reset
Reboot -> Bootloader
That is what it takes to resort back to the stock partition table.
If done successfully (check via sgdisk --print /dev/block/sda), you can proceed to executing any repartition guide.

Reserved

Hello,
can someone please help me?
I tried to follow the guide to reset the partitions to default, but unfortunately it didn't work. Currently my partitions look like this:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
What must i do now to reset the partitions correctly?
I think only ext2 on system_a is incrorrect. It must be ext4?
@PixelBoot you have a small typing error on 9. Recreate Stock Partions:
mkpart system_a ext4 169MB 2853MBmkpart system_b ext4 28533MB 5538MB
On system_b you have 28533MB insteat of 2853MB
Edit: I think i have corrected it now:
I have make these additional steps in fastboot:
fastboot format:ext4 system_a
fastboot format:ext4 system_b
fastboot format:ext4 userdata
Device is booting now with Factrory Image

Related

[HOW TO] Fix "Failure to mount" sdcard, system, data or cache

**IMPORTANT**
Read this thoroughly before you attempt any of it. The steps found herein will wipe out any data remaining on the partition for which it's used. If a partition has lost it's formatting, chances are the data is lost anyway, so there's not much more you can lose. This should be thought of as a last resort. Do not attempt this until you have tried everything else.
In many cases, just wiping the affected partition in recovery is enough to fix the problem. If not, continue reading.
If it's your sdcard that needs to be mounted, there is one thing you can try that might work in most cases.
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] echo /dev/block/mmcblk0p12 >> /sys/devices/platform/usb_mass_storage/lun0/file
Your computer will probably respond that the volume/device needs formatted before using it. This will erase everything left on the sdcard, as will anything else you attempt in this thread.
* Choose a quick format (if possible) and format it as "fat32", block size "4096".
If that doesn't work...
You'll have to reset your partition table, just in case (this step is optional but it doesn't hurt to do it anyway).
You'll need to be in fastboot:
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] idme bootmode 4002
[COLOR=Gray]~ #[/COLOR] reboot
(*COTR recovery doesn't have idme so you'll have to use the recovery itself to reboot into the bootloader)
Once in fastboot, enter the following commands...
Code:
[COLOR=Gray]$[/COLOR] fastboot oem format
[COLOR=Gray]$[/COLOR] fastboot oem idme bootmode 5001
[COLOR=Gray]$[/COLOR] fastboot reboot
With your partition table reset, it's time to print your partition table for reference.
For this, your device must be booted into recovery.
To print your partition table:
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] print
This will print the layout of your partitions 1-12. It should look something like this:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
If you receive an error stating that parted can't be found, you need to find and download it and enter the following commands, or update your recovery...
Code:
[COLOR=Gray]$[/COLOR] adb push /path/to/parted /sbin/parted
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] chown 0.0 /sbin/parted
[COLOR=Gray]~ #[/COLOR] chown 755 /sbin/parted
(*replace "/path/to/parted" with the full path to the parted binary downloaded to your computer)
Once you have your partition table printed out, copy and save it to a text file for later use.
When looking at the partition table, pay close attention to the file systems of the system, userdata, cache and media partitions. System, data and cache, should have an "ext4" formatting, while media should have a "fat32" formatting. The partitions that are missing the proper formatting are the ones you need to focus on because they need to be removed and repartitioned.
----------------------------------------------------------------------------------------------------------------------------------------
NEVER MESS WITH ANYTHING OTHER THAN SYSTEM, DATA, CACHE AND MEDIA!!!
----------------------------------------------------------------------------------------------------------------------------------------
The following, are the steps to repartition the system, data, and cache partitions. Media (sdcard) will have it's own steps so don't get them mixed up. These same steps will be used for each of the system data and cache partitions except you'll substitute the variables (in green) with the values for that particular partition. Be careful NOT to get the any of numbers mixed up or confused or you could potentially do serious damage to your device.
Code:
[COLOR=Gray]$[/COLOR] abd shell
[COLOR=Gray]~ #[/COLOR] umount [COLOR=SeaGreen]"directory_name"[/COLOR] [COLOR=Red]<---- This command is to make sure the volume isn't already mounted. If you get an error, it just means there is no volume mounted. Disregard.[/COLOR]
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] rm [COLOR=SeaGreen]"partition_number"[/COLOR]
[COLOR=Gray](parted)[/COLOR] mkpart primary [COLOR=SeaGreen]"startblock" "endblock"[/COLOR]
[COLOR=Gray](parted)[/COLOR] name [COLOR=SeaGreen]"partition_number" "partition_name"[/COLOR]
[COLOR=Gray](parted)[/COLOR] quit
[COLOR=Gray]~ #[/COLOR] mke2fs -t ext4 /dev/block/mmcblk0p[COLOR=SeaGreen]"partition_number"[/COLOR]
[COLOR=Gray]~ #[/COLOR] mount [COLOR=SeaGreen]"directory_name"[/COLOR]
The values for the previous command variables are as follows...
SYSTEM
-------------------------------
"partition_number"= 9
"directory_name" = /system
"partition_name" = system
"startblock" = 312
"endblock" = 849
DATA
-------------------------------
"partition_number"= 10
"directory_name" = /data
"partition_name" = userdata
"startblock" = 849
"endblock" = 2041
CACHE
-------------------------------
"partition_number"= 11
"directory_name" = /cache
"partition_name" = cache
"startblock" = 2041
"endblock" = 2309
For example, in order to fix the DATA partition, the commands would be written like this...
Code:
[COLOR=Gray]$[/COLOR] abd shell
[COLOR=Gray]~ #[/COLOR] umount /data
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] rm 10
[COLOR=Gray](parted)[/COLOR] mkpart primary 849 2041
[COLOR=Gray](parted)[/COLOR] name 10 userdata
[COLOR=Gray](parted)[/COLOR] quit
[COLOR=Gray]~ #[/COLOR] mke2fs -t ext4 /dev/block/mmcblk0p10
[COLOR=Gray]~ #[/COLOR] mount /data
The following are the steps to repartition the media (sdcard) partition.
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] umount /sdcard [COLOR=Red]<----Same as before. If you receive an error on this command, just disregard it.[/COLOR]
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] rm 12
[COLOR=Gray](parted)[/COLOR] mkpartfs primary fat32 2309 7690
[COLOR=Gray](parted)[/COLOR] rm 12
[COLOR=Gray](parted)[/COLOR] mkpart primary 2309 7690
[COLOR=Gray](parted)[/COLOR] name 12 media
[COLOR=Gray](parted)[/COLOR] quit
[COLOR=Gray]~ #[/COLOR] mount /sdcard
Once again, any partitions on which these commands are used, will lose any data left on them, but chances are it's your only option. Pay very close attention to what you are doing and be very cautious of typos. Accidentally entering /dev/block/mmcblk0p2' instead of "/dev/block/mmcblk0p12" will brick your device, to the point of needing to pull the back cover off and shorting it...well...let's just say you don't want to have to do that.
Afterwards you should be able to mount the effected partitions in recovery.
Be careful, and good luck.
Refrences:
http://forum.xda-developers.com/showpost.php?p=26285877&postcount=12
http://forum.xda-developers.com/showthread.php?t=1651413
http://forum.xda-developers.com/showthread.php?t=1497900
Thanks to kinfauns for showing me that it isn't always necessary to create an "ext2" file system first and then convert it to "ext4", and for showing me how to get rid of the pesky msftres flags.
Great work, sticky and Thank You.
Thank you bigjoe2675 and thank you soupmagnet for you fine work!!
soupmagnet said:
**IMPORTANT**
Read this thoroughly before you attempt any of it. The steps found herein will wipe out any data remaining on the partition for which it's used. If a partition has lost it's formatting, chances are the data is lost anyway, so there's not much more you can lose. This should be thought of as a last resort. Do not attempt this until you have tried everything else.
In many cases, just wiping the affected partition in recovery is enough to fix the problem. If not, continue reading.
If it's your sdcard that needs to be mounted, there is one thing you can try that might work in most cases.
Code:
[COLOR="Gray"]$[/COLOR] adb shell
[COLOR="Gray"]~ #[/COLOR] echo /dev/block/mmcblk0p12 >> /sys/devices/platform/usb_mass_storage/lun0/file
Your computer will probably respond that the volume/device needs formatted before using it. This will erase everything left on the sdcard, as will anything else you attempt in this thread.
* Choose a quick format (if possible) and format it as "fat32", block size "4096".
If that doesn't work...
You'll have to reset your partition table, just in case (this step is optional but it doesn't hurt to do it anyway).
You'll need to be in fastboot:
Code:
[COLOR="Gray"]$[/COLOR] adb shell
[COLOR="Gray"]~ #[/COLOR] idme bootmode 4002
[COLOR="Gray"]~ #[/COLOR] reboot
(*COTR recovery doesn't have idme so you'll have to use the recovery itself to reboot into the bootloader)
Once in fastboot, enter the following commands...
Code:
[COLOR="Gray"]$[/COLOR] fastboot oem format
[COLOR="Gray"]$[/COLOR] fastboot oem idme bootmode 5001
[COLOR="Gray"]$[/COLOR] fastboot reboot
With your partition table reset, it's time to print your partition table for reference.
For this, your device must be booted into recovery.
To print your partition table:
Code:
[COLOR="Gray"]$[/COLOR] adb shell
[COLOR="Gray"]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR="Gray"](parted)[/COLOR] print
This will print the layout of your partitions 1-12. It should look something like this:
View attachment 1421197
If you receive an error stating that parted can't be found, you need to find and download it and enter the following commands, or update your recovery...
Code:
[COLOR="Gray"]$[/COLOR] adb push /path/to/parted /sbin/parted
[COLOR="Gray"]$[/COLOR] adb shell
[COLOR="Gray"]~ #[/COLOR] chown 0.0 /sbin/parted
[COLOR="Gray"]~ #[/COLOR] chown 755 /sbin/parted
(*replace "/path/to/parted" with the full path to the parted binary downloaded to your computer)
Once you have your partition table printed out, copy and save it to a text file for later use.
When looking at the partition table, pay close attention to the file systems of the system, userdata, cache and media partitions. System, data and cache, should have an "ext4" formatting, while media should have a "fat32" formatting. The partitions that are missing the proper formatting are the ones you need to focus on because they need to be removed and repartitioned.
----------------------------------------------------------------------------------------------------------------------------------------
NEVER MESS WITH ANYTHING OTHER THAN SYSTEM, DATA, CACHE AND MEDIA!!!
----------------------------------------------------------------------------------------------------------------------------------------
The following, are the steps to repartition the system, data, and cache partitions. Media (sdcard) will have it's own steps so don't get them mixed up. These same steps will be used for each of the system data and cache partitions except you'll substitute the variables (in green) with the values for that particular partition. Be careful NOT to get the any of numbers mixed up or confused or you could potentially do serious damage to your device.
Code:
[COLOR="Gray"]$[/COLOR] abd shell
[COLOR="Gray"]~ #[/COLOR] umount [COLOR="SeaGreen"]"directory_name"[/COLOR]
[COLOR="Gray"]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR="Gray"](parted)[/COLOR] rm [COLOR="SeaGreen"]"partition_number"[/COLOR]
[COLOR="Gray"](parted)[/COLOR] mkpart primary [COLOR="SeaGreen"]"startblock" "endblock"[/COLOR]
[COLOR="Gray"](parted)[/COLOR] name [COLOR="SeaGreen"]"partition_number" "partition_name"[/COLOR]
[COLOR="Gray"](parted)[/COLOR] quit
[COLOR="Gray"]~ #[/COLOR] mke2fs -t ext4 /dev/block/mmcblk0p[COLOR="SeaGreen"]"partition_number"[/COLOR]
[COLOR="Gray"]~ #[/COLOR] mount [COLOR="SeaGreen"]"directory_name"[/COLOR]
The values for the previous command variables are as follows...
SYSTEM
-------------------------------
"partition_number"= 9
"directory_name" = /system
"partition_name" = system
"startblock" = 312
"endblock" = 849
DATA
-------------------------------
"partition_number"= 10
"directory_name" = /data
"partition_name" = userdata
"startblock" = 849
"endblock" = 2041
CACHE
-------------------------------
"partition_number"= 11
"directory_name" = /cache
"partition_name" = cache
"startblock" = 2041
"endblock" = 2309
For example, in order to fix the DATA partition, the commands would be written like this...
Code:
[COLOR="Gray"]$[/COLOR] abd shell
[COLOR="Gray"]~ #[/COLOR] umount /data
[COLOR="Gray"]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR="Gray"](parted)[/COLOR] rm 10
[COLOR="Gray"](parted)[/COLOR] mkpart primary 312 849
[COLOR="Gray"](parted)[/COLOR] name 10 userdata
[COLOR="Gray"](parted)[/COLOR] quit
[COLOR="Gray"]~ #[/COLOR] mke2fs -t ext4 /dev/block/mmcblk0p9
[COLOR="Gray"]~ #[/COLOR] mount /data
The following are the steps to repartition the media (sdcard) partition.
Code:
[COLOR="Gray"]$[/COLOR] adb shell
[COLOR="Gray"]~ #[/COLOR] umount /sdcard
[COLOR="Gray"]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR="Gray"](parted)[/COLOR] rm 12
[COLOR="Gray"](parted)[/COLOR] mkpartfs primary fat32 2309 7690
[COLOR="Gray"](parted)[/COLOR] rm 12
[COLOR="Gray"](parted)[/COLOR] mkpart primary 2309 7690
[COLOR="Gray"](parted)[/COLOR] name 12 media
[COLOR="Gray"](parted)[/COLOR] quit
[COLOR="Gray"]~ #[/COLOR] mount /sdcard
Once again, any partitions on which these commands are used, will lose any data left on them, but chances are it's your only option. Pay very close attention to what you are doing and be very cautious of typos. Accidentally entering /dev/block/mmcblk0p2' instead of "/dev/block/mmcblk0p12" will brick your device, to the point of needing to pull the back cover off and shorting it...well...let's just say you don't want to have to do that.
Afterwards you should be able to mount the effected partitions in recovery.
Be careful, and good luck.
Refrences:
http://forum.xda-developers.com/showpost.php?p=26285877&postcount=12
http://forum.xda-developers.com/showthread.php?t=1651413
http://forum.xda-developers.com/showthread.php?t=1497900
Thanks to kinfauns for showing me that it isn't always necessary to create an "ext2" file system first and then convert it to "ext4", and for showing me how to get rid of the pesky msftres flags.
Click to expand...
Click to collapse
The first method doesn't work, so as you said, i'l have to boot into fastboot.
But it says "idme not found"
Please help.
Noob.
I have attached some pics for more information.
A guide for getting into fastboot:
http://forum.xda-developers.com/showthread.php?t=1668159
[edit:] BTW This guide is for the Kindle Fire. On other devices your partition layout will likely be different. Try the forums for your particular device.
"That's a special kind of stupid. The kind that makes me laugh."
I didnt use this guide (although I read it all and was about to go this route) big thanks!
Got a question though , at one point I had (i guess temp root privelidges) because I sideloaded but in root explorer I didnt have su , anyway , in KFU there was a section that said you could change mount to write , although thats nots root , would I have been able to use the adb to push commands to the kindle? I wanted to get into the file explorer and just use usb mass storage to put files in and maybe gain root that way ?
*I realize :"That's a special kind of stupid. The kind that makes me laugh."but I thought Id ask anyway!!!
Vintage144 said:
I didnt use this guide (although I read it all and was about to go this route) big thanks!
Got a question though , at one point I had (i guess temp root privelidges) because I sideloaded but in root explorer I didnt have su , anyway , in KFU there was a section that said you could change mount to write , although thats nots root , would I have been able to use the adb to push commands to the kindle? I wanted to get into the file explorer and just use usb mass storage to put files in and maybe gain root that way ?
*I realize :"That's a special kind of stupid. The kind that makes me laugh."but I thought Id ask anyway!!!
Click to expand...
Click to collapse
LOL that does make me laugh, but not for reasons you'd think. Actually the USB mass storage is only the sdcard (media) partition. Mounting the sdcard to USB or side loading apps only gives you access to the sdcard, which you already have write permissions for anyway. You can't cross over to other partitions without mounting them first and you need to be the root user to do that. With the sdcard being secluded from the system partition, in order to get root permissions you need to be the root user or have write permissions on the system partition, at least temporarily.
On the original Kindle Fire you can get that through custom recovery, which has root permissions, or through some exploit found in Gingerbread. That's what makes Pokey9000's 'fbmode' so slick. It gives users access to fastboot, which in turn gives them access to flash a custom recovery and gain root permissions (KFU uses this) long enough to write SU and Superuser.apk to the system partition, eliminating the need for an exploit in Gingerbread.
These days, root exploits in Android are few and far between and they are getting patched pretty regularly, so the ability to install and boot onto custom recovery is pretty valuable. I imagine that's why Amazon used OMAP HS on the second generation devices in an (obviously feeble) attempt to patch such a gaping hole in their security.
The only reason. I say this , is because on my a500 I have a microsd card that I can transfer files to and from (granted I have root) however I had access to android folders ,I just thought as a last resort I could gain access that way,
I've noticed something funny on xda ,99% of people who have problems here have the same response "my friends device isn't working" I'm betting that means there device and instead of actually reading all the material available they just read one post and tried whatever the op said not realizing there's a process to everything the devs do and reason why we must follow directions! Writing can you fix my fubar is bs ,there's tons of info in hear ya just gotta look for it
Sent from my SAMSUNG-SGH-I717 using xda app-developers app
Well I tried all this. At the beginning it worked. But on every reboot or use, its just doesn't reconise the sdcard anymore.
format/reinstall/ play with it 10 minute/freeze/sd card cant read
format/reinstall/play with it 5 minuts/freeze/sdcant read
etc
at the end nothing's working.
On my last attemp I put the original rom.
Amazone give me a new one. sd card has probably bad sector.
---- Is there a way to prevent this trouble ?? ---
thanks
oVeRdOsE. said:
Well I tried all this. At the beginning it worked. But on every reboot or use, its just doesn't reconise the sdcard anymore.
format/reinstall/ play with it 10 minute/freeze/sd card cant read
format/reinstall/play with it 5 minuts/freeze/sdcant read
etc
at the end nothing's working.
On my last attemp I put the original rom.
Amazone give me a new one. sd card has probably bad sector.
---- Is there a way to prevent this trouble ?? ---
thanks
Click to expand...
Click to collapse
One way to check to see if your sdcard has bad sectors is with the following command:
Code:
adb shell dd if=/sdcard of=/dev/null
If it doesn't respond for more than 10 minutes, then you probably have bad sectors. But I'm guessing that might not the case since you are able to format it in the first place. Are you playing a game or something when this happens?
Sent from my KFHD using Tapatalk 2
Looking for an opinion
Hey there, very well written post.
My situation is regarding my Nexus Q. I attempted to flash a CM10.1 rom to it and something went wrong. I have it back to stock, but I think my partitions need to be reset, and was hoping someone could advise me based on my screenshot. While in Recovery, I get told that the SD Card only has 15mb of space, and it cannot mount /cache to perform a logcat. I notice from the OP screenshot that most of the other partions have ext4 beside but mine do not.
Should I follow your guide to re partition my unit?
Cheers
HomeR365 said:
Hey there, very well written post.
My situation is regarding my Nexus Q. I attempted to flash a CM10.1 rom to it and something went wrong. I have it back to stock, but I think my partitions need to be reset, and was hoping someone could advise me based on my screenshot. While in Recovery, I get told that the SD Card only has 15mb of space, and it cannot mount /cache to perform a logcat. I notice from the OP screenshot that most of the other partions have ext4 beside but mine do not.
Should I follow your guide to re partition my unit?
Cheers
Click to expand...
Click to collapse
Probably, but with GREAT discernment. You need to learn about your device's partitions and what they're for. And you definitely need to learn what the commands are doing so you understand what's going on. I wouldn't suggest just trying it out and hoping for the best.
This is awesome. Thanks so much. Bookmarked for future reference after spending hours on this.
stuck in orange logo boot
Hello, total noob here. Ok i rooted my kindle fire. rebooted and it started with kindle fire logo in blue color. Then I connect to my pc it showed it got connected.I put in new zip of cynogenmod jelly bean. All good rebooted with kindle fire logo orange color. No google apps, now i connect it to PC and it wont show kindle. So i downloaded the Gapps directly in kindle. rebooted for recovery but it rebooted to jelly bean. Blue kindle fire wont show up. I need to get into TWRP so that I can install Gaapps. trying for three days. read many posted. holding power button for 20 secs till it shuts down. then connecting usb to PC it restart but with orange fire logo. Added some lines 4000 or 4001 under tools menu in utility folder, run the cmd from the tools folder.... nothing changed. tried. RAN KFU again and it shows status offline, rooted no, and boot menu unkwon. Ran ADB straight shows waiting for device. So my question is how can I get back to recovery or blue logo where I can go and reset or reinstall or atleast install just Gaaps. tried install just random games APKs. It wont let it install. Please Help. Dont know much linux or DOS either.
thanks this help alot thanks a million
sir i have a arise rowdy t1+ phone its board is sp6820gb_7620 and cpu id is 8810 cpu frequency is 1ghz and ram is 512mb with mali 300 gpu,
android version is 2.3.6 and kernal version is 2.6.35.7 [email protected] #7, software version is mocordroid2.3.6.w12.20_p20.01_20130715.130506, hardware version is 1.1.0. my problem is that my phone has only 128 mb of internal memory and when i tried to edit vold.fstab to swap its memory with memory card it stopped detecting sd card when turned on but when in recovery mode sd is shown present, i think its very similar to karbonn a1+ in hardware and software part so can you please help me with my phone?
thank you so much !!!!!!!! its awesome
nitingoel2 said:
sir i have a arise rowdy t1+ phone its board is sp6820gb_7620 and cpu id is 8810 cpu frequency is 1ghz and ram is 512mb with mali 300 gpu,
android version is 2.3.6 and kernal version is 2.6.35.7 [email protected] #7, software version is mocordroid2.3.6.w12.20_p20.01_20130715.130506, hardware version is 1.1.0. my problem is that my phone has only 128 mb of internal memory and when i tried to edit vold.fstab to swap its memory with memory card it stopped detecting sd card when turned on but when in recovery mode sd is shown present, i think its very similar to karbonn a1+ in hardware and software part can you please help me with my phone?
Click to expand...
Click to collapse
This is a kindle fire forum friend
Sent from my Amazon Kindle Fire using Tapatalk
soupmagnet said:
**IMPORTANT**
Read this thoroughly before you attempt any of it. The steps found herein will wipe out any data remaining on the partition for which it's used. If a partition has lost it's formatting, chances are the data is lost anyway, so there's not much more you can lose. This should be thought of as a last resort. Do not attempt this until you have tried everything else.
In many cases, just wiping the affected partition in recovery is enough to fix the problem. If not, continue reading.
If it's your sdcard that needs to be mounted, there is one thing you can try that might work in most cases.
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] echo /dev/block/mmcblk0p12 >> /sys/devices/platform/usb_mass_storage/lun0/file
Your computer will probably respond that the volume/device needs formatted before using it. This will erase everything left on the sdcard, as will anything else you attempt in this thread.
* Choose a quick format (if possible) and format it as "fat32", block size "4096".
If that doesn't work...
You'll have to reset your partition table, just in case (this step is optional but it doesn't hurt to do it anyway).
You'll need to be in fastboot:
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] idme bootmode 4002
[COLOR=Gray]~ #[/COLOR] reboot
(*COTR recovery doesn't have idme so you'll have to use the recovery itself to reboot into the bootloader)
Once in fastboot, enter the following commands...
Code:
[COLOR=Gray]$[/COLOR] fastboot oem format
[COLOR=Gray]$[/COLOR] fastboot oem idme bootmode 5001
[COLOR=Gray]$[/COLOR] fastboot reboot
With your partition table reset, it's time to print your partition table for reference.
For this, your device must be booted into recovery.
To print your partition table:
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] print
This will print the layout of your partitions 1-12. It should look something like this:
View attachment 1421197
If you receive an error stating that parted can't be found, you need to find and download it and enter the following commands, or update your recovery...
Code:
[COLOR=Gray]$[/COLOR] adb push /path/to/parted /sbin/parted
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] chown 0.0 /sbin/parted
[COLOR=Gray]~ #[/COLOR] chown 755 /sbin/parted
(*replace "/path/to/parted" with the full path to the parted binary downloaded to your computer)
Once you have your partition table printed out, copy and save it to a text file for later use.
When looking at the partition table, pay close attention to the file systems of the system, userdata, cache and media partitions. System, data and cache, should have an "ext4" formatting, while media should have a "fat32" formatting. The partitions that are missing the proper formatting are the ones you need to focus on because they need to be removed and repartitioned.
----------------------------------------------------------------------------------------------------------------------------------------
NEVER MESS WITH ANYTHING OTHER THAN SYSTEM, DATA, CACHE AND MEDIA!!!
----------------------------------------------------------------------------------------------------------------------------------------
The following, are the steps to repartition the system, data, and cache partitions. Media (sdcard) will have it's own steps so don't get them mixed up. These same steps will be used for each of the system data and cache partitions except you'll substitute the variables (in green) with the values for that particular partition. Be careful NOT to get the any of numbers mixed up or confused or you could potentially do serious damage to your device.
Code:
[COLOR=Gray]$[/COLOR] abd shell
[COLOR=Gray]~ #[/COLOR] umount [COLOR=SeaGreen]"directory_name"[/COLOR] [COLOR=Red]<---- This command is to make sure the volume isn't already mounted. If you get an error, it just means there is no volume mounted. Disregard.[/COLOR]
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] rm [COLOR=SeaGreen]"partition_number"[/COLOR]
[COLOR=Gray](parted)[/COLOR] mkpart primary [COLOR=SeaGreen]"startblock" "endblock"[/COLOR]
[COLOR=Gray](parted)[/COLOR] name [COLOR=SeaGreen]"partition_number" "partition_name"[/COLOR]
[COLOR=Gray](parted)[/COLOR] quit
[COLOR=Gray]~ #[/COLOR] mke2fs -t ext4 /dev/block/mmcblk0p[COLOR=SeaGreen]"partition_number"[/COLOR]
[COLOR=Gray]~ #[/COLOR] mount [COLOR=SeaGreen]"directory_name"[/COLOR]
The values for the previous command variables are as follows...
SYSTEM
-------------------------------
"partition_number"= 9
"directory_name" = /system
"partition_name" = system
"startblock" = 312
"endblock" = 849
DATA
-------------------------------
"partition_number"= 10
"directory_name" = /data
"partition_name" = userdata
"startblock" = 849
"endblock" = 2041
CACHE
-------------------------------
"partition_number"= 11
"directory_name" = /cache
"partition_name" = cache
"startblock" = 2041
"endblock" = 2309
For example, in order to fix the DATA partition, the commands would be written like this...
Code:
[COLOR=Gray]$[/COLOR] abd shell
[COLOR=Gray]~ #[/COLOR] umount /data
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] rm 10
[COLOR=Gray](parted)[/COLOR] mkpart primary 849 2041
[COLOR=Gray](parted)[/COLOR] name 10 userdata
[COLOR=Gray](parted)[/COLOR] quit
[COLOR=Gray]~ #[/COLOR] mke2fs -t ext4 /dev/block/mmcblk0p10
[COLOR=Gray]~ #[/COLOR] mount /data
The following are the steps to repartition the media (sdcard) partition.
Code:
[COLOR=Gray]$[/COLOR] adb shell
[COLOR=Gray]~ #[/COLOR] umount /sdcard [COLOR=Red]<----Same as before. If you receive an error on this command, just disregard it.[/COLOR]
[COLOR=Gray]~ #[/COLOR] parted /dev/block/mmcblk0
[COLOR=Gray](parted)[/COLOR] rm 12
[COLOR=Gray](parted)[/COLOR] mkpartfs primary fat32 2309 7690
[COLOR=Gray](parted)[/COLOR] rm 12
[COLOR=Gray](parted)[/COLOR] mkpart primary 2309 7690
[COLOR=Gray](parted)[/COLOR] name 12 media
[COLOR=Gray](parted)[/COLOR] quit
[COLOR=Gray]~ #[/COLOR] mount /sdcard
Once again, any partitions on which these commands are used, will lose any data left on them, but chances are it's your only option. Pay very close attention to what you are doing and be very cautious of typos. Accidentally entering /dev/block/mmcblk0p2' instead of "/dev/block/mmcblk0p12" will brick your device, to the point of needing to pull the back cover off and shorting it...well...let's just say you don't want to have to do that.
Afterwards you should be able to mount the effected partitions in recovery.
Be careful, and good luck.
Refrences:
http://forum.xda-developers.com/showpost.php?p=26285877&postcount=12
http://forum.xda-developers.com/showthread.php?t=1651413
http://forum.xda-developers.com/showthread.php?t=1497900
Thanks to kinfauns for showing me that it isn't always necessary to create an "ext2" file system first and then convert it to "ext4", and for showing me how to get rid of the pesky msftres flags.
Click to expand...
Click to collapse
Now, I get the error that the sdcard isn't mounted in root explorer, but I can still find all of the contents of the sdcard under /storage/emulated/0. Is there any reason for this? I was thinking of simply copying everything to a new folder named sdcard (because the old folder turned into a file with a filesize of -1 bytes) but then the newly created folder had the same problem. Whenever I tapped on it it gave me the same error, "The SD card in't mounted". I'm on a Nexus 4, any help?
Cannot solve this issue
I've had it with messing this for my 1st gen kindle fire, for the last 5 weeks I've been trying to unbrick it and nothing works. I can connect to the device using Super ADB Tool but trying to load anything produces the and I get "- exec '/system/bin/sh' failed" messages using the command prompt.

[Q] corrupted EFS

Hello, well I ran out of battery and recharged, when turned the phone back on it has no IMEI, tried different things going from reflash the firmware, change sim card, flash radios, etc, even flashed CM and several other roms aosp roms.
At the end i went back to stock with ODIN but the device its stuck in samsung logo and if go to recovery it says failed to mount /efs (file too larger).. nvm this i falsh cf autotoot in order to be able to follow this:
ptolomeo said:
We finally fixed it. I'll post the solution in case it can help anyone else...
The S3 got stuck in the Samsung logo screen:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
When entering the recovery it gave us this error "E: failed to mount /efs (Invalid argument)"
As we already know, the /efs folder contains all the personalized information of the mobile (IMEI number, carrier lock, etc). So if we like to play with ROMs, we should be aware of this detail and make several backups of this VERY IMPORTANT folder, and preferably store them out of the mobile, in the computer for example.
in case we mess up the /efs folder, we are likely to have no other solution than bringing it to the authorized Samsung dealer for repair. No one is going to lend us the EFS backup from their mobile, as doing that we would likely clone their IMEI -which is, BTW, unlegal.
So we first flashed with PC-ODIN a STOCK ROM (I9300XXDLJ4_I9300PHEDLI1_PHE). We tried different ones (one file, 4 files) and none of them solved our problem as the problem was with the /efs partition and I don't think any ROM will touch that...
After flashing the ROM we also flashed Chainfire's CF-Root (CF-Auto-Root-m0-m0xx-gti9300)
We boot up the mobile in recovery mode (Volume UP + Power + Home), we connected to the PC through ADB SHELL.
Our first surprise, trying to partition:
#mke2fs / dev/block/mmcblk0p3
sh: mke2fs: not found
It seems that mke2fs is a command provided by busybox, and it's not present in the stock ROM.I downloaded a precompiled busybox version from busybox.net and pushed it in the S3
Code:
PC> adb shell mkdir /data/busybox
PC> adb push busybox /data/busybox
PC> adb shell
$su
#cd /data/busybox
#chmod 775 busybox
#./busybox --install
once installed we could use mke2fs command properly:
Code:
# busybox mke2fs /dev/block/mmcblk0p3
busybox mke2fs /dev/block/mmcblk0p3
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
5136 inodes, 20480 blocks
1024 blocks (5%) reserved for the super user
First data block=1
Maximum filesystem blocks=262144
3 block groups
8192 blocks per group, 8192 fragments per group
1712 inodes per group
Superblock backups stored on blocks:
8193
and after that mounting the partition in the /efs folder
Code:
#busybox mount -w -t ext4 /dev/block/mmcblk0p3 /efs
busybox mount -w -t ext4 /dev/block/mmcblk0p3 /efs
With the EFS folder fixed, we ADB PUSHED the backup of ur efs folder (efs.tar), we unpackaged it (busybox tar xfv efs.tar) and moved it's content to the newly fixed /efs folder.
Reboot and ready to go:
Click to expand...
Click to collapse
but then when I try to use the tool http://forum.xda-developers.com/showthread.php?p=42407269 I type ADB SHELL it connects and the type SU and says does not exist.. if do mkdir directly it says acces denied.. so I asume that the phone is not rootes even tho I have flashed cf auto root.. so i just falsh philz recovery and flash CM or any kind of Rooted kernel and keep happening the same thing over and over..
so the thing its I DO have an efs backup but I CAN NOT restore it by any method.. would apreciate any help here to get my phone going again.. thanks in advance
If your efs backup is tar.gz format , just unpack it with winrar or 7zip , you'll get efs folder upon extraction just delete phone's efs folder contents and copy extracted efs backup folder contents to phone with root explorer and reboot.
That's it.
sent from marijuanated muffin cut into pieces by My Shining Katana
kangerX said:
If your efs backup is tar.gz format , just unpack it with winrar or 7zip , you'll get efs folder upon extraction just delete phone's efs folder contents and copy extracted efs backup folder contents to phone with root explorer and reboot.
That's it.
sent from marijuanated muffin cut into pieces by My Shining Katana
Click to expand...
Click to collapse
OK you got my attention but HOW do I "just delete phone's efs folder content and copy extracted efs backup folder content to phone " as I clearely stated that the phone WON'T boot to Android its in samsung boot loop but i can acces recovery and odin modes
I can connect the phone to the pc and DO TeamViewer IF someone is able to help me..
any help there?
Enviado desde mi GT-N7100 usando Tapatalk
msedek said:
any help there?
Enviado desde mi GT-N7100 usando Tapatalk
Click to expand...
Click to collapse
Flash philz cwm recovery.
Then via recovery go to mounts and storage and mount efs:
adb shell
cd efs
adb push file_name_here (from your extracted backup)
Click to expand...
Click to collapse
Then you have to set the required permissions file by file.
Here is the permissions of my efs folder:
-rw-rw-r-- 00000000.authtokcont
drwxrwxr-x /FactoryApp
drwxrwxr-x /bluetooth
drwxr-xr-x /carrier
drwxrwx--- /drm
-rw------- gyro_cal_data
-rw-r--r-- h2k.dat
-rw------- hw_offset
drwxrwxr-x /imei
drwxrwxr-x /log
-rw-rw---- ss_data
drwxrwxr-x /wifi
-rw-r--r-- wv.keys
-rwxrwxr-x imei/mps_code.dat
-rw-rw-r-- wifi/.mac.info
Thanks

[MOD] Increase your SYSTEM partition to 2.5GB , Boot to 30MB , Recovery to 30MB for Y

Finally your and MY wait is over Hear @I Putu Tirta Agung S & @Annabathina are introducing that HOW TO INCREASE YUREKA / PLUS PARTITIONS ........
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I & @I Putu Tirta Agung S are not responsible for anything that may happen to your phone as a result of following this guide / installing custom roms and/or kernels. you do so at your own risk and take the responsibility upon yourself. ​​
NOTE : Please read hole thread before starting........
Preface
This guide has been tested to work on Lollipop and Marshmallow. By following this guide, you will resize your boot, system, cache, and recovery partition to the new partition size as can be seen below:
This guide is quite safe as it doesn't change the emmc GUID and its unique partitions GUID, which is hard coded into our Yureka's non-HLOS (High Level Operating System).
The Guides
Backing up important partitions ( Very very important )
Go to TWRP (please use the newest, or at minimal Abhishek's 3.0.1-0), and when you are in it run "adb shell" from your computer using " ADB+&+Fastboot of yureka " by " Hold shift key and right click on mouse and select Open command window here " then type below lines ONE BY ONE (remember to do it line by line)
Code:
[SIZE="4"]dd if=/dev/block/mmcblk0 of=/sdcard/gpt.bin bs=512 count=34
adb shell dd if=/dev/block/mmcblk0p1 of=/sdcard/modem
adb shell dd if=/dev/block/mmcblk0p2 of=/sdcard/sbl1
adb shell dd if=/dev/block/mmcblk0p3 of=/sdcard/sbl1bak
adb shell dd if=/dev/block/mmcblk0p4 of=/sdcard/aboot
adb shell dd if=/dev/block/mmcblk0p5 of=/sdcard/abootbak
adb shell dd if=/dev/block/mmcblk0p6 of=/sdcard/rpm
adb shell dd if=/dev/block/mmcblk0p7 of=/sdcard/rpmbak
adb shell dd if=/dev/block/mmcblk0p8 of=/sdcard/tz
adb shell dd if=/dev/block/mmcblk0p9 of=/sdcard/tzbak
adb shell dd if=/dev/block/mmcblk0p10 of=/sdcard/hyp
adb shell dd if=/dev/block/mmcblk0p11 of=/sdcard/hypbak
adb shell dd if=/dev/block/mmcblk0p12 of=/sdcard/pad
adb shell dd if=/dev/block/mmcblk0p13 of=/sdcard/modemst1
adb shell dd if=/dev/block/mmcblk0p14 of=/sdcard/modemst2
adb shell dd if=/dev/block/mmcblk0p15 of=/sdcard/misc
adb shell dd if=/dev/block/mmcblk0p16 of=/sdcard/fsc
adb shell dd if=/dev/block/mmcblk0p17 of=/sdcard/ssd
adb shell dd if=/dev/block/mmcblk0p18 of=/sdcard/DDR
adb shell dd if=/dev/block/mmcblk0p19 of=/sdcard/fsg
adb shell dd if=/dev/block/mmcblk0p20 of=/sdcard/sec
adb shell dd if=/dev/block/mmcblk0p22 of=/sdcard/params
adb shell dd if=/dev/block/mmcblk0p23 of=/sdcard/panic
adb shell dd if=/dev/block/mmcblk0p24 of=/sdcard/autobak
adb shell dd if=/dev/block/mmcblk0p26 of=/sdcard/persist[/SIZE]
Copy all files from internal storage (sdcard) to your computer, keep them safe as they are very important if something bad happens.
Doing the magic
Download and extract "gpt.zip" attached in this post, and copy the "gpt.bin" file to the root of your internal storage (internal sdcard).
1. Go back to TWRP and run "adb shell" again from your computer, then type:
2. Go back to TWRP and run "adb shell" again from your computer, then type:
dd if=/sdcard/gpt.bin of=/dev/block/mmcblk0 bs=512 count=34
Click to expand...
Click to collapse
3. After all done, reboot to your bootloader and flash your recovery (TWRP) by typing:
fastboot -i 0x1ebf erase recovery
fastboot -i 0x1ebf flash recovery TheNameofYourRecovery.img
Click to expand...
Click to collapse
4. After that, type below commands (remember to do it line by line):
fastboot -i 0x1ebf oem unlock
fastboot -i 0x1ebf erase boot
fastboot -i 0x1ebf format cache
fastboot -i 0x1ebf format userdata
fastboot -i 0x1ebf format system
fastboot -i 0x1ebf reboot-bootloader
fastboot -i 0x1ebf boot recovery
Click to expand...
Click to collapse
5. After booting to TWRP, wipe everything again (system, data, cache, dalvik, internal storage)
6. Reboot the phone to TWRP again.
7. Copy your original "params", "panic", "autobak", and "persist" files you backed up earlier to the root of your internal storage (internal sdcard) and run "adb shell" again from your computer, then type:
adb shell dd if=/sdcard/params of=/dev/block/mmcblk0p22
adb shell dd if=/sdcard/panic of=/dev/block/mmcblk0p23
adb shell dd if=/sdcard/autobak of=/dev/block/mmcblk0p24
adb shell dd if=/sdcard/persist of=/dev/block/mmcblk0p26
Click to expand...
Click to collapse
This step is very important, so don't miss it or you will hard bricked your god damn phone.
8. After all done, reboot to your bootloader and type again below codes (remember to do it line by line):
fastboot -i 0x1ebf oem unlock
fastboot -i 0x1ebf erase boot
fastboot -i 0x1ebf format cache
fastboot -i 0x1ebf format userdata
fastboot -i 0x1ebf format system
fastboot -i 0x1ebf reboot-bootloader
fastboot -i 0x1ebf boot recovery
Click to expand...
Click to collapse
After booting to TWRP, wipe everything again (system, data, cache, dalvik, internal storage)
9. Reboot the phone to TWRP again.
Troubleshooting
Wallah, now you have 2.5 GB of system partition, 150 MB (it will be usefull if you use f2fs file system) cache partition, 30 MB of recovery partition, 30 MB of boot partition, and around 11.77 GB of data partition.
Oh btw, if you flash "userdata.img" from COS or CM roms, you will get something similar to this:
target reported max download size of 268435456 bytes
erasing 'userdata'...
OKAY [ 8.440s]
sending 'userdata' (137434 KB)...
OKAY [ 5.164s]
writing 'userdata'...
FAILED (remote: image size too large)
finished. total time: 13.634s
Click to expand...
Click to collapse
Why? Because now your data partition is approximately 1.5 GB smaller. So just relax, if you got that kind of warning.
Furthermore, because a lot of devs use that ****in ".dat" files ****ty thing ("system.new.dat", "system.patch.dat" and "system.transfer.list"), if you flash their roms (such as CM, AICP, Exodus, bla bla bla), you will see that your partition will go back to its original value. But not to worry, it is not the real value of what is really use. It is because of the nature on how sparse ext4 image is compiled, they need to set the partition size before compiling, and of course they use the old one, not the one we have changed.
So to overcome this problem, you need to do it the hard way, explained in the second post below. However, if you don't want the hazzle then just flash AOSParadox or YuOS (the TWRP version, not the fastboot one) or Mokee or any rom that doen't have "system.new.dat", "system.patch.dat" and "system.transfer.list" in its zip file, as they will read the new partition size just fine.
ADB+&+Fastboot : link
Partition changer : link
Back up code PNG : link
Device Driver installation links
ADB for pc : link
YU usb drivers : link
PdaNet drivers : link
@I Putu Tirta Agung S MY friend for every thing ( NOTE : YOUR the best HACKER that I ever met )
@Annabathina
If you want the hard way in changing ROMs with ****in ".dat" files ****ty thing ("system.new.dat", "system.patch.dat" and "system.transfer.list") to read the new partition size, then you need Ubuntu with the latest kernel (that has the latest patch on "Transparent Compression", see this post), and follow these steps (thanks to xpirt for his guide):
Step 1 - Decompressing = DAT (sparse data) -> EXT4 (raw image)
We're now using sdat2img binary, the usage is very simple (make sure you have python 3.x installed):
Code:
./sdat2img.py <transfer_list> <system_new_file> <system_ext4>- <transfer_list> = input, system.transfer.list from rom zip
<system_new_file> = input, system.new.dat from rom zip
<system_ext4> = output ext4 raw image file
and a quick example of usage:
Code:
./sdat2img.py system.transfer.list system.new.dat system.img
by running this command you will get as output the file my_new_system.img which is the raw ext4 image.
Step 2 - Decompress EXT4 (raw image) -> OUTPUT folder -> Compress EXT4 (raw image)
Now we need to mount or ext4 raw image into an output folder so we can see apks/jars etc. To do this we need to type this command:
Code:
sudo mount -t ext4 -o loop system.img output/
As you can see there is a new folder called output which we can edit/modify/delete your files (not able to? see here)
Now we need to compress it back to a raw ext4 image, to do this we need the make_ext4fs binary. Make sure you have the file_contexts file (taken from the Rom zip) inside the make_ext4fs path. Then type this (got issues? see here).
Code:
/make_ext4fs -T 0 -S file_contexts -l 2684354560 -a system system_new.img output/
The value of 2684354560 in above code is the new size of system partition in Bytes. Upon doing the above processes, you will get the new raw ext4 image called 'system_new.img' ready for the next step.
Step 3 - Converting = EXT4 (raw image) -> DAT (sparse data)
Now we need the rimg2sdat binary, the usage is very simple:
Code:
./rimg2sdat <system_img>
<system_img> = name of input ext4 raw image file
and a quick example of usage:
Code:
./rimg2sdat my_new_system.img
As you can see the output is composed by system.transfer.list, (system.patch.dat) & system.new.dat, ready to be replaced inside your Rom zip.
Just to make it really simple
1. Fire up your beloved ubuntu, make sure you have python 3.x installed.
2. Download "sdat2img.py", "make_ext4fs", and "rimg2sdat" binaries, and put it inside a folder (use a file manager for god sake). We can name the folder "****inGreat".
3. Now make an empty folder inside "****inGreat" folder, and name it "output".
4. Extract "system.new.dat", "system.patch.dat", "system.transfer.list", and "file_contexts" from your beloved rom's zip file, and put it inside "****inGreat" folder.
5. Now open "****inGreat" folder with root privilege, then open terminal (we call it cmd in windows) from there.
6. type below code on the terminal (one line at a time):
Code:
./sdat2img.py system.transfer.list system.new.dat system.img (press enter)
sudo mount -t ext4 -o loop system.img output/ (press enter)
/make_ext4fs -T 0 -S file_contexts -l 2684354560 -a system system_new.img output/ (press enter)
./rimg2sdat my_new_system.img (press enter)
7. Now copy the new "system.new.dat", "system.patch.dat", "system.transfer.list", and "file_contexts" inside "****inGreat" folder back to your beloved rom's zip file.
8. Flash the rom via TWRP
9. And you are good to go.
10. Ain't that simple!!!!!!!!!!!!!
sdat2img.py
- github.com
make_ext4fs
- mega.co.nz
rimg2sdat
- mega.co.nz
@I Putu Tirta Agung S MY friend for every thing ( NOTE : YOUR the best HACKER that I ever met )
@Annabathina
Guys I have tested it for 5 times before posting
Thank to @I Putu Tirta Agung S for everything ​​
reserved
reserved for future post

[Guide] Repartition Nexus7(2013) to increase system partition - Extra Space for Rom

Hi, this is my first time posting here. I noticed there is no guide to increase the system partition size in Nexus 7 (2013). The system partition is only around 880MB making it impossible to flash new ROMs and large package of GApps. This guide is for Nexus 7 (2013) wifi 32GB but it should work for other Nexus 7 (2013) editions and even Nexus 7 (2012) with some numbers changed.
My guide is based on this guide for Nexus 5. Check it out. The only issue with Nexus 7 is that the recovery partition is between the system and userdata partitions in the partition table. So deleting the partitions (which includes recovery partition) and then recreating them with offsets might leave your tablet bricked. If you have a way to unbrick the tablet or you are manly enough, you can try the guide written in the next comment. I haven't tested it. Leave a comment if it works. Anyway from the Nexus 5 guide:
The high-level procedure here is, since filesystems must be contiguous and in order so they can be addressed properly, we need to delete every partition inclusively from system to userdata, then recreate them with new storage offsets.
Click to expand...
Click to collapse
This part is not very accurate. I am not sure about Nexus 5 but in Nexus 7, I have changed the order with great success. Only thing is that you need to restart at the end so that the recovery mode updates the mounting configuration. I am not sure if it works with the stock ROM but it definitely works with a custom ROM.
The downside of my way is that you end up with around 880MB unused memory. You can give it to the cache partition. Otherwise, you have to do the untested one in the next comment.
Before we start, I am not liable if it doesn't work or makes your device unusable. The tested guide below works for me.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Tested Guide starts here:
Prerequisite:
1. PC (any OS) with adb and fastboot
2. Nexus 7 with TWRP recovery connected to the PC via USB.
3. Get parted from iwf1.com/iwf-repo/parted.rar and extract it into any directory
4. (Optional) System and userdata partitions are wiped out. So backup system and/or data partitions using TWRP recovery
Steps:
1. Open TWRP recovery mode in Nexus 7. Make sure to have the system partition read/write.
2. Go to mount and unmount all partitions you are going to modify (for now system and data).
3. Open PC's command line in parted's directory
4. The next steps are on the command line unless stated:
Code:
adb push parted /
adb shell
~ # chmod +x parted
~ # /parted /dev/block/mmcblk0
(parted): unit b
(parted): p
I used unit b to get partition sizes in bytes. So you can resize accurately this way. You will get the following partition table by default. Keep a copy of this partition table (and one with unit compact for easy readability) as reference if you mess up or want to restore to default.
Code:
Number Start End Size File system Name Flags
1 67108864B 156745727B 89636864B fat16 radio
2 201326592B 204472319B 3145728B modemst1
3 204472320B 207618047B 3145728B modemst2
4 268435456B 283795455B 15360000B ext4 persist
5 335544320B 336343039B 798720B m9kefs1
6 336343040B 337141759B 798720B m9kefs2
7 402653184B 403451903B 798720B m9kefs3
8 403451904B 406597631B 3145728B fsg
9 469762048B 471298047B 1536000B sbl1
10 471298048B 472834047B 1536000B sbl2
11 472834048B 474931199B 2097152B sbl3
12 474931200B 480174079B 5242880B aboot
13 480174080B 480698367B 524288B rpm
14 536870912B 553648127B 16777216B boot
15 603979776B 604504063B 524288B tz
16 604504064B 604505087B 1024B pad
17 604505088B 606041087B 1536000B sbl2b
18 606041088B 608138239B 2097152B sbl3b
19 608138240B 613381119B 5242880B abootb
20 613381120B 613905407B 524288B rpmb
21 613905408B 614429695B 524288B tzb
22 671088640B 1551892479B 880803840B ext2 system
23 1551892480B 2139095039B 587202560B ext4 cache
24 2147483648B 2148532223B 1048576B misc
25 2214592512B 2225078271B 10485760B recovery
26 2281701376B 2281709567B 8192B DDR
27 2281709568B 2281717759B 8192B ssd
28 2281717760B 2281718783B 1024B m9kefsc
29 2348810240B 2348843007B 32768B metadata
30 2415919104B 31272713727B 28856794624B ext4 userdata
5. Rename the system partition to disable it
Code:
(parted): name 22 unused1
6. Now you need to delete userdata partition:
Code:
(parted): rm 30
7. You need to create 2 primary partitions in place of userdata. First one will be the system partition. Second one will be the userdata partition. I recommend to have the system partition to start with the same byte userdata started and size divisible by 4096 bytes. Leave some space between the 2 divisible by 4096 bytes (block-size). Then have userdata partition start with a number divisible by 4096 bytes, size divisible by 512 bytes and ends where user data ended. I increased my system partition to around 2.93GiB (you can resize it whatever you want). I don't really need a lot of userdata. So my configuration would be:
Code:
(parted): mkpart primary 2415919104B 5570068479B
(parted): mkpart primary 5637144576B 31272713727B
8. Now you need to rename these 2 partitions:
Code:
(parted): name 30 system
(parted): name 31 userdata
(parted): p
9. Finally you need to create ext4 filesystem for system and userdata.
Code:
(parted): quit
~ # mke2fs -b 4096 -T ext4 /dev/block/mmcblk0p30
~ # mke2fs -b 4096 -T ext4 /dev/block/mmcblk0p31
~ # /parted /dev/block/mmcblk0 p
10. Have a final look at the partition table to see if everything is correct. Then Reboot into Recovery. This is a very important step. The mount configuration (/etc/fstab) doesn't update until you reboot.
Code:
~ # exit
adb reboot recovery
Done! You have a new system partition with a larger size ready for a ROM. The Size of the ROM will shrink after flashing a new ROM, Using TWRP, Wipe -> Advanced Wipe -> select system -> Resize File System -> Swipe.
Note: You might need to wipe cache/dalvik (might need wipe system too for mount to work), then unmount and remount system/cache/data for everything to work (for example, I had tablet's internal storage not showing on PC initially). But once everything works, it will always work
Final partition table looks like this:
Code:
Number Start End Size File system Name Flags
1 67.1MB 157MB 89.6MB fat16 radio
2 201MB 204MB 3146kB modemst1
3 204MB 208MB 3146kB modemst2
4 268MB 284MB 15.4MB ext4 persist
5 336MB 336MB 799kB m9kefs1
6 336MB 337MB 799kB m9kefs2
7 403MB 403MB 799kB m9kefs3
8 403MB 407MB 3146kB fsg
9 470MB 471MB 1536kB sbl1
10 471MB 473MB 1536kB sbl2
11 473MB 475MB 2097kB sbl3
12 475MB 480MB 5243kB aboot
13 480MB 481MB 524kB rpm
14 537MB 554MB 16.8MB boot
15 604MB 605MB 524kB tz
16 605MB 605MB 1024B pad
17 605MB 606MB 1536kB sbl2b
18 606MB 608MB 2097kB sbl3b
19 608MB 613MB 5243kB abootb
20 613MB 614MB 524kB rpmb
21 614MB 614MB 524kB tzb
22 671MB 1552MB 881MB ext2 unused1
23 1552MB 2139MB 587MB ext4 cache
24 2147MB 2149MB 1049kB misc
25 2215MB 2225MB 10.5MB recovery
26 2282MB 2282MB 8192B DDR
27 2282MB 2282MB 8192B ssd
28 2282MB 2282MB 1024B m9kefsc
29 2349MB 2349MB 32.8kB metadata
30 2416MB 5570MB 3154MB ext2 system
31 5637MB 31.3GB 25.6GB ext4 userdata
To increase cache size:
You have 880MB unused storage from the old system partition. You can keep it the way it is as you have the old system partition here which can be re-enabled quickly in the future. OR You can give this unused partition to the cache partition without messing around a lot. I recommend keeping a small unused partition in place of the old system partition to avoid messing with the order of recovery partition.
Code:
adb push parted /
adb shell
~ # chmod +x parted
~ # /parted /dev/block/mmcblk0
(parted): unit b
(parted): p
(parted): rm 22
(parted): rm 23
(parted): mkpart primary 671088640B 671096831B
(parted): mkpart primary 671096832B 2139095039B
(parted): name 22 unused1
(parted): name 23 cache
(parted): p
(parted): quit
~ # mke2fs -b 4096 -T ext4 /dev/block/mmcblk0p23
~ # quit
Edit: Deleted
rkhat said:
If you have a way to unbrick the tablet or you are manly enough, you can try the guide...
I haven't tested it. Leave a comment if it works.
Click to expand...
Click to collapse
No, there is no way to unbrick the tablet.
Here is a likely comment "So I took the jump in the name of exploration, and bricked my tablet"
Now, are you manly enough to try your own guide?
/EDIT 1
2018 - Unbricking method is available.
/EDIT 2
Here is a Non-destructive repartition script which you can simply 'install' from TWRP.
k23m said:
No, there is no way to unbrick the tablet.
Here is a likely comment "So I took the jump in the name of exploration, and bricked my tablet"
Now, are you manly enough to try your own guide?
Click to expand...
Click to collapse
If you checked the comment write below the second link, you will see a link to a repair option with RIFF JTAG box (costs >100$). I am not going to invest into a repair kit on a device that is probably worth less than the box, but hopefully someone who has the box and tablet can test the solution in the "name of exploration" and help others
Anyway, I am going to buy a chromebook in a year. Tablet market is dead. I might try the second solution on the N7 if some realtive doesn't steal it.
Didn't know that parted on works on android partitions in the way you describe.
My n7 2013 is in pretty bad shape, it has severe touch screen problems which sucks (its gone back to ASUS three times! pretty much gave up... haha they don't want to see it again).
So maybe I'll be game enough to try out the guide someday, but not today
There are something strange after I follow this guide.
If I copy files to /system and /system usage space is over 1GB.
/system will become read-only and mount as ro.
I try to remount /system as rw. But if I copy files into /system, it will become ro again.
Only I can do is format /system. Anyone can help?
Thanks.
I assume to do this you only need custom recovery and root?
OK, I've done the repartitioning. Looks good.
But, I can't seem to flash via TWRP. I try to side-load ROM and I see:
detecting filesystem ext4 for ...
Patching system image unconditionally...
E1001: Failed to update system image.
Updater process ended with error: 7
Any ideas?
RedBullet said:
OK, I've done the repartitioning. Looks good.
But, I can't seem to flash via TWRP. I try to side-load ROM and I see:
detecting filesystem ext4 for ...
Patching system image unconditionally...
E1001: Failed to update system image.
Updater process ended with error: 7
Any ideas?
Click to expand...
Click to collapse
Which ROM did you use? I don't think it works with stock ROM. I use lineageOS.
Btw if you attempt to update the ROM instead of reinstalling it, the system partition will shrink back and you can't use the following step to fix it:
The Size of the ROM will shrink after flashing a new ROM, Using TWRP, Wipe -> Advanced Wipe -> select system -> Resize File System -> Swipe.
Click to expand...
Click to collapse
I found a solution to skip this whole resizing step. I am going to post it after some testing.
rkhat said:
Which ROM did you use? I don't think it works with stock ROM. I use lineageOS.
Btw if you attempt to update the ROM instead of reinstalling it, the system partition will shrink back and you can't use the following step to fix it:
I found a solution to skip this whole resizing step. I am going to post it after some testing.
Click to expand...
Click to collapse
Yea, I was flashing lineage. I eventually got it. I wonder if my partition shrunk back also... What's easiest way to check?
Oh and what do you mean by update vs re-install? I am just flashing via sideload
RedBullet said:
Yea, I was flashing lineage. I eventually got it. I wonder if my partition shrunk back also... What's easiest way to check?
Oh and what do you mean by update vs re-install? I am just flashing via sideload
Click to expand...
Click to collapse
Use parted to print the partition table. First four steps in my guide. Then check the system partition. If it's like the original size, it shrank.
LineageOS supports updating. Let's say you are now on LineageOS 20170801. You want to update to 20170829. When you sideload the newer version, it will attempt to update the previous version (basically only update the differences between the 2 versions). You retain any modification to the system partition (like gapps). Reinstalling means you wipe the system partition then sideload the ROM.
So when updating LineageOS, the system partition will shrink again and I wasn't able to resize it back. Thus corrupting the system partition.
would it not be easier/safer to use parted's resize command to shrink the userdata partition, and then use the move command to move partition 23-29, and then use the resize command again to increase the size of the system partition?
theistus said:
would it not be easier/safer to use parted's resize command to shrink the userdata partition, and then use the move command to move partition 23-29, and then use the resize command again to increase the size of the system partition?
Click to expand...
Click to collapse
I don't think you can do it with parted's move command because according to move's documentation, these are the only supported formats:
ext2 (provided the destination partition is larger than the source partition)
fat16, fat32
linux-swap
reiserfs (if libreiserfs is installed)
Click to expand...
Click to collapse
Partitions 24-29 don't use a file system supported by parted. They definitely contain data (for example recovery partition has your twrp recovery image ).
I think there is a way to do what you are suggesting. In fact, the solution in my 2nd post was about moving the partitons. However, the solution had a mistake which is why I removed it. I had to use dd command to move all the bytes from the old partition to the new partition.
Also, it is somewhat risky. If you do any mistake with the recovery partition (not sure about the other 5 partitions), you pretty much bricked the tablet. If I had anyway to unbrick it, I would do it. Since not, better lose the 840MB.
rkhat said:
I don't think you can do it with parted's move command because according to move's documentation, these are the only supported formats:
Partitions 24-29 don't use a file system supported by parted. They definitely contain data (for example recovery partition has your twrp recovery image ).
I think there is a way to do what you are suggesting. In fact, the solution in my 2nd post was about moving the partitons. However, the solution had a mistake which is why I removed it. I had to use dd command to move all the bytes from the old partition to the new partition.
Also, it is somewhat risky. If you do any mistake with the recovery partition (not sure about the other 5 partitions), you pretty much bricked the tablet. If I had anyway to unbrick it, I would do it. Since not, better lose the 840MB.
Click to expand...
Click to collapse
Yeah, that's the one that scares me. That recovery partition is smack dab in the middle, and it's very ... inconvenient.
Anyone try this with the Nexus 7 2013 LTE version?
better 64gb
https://forum.xda-developers.com/picture.php?albumid=14541&pictureid=56454
Rather than move the system partition, I just moved the cache partition ahead of userdata and extended my system partition by 587MB. This allowed me to keep the same partition numbers and have no unused space.
And after flashing an image if you want to extend the logical drive to fill the partition manually, the command is:
Code:
resize2fs -f /dev/block/mmcblk0p22
Magendanz said:
Rather than move the system partition, I just moved the cache partition ahead of userdata and extended my system partition by 587MB. This allowed me to keep the same partition numbers and have no unused space.
Click to expand...
Click to collapse
Could you explain a bit more how to do that ?
I have read on a few websites that Android Oreo doesn't use the cache partition anymore. If this is true, could it also be simply removed instead of moved ?
Non-destructive repartition script
rkhat said:
The only issue with Nexus 7 is that the recovery partition is between the system and cache partitions in the partition table.
Code:
Number Start End Size File system Name Flags
22 671088640B 1551892479B 880803840B ext2 system
23 1551892480B 2139095039B 587202560B ext4 cache
24 2147483648B 2148532223B 1048576B misc
25 2214592512B 2225078271B 10485760B recovery
Click to expand...
Click to collapse
Have another look at the table - recovery is not between the system and cache partitions.
k23m said:
No, there is no way to unbrick the tablet.
Click to expand...
Click to collapse
I wrote it a year ago, but now we do have a way to unbrick the tablet, so read on and feel free to experiment
wline said:
I have read on a few websites that Android Oreo doesn't use the cache partition anymore. If this is true, could it also be simply removed instead of moved ?
Click to expand...
Click to collapse
Good point. N7's cache is oversized anyway, all my relatively new Xiaomi phones use only 256MB cache. There is no need for complex re-partitioning if we opt for decreased cache. I just did this...
Code:
Number Start End Size File system Name Flags
22 640MiB 1780MiB 1140MiB ext2 system
23 1780MiB 2040MiB 260MiB ext4 cache
24 2048MiB 2049MiB 1.00MiB misc
25 2112MiB 2122MiB 10.0MiB recovery
Code:
Filesystem Size Used Available Use% Mounted on
/dev/block/mmcblk0p30
26.4G 7.0G 19.4G 27% /data
/dev/block/mmcblk0p22
1.1G 607.0M 517.3M 54% /system
/dev/block/mmcblk0p23
258.8M 19.0M 226.7M 8% /cache
Now I have 1.1GB non-destructively resized system and 260MB cache. No changes to other partitions and original OS still works without any backup/restore. It was only a test because personally I have no need for larger system partition. I install LineageOS with pico gapps and later add other Google apks as non-system in the data partition space. I attached a script for the 1.1GB/260MB re-partition. While it is non-destructive, you should do a backup and copy it to your PC first.
Use the latest TWRP and just install sysrepart.zip. The script will create a backup of your original gpt partition table and a log file in the root of internal storage. If you have any issues, post the log.
If you wish to restore original partitioning, install sysrepartundo.zip. This script will attempt to non-destructively resize system again but if you installed some mega-gapps, it will obviously fail. In this case, use TWRP and manually format the system partition, then restore system's backup.
:good:
k23m said:
Have another look at the table - recovery is not between the system and cache partitions.
Click to expand...
Click to collapse
That was a typo. It should be between system and userdata because I am taking from userdata to increase the system partition. I'll edit the main post.
k23m said:
I wrote it a year ago, but now we do have a way to unbrick the tablet, so read on and feel free to experiment
Click to expand...
Click to collapse
Is your guide for soft-unbrick only?
I don't think fastboot can resize or rename a partition. So if you resized the recovery partition to a smaller size or forgot to name a partition "recovery", will your solution be able to handle these situations?

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

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:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
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:
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:
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.
Copy the _b blank files toghether with new built _a images:
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
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
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!
All tools are provided as attachments.
Password: super-rw
If you think it's useful, please click the "Like" button. Thanks!
Reserved floor #2.
Reserved floor #3.
\unlock-super>erofsUnpackRust Download/product.img product
erofsUnpack 1.3.211216
<E> erofs: cannot find valid erofs superblock
thread '<unnamed>' panicked at 'read erofs super block failed', src\lib.rs:168:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
getting this error in vendor extracting
C:\unlock-super>erofsUnpackRust Download/product.img product
erofsUnpack 1.3.211216
<E> erofs: cannot find valid erofs superblock
thread '<unnamed>' panicked at 'read erofs super block failed', src\lib.rs:168:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
now this is
unlock-super>make_ext4fs -J -T 1230764400 -S system/config/system_file_contexts -l 626733056 -C system/config/system_fs_config -L system -a system system_a.img system/system
loaded 3141 fs_config entries
Creating filesystem with parameters:
Size: 626733056
Block size: 4096
Blocks per group: 32768
Inodes per group: 7664
Inode size: 256
Journal blocks: 0
Label: system
Blocks: 153011
Block groups: 5
Reserved block group size: 39
error: ext4_allocate_best_fit_partial: failed to allocate 4720 blocks, out of space?
Failed to create image system_a.img, removing it
Mr Hassan said:
now this is
unlock-super>make_ext4fs -J -T 1230764400 -S system/config/system_file_contexts -l 626733056 -C system/config/system_fs_config -L system -a system system_a.img system/system
loaded 3141 fs_config entries
Creating filesystem with parameters:
Size: 626733056
Block size: 4096
Blocks per group: 32768
Inodes per group: 7664
Inode size: 256
Journal blocks: 0
Label: system
Blocks: 153011
Block groups: 5
Reserved block group size: 39
error: ext4_allocate_best_fit_partial: failed to allocate 4720 blocks, out of space?
Failed to create image system_a.img, removing it
Click to expand...
Click to collapse
The size setting of your new ext4 img is too small. Consider a larger value.
EDIT: Normally, your files maybe 2GB+ larger than the erofs img. Check your files' real size and give a good value to -l parameter.
Yuki1001 said:
The size setting of your new ext4 img is too small. Consider a larger value.
EDIT: Normally, your files maybe 2GB+ larger than the erofs img. Check your files' real size and give a good value to -l parameter.
Click to expand...
Click to collapse
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
Mr Hassan said:
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
Click to expand...
Click to collapse
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.
Mr Hassan said:
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
Click to expand...
Click to collapse
You on oos 11 ?oos 11 have no erofs
Oos 12 have erofs
ChrisFeiveel84 said:
You on oos 11 ?oos 11 have no erofs
Oos 12 have erofs
Click to expand...
Click to collapse
Ofcourse I'm in os12
Yuki1001 said:
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.
Click to expand...
Click to collapse
Sure tomorrow I'll send you the screen shot of unpack and img both images
Yuki1001 said:
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.
Click to expand...
Click to collapse
Yuki1001 said:
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.
Click to expand...
Click to collapse
Hi @Yuki1001
Please keep up the great work! The more people have RW access to their own devices the better for the open source community!
If you want to integrate your erofs fix into my script please contact me! Of course you will be properly credited!
Well its not looks like yours kind of
But you know better
But its good thing if he helping people's with a different way
I personally like this thread becoz i just want to make one vendor rw
And then I'm able to boot after flash
edited remove quote on @
Yuki1001 request​
and today its not even unpack dont know where doing mistake
unlock-super>erofsUnpackRust Download/vendor.img vendor
erofsUnpack 1.3.211216
<E> erofs: cannot find valid erofs superblock
thread '<unnamed>' panicked at 'read erofs super block failed', src\lib.rs:168:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Reserved floor#16.
Mr Hassan said:
and today its not even unpack dont know where doing mistake
unlock-super>erofsUnpackRust Download/vendor.img vendor
erofsUnpack 1.3.211216
<E> erofs: cannot find valid erofs superblock
thread '<unnamed>' panicked at 'read erofs super block failed', src\lib.rs:168:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Click to expand...
Click to collapse
I had problems extracting my vendor.img using others' erofs unpack tools. Only the erofsunpackrust.exe works. Maybe your vendor.img is special? (which means you need to try other erofs unpack tools for luck)
Yuki1001 said:
I had problems extracting my vendor.img using others' erofs unpack tools. Only the erofsunpackrust.exe works. Maybe your vendor.img is special? (which means you need to try other erofs unpack tools for luck)
Click to expand...
Click to collapse
but same thing i used before and works for me and you see upper results
anyway now is there any other erofs avaliable to test?
Yuki1001 said:
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.
Click to expand...
Click to collapse
here,s the size of vendor unpack and repack
Mr Hassan said:
View attachment 5716687View attachment 5716689
here,s the size of vendor unpack and repack
Click to expand...
Click to collapse
So you could to set the ext4 vendor image to 2G. 2G = 2147483678 bytes. Try to set the -l parameter to 2147483648.

Categories

Resources