From d4b9ef736d13435c970b8de11c6bcbffac2f253d Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Sat, 23 Jul 2022 04:01:21 +0800 Subject: [PATCH] Check magisk32 exists --- native/jni/init/rootdir.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/native/jni/init/rootdir.cpp b/native/jni/init/rootdir.cpp index d7b2f90bb..0fb156260 100644 --- a/native/jni/init/rootdir.cpp +++ b/native/jni/init/rootdir.cpp @@ -155,16 +155,18 @@ static void extract_files(bool sbin) { const char *m32 = sbin ? "/sbin/magisk32.xz" : "magisk32.xz"; const char *m64 = sbin ? "/sbin/magisk64.xz" : "magisk64.xz"; - auto magisk = mmap_data(m32); - unlink(m32); - int fd = xopen("magisk32", O_WRONLY | O_CREAT, 0755); - unxz(fd, magisk.buf, magisk.sz); - close(fd); - patch_socket_name("magisk32"); + if (access(m32, F_OK) == 0) { + auto magisk = mmap_data(m32); + unlink(m32); + int fd = xopen("magisk32", O_WRONLY | O_CREAT, 0755); + unxz(fd, magisk.buf, magisk.sz); + close(fd); + patch_socket_name("magisk32"); + } if (access(m64, F_OK) == 0) { - magisk = mmap_data(m64); + auto magisk = mmap_data(m64); unlink(m64); - fd = xopen("magisk64", O_WRONLY | O_CREAT, 0755); + int fd = xopen("magisk64", O_WRONLY | O_CREAT, 0755); unxz(fd, magisk.buf, magisk.sz); close(fd); patch_socket_name("magisk64");