You've already forked Magisk
mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-09-06 06:36:58 +00:00
Fully migrate Magisk to C++
This commit is contained in:
+15
-20
@@ -4,10 +4,6 @@
|
||||
#include <sqlite3.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/***************
|
||||
* DB Settings *
|
||||
***************/
|
||||
@@ -19,7 +15,7 @@ extern "C" {
|
||||
"mnt_ns" \
|
||||
})
|
||||
|
||||
#define DB_SETTINGS_NUM (sizeof(DB_SETTING_KEYS) / sizeof(char*))
|
||||
#define DB_SETTINGS_NUM 3
|
||||
|
||||
// Settings indices
|
||||
enum {
|
||||
@@ -52,15 +48,14 @@ enum {
|
||||
|
||||
struct db_settings {
|
||||
int v[DB_SETTINGS_NUM];
|
||||
db_settings()
|
||||
: v {
|
||||
ROOT_ACCESS_APPS_AND_ADB,
|
||||
MULTIUSER_MODE_OWNER_ONLY,
|
||||
NAMESPACE_MODE_REQUESTER
|
||||
} {}
|
||||
};
|
||||
|
||||
#define DEFAULT_DB_SETTINGS \
|
||||
(struct db_settings) { .v = { \
|
||||
ROOT_ACCESS_APPS_AND_ADB, \
|
||||
MULTIUSER_MODE_OWNER_ONLY, \
|
||||
NAMESPACE_MODE_REQUESTER, \
|
||||
}}
|
||||
|
||||
/**************
|
||||
* DB Strings *
|
||||
**************/
|
||||
@@ -70,7 +65,7 @@ NAMESPACE_MODE_REQUESTER, \
|
||||
"requester", \
|
||||
})
|
||||
|
||||
#define DB_STRING_NUM (sizeof(DB_STRING_KEYS) / sizeof(char*))
|
||||
#define DB_STRING_NUM 1
|
||||
|
||||
// Strings indices
|
||||
enum {
|
||||
@@ -79,6 +74,10 @@ enum {
|
||||
|
||||
struct db_strings {
|
||||
char s[DB_STRING_NUM][128];
|
||||
db_strings() {
|
||||
for (int i = 0; i < DB_STRING_NUM; ++i)
|
||||
s[i][0] = '\0';
|
||||
}
|
||||
};
|
||||
|
||||
/*************
|
||||
@@ -97,19 +96,19 @@ struct su_access {
|
||||
int notify;
|
||||
};
|
||||
|
||||
#define DEFAULT_SU_ACCESS (struct su_access) { \
|
||||
#define DEFAULT_SU_ACCESS (su_access) { \
|
||||
.policy = QUERY, \
|
||||
.log = 1, \
|
||||
.notify = 1 \
|
||||
}
|
||||
|
||||
#define SILENT_SU_ACCESS (struct su_access) { \
|
||||
#define SILENT_SU_ACCESS (su_access) { \
|
||||
.policy = ALLOW, \
|
||||
.log = 0, \
|
||||
.notify = 0 \
|
||||
}
|
||||
|
||||
#define NO_SU_ACCESS (struct su_access) { \
|
||||
#define NO_SU_ACCESS (su_access) { \
|
||||
.policy = DENY, \
|
||||
.log = 0, \
|
||||
.notify = 0 \
|
||||
@@ -126,8 +125,4 @@ int get_uid_policy(sqlite3 *db, int uid, struct su_access *su);
|
||||
int validate_manager(char *alt_pkg, int userid, struct stat *st);
|
||||
int exec_sql(const char *sql);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif //DB_H
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef IMG_H
|
||||
#define IMG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int create_img(const char *img, int size);
|
||||
int resize_img(const char *img, int size);
|
||||
char *mount_image(const char *img, const char *target);
|
||||
@@ -8,4 +12,8 @@ int umount_image(const char *target, const char *device);
|
||||
int merge_img(const char *source, const char *target);
|
||||
int trim_img(const char *img, const char *mount, char *loop);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif //IMG_H
|
||||
|
||||
@@ -45,8 +45,8 @@ extern "C" {
|
||||
|
||||
extern char *argv0; /* For changing process name */
|
||||
|
||||
#define applet_names ((char *[]) { "magisk", "su", "resetprop", "magiskhide", "imgtool", NULL })
|
||||
#define init_applet ((char *[]) { "magiskpolicy", "supolicy", NULL })
|
||||
#define applet_names ((const char *[]) { "magisk", "su", "resetprop", "magiskhide", "imgtool", NULL })
|
||||
#define init_applet ((const char *[]) { "magiskpolicy", "supolicy", NULL })
|
||||
|
||||
extern int (*applet_main[]) (int, char *[]), (*init_applet_main[]) (int, char *[]);
|
||||
|
||||
|
||||
@@ -1,25 +1,12 @@
|
||||
/* resetprop.h - API for resetprop
|
||||
*/
|
||||
|
||||
#ifndef _RESETPROP_H_
|
||||
#define _RESETPROP_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#pragma once
|
||||
|
||||
int prop_exist(const char *name);
|
||||
int setprop(const char *name, const char *value);
|
||||
int setprop2(const char *name, const char *value, const int trigger);
|
||||
char *getprop(const char *name);
|
||||
char *getprop2(const char *name, int persist);
|
||||
int deleteprop(const char *name);
|
||||
int deleteprop2(const char *name, const int persist);
|
||||
int read_prop_file(const char* filename, const int trigger);
|
||||
void getprop_all(void (*callback)(const char *, const char *, void *), void *cookie, int persist);
|
||||
int setprop(const char *name, const char *value, const bool trigger = true);
|
||||
char *getprop(const char *name, bool persist = false);
|
||||
void getprop(void (*callback)(const char *, const char *, void *), void *cookie, bool persist = false);
|
||||
int deleteprop(const char *name, bool persist = false);
|
||||
int load_prop_file(const char *filename, const bool trigger = true);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user