diff --git a/native/src/init/lib.rs b/native/src/init/lib.rs index 9034d0d56..49946e04a 100644 --- a/native/src/init/lib.rs +++ b/native/src/init/lib.rs @@ -98,9 +98,9 @@ pub mod ffi { fn patch_ro_root(self: &mut MagiskInit); // Used in C++ - unsafe fn setup_tmp(self: &MagiskInit, path: *const c_char); + unsafe fn setup_tmp(self: &mut MagiskInit, path: *const c_char); fn collect_devices(self: &MagiskInit); - fn mount_preinit_dir(self: &MagiskInit); + fn mount_preinit_dir(self: &mut MagiskInit); unsafe fn find_block(self: &MagiskInit, partname: *const c_char) -> u64; unsafe fn patch_fissiond(self: &mut MagiskInit, tmp_path: *const c_char); } diff --git a/native/src/init/mount.cpp b/native/src/init/mount.cpp index 852affa5c..44a01c6d5 100644 --- a/native/src/init/mount.cpp +++ b/native/src/init/mount.cpp @@ -103,11 +103,11 @@ uint64_t MagiskInit::find_block(const char *partname) const noexcept { return 0; } -void MagiskInit::mount_preinit_dir() const noexcept { +void MagiskInit::mount_preinit_dir() noexcept { if (preinit_dev.empty()) return; - auto dev = find_block(preinit_dev.data()); + auto dev = find_block(preinit_dev.c_str()); if (dev == 0) { - LOGE("Cannot find preinit %s, abort!\n", preinit_dev.data()); + LOGE("Cannot find preinit %s, abort!\n", preinit_dev.c_str()); return; } xmknod(PREINITDEV, S_IFBLK | 0600, dev); @@ -138,7 +138,7 @@ void MagiskInit::mount_preinit_dir() const noexcept { } xumount2(MIRRDIR, MNT_DETACH); } else { - PLOGE("Failed to mount preinit %s\n", preinit_dev.data()); + PLOGE("Failed to mount preinit %s\n", preinit_dev.c_str()); unlink(PREINITDEV); } } @@ -210,7 +210,7 @@ mount_root: return is_two_stage; } -void MagiskInit::setup_tmp(const char *path) const noexcept { +void MagiskInit::setup_tmp(const char *path) noexcept { LOGD("Setup Magisk tmp at %s\n", path); chdir("/data");