blob: d05ea8641c4a80a35b019eb13b1c2bad8574ccfe [file] [log] [blame]
Shikha Panwar55957112022-08-22 13:54:33 +00001package {
2 default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
5rust_binary_host {
6 name: "initrd_bootconfig",
7 srcs: ["src/main.rs"],
8 rustlibs: [
9 "libanyhow",
Victor Hsiehb5bcfab2022-09-12 13:06:26 -070010 "libclap",
Shikha Panwar55957112022-08-22 13:54:33 +000011 ],
12 prefer_rlib: true,
13}
Shikha Panwarf46f96b2022-08-22 14:11:14 +000014
15python_binary_host {
16 name: "gen_vbmeta_bootconfig",
17 srcs: ["gen_vbmeta_bootconfig.py"],
18}
19
20genrule {
21 name: "microdroid_initrd_gen",
22 srcs: [
23 ":microdroid_ramdisk",
24 ":microdroid_vendor_ramdisk",
25 ],
26 out: ["microdroid_initrd.img"],
27 cmd: "cat $(in) > $(out)",
28}
29
30// This contains vbmeta hashes & related (boot)configs which are passed to kernel/init
31genrule {
32 name: "microdroid_vbmeta_bootconfig_gen",
33 srcs: [":microdroid_vbmeta"],
34 out: ["bootconfig_microdroid_vbmeta"],
35 tools: [
36 "gen_vbmeta_bootconfig",
37 "avbtool",
38 ],
39 cmd: "$(location gen_vbmeta_bootconfig) $(location avbtool) $(in) > $(out)",
40}
41
42bootconfigs_arm64 = [
43 ":microdroid_bootconfig_arm64_gen",
44 ":microdroid_vbmeta_bootconfig_gen",
45]
46
47bootconfigs_x86_64 = [
48 ":microdroid_bootconfig_x86_64_gen",
49 ":microdroid_vbmeta_bootconfig_gen",
50]
51
52genrule {
Seungjae Yooe85831e2022-12-12 09:34:58 +090053 name: "microdroid_initrd_debuggable_arm64",
Shikha Panwarf46f96b2022-08-22 14:11:14 +000054 tools: ["initrd_bootconfig"],
55 srcs: [
56 ":microdroid_initrd_gen",
Seungjae Yooe85831e2022-12-12 09:34:58 +090057 ":microdroid_bootconfig_debuggable_src",
Shikha Panwarf46f96b2022-08-22 14:11:14 +000058 ] + bootconfigs_arm64,
Seungjae Yooe85831e2022-12-12 09:34:58 +090059 out: ["microdroid_initrd_debuggable_arm64"],
Shikha Panwarf46f96b2022-08-22 14:11:14 +000060 cmd: "$(location initrd_bootconfig) --output $(out) $(in)",
61}
62
63genrule {
Seungjae Yooe85831e2022-12-12 09:34:58 +090064 name: "microdroid_initrd_debuggable_x86_64",
Shikha Panwarf46f96b2022-08-22 14:11:14 +000065 tools: ["initrd_bootconfig"],
66 srcs: [
67 ":microdroid_initrd_gen",
Seungjae Yooe85831e2022-12-12 09:34:58 +090068 ":microdroid_bootconfig_debuggable_src",
Shikha Panwarf46f96b2022-08-22 14:11:14 +000069 ] + bootconfigs_x86_64,
Seungjae Yooe85831e2022-12-12 09:34:58 +090070 out: ["microdroid_initrd_debuggable_x86_64"],
Shikha Panwarf46f96b2022-08-22 14:11:14 +000071 cmd: "$(location initrd_bootconfig) --output $(out) $(in)",
72}
73
74genrule {
Shikha Panwarf46f96b2022-08-22 14:11:14 +000075 name: "microdroid_initrd_normal_arm64",
76 tools: ["initrd_bootconfig"],
77 srcs: [
78 ":microdroid_initrd_gen",
79 ":microdroid_bootconfig_normal_src",
80 ] + bootconfigs_arm64,
81 out: ["microdroid_initrd_normal_arm64"],
82 cmd: "$(location initrd_bootconfig) --output $(out) $(in)",
83}
84
85genrule {
86 name: "microdroid_initrd_normal_x86_64",
87 tools: ["initrd_bootconfig"],
88 srcs: [
89 ":microdroid_initrd_gen",
90 ":microdroid_bootconfig_normal_src",
91 ] + bootconfigs_x86_64,
92 out: ["microdroid_initrd_normal_x86_64"],
93 cmd: "$(location initrd_bootconfig) --output $(out) $(in)",
94}
95
96prebuilt_etc {
Seungjae Yooe85831e2022-12-12 09:34:58 +090097 name: "microdroid_initrd_debuggable",
Shikha Panwarf46f96b2022-08-22 14:11:14 +000098 // We don't have ramdisk for architectures other than x86_64 & arm64
99 src: "empty_file",
100 arch: {
101 x86_64: {
Seungjae Yooe85831e2022-12-12 09:34:58 +0900102 src: ":microdroid_initrd_debuggable_x86_64",
Shikha Panwarf46f96b2022-08-22 14:11:14 +0000103 },
104 arm64: {
Seungjae Yooe85831e2022-12-12 09:34:58 +0900105 src: ":microdroid_initrd_debuggable_arm64",
Shikha Panwarf46f96b2022-08-22 14:11:14 +0000106 },
107 },
Seungjae Yooe85831e2022-12-12 09:34:58 +0900108 filename: "microdroid_initrd_debuggable.img",
Shikha Panwarf46f96b2022-08-22 14:11:14 +0000109}
110
111prebuilt_etc {
Shikha Panwarf46f96b2022-08-22 14:11:14 +0000112 name: "microdroid_initrd_normal",
113 // We don't have ramdisk for architectures other than x86_64 & arm64
114 src: "empty_file",
115 arch: {
116 x86_64: {
117 src: ":microdroid_initrd_normal_x86_64",
118 },
119 arm64: {
120 src: ":microdroid_initrd_normal_arm64",
121 },
122 },
123 filename: "microdroid_initrd_normal.img",
124}
Jiyong Parke2bd27e2022-12-05 17:14:08 +0900125
126genrule {
127 name: "microdroid_initrd_normal.sha256",
128 srcs: [":microdroid_initrd_normal"],
129 cmd: "cat $(in) | sha256sum | cut -d' ' -f1 > $(out)",
130 out: ["hash"],
131}
132
133genrule {
Seungjae Yooe85831e2022-12-12 09:34:58 +0900134 name: "microdroid_initrd_debuggable.sha256",
135 srcs: [":microdroid_initrd_debuggable"],
Jiyong Parke2bd27e2022-12-05 17:14:08 +0900136 cmd: "cat $(in) | sha256sum | cut -d' ' -f1 > $(out)",
137 out: ["hash"],
138}
139
140genrule {
141 name: "microdroid_initrd_hashes",
142 srcs: [
143 ":microdroid_initrd_normal.sha256",
Seungjae Yooe85831e2022-12-12 09:34:58 +0900144 ":microdroid_initrd_debuggable.sha256",
Jiyong Parke2bd27e2022-12-05 17:14:08 +0900145 ],
146 // join the hashes with commas
147 cmd: "cat $(in) | tr '\n' ',' > $(out) && truncate -s -1 $(out)",
148 out: ["output"],
149}