mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-12-11 06:32:19 +00:00
Cleanup magiskinit code
This commit is contained in:
@@ -2,7 +2,9 @@
|
||||
|
||||
#include "raw_data.hpp"
|
||||
|
||||
struct cmdline {
|
||||
using kv_pairs = std::vector<std::pair<std::string, std::string>>;
|
||||
|
||||
struct BootConfig {
|
||||
bool skip_initramfs;
|
||||
bool force_normal_boot;
|
||||
bool rootwait;
|
||||
@@ -11,6 +13,9 @@ struct cmdline {
|
||||
char fstab_suffix[32];
|
||||
char hardware[32];
|
||||
char hardware_plat[32];
|
||||
|
||||
void set(const kv_pairs &);
|
||||
void print();
|
||||
};
|
||||
|
||||
struct fstab_entry {
|
||||
@@ -32,7 +37,7 @@ struct fstab_entry {
|
||||
extern std::vector<std::string> mount_list;
|
||||
|
||||
bool unxz(int fd, const uint8_t *buf, size_t size);
|
||||
void load_kernel_info(cmdline *cmd);
|
||||
void load_kernel_info(BootConfig *config);
|
||||
bool check_two_stage();
|
||||
void setup_klog();
|
||||
|
||||
@@ -42,13 +47,13 @@ void setup_klog();
|
||||
|
||||
class BaseInit {
|
||||
protected:
|
||||
cmdline *cmd = nullptr;
|
||||
BootConfig *config = nullptr;
|
||||
char **argv = nullptr;
|
||||
|
||||
[[noreturn]] void exec_init();
|
||||
void read_dt_fstab(std::vector<fstab_entry> &fstab);
|
||||
public:
|
||||
BaseInit(char *argv[], cmdline *cmd) : cmd(cmd), argv(argv) {}
|
||||
BaseInit(char *argv[], BootConfig *config) : config(config), argv(argv) {}
|
||||
virtual ~BaseInit() = default;
|
||||
virtual void start() = 0;
|
||||
};
|
||||
@@ -56,7 +61,7 @@ public:
|
||||
class MagiskInit : public BaseInit {
|
||||
protected:
|
||||
mmap_data self;
|
||||
mmap_data config;
|
||||
mmap_data magisk_config;
|
||||
std::string custom_rules_dir;
|
||||
|
||||
void mount_with_dt();
|
||||
@@ -64,7 +69,7 @@ protected:
|
||||
void setup_tmp(const char *path);
|
||||
void mount_rules_dir(const char *dev_base, const char *mnt_base);
|
||||
public:
|
||||
MagiskInit(char *argv[], cmdline *cmd) : BaseInit(argv, cmd) {}
|
||||
MagiskInit(char *argv[], BootConfig *cmd) : BaseInit(argv, cmd) {}
|
||||
};
|
||||
|
||||
class SARBase : virtual public MagiskInit {
|
||||
@@ -86,7 +91,7 @@ class FirstStageInit : public BaseInit {
|
||||
private:
|
||||
void prepare();
|
||||
public:
|
||||
FirstStageInit(char *argv[], cmdline *cmd) : BaseInit(argv, cmd) {
|
||||
FirstStageInit(char *argv[], BootConfig *cmd) : BaseInit(argv, cmd) {
|
||||
LOGD("%s\n", __FUNCTION__);
|
||||
};
|
||||
void start() override {
|
||||
@@ -106,7 +111,7 @@ private:
|
||||
void early_mount();
|
||||
void first_stage_prep();
|
||||
public:
|
||||
SARInit(char *argv[], cmdline *cmd) : MagiskInit(argv, cmd), is_two_stage(false) {
|
||||
SARInit(char *argv[], BootConfig *cmd) : MagiskInit(argv, cmd), is_two_stage(false) {
|
||||
LOGD("%s\n", __FUNCTION__);
|
||||
};
|
||||
void start() override {
|
||||
@@ -136,7 +141,7 @@ private:
|
||||
void early_mount();
|
||||
|
||||
public:
|
||||
RootFSInit(char *argv[], cmdline *cmd) : MagiskInit(argv, cmd) {
|
||||
RootFSInit(char *argv[], BootConfig *cmd) : MagiskInit(argv, cmd) {
|
||||
LOGD("%s\n", __FUNCTION__);
|
||||
}
|
||||
void start() override {
|
||||
|
||||
Reference in New Issue
Block a user