sm6250-common: libinit: Get build description from build fingerprint

Change-Id: I3661981c7ba78670dcacd814598284274cb2eb9d
This commit is contained in:
Sebastiano Barezzi 2021-08-24 16:21:12 +02:00 committed by Alexander Winkowski
parent e5f929281e
commit a0b832caff
No known key found for this signature in database
GPG Key ID: 72762A66704CDE44
4 changed files with 35 additions and 2 deletions

View File

@ -13,4 +13,6 @@ void property_override(std::string prop, std::string value, bool add = true);
void set_ro_build_prop(const std::string &prop, const std::string &value, bool product = false);
std::string fingerprint_to_description(std::string fingerprint);
#endif // LIBINIT_UTILS_H

View File

@ -16,7 +16,6 @@ typedef struct variant_info {
std::string brand;
std::string device;
std::string model;
std::string build_description;
std::string build_fingerprint;
bool nfc;

View File

@ -40,3 +40,34 @@ void set_ro_build_prop(const std::string &prop, const std::string &value, bool p
property_override(prop_name, value, true);
}
}
#define FIND_AND_REMOVE(s, delimiter, variable_name) \
std::string variable_name = s.substr(0, s.find(delimiter)); \
s.erase(0, s.find(delimiter) + delimiter.length());
#define APPEND_STRING(s, to_append) \
s.append(" "); \
s.append(to_append);
std::string fingerprint_to_description(std::string fingerprint) {
std::string delimiter = "/";
std::string delimiter2 = ":";
std::string build_fingerprint_copy = fingerprint;
FIND_AND_REMOVE(build_fingerprint_copy, delimiter, brand)
FIND_AND_REMOVE(build_fingerprint_copy, delimiter, product)
FIND_AND_REMOVE(build_fingerprint_copy, delimiter2, device)
FIND_AND_REMOVE(build_fingerprint_copy, delimiter, platform_version)
FIND_AND_REMOVE(build_fingerprint_copy, delimiter, build_id)
FIND_AND_REMOVE(build_fingerprint_copy, delimiter2, build_number)
FIND_AND_REMOVE(build_fingerprint_copy, delimiter, build_variant)
std::string build_version_tags = build_fingerprint_copy;
std::string description = product + "-" + build_variant;
APPEND_STRING(description, platform_version)
APPEND_STRING(description, build_id)
APPEND_STRING(description, build_number)
APPEND_STRING(description, build_version_tags)
return description;
}

View File

@ -34,7 +34,8 @@ void set_variant_props(const variant_info_t variant) {
set_ro_build_prop("fingerprint", variant.build_fingerprint);
property_override("ro.bootimage.build.fingerprint", variant.build_fingerprint);
property_override("ro.build.description", variant.build_description);
property_override("ro.build.description", fingerprint_to_description(variant.build_fingerprint));
if (variant.nfc)
property_override(SKU_PROP, "nfc");