Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e20ff83 authored by Roman Kiryanov's avatar Roman Kiryanov
Browse files

Allow a kernel bootconfig to set the `qemu` key



The existing code has a lot of references to the
`ro.boot.qemu` and `ro.boot.qemu.something` properties
which is not supported by the bootconfig if we place
everything under `androidboot.qemu`.

Bug: 182291166
Test: getprop | grep qemu
Signed-off-by: default avatarRoman Kiryanov <rkir@google.com>
Change-Id: Icb9d29c8dc39e1fa52a6f2ce43b4f42182b7995d
parent 26e5d8f1
Loading
Loading
Loading
Loading
+10 −3
Original line number Original line Diff line number Diff line
@@ -1218,13 +1218,20 @@ static void ProcessKernelCmdline() {
    });
    });
}
}


// bootconfig does not allow to populate `key=value` simultaneously with
// `key.subkey=value` which does not work with the existing code for
// `hardware` (e.g. we want both `ro.boot.hardware=value` and
// `ro.boot.hardware.sku=value`) and for `qemu` (Android Stidio Emulator
// specific).
static bool IsAllowedBootconfigKey(const std::string_view key) {
    return (key == "hardware"sv) || (key == "qemu"sv);
}

static void ProcessBootconfig() {
static void ProcessBootconfig() {
    ImportBootconfig([&](const std::string& key, const std::string& value) {
    ImportBootconfig([&](const std::string& key, const std::string& value) {
        if (StartsWith(key, ANDROIDBOOT_PREFIX)) {
        if (StartsWith(key, ANDROIDBOOT_PREFIX)) {
            InitPropertySet("ro.boot." + key.substr(ANDROIDBOOT_PREFIX.size()), value);
            InitPropertySet("ro.boot." + key.substr(ANDROIDBOOT_PREFIX.size()), value);
        } else if (key == "hardware") {
        } else if (IsAllowedBootconfigKey(key)) {
            // "hardware" in bootconfig replaces "androidboot.hardware" kernel
            // cmdline parameter
            InitPropertySet("ro.boot." + key, value);
            InitPropertySet("ro.boot." + key, value);
        }
        }
    });
    });