mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-01-11 23:23:37 +00:00
More precise logging configuration
This commit is contained in:
parent
a5e4f3cc6b
commit
32c8e7522f
@ -50,7 +50,7 @@ LOCAL_SRC_FILES := \
|
|||||||
su/su_daemon.c \
|
su/su_daemon.c \
|
||||||
su/su_socket.c
|
su/su_socket.c
|
||||||
|
|
||||||
LOCAL_CFLAGS := -DIS_DAEMON
|
LOCAL_CFLAGS := -DIS_DAEMON -DSELINUX
|
||||||
LOCAL_LDLIBS := -llog
|
LOCAL_LDLIBS := -llog
|
||||||
include $(BUILD_EXECUTABLE)
|
include $(BUILD_EXECUTABLE)
|
||||||
|
|
||||||
@ -80,7 +80,6 @@ LOCAL_SRC_FILES := \
|
|||||||
magiskpolicy/rules.c \
|
magiskpolicy/rules.c \
|
||||||
magiskpolicy/sepolicy.c
|
magiskpolicy/sepolicy.c
|
||||||
|
|
||||||
LOCAL_CFLAGS := -DNO_SELINUX
|
|
||||||
LOCAL_LDFLAGS := -static
|
LOCAL_LDFLAGS := -static
|
||||||
include $(BUILD_EXECUTABLE)
|
include $(BUILD_EXECUTABLE)
|
||||||
|
|
||||||
@ -109,7 +108,7 @@ LOCAL_SRC_FILES := \
|
|||||||
utils/cpio.c \
|
utils/cpio.c \
|
||||||
utils/vector.c
|
utils/vector.c
|
||||||
|
|
||||||
LOCAL_CFLAGS := -DNO_SELINUX
|
LOCAL_CFLAGS := -DXWRAP_EXIT
|
||||||
LOCAL_LDLIBS := -lz
|
LOCAL_LDLIBS := -lz
|
||||||
include $(BUILD_EXECUTABLE)
|
include $(BUILD_EXECUTABLE)
|
||||||
|
|
||||||
|
@ -11,8 +11,24 @@
|
|||||||
#define str(a) #a
|
#define str(a) #a
|
||||||
#define xstr(a) str(a)
|
#define xstr(a) str(a)
|
||||||
|
|
||||||
|
/**************
|
||||||
|
* No logging *
|
||||||
|
**************/
|
||||||
|
|
||||||
|
#define LOGI(...)
|
||||||
|
#define LOGE(...)
|
||||||
|
#define PLOGE(...)
|
||||||
|
|
||||||
|
/******************
|
||||||
|
* Daemon logging *
|
||||||
|
******************/
|
||||||
|
|
||||||
#ifdef IS_DAEMON
|
#ifdef IS_DAEMON
|
||||||
|
|
||||||
|
#undef LOGI
|
||||||
|
#undef LOGE
|
||||||
|
#undef PLOGE
|
||||||
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
|
|
||||||
@ -41,7 +57,17 @@ void start_debug_full_log();
|
|||||||
void stop_debug_full_log();
|
void stop_debug_full_log();
|
||||||
void start_debug_log();
|
void start_debug_log();
|
||||||
|
|
||||||
#else // IS_DAEMON
|
#endif
|
||||||
|
|
||||||
|
/********************
|
||||||
|
* Tools Log & Exit *
|
||||||
|
********************/
|
||||||
|
|
||||||
|
#ifdef XWRAP_EXIT
|
||||||
|
|
||||||
|
#undef LOGI
|
||||||
|
#undef LOGE
|
||||||
|
#undef PLOGE
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
@ -49,6 +75,7 @@ void start_debug_log();
|
|||||||
#define LOGE(...) { fprintf(stderr, __VA_ARGS__); exit(1); }
|
#define LOGE(...) { fprintf(stderr, __VA_ARGS__); exit(1); }
|
||||||
#define PLOGE(fmt, args...) { fprintf(stderr, fmt " failed with %d: %s\n\n", ##args, errno, strerror(errno)); exit(1); }
|
#define PLOGE(fmt, args...) { fprintf(stderr, fmt " failed with %d: %s\n\n", ##args, errno, strerror(errno)); exit(1); }
|
||||||
|
|
||||||
#endif // IS_DAEMON
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif // _LOGGING_H_
|
#endif // _LOGGING_H_
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#include <sys/inotify.h>
|
#include <sys/inotify.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
|
|
||||||
#ifndef NO_SELINUX
|
#ifdef SELINUX
|
||||||
#include <selinux/selinux.h>
|
#include <selinux/selinux.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -238,8 +238,8 @@ void wait_till_exists(const char *target) {
|
|||||||
int getattr(const char *path, struct file_attr *a) {
|
int getattr(const char *path, struct file_attr *a) {
|
||||||
if (xlstat(path, &a->st) == -1)
|
if (xlstat(path, &a->st) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
#ifdef SELINUX
|
||||||
char *con = "";
|
char *con = "";
|
||||||
#ifndef NO_SELINUX
|
|
||||||
if (lgetfilecon(path, &con) == -1)
|
if (lgetfilecon(path, &con) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
strcpy(a->con, con);
|
strcpy(a->con, con);
|
||||||
@ -277,7 +277,7 @@ int setattr(const char *path, struct file_attr *a) {
|
|||||||
return -1;
|
return -1;
|
||||||
if (chown(path, a->st.st_uid, a->st.st_gid) < 0)
|
if (chown(path, a->st.st_uid, a->st.st_gid) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
#ifndef NO_SELINUX
|
#ifdef SELINUX
|
||||||
if (strlen(a->con) && lsetfilecon(path, a->con) < 0)
|
if (strlen(a->con) && lsetfilecon(path, a->con) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
@ -294,7 +294,7 @@ int setattrat(int dirfd, const char *pathname, struct file_attr *a) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int fsetattr(int fd, struct file_attr *a) {
|
int fsetattr(int fd, struct file_attr *a) {
|
||||||
#ifndef NO_SELINUX
|
#ifdef SELINUX
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
fd_getpath(fd, path, sizeof(path));
|
fd_getpath(fd, path, sizeof(path));
|
||||||
return setattr(path, a);
|
return setattr(path, a);
|
||||||
@ -319,7 +319,7 @@ void fclone_attr(const int sourcefd, const int targetfd) {
|
|||||||
fsetattr(targetfd, &a);
|
fsetattr(targetfd, &a);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_SELINUX
|
#ifdef SELINUX
|
||||||
|
|
||||||
#define UNLABEL_CON "u:object_r:unlabeled:s0"
|
#define UNLABEL_CON "u:object_r:unlabeled:s0"
|
||||||
#define SYSTEM_CON "u:object_r:system_file:s0"
|
#define SYSTEM_CON "u:object_r:system_file:s0"
|
||||||
@ -355,7 +355,7 @@ void restorecon(int dirfd, int force) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // NO_SELINUX
|
#endif // SELINUX
|
||||||
|
|
||||||
static void _mmap(int rw, const char *filename, void **buf, size_t *size) {
|
static void _mmap(int rw, const char *filename, void **buf, size_t *size) {
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user