mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-08-25 19:57:26 +00:00
@@ -12,7 +12,7 @@ android {
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
// Pass arguments to ndk-build.
|
||||
arguments('B_MAGISK=1', 'B_INIT=1', 'B_BOOT=1',
|
||||
arguments('B_MAGISK=1', 'B_INIT64=1', 'B_BOOT=1',
|
||||
'MAGISK_DEBUG=1', 'MAGISK_VERSION=debug', 'MAGISK_VER_CODE=INT_MAX')
|
||||
}
|
||||
}
|
||||
|
@@ -19,7 +19,6 @@ LIBUTILS := jni/utils/include
|
||||
|
||||
ifdef B_MAGISK
|
||||
|
||||
# magisk main binary
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := magisk
|
||||
LOCAL_SHARED_LIBRARIES := libsqlite
|
||||
@@ -56,11 +55,19 @@ include $(BUILD_EXECUTABLE)
|
||||
|
||||
endif
|
||||
|
||||
ifdef B_INIT
|
||||
|
||||
# magiskinit
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
ifdef B_INIT
|
||||
LOCAL_MODULE := magiskinit
|
||||
BB_INIT := 1
|
||||
else ifdef B_INIT64
|
||||
LOCAL_MODULE := magiskinit64
|
||||
LOCAL_CPPFLAGS += -DUSE_64BIT
|
||||
BB_INIT := 1
|
||||
endif
|
||||
|
||||
ifdef BB_INIT
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := libsepol libxz libutils
|
||||
LOCAL_C_INCLUDES := \
|
||||
jni/include \
|
||||
@@ -85,7 +92,6 @@ endif
|
||||
|
||||
ifdef B_BOOT
|
||||
|
||||
# magiskboot
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := magiskboot
|
||||
LOCAL_STATIC_LIBRARIES := libmincrypt liblzma liblz4 libbz2 libfdt libutils
|
||||
@@ -116,7 +122,6 @@ endif
|
||||
|
||||
ifdef B_BB
|
||||
|
||||
# Busybox
|
||||
include jni/external/busybox/Android.mk
|
||||
|
||||
endif
|
||||
|
@@ -9,10 +9,15 @@ ifdef MAGISK_DEBUG
|
||||
APP_CFLAGS += -D__MDBG
|
||||
endif
|
||||
|
||||
# Build 64 bit binaries for magisk
|
||||
ifdef B_MAGISK
|
||||
APP_ABI += arm64-v8a x86_64
|
||||
endif
|
||||
|
||||
# Busybox require some additional settings
|
||||
ifdef B_BB
|
||||
APP_CFLAGS := -Os
|
||||
APP_SHORT_COMMANDS := true
|
||||
NDK_TOOLCHAIN_VERSION := 4.9
|
||||
APP_PLATFORM := android-22
|
||||
APP_PLATFORM := android-21
|
||||
endif
|
||||
|
@@ -44,7 +44,11 @@
|
||||
#include <flags.h>
|
||||
|
||||
#include "binaries.h"
|
||||
#ifdef USE_64BIT
|
||||
#include "binaries_arch64.h"
|
||||
#else
|
||||
#include "binaries_arch.h"
|
||||
#endif
|
||||
#include "magiskrc.h"
|
||||
|
||||
#define DEFAULT_DT_DIR "/proc/device-tree/firmware/android"
|
||||
@@ -367,12 +371,6 @@ static void setup_init_rc() {
|
||||
fclose(rc);
|
||||
}
|
||||
|
||||
static const char wrapper[] =
|
||||
"#!/system/bin/sh\n"
|
||||
"unset LD_LIBRARY_PATH\n"
|
||||
"unset LD_PRELOAD\n"
|
||||
"exec /sbin/magisk.bin \"${0##*/}\" \"$@\"\n";
|
||||
|
||||
static void setup_overlay() {
|
||||
char buf[128];
|
||||
int fd;
|
||||
@@ -402,13 +400,9 @@ static void setup_overlay() {
|
||||
fd = open("/sbin/magiskinit", O_WRONLY | O_CREAT, 0755);
|
||||
write(fd, self, self_sz);
|
||||
close(fd);
|
||||
fd = open("/sbin/magisk", O_WRONLY | O_CREAT, 0755);
|
||||
write(fd, wrapper, sizeof(wrapper));
|
||||
close(fd);
|
||||
dump_magisk("/sbin/magisk.bin", 0755);
|
||||
patch_socket_name("/sbin/magisk.bin");
|
||||
dump_magisk("/sbin/magisk", 0755);
|
||||
patch_socket_name("/sbin/magisk");
|
||||
setfilecon("/sbin/magisk", "u:object_r:" SEPOL_FILE_DOMAIN ":s0");
|
||||
setfilecon("/sbin/magisk.bin", "u:object_r:" SEPOL_FILE_DOMAIN ":s0");
|
||||
setfilecon("/sbin/magiskinit", "u:object_r:" SEPOL_FILE_DOMAIN ":s0");
|
||||
|
||||
// Create applet symlinks
|
||||
|
Reference in New Issue
Block a user