blob: 44e2317dd79d8e7c245480bee1165225a19bccc5 [file] [log] [blame]
Jeff Sharkeyd16dc502017-10-23 14:38:55 -06001cc_defaults {
2 name: "vold_default_flags",
3
4 cflags: [
5 "-Wall",
6 "-Werror",
7 "-Wextra",
8 "-Wno-missing-field-initializers",
9 "-Wno-unused-parameter",
10 "-Wno-unused-variable",
11 ],
12
13 clang: true,
14
15 tidy: true,
16 tidy_checks: [
17 "-*",
18 "cert-*",
19 "clang-analyzer-security*",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060020 ],
21 tidy_flags: [
22 "-warnings-as-errors=clang-analyzer-security*,cert-*",
23 ],
24}
25
26cc_defaults {
27 name: "vold_default_libs",
28
29 static_libs: [
30 "libavb",
31 "libbootloader_message",
32 "libfec",
33 "libfec_rs",
34 "libfs_mgr",
35 "libscrypt_static",
36 "libsquashfs_utils",
37 "libvold_binder",
38 ],
39 shared_libs: [
40 "android.hardware.keymaster@3.0",
Shawn Willden35351812018-01-22 09:08:32 -070041 "android.hardware.keymaster@4.0",
Daniel Rosenbergd3992492018-10-02 17:40:44 -070042 "android.hardware.boot@1.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060043 "libbase",
44 "libbinder",
45 "libcrypto",
46 "libcrypto_utils",
47 "libcutils",
48 "libdiskconfig",
49 "libext4_utils",
50 "libf2fs_sparseblock",
Eric Biggersa701c452018-10-23 13:06:55 -070051 "libfscrypt",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060052 "libhardware",
53 "libhardware_legacy",
54 "libhidlbase",
55 "libhwbinder",
Shawn Willden35351812018-01-22 09:08:32 -070056 "libkeymaster4support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060057 "libkeyutils",
58 "liblog",
59 "liblogwrap",
60 "libselinux",
61 "libsysutils",
62 "libutils",
63 ],
64}
65
66cc_library_static {
67 name: "libvold_binder",
68 defaults: ["vold_default_flags"],
69
70 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080071 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060072 ],
73 shared_libs: [
74 "libbinder",
75 "libutils",
76 ],
77 aidl: {
78 local_include_dirs: ["binder"],
79 include_dirs: ["frameworks/native/aidl/binder"],
80 export_aidl_headers: true,
81 },
82}
83
Risanaedae612017-11-27 18:01:35 +090084cc_library_headers {
85 name: "libvold_headers",
86 export_include_dirs: ["."],
87}
88
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060089// Static library factored out to support testing
90cc_library_static {
91 name: "libvold",
92 defaults: [
93 "vold_default_flags",
94 "vold_default_libs",
95 ],
96
97 srcs: [
98 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -060099 "CheckEncryption.cpp",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700100 "Checkpoint.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600101 "Devmapper.cpp",
102 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600103 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700104 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600105 "IdleMaint.cpp",
106 "KeyBuffer.cpp",
107 "KeyStorage.cpp",
108 "KeyUtil.cpp",
109 "Keymaster.cpp",
110 "Loop.cpp",
111 "MetadataCrypt.cpp",
112 "MoveStorage.cpp",
113 "NetlinkHandler.cpp",
114 "NetlinkManager.cpp",
115 "Process.cpp",
116 "ScryptParameters.cpp",
117 "Utils.cpp",
118 "VoldNativeService.cpp",
119 "VoldUtil.cpp",
120 "VolumeManager.cpp",
121 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900122 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600123 "fs/Ext4.cpp",
124 "fs/F2fs.cpp",
125 "fs/Vfat.cpp",
126 "model/Disk.cpp",
127 "model/EmulatedVolume.cpp",
128 "model/ObbVolume.cpp",
129 "model/PrivateVolume.cpp",
130 "model/PublicVolume.cpp",
131 "model/VolumeBase.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900132 "model/StubVolume.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600133 "secontext.cpp",
134 ],
Risanaedae612017-11-27 18:01:35 +0900135 product_variables: {
136 arc: {
137 exclude_srcs: [
138 "model/ObbVolume.cpp",
139 ],
140 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900141 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900142 "libarcobbvolume",
143 ],
144 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700145 debuggable: {
146 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
147 },
Risanaedae612017-11-27 18:01:35 +0900148 },
Yifan Hong024a1242018-08-10 13:50:46 -0700149 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700150 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700151 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600152}
153
154cc_binary {
155 name: "vold",
156 defaults: [
157 "vold_default_flags",
158 "vold_default_libs",
159 ],
160
161 srcs: ["main.cpp"],
162 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900163 product_variables: {
164 arc: {
165 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900166 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900167 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900168 ],
Risanaedae612017-11-27 18:01:35 +0900169 },
170 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700171 init_rc: [
172 "vold.rc",
173 "wait_for_keymaster.rc",
174 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600175
176 required: [
177 "mke2fs",
178 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800179 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600180 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700181
182 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700183 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700184 "libhidltransport",
185 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600186}
187
188cc_binary {
189 name: "vdc",
190 defaults: ["vold_default_flags"],
191
192 srcs: ["vdc.cpp"],
193 shared_libs: [
194 "libbase",
195 "libbinder",
196 "libcutils",
197 "libutils",
198 ],
199 static_libs: [
200 "libvold_binder",
201 ],
202 init_rc: ["vdc.rc"],
203}
204
205cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800206 name: "wait_for_keymaster",
207 defaults: ["vold_default_flags"],
208
209 srcs: [
210 "wait_for_keymaster.cpp",
211 "Keymaster.cpp",
212 ],
213 shared_libs: [
214 "libbase",
215 "libbinder",
216
217 "android.hardware.keymaster@3.0",
218 "android.hardware.keymaster@4.0",
219 "libhardware",
220 "libhardware_legacy",
221 "libhidlbase",
222 "libhwbinder",
223 "libkeymaster4support",
224 ],
225}
226
227cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600228 name: "secdiscard",
229 defaults: ["vold_default_flags"],
230
231 srcs: [
232 "FileDeviceUtils.cpp",
233 "secdiscard.cpp",
234 ],
235 shared_libs: ["libbase"],
236}
237
238cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600239 name: "vold_prepare_subdirs",
240 defaults: ["vold_default_flags"],
241
Paul Crowley82b41ff2017-10-20 08:17:54 -0700242 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
243 shared_libs: [
244 "libbase",
245 "libcutils",
246 "liblogwrap",
247 "libselinux",
248 "libutils",
249 ],
250 static_libs: [
251 "libvold_binder",
252 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600253}
254
Colin Crossa8388632017-11-25 08:47:19 -0800255filegroup {
256 name: "vold_aidl",
257 srcs: [
258 "binder/android/os/IVold.aidl",
259 "binder/android/os/IVoldListener.aidl",
260 "binder/android/os/IVoldTaskListener.aidl",
261 ],
262}
263
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600264subdirs = ["tests"]