Refactor init.cpp to init.rs

This commit is contained in:
LoveSy
2025-01-31 01:37:15 +08:00
committed by John Wu
parent 563f0d5ad5
commit 143743d0b0
7 changed files with 217 additions and 211 deletions

View File

@@ -192,7 +192,7 @@ void BootConfig::init() noexcept {
print();
}
bool check_two_stage() {
bool MagiskInit::check_two_stage() const noexcept {
if (access("/first_stage_ramdisk", F_OK) == 0)
return true;
if (access("/second_stage_resources", F_OK) == 0)
@@ -206,19 +206,3 @@ bool check_two_stage() {
mmap_data init(backup_init());
return init.contains("selinux_setup");
}
static void unxz_init(const char *init_xz, const char *init) {
LOGD("unxz %s -> %s\n", init_xz, init);
int fd = xopen(init, O_WRONLY | O_CREAT, 0777);
fd_stream ch(fd);
unxz(ch, mmap_data{init_xz});
close(fd);
clone_attr(init_xz, init);
unlink(init_xz);
}
const char *backup_init() {
if (access("/.backup/init.xz", F_OK) == 0)
unxz_init("/.backup/init.xz", "/.backup/init");
return "/.backup/init";
}