diff --git a/libinit/include/libinit_variant.h b/libinit/include/libinit_variant.h index f28acc5..f30dce5 100644 --- a/libinit/include/libinit_variant.h +++ b/libinit/include/libinit_variant.h @@ -12,6 +12,7 @@ typedef struct variant_info { std::string hwc_value; + std::string hwname_value; std::string sku_value; std::string device; diff --git a/libinit/init_rosemary.cpp b/libinit/init_rosemary.cpp index a6da65e..d730eb1 100644 --- a/libinit/init_rosemary.cpp +++ b/libinit/init_rosemary.cpp @@ -9,8 +9,17 @@ #include "vendor_init.h" +static const variant_info_t maltose_info = { + .hwc_value = "Global", + .hwname_value="maltose", + .sku_value = "", + .device = "maltose", + .nfc = false, +}; + static const variant_info_t rosemary_info = { .hwc_value = "Global", + .hwname_value="rosemary", .sku_value = "", .device = "rosemary", .nfc = true, @@ -18,12 +27,14 @@ static const variant_info_t rosemary_info = { static const variant_info_t secret_info = { .hwc_value = "Global_PA", + .hwname_value="secret", .sku_value = "", .device = "secret", .nfc = false, }; static const std::vector variants = { + maltose_info, rosemary_info, secret_info, }; diff --git a/libinit/libinit_variant.cpp b/libinit/libinit_variant.cpp index 4a98832..4ff04b4 100644 --- a/libinit/libinit_variant.cpp +++ b/libinit/libinit_variant.cpp @@ -12,14 +12,17 @@ using android::base::GetProperty; #define HWC_PROP "ro.boot.hwc" +#define HWNAME_PROP "ro.boot.hwname" #define SKU_PROP "ro.boot.product.hardware.sku" void search_variant(const std::vector variants) { std::string hwc_value = GetProperty(HWC_PROP, ""); + std::string hwname_value = GetProperty(HWNAME_PROP, ""); std::string sku_value = GetProperty(SKU_PROP, ""); for (const auto& variant : variants) { if ((variant.hwc_value == "" || variant.hwc_value == hwc_value) && + (variant.hwname_value == "" || variant.hwname_value == hwname_value) && (variant.sku_value == "" || variant.sku_value == sku_value)) { set_variant_props(variant); break;