diff --git a/init/init_universal7904.cpp b/init/init_universal7904.cpp index 3fd96e0..94f3f37 100644 --- a/init/init_universal7904.cpp +++ b/init/init_universal7904.cpp @@ -39,6 +39,15 @@ using android::base::GetProperty; using std::string; +std::vector ro_props_default_source_order = { + "", + "odm.", + "product.", + "system.", + "system_ext.", + "vendor.", +}; + void property_override(char const prop[], char const value[], bool add = true) { prop_info *pi; @@ -49,6 +58,19 @@ void property_override(char const prop[], char const value[], bool add = true) { __system_property_add(prop, strlen(prop), value, strlen(value)); } +void set_ro_build_prop(const std::string &prop, const std::string &value, bool product = true) { + string prop_name; + + for (const auto &source : ro_props_default_source_order) { + if (product) + prop_name = "ro.product." + source + prop; + else + prop_name = "ro." + source + "build." + prop; + + property_override(prop_name.c_str(), value.c_str()); + } +} + void vendor_load_properties() { string model; @@ -57,4 +79,7 @@ void vendor_load_properties() { if (model == "SM-M205FN" || model == "SM-A305FN" || model == "SM-A405FN" || model == "SM-A405FM") { property_override("ro.boot.product.hardware.sku", "NFC"); } + + set_ro_build_prop("model", model); + set_ro_build_prop("product", model, false); }