Enable avd hack for debug build

This commit is contained in:
vvb2060 2023-04-25 04:37:28 +08:00 committed by John Wu
parent 83d837d868
commit 68c2817d40
6 changed files with 13 additions and 32 deletions

View File

@ -3,11 +3,6 @@
using kv_pairs = std::vector<std::pair<std::string, std::string>>; 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 { struct BootConfig {
bool skip_initramfs; bool skip_initramfs;
bool force_normal_boot; bool force_normal_boot;
@ -64,12 +59,9 @@ private:
bool hijack_sepolicy(); bool hijack_sepolicy();
void setup_tmp(const char *path); void setup_tmp(const char *path);
protected: protected:
#if ENABLE_AVD_HACK
// When this boolean is set, this means we are currently // When this boolean is set, this means we are currently
// running magiskinit on legacy SAR AVD emulator // running magiskinit on legacy SAR AVD emulator
bool avd_hack = false; bool avd_hack = false;
#endif
void patch_rw_root(); void patch_rw_root();
void patch_ro_root(); void patch_ro_root();

View File

@ -4,6 +4,7 @@
#include <libgen.h> #include <libgen.h>
#include <base.hpp> #include <base.hpp>
#include <flags.h>
#include <selinux.hpp> #include <selinux.hpp>
#include <magisk.hpp> #include <magisk.hpp>
@ -219,9 +220,11 @@ mount_root:
bool is_two_stage = access("/apex", F_OK) == 0; bool is_two_stage = access("/apex", F_OK) == 0;
LOGD("is_two_stage: [%d]\n", is_two_stage); LOGD("is_two_stage: [%d]\n", is_two_stage);
#if ENABLE_AVD_HACK #if MAGISK_DEBUG
if (!is_two_stage) { // For API 28 AVD, it uses legacy SAR setup that requires
if (config->emulator) { // 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; avd_hack = true;
// These values are hardcoded for API 28 AVD // These values are hardcoded for API 28 AVD
xmkdir("/dev/block", 0755); xmkdir("/dev/block", 0755);
@ -230,7 +233,6 @@ mount_root:
setup_block(); setup_block();
xmount(blk_info.block_dev, "/vendor", "ext4", MS_RDONLY, nullptr); xmount(blk_info.block_dev, "/vendor", "ext4", MS_RDONLY, nullptr);
} }
}
#endif #endif
return is_two_stage; return is_two_stage;

View File

@ -244,7 +244,6 @@ void MagiskInit::patch_ro_root() {
xrename("overlay.d", ROOTOVL); xrename("overlay.d", ROOTOVL);
#if ENABLE_AVD_HACK
// Handle avd hack // Handle avd hack
if (avd_hack) { if (avd_hack) {
int src = xopen("/init", O_RDONLY | O_CLOEXEC); int src = xopen("/init", O_RDONLY | O_CLOEXEC);
@ -257,7 +256,6 @@ void MagiskInit::patch_ro_root() {
close(src); close(src);
close(dest); close(dest);
} }
#endif
load_overlay_rc(ROOTOVL); load_overlay_rc(ROOTOVL);
if (access(ROOTOVL "/sbin", F_OK) == 0) { if (access(ROOTOVL "/sbin", F_OK) == 0) {

View File

@ -1,4 +1,3 @@
#!/usr/bin/env bash
##################################################################### #####################################################################
# AVD Magisk Setup # AVD Magisk Setup
##################################################################### #####################################################################

View File

@ -1,4 +1,3 @@
#!/usr/bin/env bash
##################################################################### #####################################################################
# AVD MagiskInit Setup # AVD MagiskInit Setup
##################################################################### #####################################################################
@ -13,10 +12,6 @@
# After patching ramdisk.img, close the emulator, then select # After patching ramdisk.img, close the emulator, then select
# "Cold Boot Now" in AVD Manager to force a full reboot. # "Cold Boot Now" in AVD Manager to force a full reboot.
# #
# P.S. If running against the API 28 image, modify init.hpp and set
# ENABLE_AVD_HACK to 1 to enable special hacks designed specifically
# for this use case.
#
##################################################################### #####################################################################
# AVD Init Configurations: # AVD Init Configurations:
# #

View File

@ -92,11 +92,6 @@ export -f wait_for_boot
set -xe set -xe
if grep -q 'ENABLE_AVD_HACK 0' native/src/init/init.hpp; then
echo -e '\n\033[41m! Please patch init.hpp\033[0m\n'
exit 1
fi
case $(uname -m) in case $(uname -m) in
'arm64'|'aarch64') 'arm64'|'aarch64')
arch=arm64-v8a arch=arm64-v8a