mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-08-26 11:17:40 +00:00
Disable AVD hacks by default
This commit is contained in:
@@ -2,6 +2,11 @@
|
||||
|
||||
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;
|
||||
@@ -67,9 +72,14 @@ protected:
|
||||
mmap_data magisk_config;
|
||||
std::string custom_rules_dir;
|
||||
|
||||
#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;
|
||||
#else
|
||||
// Make it const so compiler can optimize hacks out of the code
|
||||
static const bool avd_hack = false;
|
||||
#endif
|
||||
|
||||
void mount_with_dt();
|
||||
bool patch_sepolicy(const char *file);
|
||||
|
@@ -158,19 +158,21 @@ void MagiskInit::mount_with_dt() {
|
||||
for (const auto &entry : fstab) {
|
||||
if (is_lnk(entry.mnt_point.data()))
|
||||
continue;
|
||||
// When we force AVD to disable SystemAsRoot, it will always add system
|
||||
// to dt fstab, which we actually have already mounted as root
|
||||
if (avd_hack && entry.mnt_point == "/system")
|
||||
if (avd_hack && entry.mnt_point == "/system") {
|
||||
// When we force AVD to disable SystemAsRoot, it will always add system
|
||||
// to dt fstab. We actually already mounted it as root, so skip this one.
|
||||
continue;
|
||||
}
|
||||
// Derive partname from dev
|
||||
sprintf(blk_info.partname, "%s%s", basename(entry.dev.data()), config->slot);
|
||||
setup_block(true);
|
||||
xmkdir(entry.mnt_point.data(), 0755);
|
||||
xmount(blk_info.block_dev, entry.mnt_point.data(), entry.type.data(), MS_RDONLY, nullptr);
|
||||
// When avd_hack is true, do not add any early mount partitions to mount_list
|
||||
// as we will actually forcefully disable original init's early mount
|
||||
if (!avd_hack)
|
||||
if (!avd_hack) {
|
||||
// When avd_hack is true, do not add any early mount partitions to mount_list
|
||||
// as we will actually forcefully disable original init's early mount
|
||||
mount_list.push_back(entry.mnt_point);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -379,7 +381,9 @@ void SARInit::early_mount() {
|
||||
xmkdir("/dev", 0755);
|
||||
xmount("tmpfs", "/dev", "tmpfs", 0, "mode=755");
|
||||
mount_list.emplace_back("/dev");
|
||||
#if ENABLE_AVD_HACK
|
||||
avd_hack = config->emulator;
|
||||
#endif
|
||||
mount_with_dt();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user