#!/bin/bash # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh # This script generates a service that manages a dm-verity device for the chosen ROOT partition set -e cmdline=( $("${UNIT_DIR}/verity-setup.service" <<-EOF # Automatically generated by verity-generator [Unit] Description=Verity Setup for /dev/mapper/root SourcePath=/proc/cmdline DefaultDependencies=no IgnoreOnIsolate=true BindsTo=dev-mapper-root.device BindsTo=${device} After=${device} [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/sh -c '/sbin/veritysetup --restart-on-corruption create root ${hashoffset:+--hash-offset="${hashoffset}"} "${root}" "${root}" "${roothash}"' ExecStop=/sbin/veritysetup remove root EOF requires_dir="${UNIT_DIR}/dev-mapper-root.device.requires" mkdir -p "${requires_dir}" ln -sf "../verity-setup.service" "${requires_dir}/verity-setup.service" fi