Merge "Set libavb version into system property for Treble OTA"
This commit is contained in:
commit
e8311491da
3 changed files with 12 additions and 3 deletions
|
@ -493,6 +493,10 @@ FsManagerAvbUniquePtr FsManagerAvbHandle::Open(const std::string& device_file_by
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
// Sets the MAJOR.MINOR for init to set it into "ro.boot.avb_version".
|
||||
avb_handle->avb_version_ =
|
||||
android::base::StringPrintf("%d.%d", AVB_VERSION_MAJOR, AVB_VERSION_MINOR);
|
||||
|
||||
// Verifies vbmeta images against the digest passed from bootloader.
|
||||
if (!avb_verifier->VerifyVbmetaImages(*avb_handle->avb_slot_data_)) {
|
||||
LERROR << "VerifyVbmetaImages failed";
|
||||
|
|
|
@ -72,7 +72,8 @@ class FsManagerAvbHandle {
|
|||
// Otherwise, returns false.
|
||||
bool SetUpAvb(fstab_rec* fstab_entry, bool wait_for_verity_dev);
|
||||
|
||||
bool AvbHashtreeDisabled() { return status_ == kFsManagerAvbHandleHashtreeDisabled; }
|
||||
bool hashtree_disabled() const { return status_ == kFsManagerAvbHandleHashtreeDisabled; }
|
||||
const std::string& avb_version() const { return avb_version_; }
|
||||
|
||||
FsManagerAvbHandle(const FsManagerAvbHandle&) = delete; // no copy
|
||||
FsManagerAvbHandle& operator=(const FsManagerAvbHandle&) = delete; // no assignment
|
||||
|
@ -92,6 +93,7 @@ class FsManagerAvbHandle {
|
|||
private:
|
||||
AvbSlotVerifyData* avb_slot_data_;
|
||||
FsManagerAvbHandleStatus status_;
|
||||
std::string avb_version_;
|
||||
};
|
||||
|
||||
#endif /* __CORE_FS_MGR_AVB_H */
|
||||
|
|
|
@ -1010,10 +1010,11 @@ static bool vboot_2_0_mount_partitions(const std::vector<fstab_rec*>& fstab_recs
|
|||
return false;
|
||||
}
|
||||
|
||||
setenv("INIT_AVB_VERSION", avb_handle->avb_version().c_str(), 1);
|
||||
for (auto rec : fstab_recs) {
|
||||
bool need_create_dm_device = false;
|
||||
if (fs_mgr_is_avb(rec)) {
|
||||
if (avb_handle->AvbHashtreeDisabled()) {
|
||||
if (avb_handle->hashtree_disabled()) {
|
||||
LOG(INFO) << "avb hashtree disabled for '" << rec->mount_point << "'";
|
||||
} else if (avb_handle->SetUpAvb(rec, false /* wait_for_verity_dev */)) {
|
||||
need_create_dm_device = true;
|
||||
|
@ -1362,12 +1363,14 @@ int main(int argc, char** argv) {
|
|||
property_set("ro.boottime.init.selinux", getenv("INIT_SELINUX_TOOK"));
|
||||
|
||||
// Set libavb version for Framework-only OTA match in Treble build.
|
||||
property_set("ro.boot.init.avb_version", std::to_string(AVB_MAJOR_VERSION).c_str());
|
||||
const char* avb_version = getenv("INIT_AVB_VERSION");
|
||||
if (avb_version) property_set("ro.boot.avb_version", avb_version);
|
||||
|
||||
// Clean up our environment.
|
||||
unsetenv("INIT_SECOND_STAGE");
|
||||
unsetenv("INIT_STARTED_AT");
|
||||
unsetenv("INIT_SELINUX_TOOK");
|
||||
unsetenv("INIT_AVB_VERSION");
|
||||
|
||||
// Now set up SELinux for second stage.
|
||||
selinux_initialize(false);
|
||||
|
|
Loading…
Reference in a new issue