2021-01-06 22:21:17 -08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <stdint.h>
|
2021-01-08 05:25:44 -08:00
|
|
|
#include <jni.h>
|
2021-10-13 04:52:02 -07:00
|
|
|
#include <vector>
|
2021-01-06 22:21:17 -08:00
|
|
|
|
|
|
|
#define INJECT_ENV_1 "MAGISK_INJ_1"
|
|
|
|
#define INJECT_ENV_2 "MAGISK_INJ_2"
|
|
|
|
|
2021-08-18 03:44:32 -07:00
|
|
|
enum : int {
|
|
|
|
ZYGISK_SETUP,
|
2021-10-13 04:52:02 -07:00
|
|
|
ZYGISK_GET_INFO,
|
2021-08-19 04:55:17 -07:00
|
|
|
ZYGISK_UNMOUNT,
|
2021-08-21 03:52:59 -07:00
|
|
|
ZYGISK_GET_LOG_PIPE,
|
2021-10-23 14:38:30 -07:00
|
|
|
ZYGISK_CONNECT_COMPANION,
|
2021-08-18 03:44:32 -07:00
|
|
|
};
|
|
|
|
|
2021-10-14 02:13:23 -07:00
|
|
|
#if defined(__LP64__)
|
|
|
|
#define ZLOGD(...) LOGD("zygisk64: " __VA_ARGS__)
|
|
|
|
#define ZLOGE(...) LOGE("zygisk64: " __VA_ARGS__)
|
|
|
|
#define ZLOGI(...) LOGI("zygisk64: " __VA_ARGS__)
|
|
|
|
#else
|
|
|
|
#define ZLOGD(...) LOGD("zygisk32: " __VA_ARGS__)
|
|
|
|
#define ZLOGE(...) LOGE("zygisk32: " __VA_ARGS__)
|
|
|
|
#define ZLOGI(...) LOGI("zygisk32: " __VA_ARGS__)
|
|
|
|
#endif
|
|
|
|
|
2021-01-06 22:21:17 -08:00
|
|
|
// Unmap all pages matching the name
|
|
|
|
void unmap_all(const char *name);
|
|
|
|
|
2021-09-22 19:14:05 -07:00
|
|
|
// Remap all matching pages with anonymous pages
|
|
|
|
void remap_all(const char *name);
|
|
|
|
|
2021-08-11 00:00:21 -07:00
|
|
|
// Get library name + offset (from start of ELF), given function address
|
|
|
|
uintptr_t get_function_off(int pid, uintptr_t addr, char *lib);
|
2021-01-06 22:21:17 -08:00
|
|
|
|
2021-08-11 00:00:21 -07:00
|
|
|
// Get function address, given library name + offset
|
|
|
|
uintptr_t get_function_addr(int pid, const char *lib, uintptr_t off);
|
2021-01-08 00:53:24 -08:00
|
|
|
|
2021-09-18 02:38:53 -07:00
|
|
|
struct AppInfo {
|
|
|
|
bool is_magisk_app;
|
|
|
|
bool on_denylist;
|
|
|
|
};
|
|
|
|
|
2021-01-08 00:53:24 -08:00
|
|
|
void self_unload();
|
|
|
|
void hook_functions();
|
|
|
|
bool unhook_functions();
|
2021-10-13 04:52:02 -07:00
|
|
|
std::vector<int> remote_get_info(int uid, const char *process, AppInfo *info);
|
2021-08-19 04:55:17 -07:00
|
|
|
int remote_request_unmount();
|
2021-10-23 14:38:30 -07:00
|
|
|
void connect_companion(int client, bool is_64_bit);
|