blob: aadb0929c8db87f9f584f738de765991f5d77032 [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*",
Nick Kralevichd78fb532019-03-29 16:07:58 -070020 "android-*",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060021 ],
22 tidy_flags: [
23 "-warnings-as-errors=clang-analyzer-security*,cert-*",
24 ],
25}
26
27cc_defaults {
28 name: "vold_default_libs",
29
30 static_libs: [
Narayan Kamath02efdf52019-11-27 10:53:51 +000031 "libasync_safe",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060032 "libavb",
33 "libbootloader_message",
David Andersonb9224732019-05-13 13:02:54 -070034 "libdm",
David Anderson10de69d2019-06-27 13:40:09 -070035 "libext2_uuid",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060036 "libfec",
37 "libfec_rs",
Bowgo Tsai549fd0e2018-11-29 22:15:08 +080038 "libfs_avb",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060039 "libfs_mgr",
40 "libscrypt_static",
41 "libsquashfs_utils",
42 "libvold_binder",
43 ],
44 shared_libs: [
45 "android.hardware.keymaster@3.0",
Shawn Willden35351812018-01-22 09:08:32 -070046 "android.hardware.keymaster@4.0",
Shawn Willdenae8f06f2020-01-16 13:21:42 -070047 "android.hardware.keymaster@4.1",
Daniel Rosenbergd3992492018-10-02 17:40:44 -070048 "android.hardware.boot@1.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060049 "libbase",
50 "libbinder",
51 "libcrypto",
52 "libcrypto_utils",
53 "libcutils",
54 "libdiskconfig",
55 "libext4_utils",
56 "libf2fs_sparseblock",
57 "libhardware",
58 "libhardware_legacy",
Songchun Fanab55cec2019-12-02 10:50:12 -080059 "libincfs",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060060 "libhidlbase",
Shawn Willden35351812018-01-22 09:08:32 -070061 "libkeymaster4support",
Shawn Willdenae8f06f2020-01-16 13:21:42 -070062 "libkeymaster4_1support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060063 "libkeyutils",
64 "liblog",
65 "liblogwrap",
66 "libselinux",
67 "libsysutils",
68 "libutils",
69 ],
70}
71
72cc_library_static {
73 name: "libvold_binder",
74 defaults: ["vold_default_flags"],
75
76 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080077 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060078 ],
79 shared_libs: [
80 "libbinder",
81 "libutils",
82 ],
83 aidl: {
84 local_include_dirs: ["binder"],
Songchun Fanab55cec2019-12-02 10:50:12 -080085 include_dirs: [
86 "frameworks/native/aidl/binder",
Jiyong Park50c3ab62020-01-20 12:37:52 +090087 "frameworks/base/core/java",
Songchun Fanab55cec2019-12-02 10:50:12 -080088 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060089 export_aidl_headers: true,
90 },
Songchun Fanab55cec2019-12-02 10:50:12 -080091 whole_static_libs: [
92 "libincremental_aidl-cpp",
93 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060094}
95
Risanaedae612017-11-27 18:01:35 +090096cc_library_headers {
97 name: "libvold_headers",
Tao Baob1bbc702019-10-01 23:31:17 -070098 recovery_available: true,
Risanaedae612017-11-27 18:01:35 +090099 export_include_dirs: ["."],
100}
101
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600102// Static library factored out to support testing
103cc_library_static {
104 name: "libvold",
105 defaults: [
106 "vold_default_flags",
107 "vold_default_libs",
108 ],
109
110 srcs: [
Risanac02a482018-10-31 21:59:47 -0600111 "AppFuseUtil.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600112 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600113 "CheckEncryption.cpp",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700114 "Checkpoint.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800115 "CryptoType.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600116 "Devmapper.cpp",
117 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600118 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700119 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600120 "IdleMaint.cpp",
121 "KeyBuffer.cpp",
122 "KeyStorage.cpp",
123 "KeyUtil.cpp",
124 "Keymaster.cpp",
125 "Loop.cpp",
126 "MetadataCrypt.cpp",
127 "MoveStorage.cpp",
128 "NetlinkHandler.cpp",
129 "NetlinkManager.cpp",
130 "Process.cpp",
131 "ScryptParameters.cpp",
132 "Utils.cpp",
133 "VoldNativeService.cpp",
Yurii Zubrytskyi131365a2020-03-24 23:49:02 -0700134 "VoldNativeServiceValidation.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600135 "VoldUtil.cpp",
136 "VolumeManager.cpp",
137 "cryptfs.cpp",
Tuxera Inc0bf909b2021-07-27 21:17:09 +0300138 "fs/Apfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900139 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600140 "fs/Ext4.cpp",
141 "fs/F2fs.cpp",
Tuxera Inc0bf909b2021-07-27 21:17:09 +0300142 "fs/Filesystems.cpp",
143 "fs/HfsPlus.cpp",
144 "fs/Ntfs.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600145 "fs/Vfat.cpp",
146 "model/Disk.cpp",
147 "model/EmulatedVolume.cpp",
148 "model/ObbVolume.cpp",
149 "model/PrivateVolume.cpp",
150 "model/PublicVolume.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900151 "model/StubVolume.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800152 "model/VolumeBase.cpp",
Paul Crowley886e5722020-02-07 12:51:56 -0800153 "model/VolumeEncryption.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600154 ],
Risanaedae612017-11-27 18:01:35 +0900155 product_variables: {
156 arc: {
157 exclude_srcs: [
158 "model/ObbVolume.cpp",
159 ],
160 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900161 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900162 "libarcobbvolume",
163 ],
164 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700165 debuggable: {
166 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
167 },
AnilKumar Chimata98dc8352018-05-11 00:25:09 +0530168 device_support_hwfde: {
169 cflags: ["-DCONFIG_HW_DISK_ENCRYPTION"],
170 header_libs: ["libcryptfs_hw_headers"],
171 shared_libs: ["libcryptfs_hw"],
172 },
AnilKumar Chimatad08106a2018-02-11 17:11:24 +0530173 device_support_hwfde_perf: {
174 cflags: ["-DCONFIG_HW_DISK_ENCRYPT_PERF"],
175 },
Risanaedae612017-11-27 18:01:35 +0900176 },
Yifan Hong024a1242018-08-10 13:50:46 -0700177 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700178 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700179 ],
Jiyong Park8d21c922019-01-04 13:35:25 +0900180 whole_static_libs: [
181 "com.android.sysprop.apex",
Martijn Coenen816f4d92020-02-18 15:06:37 +0100182 "libc++fs"
Jiyong Park8d21c922019-01-04 13:35:25 +0900183 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600184}
185
186cc_binary {
187 name: "vold",
188 defaults: [
189 "vold_default_flags",
190 "vold_default_libs",
191 ],
192
193 srcs: ["main.cpp"],
194 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900195 product_variables: {
196 arc: {
197 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900198 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900199 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900200 ],
Risanaedae612017-11-27 18:01:35 +0900201 },
AnilKumar Chimata98dc8352018-05-11 00:25:09 +0530202 device_support_hwfde: {
203 shared_libs: ["libcryptfs_hw"],
204 },
Risanaedae612017-11-27 18:01:35 +0900205 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700206 init_rc: [
207 "vold.rc",
208 "wait_for_keymaster.rc",
209 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600210
211 required: [
212 "mke2fs",
213 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800214 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600215 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700216
217 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700218 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700219 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600220}
221
222cc_binary {
223 name: "vdc",
224 defaults: ["vold_default_flags"],
225
226 srcs: ["vdc.cpp"],
227 shared_libs: [
228 "libbase",
229 "libbinder",
230 "libcutils",
231 "libutils",
232 ],
233 static_libs: [
234 "libvold_binder",
235 ],
236 init_rc: ["vdc.rc"],
237}
238
239cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800240 name: "wait_for_keymaster",
241 defaults: ["vold_default_flags"],
242
243 srcs: [
244 "wait_for_keymaster.cpp",
245 "Keymaster.cpp",
246 ],
247 shared_libs: [
248 "libbase",
249 "libbinder",
250
251 "android.hardware.keymaster@3.0",
252 "android.hardware.keymaster@4.0",
Shawn Willdenae8f06f2020-01-16 13:21:42 -0700253 "android.hardware.keymaster@4.1",
Paul Crowley8f828792018-02-07 14:41:26 -0800254 "libhardware",
255 "libhardware_legacy",
256 "libhidlbase",
Paul Crowley8f828792018-02-07 14:41:26 -0800257 "libkeymaster4support",
Shawn Willdenae8f06f2020-01-16 13:21:42 -0700258 "libkeymaster4_1support",
Janis Danisevskis1e782f02019-06-12 13:27:20 -0700259 "libutils",
Paul Crowley8f828792018-02-07 14:41:26 -0800260 ],
261}
262
263cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600264 name: "secdiscard",
265 defaults: ["vold_default_flags"],
266
267 srcs: [
268 "FileDeviceUtils.cpp",
269 "secdiscard.cpp",
270 ],
271 shared_libs: ["libbase"],
272}
273
274cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600275 name: "vold_prepare_subdirs",
276 defaults: ["vold_default_flags"],
277
Paul Crowley82b41ff2017-10-20 08:17:54 -0700278 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
279 shared_libs: [
280 "libbase",
281 "libcutils",
282 "liblogwrap",
283 "libselinux",
284 "libutils",
285 ],
286 static_libs: [
287 "libvold_binder",
288 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600289}
290
Colin Crossa8388632017-11-25 08:47:19 -0800291filegroup {
292 name: "vold_aidl",
293 srcs: [
294 "binder/android/os/IVold.aidl",
295 "binder/android/os/IVoldListener.aidl",
Zim5048b4b2019-11-19 09:16:03 +0000296 "binder/android/os/IVoldMountCallback.aidl",
Colin Crossa8388632017-11-25 08:47:19 -0800297 "binder/android/os/IVoldTaskListener.aidl",
298 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700299 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800300}