Magisk/jni/magisk.h

94 lines
2.6 KiB
C
Raw Normal View History

2017-04-05 22:12:29 +00:00
/* magisk.h - Top header
*/
2017-04-04 19:44:13 +00:00
#ifndef _MAGISK_H_
#define _MAGISK_H_
2017-04-14 19:23:09 +00:00
#include <stdlib.h>
2017-04-04 19:44:13 +00:00
#include <errno.h>
#include <string.h>
#include <pthread.h>
2017-04-04 19:44:13 +00:00
#include <android/log.h>
2017-04-18 13:31:12 +00:00
#define MAGISK_VER_STR xstr(MAGISK_VERSION) ":MAGISK"
2017-04-14 19:23:09 +00:00
#define str(a) #a
#define xstr(a) str(a)
#define REQUESTOR_DAEMON_PATH "\0MAGISK"
2017-04-07 23:37:43 +00:00
#define REQUESTOR_DAEMON_PATH_LEN 7
2017-04-04 19:44:13 +00:00
#define LOG_TAG "Magisk"
#ifndef ARG_MAX
#define ARG_MAX 4096
#endif
2017-05-03 17:13:04 +00:00
#define LOGFILE "/cache/magisk.log"
#define LASTLOG "/cache/last_magisk.log"
2017-06-07 19:20:49 +00:00
#define DEBUG_LOG "/data/magisk_debug.log"
2017-05-03 17:13:04 +00:00
#define UNBLOCKFILE "/dev/.magisk.unblock"
#define DISABLEFILE "/cache/.disable_magisk"
#define UNINSTALLER "/cache/magisk_uninstaller.sh"
#define MOUNTPOINT "/magisk"
2017-05-03 19:05:37 +00:00
#define COREDIR MOUNTPOINT "/.core"
#define HOSTSFILE COREDIR "/hosts"
2017-06-02 20:31:01 +00:00
#define HIDELIST COREDIR "/hidelist"
2017-05-03 17:13:04 +00:00
#define MAINIMG "/data/magisk.img"
#define DATABIN "/data/magisk"
#define MANAGERAPK DATABIN "/magisk.apk"
2017-05-03 17:13:04 +00:00
#define MAGISKTMP "/dev/magisk"
#define MIRRDIR MAGISKTMP "/mirror"
#define DUMMDIR MAGISKTMP "/dummy"
2017-05-03 18:39:53 +00:00
#define CACHEMOUNT "/cache/magisk_mount"
2017-05-03 17:13:04 +00:00
2017-04-30 17:58:52 +00:00
#define SELINUX_PATH "/sys/fs/selinux/"
#define SELINUX_ENFORCE SELINUX_PATH "enforce"
#define SELINUX_POLICY SELINUX_PATH "policy"
#define SELINUX_LOAD SELINUX_PATH "load"
2017-05-26 14:05:04 +00:00
#define MAGISKHIDE_PROP "persist.magisk.hide"
// Global handler for PLOGE
extern __thread void (*err_handler)(void);
2017-04-24 13:43:30 +00:00
// Common error handlers
2017-04-14 19:23:09 +00:00
static inline void exit_proc() { exit(1); }
static inline void exit_thread() { pthread_exit(NULL); }
2017-04-24 13:43:30 +00:00
static inline void do_nothing() {}
2017-04-14 19:23:09 +00:00
// Dummy function to depress debug message
static inline void stub(const char *fmt, ...) {}
2017-04-04 19:44:13 +00:00
#ifdef DEBUG
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#else
#define LOGD(...) stub(__VA_ARGS__)
#endif
2017-04-05 22:12:29 +00:00
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
2017-04-04 19:44:13 +00:00
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
2017-04-05 22:12:29 +00:00
2017-04-14 19:23:09 +00:00
#define PLOGE(fmt, args...) { LOGE(fmt " failed with %d: %s", ##args, errno, strerror(errno)); err_handler(); }
2017-04-05 22:12:29 +00:00
extern char *argv0; /* For changing process name */
2017-04-04 19:44:13 +00:00
2017-04-15 10:10:54 +00:00
extern char *applet[];
extern int (*applet_main[]) (int, char *[]);
2017-05-01 20:55:55 +00:00
extern int null_fd;
2017-04-15 10:10:54 +00:00
// Multi-call entrypoints
int magiskhide_main(int argc, char *argv[]);
int magiskpolicy_main(int argc, char *argv[]);
2017-04-14 19:23:09 +00:00
int su_client_main(int argc, char *argv[]);
#ifdef __cplusplus
extern "C" {
#endif
int resetprop_main(int argc, char *argv[]);
#ifdef __cplusplus
}
#endif
2017-04-04 19:44:13 +00:00
#endif