Simplify MagiskD Rust/C++ FFI

This commit is contained in:
topjohnwu
2024-12-03 15:51:17 -08:00
parent 805da67c23
commit 09c7ac754b
6 changed files with 31 additions and 67 deletions
+5 -17
View File
@@ -128,20 +128,8 @@ static void poll_ctrl_handler(pollfd *pfd) {
}
}
const MagiskD &MagiskD::get() {
return *reinterpret_cast<const MagiskD*>(&rust::get_magiskd());
}
const rust::MagiskD *MagiskD::operator->() const {
return reinterpret_cast<const rust::MagiskD*>(this);
}
const rust::MagiskD &MagiskD::as_rust() const {
return *operator->();
}
void MagiskD::reboot() const {
if (as_rust().is_recovery())
void MagiskD::reboot() const noexcept {
if (is_recovery())
exec_command_sync("/system/bin/reboot", "recovery");
else
exec_command_sync("/system/bin/reboot");
@@ -171,7 +159,7 @@ static void handle_request_async(int client, int code, const sock_cred &cred) {
write_int(client, 0);
close(client);
if (do_reboot) {
MagiskD::get().reboot();
MagiskD().reboot();
}
break;
}
@@ -196,7 +184,7 @@ static void handle_request_sync(int client, int code) {
write_int(client, MAGISK_VER_CODE);
break;
case +RequestCode::START_DAEMON:
MagiskD::get()->setup_logfile();
MagiskD().setup_logfile();
break;
case +RequestCode::STOP_DAEMON: {
// Unmount all overlays
@@ -298,7 +286,7 @@ static void handle_request(pollfd *pfd) {
exec_task([=, fd = client.release()] { handle_request_async(fd, code, cred); });
} else {
exec_task([=, fd = client.release()] {
MagiskD::get()->boot_stage_handler(fd, code);
MagiskD().boot_stage_handler(fd, code);
});
}
}