Significantly better AVD support

This commit is contained in:
topjohnwu
2021-08-26 03:09:56 -07:00
parent 0cd99712fa
commit 4771c2810b
8 changed files with 103 additions and 55 deletions

View File

@@ -23,9 +23,9 @@ static bool safe_mode = false;
* Setup *
*********/
#define MNT_DIR_IS(dir) (me->mnt_dir == string_view(dir))
#define SETMIR(b, part) sprintf(b, "%s/" MIRRDIR "/" #part, MAGISKTMP.data())
#define SETBLK(b, part) sprintf(b, "%s/" BLOCKDIR "/" #part, MAGISKTMP.data())
#define MNT_DIR_IS(dir) (me->mnt_dir == string_view(dir))
#define SETMIR(b, part) snprintf(b, sizeof(b), "%s/" MIRRDIR "/" #part, MAGISKTMP.data())
#define SETBLK(b, part) snprintf(b, sizeof(b), "%s/" BLOCKDIR "/" #part, MAGISKTMP.data())
#define do_mount_mirror(part, flag) {\
SETMIR(buf1, part); \

View File

@@ -91,6 +91,11 @@ static void handle_request_sync(int client, int code) {
case START_DAEMON:
setup_logfile(true);
break;
case STOP_DAEMON:
magiskhide_handler(-1, nullptr);
write_int(client, 0);
// Terminate the daemon!
exit(0);
}
}
@@ -120,6 +125,7 @@ static void handle_request(int client) {
case SQLITE_CMD:
case GET_PATH:
case MAGISKHIDE:
case STOP_DAEMON:
if (!is_root) {
write_int(client, ROOT_REQUIRED);
goto done;

View File

@@ -28,6 +28,7 @@ Options:
Advanced Options (Internal APIs):
--daemon manually start magisk daemon
--stop remove all magisk changes and stop daemon
--[init trigger] start service for init trigger
Supported init triggers:
post-fs-data, service, boot-complete
@@ -84,6 +85,10 @@ int magisk_main(int argc, char *argv[]) {
int fd = connect_daemon(true);
write_int(fd, START_DAEMON);
return 0;
} else if (argv[1] == "--stop"sv) {
int fd = connect_daemon();
write_int(fd, STOP_DAEMON);
return read_int(fd);
} else if (argv[1] == "--post-fs-data"sv) {
int fd = connect_daemon(true);
write_int(fd, POST_FS_DATA);