/* magisk.h - Top header * * Contain global functions like logging, * and entrypoint for main */ #ifndef _MAGISK_H_ #define _MAGISK_H_ #include #include #include #define AID_SHELL (get_shell_uid()) #define AID_ROOT 0 #define AID_SYSTEM (get_system_uid()) #define AID_RADIO (get_radio_uid()) #define REQUESTOR_DAEMON_PATH "\0MAGISK" #define REQUESTOR_DAEMON_PATH_LEN 7 #define LOG_TAG "Magisk" #ifdef DEBUG #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) #else #define LOGD(...) stub(__VA_ARGS__) #endif #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) #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 PLOGE(fmt, args...) LOGE(fmt " failed with %d: %s", ##args, errno, strerror(errno)); exit(1) #define PLOGEV(fmt, err, args...) LOGE(fmt " failed with %d: %s", ##args, err, strerror(err)); exit(1) void stub(const char *fmt, ...); // Global buffer (only for main thread!!) #define BUF_SIZE 4096 extern char magiskbuf[BUF_SIZE]; extern char *argv0; /* For changing process name */ // 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 /***************** * Magisk Daemon * *****************/ void start_daemon(); int connect_daemon(); /************** * MagiskHide * **************/ void launch_magiskhide(); void stop_magiskhide(); #endif