#pragma once #include #include #include #include #include #include #include #include #include #include #define SIGTERMTHRD SIGUSR1 #define SIGZYGOTE SIGUSR2 #define SAFETYNET_COMPONENT "com.google.android.gms/.droidguard.DroidGuardService" #define SAFETYNET_PROCESS "com.google.android.gms.unstable" #define SAFETYNET_PKG "com.google.android.gms" #define MICROG_SAFETYNET "org.microg.gms.droidguard" // CLI entries void launch_magiskhide(int client); int stop_magiskhide(); int add_list(int client); int rm_list(int client); void ls_list(int client); [[noreturn]] void test_proc_monitor(); // Process monitoring void proc_monitor(); void update_uid_map(); // Utility functions void crawl_procfs(const std::function &fn); void crawl_procfs(DIR *dir, const std::function &fn); // Hide policies void hide_daemon(int pid); void hide_unmount(int pid = getpid()); void hide_sensitive_props(); extern bool hide_enabled; extern pthread_mutex_t monitor_lock; extern std::set> hide_set; enum { LAUNCH_MAGISKHIDE, STOP_MAGISKHIDE, ADD_HIDELIST, RM_HIDELIST, LS_HIDELIST, HIDE_STATUS, }; enum { HIDE_IS_ENABLED = DAEMON_LAST, HIDE_NOT_ENABLED, HIDE_ITEM_EXIST, HIDE_ITEM_NOT_EXIST, HIDE_NO_NS, HIDE_INVALID_PKG };