mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-08-25 18:28:01 +00:00
Enable avd hack for debug build
This commit is contained in:
@@ -3,11 +3,6 @@
|
||||
|
||||
using kv_pairs = std::vector<std::pair<std::string, std::string>>;
|
||||
|
||||
// For API 28 AVD, it uses legacy SAR setup that requires
|
||||
// special hacks in magiskinit to work properly. We do not
|
||||
// necessarily want this enabled in production builds.
|
||||
#define ENABLE_AVD_HACK 0
|
||||
|
||||
struct BootConfig {
|
||||
bool skip_initramfs;
|
||||
bool force_normal_boot;
|
||||
@@ -64,12 +59,9 @@ private:
|
||||
bool hijack_sepolicy();
|
||||
void setup_tmp(const char *path);
|
||||
protected:
|
||||
|
||||
#if ENABLE_AVD_HACK
|
||||
// When this boolean is set, this means we are currently
|
||||
// running magiskinit on legacy SAR AVD emulator
|
||||
bool avd_hack = false;
|
||||
#endif
|
||||
|
||||
void patch_rw_root();
|
||||
void patch_ro_root();
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include <libgen.h>
|
||||
|
||||
#include <base.hpp>
|
||||
#include <flags.h>
|
||||
#include <selinux.hpp>
|
||||
#include <magisk.hpp>
|
||||
|
||||
@@ -219,17 +220,18 @@ mount_root:
|
||||
bool is_two_stage = access("/apex", F_OK) == 0;
|
||||
LOGD("is_two_stage: [%d]\n", is_two_stage);
|
||||
|
||||
#if ENABLE_AVD_HACK
|
||||
if (!is_two_stage) {
|
||||
if (config->emulator) {
|
||||
avd_hack = true;
|
||||
// These values are hardcoded for API 28 AVD
|
||||
xmkdir("/dev/block", 0755);
|
||||
strcpy(blk_info.block_dev, "/dev/block/vde1");
|
||||
strcpy(blk_info.partname, "vendor");
|
||||
setup_block();
|
||||
xmount(blk_info.block_dev, "/vendor", "ext4", MS_RDONLY, nullptr);
|
||||
}
|
||||
#if MAGISK_DEBUG
|
||||
// For API 28 AVD, it uses legacy SAR setup that requires
|
||||
// special hacks in magiskinit to work properly. We do not
|
||||
// necessarily want this enabled in production builds.
|
||||
if (!is_two_stage && config->emulator) {
|
||||
avd_hack = true;
|
||||
// These values are hardcoded for API 28 AVD
|
||||
xmkdir("/dev/block", 0755);
|
||||
strcpy(blk_info.block_dev, "/dev/block/vde1");
|
||||
strcpy(blk_info.partname, "vendor");
|
||||
setup_block();
|
||||
xmount(blk_info.block_dev, "/vendor", "ext4", MS_RDONLY, nullptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -244,7 +244,6 @@ void MagiskInit::patch_ro_root() {
|
||||
|
||||
xrename("overlay.d", ROOTOVL);
|
||||
|
||||
#if ENABLE_AVD_HACK
|
||||
// Handle avd hack
|
||||
if (avd_hack) {
|
||||
int src = xopen("/init", O_RDONLY | O_CLOEXEC);
|
||||
@@ -257,7 +256,6 @@ void MagiskInit::patch_ro_root() {
|
||||
close(src);
|
||||
close(dest);
|
||||
}
|
||||
#endif
|
||||
|
||||
load_overlay_rc(ROOTOVL);
|
||||
if (access(ROOTOVL "/sbin", F_OK) == 0) {
|
||||
|
Reference in New Issue
Block a user