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

Commit 5350746a authored by Paul Crowley's avatar Paul Crowley Committed by Gerrit Code Review
Browse files

Merge "Set ro.crypto.type even on failure"

parents 5b02193f 9acab5a4
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -976,6 +976,19 @@ static int handle_encryptable(const FstabEntry& entry) {
    }
}

static void set_type_property(int status) {
    switch (status) {
        case FS_MGR_MNTALL_DEV_MIGHT_BE_ENCRYPTED:
            SetProperty("ro.crypto.type", "block");
            break;
        case FS_MGR_MNTALL_DEV_FILE_ENCRYPTED:
        case FS_MGR_MNTALL_DEV_IS_METADATA_ENCRYPTED:
        case FS_MGR_MNTALL_DEV_NEEDS_METADATA_ENCRYPTION:
            SetProperty("ro.crypto.type", "file");
            break;
    }
}

static bool call_vdc(const std::vector<std::string>& args, int* ret) {
    std::vector<char const*> argv;
    argv.emplace_back("/system/bin/vdc");
@@ -1366,6 +1379,7 @@ int fs_mgr_mount_all(Fstab* fstab, int mount_mode) {
                avb_handle = AvbHandle::Open();
                if (!avb_handle) {
                    LERROR << "Failed to open AvbHandle";
                    set_type_property(encryptable);
                    return FS_MGR_MNTALL_FAIL;
                }
            }
@@ -1422,6 +1436,7 @@ int fs_mgr_mount_all(Fstab* fstab, int mount_mode) {
                                   attempted_entry.mount_point},
                                  nullptr)) {
                        LERROR << "Encryption failed";
                        set_type_property(encryptable);
                        return FS_MGR_MNTALL_FAIL;
                    }
                }
@@ -1519,6 +1534,8 @@ int fs_mgr_mount_all(Fstab* fstab, int mount_mode) {
        }
    }

    set_type_property(encryptable);

#if ALLOW_ADBD_DISABLE_VERITY == 1  // "userdebug" build
    fs_mgr_overlayfs_mount_all(fstab);
#endif
+0 −4
Original line number Diff line number Diff line
@@ -570,7 +570,6 @@ static Result<void> queue_fs_event(int code, bool userdata_remount) {
            trigger_shutdown("reboot,requested-userdata-remount-on-fde-device");
        }
        SetProperty("ro.crypto.state", "encrypted");
        SetProperty("ro.crypto.type", "block");
        ActionManager::GetInstance().QueueEventTrigger("defaultcrypto");
        return {};
    } else if (code == FS_MGR_MNTALL_DEV_NOT_ENCRYPTED) {
@@ -595,7 +594,6 @@ static Result<void> queue_fs_event(int code, bool userdata_remount) {
            return Error() << "FscryptInstallKeyring() failed";
        }
        SetProperty("ro.crypto.state", "encrypted");
        SetProperty("ro.crypto.type", "file");

        // Although encrypted, we have device key, so we do not need to
        // do anything different from the nonencrypted case.
@@ -606,7 +604,6 @@ static Result<void> queue_fs_event(int code, bool userdata_remount) {
            return Error() << "FscryptInstallKeyring() failed";
        }
        SetProperty("ro.crypto.state", "encrypted");
        SetProperty("ro.crypto.type", "file");

        // Although encrypted, vold has already set the device up, so we do not need to
        // do anything different from the nonencrypted case.
@@ -617,7 +614,6 @@ static Result<void> queue_fs_event(int code, bool userdata_remount) {
            return Error() << "FscryptInstallKeyring() failed";
        }
        SetProperty("ro.crypto.state", "encrypted");
        SetProperty("ro.crypto.type", "file");

        // Although encrypted, vold has already set the device up, so we do not need to
        // do anything different from the nonencrypted case.