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>
|
2017-04-08 23:25:10 +00:00
|
|
|
#include <pthread.h>
|
2017-04-04 19:44:13 +00:00
|
|
|
#include <android/log.h>
|
|
|
|
|
2017-04-07 23:37:43 +00:00
|
|
|
|
2017-04-14 19:23:09 +00:00
|
|
|
#define VERSION_CODE 130
|
|
|
|
#define VERSION 13.0
|
|
|
|
#define VERSION_STR xstr(VERSION) ":MAGISK"
|
|
|
|
|
|
|
|
#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"
|
|
|
|
|
2017-04-08 23:25:10 +00:00
|
|
|
// Global handler for PLOGE
|
|
|
|
extern __thread void (*err_handler)(void);
|
|
|
|
|
|
|
|
// Two 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); }
|
|
|
|
|
|
|
|
// Dummy function to depress debug message
|
|
|
|
static inline void stub(const char *fmt, ...) {}
|
2017-04-08 23:25:10 +00:00
|
|
|
|
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__)
|
2017-04-04 22:08:53 +00:00
|
|
|
#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-08 23:25:10 +00:00
|
|
|
|
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-04 22:08:53 +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[]);
|
2017-04-04 22:08:53 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
int resetprop_main(int argc, char *argv[]);
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2017-04-05 22:12:29 +00:00
|
|
|
/**************
|
|
|
|
* MagiskHide *
|
|
|
|
**************/
|
|
|
|
|
2017-04-08 23:25:10 +00:00
|
|
|
void launch_magiskhide(int client);
|
|
|
|
void stop_magiskhide(int client);
|
2017-04-05 22:12:29 +00:00
|
|
|
|
2017-04-14 19:23:09 +00:00
|
|
|
/*************
|
|
|
|
* Superuser *
|
|
|
|
*************/
|
|
|
|
|
|
|
|
void su_daemon_receiver(int client);
|
|
|
|
|
2017-04-05 22:12:29 +00:00
|
|
|
|
2017-04-04 19:44:13 +00:00
|
|
|
#endif
|