Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac70ffcc authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "roots.cpp: Reformatting the file."

parents 6eb23c59 bb10e58e
Loading
Loading
Loading
Loading
+93 −101
Original line number Diff line number Diff line
@@ -16,55 +16,49 @@

#include "roots.h"

#include <errno.h>
#include <ctype.h>
#include <fcntl.h>
#include <stdlib.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <ctype.h>
#include <fcntl.h>

#include <android-base/logging.h>
#include <android-base/properties.h>
#include <android-base/stringprintf.h>
#include <cryptfs.h>
#include <ext4_utils/wipe.h>
#include <fs_mgr.h>

#include "common.h"
#include "mounts.h"
#include "cryptfs.h"

static struct fstab *fstab = NULL;
static struct fstab* fstab = nullptr;

extern struct selabel_handle* sehandle;

void load_volume_table()
{
    int i;
    int ret;

void load_volume_table() {
  fstab = fs_mgr_read_fstab_default();
  if (!fstab) {
        LOG(ERROR) << "failed to read default fstab";
    LOG(ERROR) << "Failed to read default fstab";
    return;
  }

    ret = fs_mgr_add_entry(fstab, "/tmp", "ramdisk", "ramdisk");
    if (ret < 0 ) {
        LOG(ERROR) << "failed to add /tmp entry to fstab";
  int ret = fs_mgr_add_entry(fstab, "/tmp", "ramdisk", "ramdisk");
  if (ret == -1) {
    LOG(ERROR) << "Failed to add /tmp entry to fstab";
    fs_mgr_free_fstab(fstab);
        fstab = NULL;
    fstab = nullptr;
    return;
  }

  printf("recovery filesystem table\n");
  printf("=========================\n");
    for (i = 0; i < fstab->num_entries; ++i) {
        Volume* v = &fstab->recs[i];
        printf("  %d %s %s %s %lld\n", i, v->mount_point, v->fs_type,
               v->blk_device, v->length);
  for (int i = 0; i < fstab->num_entries; ++i) {
    const Volume* v = &fstab->recs[i];
    printf("  %d %s %s %s %lld\n", i, v->mount_point, v->fs_type, v->blk_device, v->length);
  }
  printf("\n");
}
@@ -76,17 +70,17 @@ Volume* volume_for_path(const char* path) {
// Mount the volume specified by path at the given mount_point.
int ensure_path_mounted_at(const char* path, const char* mount_point) {
  Volume* v = volume_for_path(path);
    if (v == NULL) {
  if (v == nullptr) {
    LOG(ERROR) << "unknown volume for path [" << path << "]";
    return -1;
  }
  if (strcmp(v->fs_type, "ramdisk") == 0) {
        // the ramdisk is always mounted.
    // The ramdisk is always mounted.
    return 0;
  }

  if (!scan_mounted_volumes()) {
        LOG(ERROR) << "failed to scan mounted volumes";
    LOG(ERROR) << "Failed to scan mounted volumes";
    return -1;
  }

@@ -94,32 +88,30 @@ int ensure_path_mounted_at(const char* path, const char* mount_point) {
    mount_point = v->mount_point;
  }

    MountedVolume* mv = find_mounted_volume_by_mount_point(mount_point);
    if (mv) {
        // volume is already mounted
  const MountedVolume* mv = find_mounted_volume_by_mount_point(mount_point);
  if (mv != nullptr) {
    // Volume is already mounted.
    return 0;
  }

  mkdir(mount_point, 0755);  // in case it doesn't already exist

    if (strcmp(v->fs_type, "ext4") == 0 ||
               strcmp(v->fs_type, "squashfs") == 0 ||
  if (strcmp(v->fs_type, "ext4") == 0 || strcmp(v->fs_type, "squashfs") == 0 ||
      strcmp(v->fs_type, "vfat") == 0) {
    int result = mount(v->blk_device, mount_point, v->fs_type, v->flags, v->fs_options);
    if (result == -1 && fs_mgr_is_formattable(v)) {
            LOG(ERROR) << "failed to mount " << mount_point << " (" << strerror(errno)
                       << ") , formatting.....";
      PLOG(ERROR) << "Failed to mount " << mount_point << "; formatting";
      bool crypt_footer = fs_mgr_is_encryptable(v) && !strcmp(v->key_loc, "footer");
      if (fs_mgr_do_format(v, crypt_footer) == 0) {
        result = mount(v->blk_device, mount_point, v->fs_type, v->flags, v->fs_options);
      } else {
                PLOG(ERROR) << "failed to format " << mount_point;
        PLOG(ERROR) << "Failed to format " << mount_point;
        return -1;
      }
    }

    if (result == -1) {
            PLOG(ERROR) << "failed to mount " << mount_point;
      PLOG(ERROR) << "Failed to mount " << mount_point;
      return -1;
    }
    return 0;
@@ -135,24 +127,24 @@ int ensure_path_mounted(const char* path) {
}

int ensure_path_unmounted(const char* path) {
    Volume* v = volume_for_path(path);
    if (v == NULL) {
  const Volume* v = volume_for_path(path);
  if (v == nullptr) {
    LOG(ERROR) << "unknown volume for path [" << path << "]";
    return -1;
  }
  if (strcmp(v->fs_type, "ramdisk") == 0) {
        // the ramdisk is always mounted; you can't unmount it.
    // The ramdisk is always mounted; you can't unmount it.
    return -1;
  }

  if (!scan_mounted_volumes()) {
        LOG(ERROR) << "failed to scan mounted volumes";
    LOG(ERROR) << "Failed to scan mounted volumes";
    return -1;
  }

  MountedVolume* mv = find_mounted_volume_by_mount_point(v->mount_point);
    if (mv == NULL) {
        // volume is already unmounted
  if (mv == nullptr) {
    // Volume is already unmounted.
    return 0;
  }

@@ -304,7 +296,7 @@ int format_volume(const char* volume, const char* directory) {
}

int format_volume(const char* volume) {
    return format_volume(volume, NULL);
  return format_volume(volume, nullptr);
}

int setup_install_mounts() {
@@ -322,12 +314,12 @@ int setup_install_mounts() {

    if (strcmp(v->mount_point, "/tmp") == 0 || strcmp(v->mount_point, "/cache") == 0) {
      if (ensure_path_mounted(v->mount_point) != 0) {
        LOG(ERROR) << "failed to mount " << v->mount_point;
        LOG(ERROR) << "Failed to mount " << v->mount_point;
        return -1;
      }
    } else {
      if (ensure_path_unmounted(v->mount_point) != 0) {
        LOG(ERROR) << "failed to unmount " << v->mount_point;
        LOG(ERROR) << "Failed to unmount " << v->mount_point;
        return -1;
      }
    }