8032bd0bac
Since we switched to imageless Magisk, module files are directly stored in /data. However, /data is mounted with nosuid, which also prevents SELinux typetransition to work (auto transition from one domain to another when executing files with specific context). This could cause serious issues when we are replacing system critical components (e.g. app_process for Xposed), because most of them are daemons that run in special process domains. This commit introduced /data mirror. Using similar mirroring technique we used for system and vendor, we mount another mirror that mounts /data without nosuid flag. All module files are then mounted from this mirror mountpoint instead of directly from /data. Close #1080
55 lines
1.9 KiB
C
55 lines
1.9 KiB
C
/* magisk.h - Top header
|
|
*/
|
|
|
|
#ifndef _MAGISK_H_
|
|
#define _MAGISK_H_
|
|
|
|
#include <logging.h>
|
|
|
|
#define MAIN_SOCKET "d30138f2310a9fb9c54a3e0c21f58591"
|
|
#define LOG_SOCKET "5864cd77f2f8c59b3882e2d35dbf51e4"
|
|
#define JAVA_PACKAGE_NAME "com.topjohnwu.magisk"
|
|
#define LOGFILE "/cache/magisk.log"
|
|
#define UNBLOCKFILE "/dev/.magisk_unblock"
|
|
#define EARLYINIT "/dev/.magisk_early_init"
|
|
#define EARLYINITDONE "/dev/.magisk_early_init_done"
|
|
#define DISABLEFILE "/cache/.disable_magisk"
|
|
#define MAGISKTMP "/sbin/.magisk"
|
|
#define MIRRDIR MAGISKTMP "/mirror"
|
|
#define BBPATH MAGISKTMP "/busybox"
|
|
#define MODULEMNT MAGISKTMP "/modules"
|
|
#define SECURE_DIR "/data/adb"
|
|
#define MODULEROOT SECURE_DIR "/modules"
|
|
#define MODULEUPGRADE SECURE_DIR "/modules_update"
|
|
#define DATABIN SECURE_DIR "/magisk"
|
|
#define MAGISKDB SECURE_DIR "/magisk.db"
|
|
#define SIMPLEMOUNT SECURE_DIR "/magisk_simple"
|
|
#define BOOTCOUNT SECURE_DIR "/.boot_count"
|
|
#define MANAGERAPK DATABIN "/magisk.apk"
|
|
|
|
// Legacy crap
|
|
#define LEGACYCORE MODULEROOT "/.core"
|
|
|
|
// selinux consts
|
|
#define SELINUX_PATH "/sys/fs/selinux"
|
|
#define SELINUX_ENFORCE SELINUX_PATH "/enforce"
|
|
#define SELINUX_POLICY SELINUX_PATH "/policy"
|
|
#define SELINUX_LOAD SELINUX_PATH "/load"
|
|
#define SELINUX_CONTEXT SELINUX_PATH "/context"
|
|
#define SEPOL_PROC_DOMAIN "magisk"
|
|
#define SEPOL_FILE_DOMAIN "magisk_file"
|
|
|
|
extern int SDK_INT;
|
|
|
|
#define applet_names ((const char *[]) { "magisk", "su", "resetprop", "magiskhide", nullptr })
|
|
#define init_applet ((const char *[]) { "magiskpolicy", "supolicy", nullptr })
|
|
|
|
// Multi-call entrypoints
|
|
int magisk_main(int argc, char *argv[]);
|
|
int magiskhide_main(int argc, char *argv[]);
|
|
int magiskpolicy_main(int argc, char *argv[]);
|
|
int su_client_main(int argc, char *argv[]);
|
|
int resetprop_main(int argc, char *argv[]);
|
|
|
|
#endif
|