Loading cmds/idmap2/idmap2/Scan.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,17 @@ Result<Unit> Scan(const std::vector<std::string>& args) { continue; } // Note that conditional property enablement/exclusion only applies if // the attribute is present. In its absence, all overlays are presumed enabled. if (!overlay_info->requiredSystemPropertyName.empty() && !overlay_info->requiredSystemPropertyValue.empty()) { // if property set & equal to value, then include overlay - otherwise skip if (android::base::GetProperty(overlay_info->requiredSystemPropertyName, "") != overlay_info->requiredSystemPropertyValue) { continue; } } std::vector<std::string> fulfilled_policies; if (!override_policies.empty()) { fulfilled_policies = override_policies; Loading cmds/idmap2/include/idmap2/ResourceUtils.h +2 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ namespace android::idmap2::utils { struct OverlayManifestInfo { std::string target_package; // NOLINT(misc-non-private-member-variables-in-classes) std::string target_name; // NOLINT(misc-non-private-member-variables-in-classes) std::string requiredSystemPropertyName; // NOLINT(misc-non-private-member-variables-in-classes) std::string requiredSystemPropertyValue; // NOLINT(misc-non-private-member-variables-in-classes) bool is_static; // NOLINT(misc-non-private-member-variables-in-classes) int priority = -1; // NOLINT(misc-non-private-member-variables-in-classes) }; Loading cmds/idmap2/libidmap2/ResourceUtils.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,16 @@ Result<OverlayManifestInfo> ExtractOverlayManifestInfo(const std::string& path, info.priority = std::stoi(iter->second); } iter = tag->find("requiredSystemPropertyName"); if (iter != tag->end()) { info.requiredSystemPropertyName = iter->second; } iter = tag->find("requiredSystemPropertyValue"); if (iter != tag->end()) { info.requiredSystemPropertyValue = iter->second; } return info; } Loading Loading
cmds/idmap2/idmap2/Scan.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,17 @@ Result<Unit> Scan(const std::vector<std::string>& args) { continue; } // Note that conditional property enablement/exclusion only applies if // the attribute is present. In its absence, all overlays are presumed enabled. if (!overlay_info->requiredSystemPropertyName.empty() && !overlay_info->requiredSystemPropertyValue.empty()) { // if property set & equal to value, then include overlay - otherwise skip if (android::base::GetProperty(overlay_info->requiredSystemPropertyName, "") != overlay_info->requiredSystemPropertyValue) { continue; } } std::vector<std::string> fulfilled_policies; if (!override_policies.empty()) { fulfilled_policies = override_policies; Loading
cmds/idmap2/include/idmap2/ResourceUtils.h +2 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ namespace android::idmap2::utils { struct OverlayManifestInfo { std::string target_package; // NOLINT(misc-non-private-member-variables-in-classes) std::string target_name; // NOLINT(misc-non-private-member-variables-in-classes) std::string requiredSystemPropertyName; // NOLINT(misc-non-private-member-variables-in-classes) std::string requiredSystemPropertyValue; // NOLINT(misc-non-private-member-variables-in-classes) bool is_static; // NOLINT(misc-non-private-member-variables-in-classes) int priority = -1; // NOLINT(misc-non-private-member-variables-in-classes) }; Loading
cmds/idmap2/libidmap2/ResourceUtils.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,16 @@ Result<OverlayManifestInfo> ExtractOverlayManifestInfo(const std::string& path, info.priority = std::stoi(iter->second); } iter = tag->find("requiredSystemPropertyName"); if (iter != tag->end()) { info.requiredSystemPropertyName = iter->second; } iter = tag->find("requiredSystemPropertyValue"); if (iter != tag->end()) { info.requiredSystemPropertyValue = iter->second; } return info; } Loading