diff --git a/native/jni/core/applets.cpp b/native/jni/core/applets.cpp index f130a8dab..9ba625245 100644 --- a/native/jni/core/applets.cpp +++ b/native/jni/core/applets.cpp @@ -28,9 +28,7 @@ int main(int argc, char *argv[]) { cmdline_logging(); init_argv0(argc, argv); - if (strcmp(basename(argv[0]), "magisk.bin") == 0 || - (strcmp(basename(argv[0]), "magisk") == 0 - && argc > 1 && argv[1][0] != '-')) { + if ((strcmp(basename(argv[0]), "magisk") == 0 && argc > 1 && argv[1][0] != '-')) { --argc; ++argv; } diff --git a/native/jni/utils/selinux.cpp b/native/jni/utils/selinux.cpp index a075dc382..a934b41e2 100644 --- a/native/jni/utils/selinux.cpp +++ b/native/jni/utils/selinux.cpp @@ -79,18 +79,16 @@ void selinux_builtin_impl() { getfilecon = __getfilecon; lgetfilecon = __lgetfilecon; setfilecon = __setfilecon; - setfilecon = __lsetfilecon; + lsetfilecon = __lsetfilecon; } void dload_selinux() { - void *handle = dlopen("libselinux.so", RTLD_LAZY); - if (handle == nullptr) + if (access("/system/lib/libselinux.so", F_OK)) return; - /* We only use dlopen to know whether libselinux.so exists. + /* We only check whether libselinux.so exists but don't dlopen. * For some reason calling symbols returned from dlsym * will result to SEGV_ACCERR on some devices. * Always use builtin implementations for SELinux stuffs. */ - dlclose(handle); selinux_builtin_impl(); }