blob: c2f8936fab34611a258e36bc16891cedfa31c410 [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",
134 "VoldUtil.cpp",
135 "VolumeManager.cpp",
136 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900137 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600138 "fs/Ext4.cpp",
139 "fs/F2fs.cpp",
140 "fs/Vfat.cpp",
141 "model/Disk.cpp",
142 "model/EmulatedVolume.cpp",
143 "model/ObbVolume.cpp",
144 "model/PrivateVolume.cpp",
145 "model/PublicVolume.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900146 "model/StubVolume.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800147 "model/VolumeBase.cpp",
Paul Crowley886e5722020-02-07 12:51:56 -0800148 "model/VolumeEncryption.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600149 ],
Risanaedae612017-11-27 18:01:35 +0900150 product_variables: {
151 arc: {
152 exclude_srcs: [
Risandcbd4fc2018-11-02 01:26:31 +0900153 "AppFuseUtil.cpp",
Risanaedae612017-11-27 18:01:35 +0900154 "model/ObbVolume.cpp",
155 ],
156 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900157 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900158 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900159 "libarcobbvolume",
160 ],
161 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700162 debuggable: {
163 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
164 },
Risanaedae612017-11-27 18:01:35 +0900165 },
Yifan Hong024a1242018-08-10 13:50:46 -0700166 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700167 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700168 ],
Jiyong Park8d21c922019-01-04 13:35:25 +0900169 whole_static_libs: [
170 "com.android.sysprop.apex",
Martijn Coenen816f4d92020-02-18 15:06:37 +0100171 "libc++fs"
Jiyong Park8d21c922019-01-04 13:35:25 +0900172 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600173}
174
175cc_binary {
176 name: "vold",
177 defaults: [
178 "vold_default_flags",
179 "vold_default_libs",
180 ],
181
182 srcs: ["main.cpp"],
183 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900184 product_variables: {
185 arc: {
186 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900187 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900188 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900189 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900190 ],
Risanaedae612017-11-27 18:01:35 +0900191 },
192 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700193 init_rc: [
194 "vold.rc",
195 "wait_for_keymaster.rc",
196 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600197
198 required: [
199 "mke2fs",
200 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800201 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600202 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700203
204 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700205 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700206 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600207}
208
209cc_binary {
210 name: "vdc",
211 defaults: ["vold_default_flags"],
212
213 srcs: ["vdc.cpp"],
214 shared_libs: [
215 "libbase",
216 "libbinder",
217 "libcutils",
218 "libutils",
219 ],
220 static_libs: [
221 "libvold_binder",
222 ],
223 init_rc: ["vdc.rc"],
224}
225
226cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800227 name: "wait_for_keymaster",
228 defaults: ["vold_default_flags"],
229
230 srcs: [
231 "wait_for_keymaster.cpp",
232 "Keymaster.cpp",
233 ],
234 shared_libs: [
235 "libbase",
236 "libbinder",
237
238 "android.hardware.keymaster@3.0",
239 "android.hardware.keymaster@4.0",
Shawn Willdenae8f06f2020-01-16 13:21:42 -0700240 "android.hardware.keymaster@4.1",
Paul Crowley8f828792018-02-07 14:41:26 -0800241 "libhardware",
242 "libhardware_legacy",
243 "libhidlbase",
Paul Crowley8f828792018-02-07 14:41:26 -0800244 "libkeymaster4support",
Shawn Willdenae8f06f2020-01-16 13:21:42 -0700245 "libkeymaster4_1support",
Janis Danisevskis1e782f02019-06-12 13:27:20 -0700246 "libutils",
Paul Crowley8f828792018-02-07 14:41:26 -0800247 ],
248}
249
250cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600251 name: "secdiscard",
252 defaults: ["vold_default_flags"],
253
254 srcs: [
255 "FileDeviceUtils.cpp",
256 "secdiscard.cpp",
257 ],
258 shared_libs: ["libbase"],
259}
260
261cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600262 name: "vold_prepare_subdirs",
263 defaults: ["vold_default_flags"],
264
Paul Crowley82b41ff2017-10-20 08:17:54 -0700265 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
266 shared_libs: [
267 "libbase",
268 "libcutils",
269 "liblogwrap",
270 "libselinux",
271 "libutils",
272 ],
273 static_libs: [
274 "libvold_binder",
275 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600276}
277
Colin Crossa8388632017-11-25 08:47:19 -0800278filegroup {
279 name: "vold_aidl",
280 srcs: [
281 "binder/android/os/IVold.aidl",
282 "binder/android/os/IVoldListener.aidl",
Zim5048b4b2019-11-19 09:16:03 +0000283 "binder/android/os/IVoldMountCallback.aidl",
Colin Crossa8388632017-11-25 08:47:19 -0800284 "binder/android/os/IVoldTaskListener.aidl",
285 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700286 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800287}