Lanchon / REPIT

A Device-Only Data-Sparing Repartitioning Tool For Android
159 stars 25 forks source link

Nook HD/HD+ (hummingbird/ovation) How-To: 1G /system plus an extra 0.5G for /data #59

Open Lanchon opened 7 years ago

Lanchon commented 7 years ago

How-To: 1G /system plus an extra 0.5G for /data

go to REPIT downloads and get the current version of REPIT for hummingbird or ovation. it will be named: lanchon-repit-XXXXXXXX-factory=same-system=1G-cache=112M+wipe-data=same-hummingbird.zip lanchon-repit-XXXXXXXX-factory=same-system=1G-cache=112M+wipe-data=same-ovation.zip

if you flash this file, you will simply grow the /system partition to 1 GiB at the expense of some space in the /cache partition. a 1 GiB /system is necessary to install recent roms with gapps. this REPIT operation executes in a short time. (note that /cache is only used in the stock rom, and only for OTAs.)

but on top of expanding /system to 1 GiB, you can also add approximately 0.5 GiB to /data by following these steps:

  1. download latest REPIT for hummingbird or ovation.
  2. rename the file to: lanchon-repit-XXXXXXXX-factory=32M-system=1G-cache=32M+wipe-data=max-hummingbird.zip lanchon-repit-XXXXXXXX-factory=32M-system=1G-cache=32M+wipe-data=max-ovation.zip
  3. download this file: delete-backup-of-stock-rom-hummingbird-ovation.zip
  4. upload both files to the device.
  5. flash delete-backup-of-stock-rom-hummingbird-ovation.zip. this file will delete a backup of the stock rom called factory.zip that exists in the /factory partition freeing around 0.4 GiB there. (you can download this file from the internet if you ever need to.) (note that flashing this will not delete rombackup.zip, a valuable small backup file of configuration files that are unique to your device and cannot be obtained from the internet.)
  6. the /factory partition will now be mostly empty and can be resized to a very small size. flash the renamed REPIT file to do just this. gained space from /factory and /cache will be used to enlarge /data. this REPIT operation will take a long time because the /data partition must be moved. (note that because of this, if the operation is interrupted your /data partition could be corrupted, although this has never happened to date. never interrupt REPIT, and do backup valuable information.)

please also read the generic instructions for REPIT before beginning this procedure.

this was possible thanks to the invaluable help of @149113.

Going back to stock partition layout

just rename REPIT to this and flash: lanchon-repit-XXXXXXXX-factory=448M-system=672M-cache=464M+wipe-data=13184M-hummingbird.zip lanchon-repit-XXXXXXXX-factory=448M-system=672M-cache=464M+wipe-data=13184M-ovation.zip

fencepost commented 6 years ago

Would there be any problems (or advantages) with keeping a larger /cache partition? I notice that on my freshly-upgraded ovation it's already larger than 32M in use.

I was thinking of shrinking /factory as described here, growing /system to 1G, putting /cache at 112M as originally done here and allocating everything else onto /data.

Edit: more detail, though I haven't run it on my device to check the actual partition sizes. This is based on the comments in ovation.sh I was thinking of

bluhd commented 6 years ago

WARNING This failed for me - It gave an I/O error on the userdata partition. It did format /factory and /system correct. I flashed "delete-backup-of-stock-rom-hummingbird-ovation.zip" then "lanchon-repit-20170115-factory=same-system=1G-cache=32M+wipe-data=same-hummingbird.zip". The data partition was oddly around 256MB (down from 600MB) according to /proc/partitions and would not mount and fsck failed. I deleted and recreated the partition with sgdisk/make_ext4 (sgdisk -N 10 /dev/block/mmcblk0;sgdisk -c 10:userdata /dev/block/mmcblk0, make_ext4 /dev/block/mmcblk0p10). This created a 6GB partition and the device is working great now. I was/still am on this rom(7.1) - https://forum.xda-developers.com/nook-hd/development/marshmallow-nook-hd-hd-t3239269

Lanchon commented 6 years ago

there's been many thousands of users repartitioning phones with repit, and only 2 reports of data loss reached my ears: one was a guy who repartitioned on an empty battery without even plugging the device and it ran out of juice mid way, and the other is you. your case, i/o error, is indicative of a hardware problem in the device's emmc (the flash storage). presumably the flash could not read out its content because it had become corrupted. whatever happened, it could happen again. i wouldn't trust that device to hold any important data anymore.

too bad you didn't get the log. because you didn't, i can only speculate and my ability to help you is next to null.

on the other hand, i really hope you used -factory=32MB and -data=max as directed here; otherwise this whole exercise was just a big waste of time.

btw, if you read the repit docs, you'd know that you could have used -data=+wipe to recover from your situation. in fact, your manual intervention to the data partition deleted its crypto footer, meaning that you can no longer encrypt your device.

you can recover from this by formatting the partition via TWRP's UI. and you can of course use repit to recover without loosing data, by flashing an "empty" configuration. just rename to lanchon-repit-20170115-hummingbird.zip and flash.

pcspecialist commented 5 years ago

The instructions should mention using -cache=32M+wipe-data=max+wipe if you don't care about wiping data and want to DRASTICALLY speed up the process.

Lanchon commented 5 years ago

REPIT instructions already recommend wiping all partitions you do not need to keep, to increase repartitioning speed, reduce flash wear, and to TRIM the SSD. i cannot spoon-feed every option everywhere.