/* * Copyright (C) 2021 The LineageOS Project * * SPDX-License-Identifier: Apache-2.0 */ #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ #include #include #include void property_override(std::string prop, std::string value, bool add) { auto pi = (prop_info *) __system_property_find(prop.c_str()); if (pi != nullptr) { __system_property_update(pi, value.c_str(), value.length()); } else if (add) { __system_property_add(prop.c_str(), prop.length(), value.c_str(), value.length()); } } std::vector ro_props_default_source_order = { "odm.", "odm_dlkm.", "product.", "system.", "system_ext.", "vendor.", "vendor_dlkm.", "", }; void set_ro_build_prop(const std::string &prop, const std::string &value, bool product) { std::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, value, true); } }