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

Commit ad4ce79b authored by Tao Bao's avatar Tao Bao Committed by android-build-merger
Browse files

Merge "Use dynamically linked f2fs executables."

am: 22a27f99

Change-Id: If4ed2288a513510569ce9411a20cdc4c962d9803
parents 159d267c 22a27f99
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -58,8 +58,8 @@ LOCAL_MODULE := recovery_deps
ifeq ($(TARGET_USERIMAGES_USE_F2FS),true)
ifeq ($(HOST_OS),linux)
LOCAL_REQUIRED_MODULES += \
    sload.f2fs \
    mkfs.f2fs
    make_f2fs.recovery \
    sload_f2fs.recovery
endif
endif

+1 −0
Original line number Diff line number Diff line
@@ -49,3 +49,4 @@
# ************************************************
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES/recovery_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libminui_intermediates/import_includes)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/sbin)
+13 −19
Original line number Diff line number Diff line
@@ -223,35 +223,29 @@ int format_volume(const std::string& volume, const std::string& directory) {

  // Has to be f2fs because we checked earlier.
  static constexpr int kSectorSize = 4096;
  std::string cmd("/sbin/mkfs.f2fs");
  // clang-format off
  std::vector<std::string> make_f2fs_cmd = {
    cmd,
    "-g", "android",
    "/system/bin/make_f2fs",
    "-g",
    "android",
    v->blk_device,
  };
  // clang-format on
  if (length >= kSectorSize) {
    make_f2fs_cmd.push_back(std::to_string(length / kSectorSize));
  }

  int result = exec_cmd(make_f2fs_cmd);
  if (result == 0 && !directory.empty()) {
    cmd = "/sbin/sload.f2fs";
    // clang-format off
  if (exec_cmd(make_f2fs_cmd) != 0) {
    PLOG(ERROR) << "format_volume: Failed to make_f2fs on " << v->blk_device;
    return -1;
  }
  if (!directory.empty()) {
    std::vector<std::string> sload_f2fs_cmd = {
      cmd,
      "-f", directory,
      "-t", volume,
      v->blk_device,
      "/system/bin/sload_f2fs", "-f", directory, "-t", volume, v->blk_device,
    };
    // clang-format on
    result = exec_cmd(sload_f2fs_cmd);
  }
  if (result != 0) {
    PLOG(ERROR) << "format_volume: Failed " << cmd << " on " << v->blk_device;
    if (exec_cmd(sload_f2fs_cmd) != 0) {
      PLOG(ERROR) << "format_volume: Failed to sload_f2fs on " << v->blk_device;
      return -1;
    }
  }
  return 0;
}

+5 −4
Original line number Diff line number Diff line
@@ -482,18 +482,19 @@ Value* FormatFn(const char* name, State* state, const std::vector<std::unique_pt
      return StringValue("");
    }
    std::vector<std::string> f2fs_args = {
      "/sbin/mkfs.f2fs", "-g", "android", "-w", "512", location
      "/system/bin/make_f2fs", "-g", "android", "-w", "512", location
    };
    if (size >= 512) {
      f2fs_args.push_back(std::to_string(size / 512));
    }
    if (auto status = exec_cmd(f2fs_args); status != 0) {
      LOG(ERROR) << name << ": mkfs.f2fs failed (" << status << ") on " << location;
      LOG(ERROR) << name << ": make_f2fs failed (" << status << ") on " << location;
      return StringValue("");
    }

    if (auto status = exec_cmd({ "/sbin/sload.f2fs", "-t", mount_point, location }); status != 0) {
      LOG(ERROR) << name << ": sload.f2fs failed (" << status << ") on " << location;
    if (auto status = exec_cmd({ "/system/bin/sload_f2fs", "-t", mount_point, location });
        status != 0) {
      LOG(ERROR) << name << ": sload_f2fs failed (" << status << ") on " << location;
      return StringValue("");
    }