a5d7c41d20
When detecting device is booting as Safe Mode, disable all modules and MagiskHide and skip all operations. The only thing that'll be available in this state is root (Magisk Manager will also be disabled by system). Since the next normal boot will also have all modules disabled, this can be used to rescue a device in the case when a rogue module causes bootloop and no custom recovery is available (or recoveries without the ability to decrypt data).
36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <logging.hpp>
|
|
#include <string>
|
|
|
|
#define MAIN_SOCKET "d30138f2310a9fb9c54a3e0c21f58591"
|
|
#define JAVA_PACKAGE_NAME "com.topjohnwu.magisk"
|
|
#define LOGFILE "/cache/magisk.log"
|
|
#define UNBLOCKFILE "/dev/.magisk_unblock"
|
|
#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 MANAGERAPK DATABIN "/magisk.apk"
|
|
|
|
// tmpfs paths
|
|
extern std::string MAGISKTMP;
|
|
#define INTLROOT ".magisk"
|
|
#define MIRRDIR INTLROOT "/mirror"
|
|
#define BLOCKDIR INTLROOT "/block"
|
|
#define MODULEMNT INTLROOT "/modules"
|
|
#define BBPATH INTLROOT "/busybox"
|
|
#define ROOTOVL INTLROOT "/rootdir"
|
|
#define ROOTMNT ROOTOVL "/.mount_list"
|
|
|
|
constexpr const char *applet_names[] = { "su", "resetprop", "magiskhide", nullptr };
|
|
constexpr const char *init_applet[] = { "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[]);
|