Loading Android.mk +1 −1 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ LOCAL_REQUIRED_MODULES := e2fsdroid_static mke2fs_static mke2fs.conf ifeq ($(TARGET_USERIMAGES_USE_F2FS),true) ifeq ($(HOST_OS),linux) LOCAL_REQUIRED_MODULES += mkfs.f2fs LOCAL_REQUIRED_MODULES += sload.f2fs mkfs.f2fs endif endif Loading roots.cpp +13 −6 Original line number Diff line number Diff line Loading @@ -324,16 +324,23 @@ int format_volume(const char* volume, const char* directory) { } // Has to be f2fs because we checked earlier. std::vector<std::string> f2fs_args = { "/sbin/mkfs.f2fs", "-d1", "-f", "-O", "encrypt", "-O", "quota", v->blk_device }; std::string cmd("/sbin/mkfs.f2fs"); std::vector<std::string> make_f2fs_cmd = { cmd, "-d1", "-f", "-O", "encrypt", "-O", "quota", v->blk_device }; if (length >= 512) { f2fs_args.push_back(std::to_string(length / 512)); make_f2fs_cmd.push_back(std::to_string(length / 512)); } int result = exec_cmd(f2fs_args); int result = exec_cmd(make_f2fs_cmd); if (result == 0 && directory != nullptr) { cmd = "/sbin/sload.f2fs"; std::vector<std::string> sload_f2fs_cmd = { cmd, "-f", directory, "-t", volume, v->blk_device, }; result = exec_cmd(sload_f2fs_cmd); } if (result != 0) { PLOG(ERROR) << "format_volume: Failed to make f2fs on " << v->blk_device; PLOG(ERROR) << "format_volume: Failed " << cmd << " on " << v->blk_device; return -1; } return 0; Loading updater/install.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -318,6 +318,15 @@ Value* FormatFn(const char* name, State* state, const std::vector<std::unique_pt LOG(ERROR) << name << ": mkfs.f2fs failed (" << status << ") on " << location; return StringValue(""); } const char* sload_argv[] = { "/sbin/sload.f2fs", "-t", mount_point.c_str(), location.c_str(), nullptr }; status = exec_cmd(sload_argv[0], const_cast<char**>(sload_argv)); if (status != 0) { LOG(ERROR) << name << ": sload.f2fs failed (" << status << ") on " << location; return StringValue(""); } return StringValue(location); } else { LOG(ERROR) << name << ": unsupported fs_type \"" << fs_type << "\" partition_type \"" Loading Loading
Android.mk +1 −1 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ LOCAL_REQUIRED_MODULES := e2fsdroid_static mke2fs_static mke2fs.conf ifeq ($(TARGET_USERIMAGES_USE_F2FS),true) ifeq ($(HOST_OS),linux) LOCAL_REQUIRED_MODULES += mkfs.f2fs LOCAL_REQUIRED_MODULES += sload.f2fs mkfs.f2fs endif endif Loading
roots.cpp +13 −6 Original line number Diff line number Diff line Loading @@ -324,16 +324,23 @@ int format_volume(const char* volume, const char* directory) { } // Has to be f2fs because we checked earlier. std::vector<std::string> f2fs_args = { "/sbin/mkfs.f2fs", "-d1", "-f", "-O", "encrypt", "-O", "quota", v->blk_device }; std::string cmd("/sbin/mkfs.f2fs"); std::vector<std::string> make_f2fs_cmd = { cmd, "-d1", "-f", "-O", "encrypt", "-O", "quota", v->blk_device }; if (length >= 512) { f2fs_args.push_back(std::to_string(length / 512)); make_f2fs_cmd.push_back(std::to_string(length / 512)); } int result = exec_cmd(f2fs_args); int result = exec_cmd(make_f2fs_cmd); if (result == 0 && directory != nullptr) { cmd = "/sbin/sload.f2fs"; std::vector<std::string> sload_f2fs_cmd = { cmd, "-f", directory, "-t", volume, v->blk_device, }; result = exec_cmd(sload_f2fs_cmd); } if (result != 0) { PLOG(ERROR) << "format_volume: Failed to make f2fs on " << v->blk_device; PLOG(ERROR) << "format_volume: Failed " << cmd << " on " << v->blk_device; return -1; } return 0; Loading
updater/install.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -318,6 +318,15 @@ Value* FormatFn(const char* name, State* state, const std::vector<std::unique_pt LOG(ERROR) << name << ": mkfs.f2fs failed (" << status << ") on " << location; return StringValue(""); } const char* sload_argv[] = { "/sbin/sload.f2fs", "-t", mount_point.c_str(), location.c_str(), nullptr }; status = exec_cmd(sload_argv[0], const_cast<char**>(sload_argv)); if (status != 0) { LOG(ERROR) << name << ": sload.f2fs failed (" << status << ") on " << location; return StringValue(""); } return StringValue(location); } else { LOG(ERROR) << name << ": unsupported fs_type \"" << fs_type << "\" partition_type \"" Loading