Merge "Revert "Erase PST partition if its marked to be erased.""
This commit is contained in:
@@ -695,7 +695,6 @@ static void wipe_data(int confirm, Device* device) {
|
|||||||
device->WipeData();
|
device->WipeData();
|
||||||
erase_volume("/data");
|
erase_volume("/data");
|
||||||
erase_volume("/cache");
|
erase_volume("/cache");
|
||||||
erase_persistent_partition();
|
|
||||||
ui->Print("Data wipe complete.\n");
|
ui->Print("Data wipe complete.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1102,7 +1101,6 @@ main(int argc, char **argv) {
|
|||||||
if (device->WipeData()) status = INSTALL_ERROR;
|
if (device->WipeData()) status = INSTALL_ERROR;
|
||||||
if (erase_volume("/data")) status = INSTALL_ERROR;
|
if (erase_volume("/data")) status = INSTALL_ERROR;
|
||||||
if (should_wipe_cache && erase_volume("/cache")) status = INSTALL_ERROR;
|
if (should_wipe_cache && erase_volume("/cache")) status = INSTALL_ERROR;
|
||||||
if (erase_persistent_partition() == -1 ) status = INSTALL_ERROR;
|
|
||||||
if (status != INSTALL_SUCCESS) ui->Print("Data wipe failed.\n");
|
if (status != INSTALL_SUCCESS) ui->Print("Data wipe failed.\n");
|
||||||
} else if (should_wipe_cache) {
|
} else if (should_wipe_cache) {
|
||||||
if (should_wipe_cache && erase_volume("/cache")) status = INSTALL_ERROR;
|
if (should_wipe_cache && erase_volume("/cache")) status = INSTALL_ERROR;
|
||||||
|
|||||||
@@ -39,8 +39,6 @@ static struct fstab *fstab = NULL;
|
|||||||
|
|
||||||
extern struct selabel_handle *sehandle;
|
extern struct selabel_handle *sehandle;
|
||||||
|
|
||||||
static const char* PERSISTENT_PATH = "/persistent";
|
|
||||||
|
|
||||||
void load_volume_table()
|
void load_volume_table()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -266,41 +264,6 @@ int format_volume(const char* volume) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int erase_persistent_partition() {
|
|
||||||
Volume *v = volume_for_path(PERSISTENT_PATH);
|
|
||||||
if (v == NULL) {
|
|
||||||
// most devices won't have /persistent, so this is not an error.
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int fd = open(v->blk_device, O_RDWR);
|
|
||||||
uint64_t size = get_file_size(fd);
|
|
||||||
if (size == 0) {
|
|
||||||
LOGE("failed to stat size of /persistent\n");
|
|
||||||
close(fd);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
char oem_unlock_enabled;
|
|
||||||
lseek(fd, size - 1, SEEK_SET);
|
|
||||||
read(fd, &oem_unlock_enabled, 1);
|
|
||||||
|
|
||||||
if (oem_unlock_enabled) {
|
|
||||||
if (wipe_block_device(fd, size)) {
|
|
||||||
LOGE("error wiping /persistent: %s\n", strerror(errno));
|
|
||||||
close(fd);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
lseek(fd, size - 1, SEEK_SET);
|
|
||||||
write(fd, &oem_unlock_enabled, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
close(fd);
|
|
||||||
|
|
||||||
return (int) oem_unlock_enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
int setup_install_mounts() {
|
int setup_install_mounts() {
|
||||||
if (fstab == NULL) {
|
if (fstab == NULL) {
|
||||||
LOGE("can't set up install mounts: no fstab loaded\n");
|
LOGE("can't set up install mounts: no fstab loaded\n");
|
||||||
|
|||||||
@@ -46,11 +46,6 @@ int format_volume(const char* volume);
|
|||||||
// mounted (/tmp and /cache) are mounted. Returns 0 on success.
|
// mounted (/tmp and /cache) are mounted. Returns 0 on success.
|
||||||
int setup_install_mounts();
|
int setup_install_mounts();
|
||||||
|
|
||||||
// Conditionally wipes the /persistent partition if it's marked
|
|
||||||
// to wipe. Returns -1 on failure, 1 if the partition was wiped
|
|
||||||
// and 0 if the partition was not wiped.
|
|
||||||
int erase_persistent_partition();
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user