Commit 6f41d985 authored by topjohnwu's avatar topjohnwu

Randomize service names

Fix Aniplex Game detections.
Close #502, close #513
parent 2d7c1da7
...@@ -292,7 +292,13 @@ static int dump_magiskrc(const char *path, mode_t mode) { ...@@ -292,7 +292,13 @@ static int dump_magiskrc(const char *path, mode_t mode) {
int fd = creat(path, mode); int fd = creat(path, mode);
if (fd < 0) if (fd < 0)
return 1; return 1;
xwrite(fd, magiskrc, sizeof(magiskrc)); char startup_svc[8], late_start_svc[8], rc[sizeof(magiskrc) + 100];
gen_rand_str(startup_svc, sizeof(startup_svc));
do {
gen_rand_str(late_start_svc, sizeof(late_start_svc));
} while (strcmp(startup_svc, late_start_svc) == 0);
int size = sprintf(rc, magiskrc, startup_svc, startup_svc, late_start_svc);
xwrite(fd, rc, size);
close(fd); close(fd);
return 0; return 0;
} }
......
#include "magisk.h" #include "magisk.h"
#include "magiskpolicy.h" #include "magiskpolicy.h"
const char magiskrc[] = static const char magiskrc[] =
// Triggers
"on post-fs-data\n" "on post-fs-data\n"
" start logd\n" " start logd\n"
" load_persist_props\n" " load_persist_props\n"
" rm "UNBLOCKFILE"\n" " rm "UNBLOCKFILE"\n"
" start magisk_startup\n" " start %s\n"
" wait "UNBLOCKFILE" 10\n" " wait "UNBLOCKFILE" 10\n"
" rm "UNBLOCKFILE"\n" " rm "UNBLOCKFILE"\n"
"\n" "\n"
#if 0 "service %s /sbin/magisk --startup\n"
"on property:sys.boot_completed=1\n"
" start magisk_bc\n"
"\n"
#endif
// Services
"service magisk_daemon /sbin/magisk --daemon\n"
" user root\n" " user root\n"
" seclabel u:r:"SEPOL_PROC_DOMAIN":s0\n" " seclabel u:r:"SEPOL_PROC_DOMAIN":s0\n"
" oneshot\n" " oneshot\n"
"\n" "\n"
"service magisk_startup /sbin/magisk --startup\n" "service %s /sbin/magisk --service\n"
" class late_start\n"
" user root\n" " user root\n"
" seclabel u:r:"SEPOL_PROC_DOMAIN":s0\n" " seclabel u:r:"SEPOL_PROC_DOMAIN":s0\n"
" oneshot\n" " oneshot\n"
"\n" "\n"
"service magisk_service /sbin/magisk --service\n" #if 0
" class late_start\n" "on property:sys.boot_completed=1\n"
" user root\n" " start magisk_bc\n"
" seclabel u:r:"SEPOL_PROC_DOMAIN":s0\n"
" oneshot\n"
"\n" "\n"
"service magisk_bc /sbin/magisk --boot-complete\n" "service magisk_bc /sbin/magisk --boot-complete\n"
...@@ -46,3 +35,5 @@ const char magiskrc[] = ...@@ -46,3 +35,5 @@ const char magiskrc[] =
" seclabel u:r:"SEPOL_PROC_DOMAIN":s0\n" " seclabel u:r:"SEPOL_PROC_DOMAIN":s0\n"
" oneshot\n" " oneshot\n"
; ;
#endif
;
...@@ -373,7 +373,7 @@ void wait_till_exists(const char *target) { ...@@ -373,7 +373,7 @@ void wait_till_exists(const char *target) {
} }
void gen_rand_str(char *buf, int len) { void gen_rand_str(char *buf, int len) {
const char base[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_."; const char base[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
int urandom; int urandom;
if (access("/dev/urandom", R_OK) == 0) { if (access("/dev/urandom", R_OK) == 0) {
urandom = xopen("/dev/urandom", O_RDONLY | O_CLOEXEC); urandom = xopen("/dev/urandom", O_RDONLY | O_CLOEXEC);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment