Merge "Revert "Remove comments and code about ro.boot.slot""

This commit is contained in:
Tom Cherry 2017-09-21 18:40:56 +00:00 committed by Gerrit Code Review
commit eb00b1f3aa
2 changed files with 23 additions and 4 deletions

View file

@ -93,9 +93,21 @@ static bool set_verity_enabled_state(int fd, const char* block_device, const cha
/* Helper function to get A/B suffix, if any. If the device isn't
* using A/B the empty string is returned. Otherwise either "_a",
* "_b", ... is returned.
*
* Note that since sometime in O androidboot.slot_suffix is deprecated
* and androidboot.slot should be used instead. Since bootloaders may
* be out of sync with the OS, we check both and for extra safety
* prepend a leading underscore if there isn't one already.
*/
static std::string get_ab_suffix() {
return android::base::GetProperty("ro.boot.slot_suffix", "");
std::string ab_suffix = android::base::GetProperty("ro.boot.slot_suffix", "");
if (ab_suffix == "") {
ab_suffix = android::base::GetProperty("ro.boot.slot", "");
}
if (ab_suffix.size() > 0 && ab_suffix[0] != '_') {
ab_suffix = std::string("_") + ab_suffix;
}
return ab_suffix;
}
/* Use AVB to turn verity on/off */

View file

@ -21,12 +21,19 @@
#include "fs_mgr.h"
#include "fs_mgr_priv.h"
// Returns "_a" or "_b" based on androidboot.slot_suffix in kernel cmdline, or an empty string
// if that parameter does not exist.
// Returns "_a" or "_b" based on two possible values in kernel cmdline:
// - androidboot.slot = a or b OR
// - androidboot.slot_suffix = _a or _b
// TODO: remove slot_suffix once it's deprecated.
std::string fs_mgr_get_slot_suffix() {
std::string slot;
std::string ab_suffix;
fs_mgr_get_boot_config("slot_suffix", &ab_suffix);
if (fs_mgr_get_boot_config("slot", &slot)) {
ab_suffix = "_" + slot;
} else if (!fs_mgr_get_boot_config("slot_suffix", &ab_suffix)) {
ab_suffix = "";
}
return ab_suffix;
}