Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64963709 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 5636702 from 1803972b to qt-c2f2-release

Change-Id: I409860105b5a272e3bba3f9573065b22cc642df4
parents 17ae220b 1803972b
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -90,7 +90,7 @@ std::vector<std::string> fs_mgr_overlayfs_required_devices(Fstab*) {
    return {};
    return {};
}
}


bool fs_mgr_overlayfs_setup(const char*, const char*, bool* change) {
bool fs_mgr_overlayfs_setup(const char*, const char*, bool* change, bool) {
    if (change) *change = false;
    if (change) *change = false;
    return false;
    return false;
}
}
@@ -873,7 +873,8 @@ std::vector<std::string> fs_mgr_overlayfs_required_devices(Fstab* fstab) {


// Returns false if setup not permitted, errno set to last error.
// Returns false if setup not permitted, errno set to last error.
// If something is altered, set *change.
// If something is altered, set *change.
bool fs_mgr_overlayfs_setup(const char* backing, const char* mount_point, bool* change) {
bool fs_mgr_overlayfs_setup(const char* backing, const char* mount_point, bool* change,
                            bool force) {
    if (change) *change = false;
    if (change) *change = false;
    auto ret = false;
    auto ret = false;
    if (fs_mgr_overlayfs_valid() == OverlayfsValidResult::kNotSupported) return ret;
    if (fs_mgr_overlayfs_valid() == OverlayfsValidResult::kNotSupported) return ret;
@@ -897,7 +898,7 @@ bool fs_mgr_overlayfs_setup(const char* backing, const char* mount_point, bool*
            continue;
            continue;
        }
        }
        save_errno = errno;
        save_errno = errno;
        auto verity_enabled = fs_mgr_is_verity_enabled(*it);
        auto verity_enabled = !force && fs_mgr_is_verity_enabled(*it);
        if (errno == ENOENT || errno == ENXIO) errno = save_errno;
        if (errno == ENOENT || errno == ENXIO) errno = save_errno;
        if (verity_enabled) {
        if (verity_enabled) {
            it = candidates.erase(it);
            it = candidates.erase(it);
+6 −3
Original line number Original line Diff line number Diff line
@@ -250,6 +250,7 @@ int main(int argc, char* argv[]) {
    // Check verity and optionally setup overlayfs backing.
    // Check verity and optionally setup overlayfs backing.
    auto reboot_later = false;
    auto reboot_later = false;
    auto uses_overlayfs = fs_mgr_overlayfs_valid() != OverlayfsValidResult::kNotSupported;
    auto uses_overlayfs = fs_mgr_overlayfs_valid() != OverlayfsValidResult::kNotSupported;
    auto just_disabled_verity = false;
    for (auto it = partitions.begin(); it != partitions.end();) {
    for (auto it = partitions.begin(); it != partitions.end();) {
        auto& entry = *it;
        auto& entry = *it;
        auto& mount_point = entry.mount_point;
        auto& mount_point = entry.mount_point;
@@ -262,7 +263,8 @@ int main(int argc, char* argv[]) {
                            false);
                            false);
                    avb_ops_user_free(ops);
                    avb_ops_user_free(ops);
                    if (ret) {
                    if (ret) {
                        LOG(WARNING) << "Disable verity for " << mount_point;
                        LOG(WARNING) << "Disabling verity for " << mount_point;
                        just_disabled_verity = true;
                        reboot_later = can_reboot;
                        reboot_later = can_reboot;
                        if (reboot_later) {
                        if (reboot_later) {
                            // w/o overlayfs available, also check for dedupe
                            // w/o overlayfs available, also check for dedupe
@@ -275,7 +277,8 @@ int main(int argc, char* argv[]) {
                    } else if (fs_mgr_set_blk_ro(entry.blk_device, false)) {
                    } else if (fs_mgr_set_blk_ro(entry.blk_device, false)) {
                        fec::io fh(entry.blk_device.c_str(), O_RDWR);
                        fec::io fh(entry.blk_device.c_str(), O_RDWR);
                        if (fh && fh.set_verity_status(false)) {
                        if (fh && fh.set_verity_status(false)) {
                            LOG(WARNING) << "Disable verity for " << mount_point;
                            LOG(WARNING) << "Disabling verity for " << mount_point;
                            just_disabled_verity = true;
                            reboot_later = can_reboot;
                            reboot_later = can_reboot;
                            if (reboot_later && !uses_overlayfs) {
                            if (reboot_later && !uses_overlayfs) {
                                ++it;
                                ++it;
@@ -292,7 +295,7 @@ int main(int argc, char* argv[]) {


        auto change = false;
        auto change = false;
        errno = 0;
        errno = 0;
        if (fs_mgr_overlayfs_setup(nullptr, mount_point.c_str(), &change)) {
        if (fs_mgr_overlayfs_setup(nullptr, mount_point.c_str(), &change, just_disabled_verity)) {
            if (change) {
            if (change) {
                LOG(INFO) << "Using overlayfs for " << mount_point;
                LOG(INFO) << "Using overlayfs for " << mount_point;
            }
            }
+1 −1
Original line number Original line Diff line number Diff line
@@ -26,7 +26,7 @@ android::fs_mgr::Fstab fs_mgr_overlayfs_candidate_list(const android::fs_mgr::Fs
bool fs_mgr_overlayfs_mount_all(android::fs_mgr::Fstab* fstab);
bool fs_mgr_overlayfs_mount_all(android::fs_mgr::Fstab* fstab);
std::vector<std::string> fs_mgr_overlayfs_required_devices(android::fs_mgr::Fstab* fstab);
std::vector<std::string> fs_mgr_overlayfs_required_devices(android::fs_mgr::Fstab* fstab);
bool fs_mgr_overlayfs_setup(const char* backing = nullptr, const char* mount_point = nullptr,
bool fs_mgr_overlayfs_setup(const char* backing = nullptr, const char* mount_point = nullptr,
                            bool* change = nullptr);
                            bool* change = nullptr, bool force = true);
bool fs_mgr_overlayfs_teardown(const char* mount_point = nullptr, bool* change = nullptr);
bool fs_mgr_overlayfs_teardown(const char* mount_point = nullptr, bool* change = nullptr);
bool fs_mgr_overlayfs_is_setup();
bool fs_mgr_overlayfs_is_setup();
bool fs_mgr_has_shared_blocks(const std::string& mount_point, const std::string& dev);
bool fs_mgr_has_shared_blocks(const std::string& mount_point, const std::string& dev);