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

Commit e3eb7c3a authored by Paul Crowley's avatar Paul Crowley Committed by Automerger Merge Worker
Browse files

Merge "Set ro.crypto.type even on failure" am: 5350746a am: 4fd4d4b9

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1400948

Change-Id: I0e23434ca2c0d1ddc024ebcb0e9445b56f788574
parents 9bab9947 4fd4d4b9
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -996,6 +996,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");
@@ -1386,6 +1399,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;
                }
            }
@@ -1442,6 +1456,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;
                    }
                }
@@ -1539,6 +1554,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.