From 68c2817d407307e76c89f11250552770bee2aa22 Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Tue, 25 Apr 2023 04:37:28 +0800 Subject: [PATCH] Enable avd hack for debug build --- native/src/init/init.hpp | 8 -------- native/src/init/mount.cpp | 24 +++++++++++++----------- native/src/init/rootdir.cpp | 2 -- scripts/avd_magisk.sh | 1 - scripts/avd_patch.sh | 5 ----- scripts/avd_test.sh | 5 ----- 6 files changed, 13 insertions(+), 32 deletions(-) diff --git a/native/src/init/init.hpp b/native/src/init/init.hpp index f231b26cd..078bd30c5 100644 --- a/native/src/init/init.hpp +++ b/native/src/init/init.hpp @@ -3,11 +3,6 @@ using kv_pairs = std::vector>; -// 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(); diff --git a/native/src/init/mount.cpp b/native/src/init/mount.cpp index 9dd4d7d5a..e1c220a44 100644 --- a/native/src/init/mount.cpp +++ b/native/src/init/mount.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -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 diff --git a/native/src/init/rootdir.cpp b/native/src/init/rootdir.cpp index 53e7fd192..42bb97e35 100644 --- a/native/src/init/rootdir.cpp +++ b/native/src/init/rootdir.cpp @@ -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) { diff --git a/scripts/avd_magisk.sh b/scripts/avd_magisk.sh index c94814e48..b33fc1205 100755 --- a/scripts/avd_magisk.sh +++ b/scripts/avd_magisk.sh @@ -1,4 +1,3 @@ -#!/usr/bin/env bash ##################################################################### # AVD Magisk Setup ##################################################################### diff --git a/scripts/avd_patch.sh b/scripts/avd_patch.sh index fa4fa8a35..579345395 100644 --- a/scripts/avd_patch.sh +++ b/scripts/avd_patch.sh @@ -1,4 +1,3 @@ -#!/usr/bin/env bash ##################################################################### # AVD MagiskInit Setup ##################################################################### @@ -13,10 +12,6 @@ # After patching ramdisk.img, close the emulator, then select # "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: # diff --git a/scripts/avd_test.sh b/scripts/avd_test.sh index cef413c1e..cc507241e 100755 --- a/scripts/avd_test.sh +++ b/scripts/avd_test.sh @@ -92,11 +92,6 @@ export -f wait_for_boot 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 'arm64'|'aarch64') arch=arm64-v8a