Several small tweaks
This commit is contained in:
parent
bc21a1fb71
commit
f42d820891
@ -575,6 +575,9 @@ void post_fs(int client) {
|
|||||||
write_int(client, 0);
|
write_int(client, 0);
|
||||||
close(client);
|
close(client);
|
||||||
|
|
||||||
|
// Allow magiskinit to full patch
|
||||||
|
close(creat(PATCHSTART, 0));
|
||||||
|
|
||||||
// Uninstall or core only mode
|
// Uninstall or core only mode
|
||||||
if (access(UNINSTALLER, F_OK) == 0 || access(DISABLEFILE, F_OK) == 0)
|
if (access(UNINSTALLER, F_OK) == 0 || access(DISABLEFILE, F_OK) == 0)
|
||||||
goto unblock;
|
goto unblock;
|
||||||
@ -743,6 +746,7 @@ void late_start(int client) {
|
|||||||
// Wait till the full patch is done
|
// Wait till the full patch is done
|
||||||
while (access(PATCHDONE, F_OK) == -1)
|
while (access(PATCHDONE, F_OK) == -1)
|
||||||
usleep(500); /* Wait 0.5ms */
|
usleep(500); /* Wait 0.5ms */
|
||||||
|
unlink(PATCHDONE);
|
||||||
|
|
||||||
// Run scripts after full patch, most reliable way to run scripts
|
// Run scripts after full patch, most reliable way to run scripts
|
||||||
LOGI("* Running service.d scripts\n");
|
LOGI("* Running service.d scripts\n");
|
||||||
|
@ -120,6 +120,7 @@ void auto_start_magiskhide() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void start_daemon() {
|
void start_daemon() {
|
||||||
|
setsid();
|
||||||
setcon("u:r:su:s0");
|
setcon("u:r:su:s0");
|
||||||
umask(0);
|
umask(0);
|
||||||
int fd = xopen("/dev/null", O_RDWR | O_CLOEXEC);
|
int fd = xopen("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
@ -138,11 +139,10 @@ void start_daemon() {
|
|||||||
struct sockaddr_un sun;
|
struct sockaddr_un sun;
|
||||||
fd = setup_socket(&sun);
|
fd = setup_socket(&sun);
|
||||||
|
|
||||||
if (xbind(fd, (struct sockaddr*) &sun, sizeof(sun)) == -1)
|
xbind(fd, (struct sockaddr*) &sun, sizeof(sun));
|
||||||
exit(1);
|
|
||||||
xlisten(fd, 10);
|
xlisten(fd, 10);
|
||||||
|
|
||||||
if ((is_restart = access(UNBLOCKFILE, F_OK) == 0)) {
|
if ((is_restart = access(MAGISKTMP, F_OK) == 0)) {
|
||||||
// Restart stuffs if the daemon is restarted
|
// Restart stuffs if the daemon is restarted
|
||||||
exec_command_sync("logcat", "-b", "all", "-c", NULL);
|
exec_command_sync("logcat", "-b", "all", "-c", NULL);
|
||||||
auto_start_magiskhide();
|
auto_start_magiskhide();
|
||||||
@ -189,7 +189,6 @@ int connect_daemon() {
|
|||||||
if (xfork() == 0) {
|
if (xfork() == 0) {
|
||||||
LOGD("client: connect fail, try launching new daemon process\n");
|
LOGD("client: connect fail, try launching new daemon process\n");
|
||||||
close(fd);
|
close(fd);
|
||||||
xsetsid();
|
|
||||||
start_daemon();
|
start_daemon();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -425,9 +425,9 @@ int main(int argc, char *argv[]) {
|
|||||||
// Fork a new process for full patch
|
// Fork a new process for full patch
|
||||||
setsid();
|
setsid();
|
||||||
sepol_allow("su", ALL, ALL, ALL);
|
sepol_allow("su", ALL, ALL, ALL);
|
||||||
while (access(SELINUX_LOAD, W_OK) == -1) {
|
while (access(PATCHSTART, W_OK) == -1)
|
||||||
usleep(500); /* Wait 0.5ms */
|
usleep(500); /* Wait 0.5ms */
|
||||||
}
|
unlink(PATCHSTART);
|
||||||
dump_policydb(SELINUX_LOAD);
|
dump_policydb(SELINUX_LOAD);
|
||||||
close(open(PATCHDONE, O_RDONLY | O_CREAT, 0));
|
close(open(PATCHDONE, O_RDONLY | O_CREAT, 0));
|
||||||
destroy_policydb();
|
destroy_policydb();
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#define LASTLOG "/cache/last_magisk.log"
|
#define LASTLOG "/cache/last_magisk.log"
|
||||||
#define DEBUG_LOG "/data/magisk_debug.log"
|
#define DEBUG_LOG "/data/magisk_debug.log"
|
||||||
#define UNBLOCKFILE "/dev/.magisk.unblock"
|
#define UNBLOCKFILE "/dev/.magisk.unblock"
|
||||||
|
#define PATCHSTART "/dev/.magisk.patch.start"
|
||||||
#define PATCHDONE "/dev/.magisk.patch.done"
|
#define PATCHDONE "/dev/.magisk.patch.done"
|
||||||
#define DISABLEFILE "/cache/.disable_magisk"
|
#define DISABLEFILE "/cache/.disable_magisk"
|
||||||
#define UNINSTALLER "/cache/magisk_uninstaller.sh"
|
#define UNINSTALLER "/cache/magisk_uninstaller.sh"
|
||||||
|
@ -16,6 +16,7 @@ const char magiskrc[] =
|
|||||||
" rm /dev/.magisk.unblock\n"
|
" rm /dev/.magisk.unblock\n"
|
||||||
" start magisk_pfsd\n"
|
" start magisk_pfsd\n"
|
||||||
" wait /dev/.magisk.unblock 10\n"
|
" wait /dev/.magisk.unblock 10\n"
|
||||||
|
" rm /dev/.magisk.unblock\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
|
@ -159,7 +159,7 @@ int xbind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
|
|||||||
int xconnect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
|
int xconnect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
|
||||||
int ret = connect(sockfd, addr, addrlen);
|
int ret = connect(sockfd, addr, addrlen);
|
||||||
if (ret == -1) {
|
if (ret == -1) {
|
||||||
PLOGE("bind");
|
PLOGE("connect");
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user