Skip to content

Commit 24cdbc9

Browse files
committed
add verity to EMU API
1 parent 9a3aa76 commit 24cdbc9

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

toolkit/tools/osmodifierapi/os.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ type OS struct {
1717
SELinux imagecustomizerapi.SELinux `yaml:"selinux"`
1818
Users []imagecustomizerapi.User `yaml:"users"`
1919
Overlays *[]Overlay `yaml:"overlays"`
20+
Verity *imagecustomizerapi.Verity `yaml:"verity"`
21+
RootHash string `yaml:"rootHash"`
2022
}
2123

2224
func (s *OS) IsValid() error {

toolkit/tools/pkg/osmodifierlib/modifierutils.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,45 @@ func doModifications(baseConfigPath string, osConfig *osmodifierapi.OS) error {
6161
}
6262
}
6363

64+
if osConfig.Verity != nil {
65+
66+
bootCustomizer, err := imagecustomizerlib.NewBootCustomizer(dummyChroot)
67+
if err != nil {
68+
return err
69+
}
70+
71+
err = updateDefaultGrubForVerity(osConfig.RootHash, osConfig.Verity, bootCustomizer)
72+
if err != nil {
73+
return err
74+
}
75+
76+
err = bootCustomizer.WriteToFile(dummyChroot)
77+
if err != nil {
78+
return err
79+
}
80+
}
81+
82+
return nil
83+
}
84+
85+
func updateDefaultGrubForVerity(roothash string, verity *imagecustomizerapi.Verity, bootCustomizer *imagecustomizerlib.BootCustomizer) error {
86+
87+
var err error
88+
89+
newArgs := []string{
90+
"rd.systemd.verity=1",
91+
fmt.Sprintf("roothash=%s", roothash),
92+
fmt.Sprintf("systemd.verity_root_data=%s", verity.DataPartition),
93+
fmt.Sprintf("systemd.verity_root_hash=%s", verity.HashPartition),
94+
fmt.Sprintf("systemd.verity_root_options=%s", verity.CorruptionOption),
95+
}
96+
97+
err = bootCustomizer.UpdateKernelCommandLineArgs("GRUB_CMDLINE_LINUX", []string{"rd.systemd.verity", "roothash",
98+
"systemd.verity_root_data", "systemd.verity_root_hash", "systemd.verity_root_options"}, newArgs)
99+
if err != nil {
100+
return err
101+
}
102+
64103
return nil
65104
}
66105

toolkit/tools/pkg/osmodifierlib/modifydefaultgrub.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@ import (
1414

1515
var grubArgs = []string{
1616
"rd.overlayfs",
17-
"roothash",
1817
"root",
1918
"rd.systemd.verity",
20-
"systemd.verity_root_data",
21-
"systemd.verity_root_hash",
22-
"systemd.verity_root_options",
2319
"selinux",
2420
"enforcing",
2521
}

0 commit comments

Comments
 (0)