Mark fs-verity support for ext4 userdata if first_api_level >= R
fs-verity is required for new devices launched with R. This change remove a manual setup for vendors going forward. The original fs mgr flag still allows old devices to opt in, which can only to be done manually because of kernel dependency. Test: build Bug: 150034150 Change-Id: I152b63d7889153d41f29677f72074afb1881b65d
This commit is contained in:
parent
7445a87101
commit
98296fcf2a
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