Commit acfde945 authored by topjohnwu's avatar topjohnwu

Merge magiskpolicy, magiskhide, resetprop, magisksu

parent 82e96962
...@@ -2,20 +2,39 @@ LOCAL_PATH := $(call my-dir) ...@@ -2,20 +2,39 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := magisk LOCAL_MODULE := magisk
LOCAL_STATIC_LIBRARIES := libselinux libsepol LOCAL_STATIC_LIBRARIES := libselinux libsepol libsqlite3
LOCAL_C_INCLUDES := \ LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/utils \ $(LOCAL_PATH)/utils \
$(LOCAL_PATH)/selinux/libselinux/include \ $(LOCAL_PATH)/selinux/libselinux/include \
$(LOCAL_PATH)/selinux/libsepol/include $(LOCAL_PATH)/selinux/libsepol/include \
$(LOCAL_PATH)/sqlite3
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
main.c \ main.c \
utils/log_monitor.c \ utils/log_monitor.c \
utils/vector.c \ utils/vector.c \
utils/xwrap.c utils/xwrap.c \
magiskhide/magiskhide.c \
LOCAL_CFLAGS := -static magiskhide/hide.c \
magiskhide/list_monitor.c \
magiskhide/proc_monitor.c \
magiskhide/util.c \
magiskpolicy/magiskpolicy.c \
magiskpolicy/rules.c \
magiskpolicy/sepolicy.c \
magiskpolicy/utils.c \
resetprop/resetprop.cpp \
resetprop/libc_logging.cpp \
resetprop/system_properties.cpp \
su/su.c \
su/daemon.c \
su/activity.c \
su/db.c \
su/utils.c \
su/pts.c
LOCAL_CFLAGS := -static -Wno-implicit-exception-spec-mismatch
LOCAL_LDLIBS := -llog LOCAL_LDLIBS := -llog
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)
...@@ -23,12 +42,17 @@ include $(BUILD_EXECUTABLE) ...@@ -23,12 +42,17 @@ include $(BUILD_EXECUTABLE)
# Libraries # Libraries
include jni/selinux/libselinux/Android.mk include jni/selinux/libselinux/Android.mk
include jni/selinux/libsepol/Android.mk include jni/selinux/libsepol/Android.mk
include jni/sqlite3/Android.mk
# Enable these for seperate binaries #####################################################################
# By default, we create a unified binary # In order to build separate binaries, please comment out everything
# starting from line 3 (including the 3 lines for libraries)
# include jni/magiskboot/Android.mk # Then, uncomment the line you want below
#####################################################################
# include jni/magiskhide/Android.mk # include jni/magiskhide/Android.mk
# include jni/resetprop/Android.mk # include jni/resetprop/Android.mk
# include jni/magiskpolicy/Android.mk # include jni/magiskpolicy/Android.mk
# include jni/su/Android.mk # include jni/su/Android.mk
# Build magiskboot
# include jni/magiskboot/Android.mk
...@@ -12,8 +12,10 @@ ...@@ -12,8 +12,10 @@
#else #else
#define LOGD(...) stub(__VA_ARGS__) #define LOGD(...) stub(__VA_ARGS__)
#endif #endif
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
#define PLOGE(fmt, args...) LOGE(fmt " failed with %d: %s", ##args, errno, strerror(errno)) #define PLOGE(fmt, args...) LOGE(fmt " failed with %d: %s", ##args, errno, strerror(errno))
#define PLOGEV(fmt, err, args...) LOGE(fmt " failed with %d: %s", ##args, err, strerror(err))
void stub(const char *fmt, ...); void stub(const char *fmt, ...);
...@@ -21,4 +23,17 @@ void stub(const char *fmt, ...); ...@@ -21,4 +23,17 @@ void stub(const char *fmt, ...);
#define BUF_SIZE 4096 #define BUF_SIZE 4096
extern char magiskbuf[BUF_SIZE]; extern char magiskbuf[BUF_SIZE];
// Multi-call entrypoints
int magiskhide_main(int argc, char *argv[]);
int magiskpolicy_main(int argc, char *argv[]);
int su_main(int argc, char *argv[]);
#ifdef __cplusplus
extern "C" {
#endif
int resetprop_main(int argc, char *argv[]);
#ifdef __cplusplus
}
#endif
#endif #endif
...@@ -2,5 +2,6 @@ LOCAL_PATH := $(call my-dir) ...@@ -2,5 +2,6 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := magiskhide LOCAL_MODULE := magiskhide
LOCAL_SRC_FILES := main.c hide.c list_monitor.c proc_monitor.c util.c LOCAL_SRC_FILES := magiskhide.c hide.c list_monitor.c proc_monitor.c util.c
LOCAL_CFLAGS := -DINDEP_BINARY
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)
\ No newline at end of file
#include "magiskhide.h" #include "magiskhide.h"
#ifdef INDEP_BINARY
int magiskhide_main(int argc, char *argv[]);
int main(int argc, char *argv[]) {
return magiskhide_main(argc, argv);
}
#else
#include "magisk.h"
#endif
FILE *logfile; FILE *logfile;
int i, list_size, pipefd[2]; int i, list_size, pipefd[2];
char **hide_list = NULL, buffer[512]; char **hide_list = NULL, buffer[512];
...@@ -17,7 +26,7 @@ static void terminate(int sig) { ...@@ -17,7 +26,7 @@ static void terminate(int sig) {
exit(0); exit(0);
} }
int main(int argc, char *argv[]) { int magiskhide_main(int argc, char *argv[]) {
if (argc > 1) { if (argc > 1) {
if (strcmp(argv[1], "--daemon") == 0) if (strcmp(argv[1], "--daemon") == 0)
......
Subproject commit dc9670c439845519470db4583a8ab9f282d1da87 Subproject commit cd498711bc6b03375c0e7ca62708e9f34b71a339
/* main.c - The entry point, should be mutli-call /* main.c - The entry point, should be multi-call
*/ */
#include "utils.h" #include "utils.h"
...@@ -9,8 +9,34 @@ char magiskbuf[BUF_SIZE]; ...@@ -9,8 +9,34 @@ char magiskbuf[BUF_SIZE];
void stub(const char *fmt, ...) {} void stub(const char *fmt, ...) {}
int main(int argc, char const *argv[]) { int main(int argc, char *argv[]) {
// Start new thread to monitor logs char * argv0 = strrchr(argv[0], '/');
monitor_logs(); if (argv0) argv[0] = argv0 + 1;
if (strcmp(argv[0], "magisk") == 0) {
if (strcmp(argv[1], "--daemon") == 0) {
// Start daemon
return 0;
} else if (strcmp(argv[1], "--install") == 0) {
// Install symlinks
return 0;
} else {
// It's calling applets
--argc;
++argv;
}
}
// Applets
if (strcmp(argv[0], "magiskhide") == 0) {
magiskhide_main(argc, argv);
} else if (strcmp(argv[0], "magiskpolicy") == 0) {
magiskpolicy_main(argc, argv);
} else if (strcmp(argv[0], "resetprop") == 0) {
resetprop_main(argc, argv);
} else if (strcmp(argv[0], "su") == 0) {
su_main(argc, argv);
} else {
fprintf(stderr, "Applet \'%s\' not found\n", argv[0]);
}
return 0; return 0;
} }
\ No newline at end of file
...@@ -4,5 +4,5 @@ include $(CLEAR_VARS) ...@@ -4,5 +4,5 @@ include $(CLEAR_VARS)
LOCAL_MODULE := resetprop LOCAL_MODULE := resetprop
LOCAL_SRC_FILES := resetprop.cpp system_properties.cpp libc_logging.cpp LOCAL_SRC_FILES := resetprop.cpp system_properties.cpp libc_logging.cpp
LOCAL_LDLIBS += -latomic LOCAL_LDLIBS += -latomic
LOCAL_CFLAGS := -Wno-implicit-exception-spec-mismatch LOCAL_CFLAGS := -Wno-implicit-exception-spec-mismatch -DINDEP_BINARY
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* resetprop.cpp * resetprop.cpp
* *
* Copyright 2016 nkk71 <nkk71x@gmail.com> * Copyright 2016 nkk71 <nkk71x@gmail.com>
* Copyright 2016 topjohnwu <topjohnwu#gmail.com> * Copyright 2016 topjohnwu <topjohnwu@gmail.com>
* *
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -34,6 +34,15 @@ ...@@ -34,6 +34,15 @@
#include "_system_properties.h" #include "_system_properties.h"
#include <sys/system_properties.h> #include <sys/system_properties.h>
#ifdef INDEP_BINARY
int resetprop_main(int argc, char *argv[]);
int main(int argc, char *argv[]) {
return resetprop_main(argc, argv);
}
#else
#include "magisk.h"
#endif
/* Info: /* Info:
* *
* all changes are in * all changes are in
...@@ -205,8 +214,7 @@ int usage(char* name) { ...@@ -205,8 +214,7 @@ int usage(char* name) {
return 1; return 1;
} }
int main(int argc, char *argv[]) int resetprop_main(int argc, char *argv[]) {
{
int exp_arg = 2, stdout_bak, null; int exp_arg = 2, stdout_bak, null;
char *name, *value, *filename; char *name, *value, *filename;
......
LOCAL_PATH:= $(call my-dir)
##
# libsqlite3.a
#
include $(CLEAR_VARS)
LOCAL_MODULE:= libsqlite3
LOCAL_SRC_FILES := sqlite3.c shell.c
include $(BUILD_STATIC_LIBRARY)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Subproject commit 356b2c0f5ffa117515aeb242b30121e6ef9e13c3 Subproject commit 78106aa409c09584aa9b17001a9017904aee443f
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