Merge "Mark fs-verity support for ext4 userdata if first_api_level >= R"
This commit is contained in:
commit
b03ff7dbbf
1 changed files with 17 additions and 0 deletions
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include <android-base/file.h>
|
||||
#include <android-base/parseint.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android-base/stringprintf.h>
|
||||
#include <android-base/strings.h>
|
||||
#include <libgsi/libgsi.h>
|
||||
|
@ -659,6 +660,21 @@ void TransformFstabForDsu(Fstab* fstab, const std::vector<std::string>& dsu_part
|
|||
}
|
||||
}
|
||||
|
||||
void EnableMandatoryFlags(Fstab* fstab) {
|
||||
// Devices launched in R and after should enable fs_verity on userdata. The flag causes tune2fs
|
||||
// to enable the feature. A better alternative would be to enable on mkfs at the beginning.
|
||||
if (android::base::GetIntProperty("ro.product.first_api_level", 0) >= 30) {
|
||||
std::vector<FstabEntry*> data_entries = GetEntriesForMountPoint(fstab, "/data");
|
||||
for (auto&& entry : data_entries) {
|
||||
// Besides ext4, f2fs is also supported. But the image is already created with verity
|
||||
// turned on when it was first introduced.
|
||||
if (entry->fs_type == "ext4") {
|
||||
entry->fs_mgr_flags.fs_verity = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool ReadFstabFromFile(const std::string& path, Fstab* fstab) {
|
||||
auto fstab_file = std::unique_ptr<FILE, decltype(&fclose)>{fopen(path.c_str(), "re"), fclose};
|
||||
if (!fstab_file) {
|
||||
|
@ -679,6 +695,7 @@ bool ReadFstabFromFile(const std::string& path, Fstab* fstab) {
|
|||
}
|
||||
|
||||
SkipMountingPartitions(fstab);
|
||||
EnableMandatoryFlags(fstab);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue