blob: 9d87f684660801ea2e3bc15be011eed221592bef [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: [
31 "libavb",
32 "libbootloader_message",
David Andersonb9224732019-05-13 13:02:54 -070033 "libdm",
David Anderson10de69d2019-06-27 13:40:09 -070034 "libext2_uuid",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060035 "libfec",
36 "libfec_rs",
Bowgo Tsai549fd0e2018-11-29 22:15:08 +080037 "libfs_avb",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060038 "libfs_mgr",
39 "libscrypt_static",
40 "libsquashfs_utils",
41 "libvold_binder",
42 ],
43 shared_libs: [
44 "android.hardware.keymaster@3.0",
Shawn Willden35351812018-01-22 09:08:32 -070045 "android.hardware.keymaster@4.0",
Shawn Willden35f0f222020-01-16 13:21:42 -070046 "android.hardware.keymaster@4.1",
Daniel Rosenbergd3992492018-10-02 17:40:44 -070047 "android.hardware.boot@1.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060048 "libbase",
49 "libbinder",
50 "libcrypto",
51 "libcrypto_utils",
52 "libcutils",
53 "libdiskconfig",
54 "libext4_utils",
55 "libf2fs_sparseblock",
56 "libhardware",
57 "libhardware_legacy",
Songchun Fanab55cec2019-12-02 10:50:12 -080058 "libincfs",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060059 "libhidlbase",
Shawn Willden35351812018-01-22 09:08:32 -070060 "libkeymaster4support",
Shawn Willden35f0f222020-01-16 13:21:42 -070061 "libkeymaster4_1support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060062 "libkeyutils",
63 "liblog",
64 "liblogwrap",
65 "libselinux",
66 "libsysutils",
67 "libutils",
68 ],
69}
70
71cc_library_static {
72 name: "libvold_binder",
73 defaults: ["vold_default_flags"],
74
75 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080076 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060077 ],
78 shared_libs: [
79 "libbinder",
80 "libutils",
81 ],
82 aidl: {
83 local_include_dirs: ["binder"],
Songchun Fanab55cec2019-12-02 10:50:12 -080084 include_dirs: [
85 "frameworks/native/aidl/binder",
Jiyong Park50c3ab62020-01-20 12:37:52 +090086 "frameworks/base/core/java",
Songchun Fanab55cec2019-12-02 10:50:12 -080087 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060088 export_aidl_headers: true,
89 },
Songchun Fanab55cec2019-12-02 10:50:12 -080090 whole_static_libs: [
91 "libincremental_aidl-cpp",
92 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060093}
94
Risanaedae612017-11-27 18:01:35 +090095cc_library_headers {
96 name: "libvold_headers",
Tao Baob1bbc702019-10-01 23:31:17 -070097 recovery_available: true,
Risanaedae612017-11-27 18:01:35 +090098 export_include_dirs: ["."],
99}
100
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600101// Static library factored out to support testing
102cc_library_static {
103 name: "libvold",
104 defaults: [
105 "vold_default_flags",
106 "vold_default_libs",
107 ],
108
109 srcs: [
Risanac02a482018-10-31 21:59:47 -0600110 "AppFuseUtil.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600111 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600112 "CheckEncryption.cpp",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700113 "Checkpoint.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800114 "CryptoType.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600115 "Devmapper.cpp",
116 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600117 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700118 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600119 "IdleMaint.cpp",
120 "KeyBuffer.cpp",
121 "KeyStorage.cpp",
122 "KeyUtil.cpp",
123 "Keymaster.cpp",
124 "Loop.cpp",
125 "MetadataCrypt.cpp",
126 "MoveStorage.cpp",
127 "NetlinkHandler.cpp",
128 "NetlinkManager.cpp",
129 "Process.cpp",
130 "ScryptParameters.cpp",
131 "Utils.cpp",
132 "VoldNativeService.cpp",
133 "VoldUtil.cpp",
134 "VolumeManager.cpp",
135 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900136 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600137 "fs/Ext4.cpp",
138 "fs/F2fs.cpp",
139 "fs/Vfat.cpp",
140 "model/Disk.cpp",
141 "model/EmulatedVolume.cpp",
142 "model/ObbVolume.cpp",
143 "model/PrivateVolume.cpp",
144 "model/PublicVolume.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900145 "model/StubVolume.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800146 "model/VolumeBase.cpp",
Paul Crowley886e5722020-02-07 12:51:56 -0800147 "model/VolumeEncryption.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600148 ],
Risanaedae612017-11-27 18:01:35 +0900149 product_variables: {
150 arc: {
151 exclude_srcs: [
Risandcbd4fc2018-11-02 01:26:31 +0900152 "AppFuseUtil.cpp",
Risanaedae612017-11-27 18:01:35 +0900153 "model/ObbVolume.cpp",
154 ],
155 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900156 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900157 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900158 "libarcobbvolume",
159 ],
160 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700161 debuggable: {
162 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
163 },
Risanaedae612017-11-27 18:01:35 +0900164 },
Yifan Hong024a1242018-08-10 13:50:46 -0700165 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700166 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700167 ],
Jiyong Park8d21c922019-01-04 13:35:25 +0900168 whole_static_libs: [
169 "com.android.sysprop.apex",
170 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600171}
172
173cc_binary {
174 name: "vold",
175 defaults: [
176 "vold_default_flags",
177 "vold_default_libs",
178 ],
179
180 srcs: ["main.cpp"],
181 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900182 product_variables: {
183 arc: {
184 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900185 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900186 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900187 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900188 ],
Risanaedae612017-11-27 18:01:35 +0900189 },
190 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700191 init_rc: [
192 "vold.rc",
193 "wait_for_keymaster.rc",
194 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600195
196 required: [
197 "mke2fs",
198 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800199 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600200 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700201
202 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700203 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700204 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600205}
206
207cc_binary {
208 name: "vdc",
209 defaults: ["vold_default_flags"],
210
211 srcs: ["vdc.cpp"],
212 shared_libs: [
213 "libbase",
214 "libbinder",
215 "libcutils",
216 "libutils",
217 ],
218 static_libs: [
219 "libvold_binder",
220 ],
221 init_rc: ["vdc.rc"],
222}
223
224cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800225 name: "wait_for_keymaster",
226 defaults: ["vold_default_flags"],
227
228 srcs: [
229 "wait_for_keymaster.cpp",
230 "Keymaster.cpp",
231 ],
232 shared_libs: [
233 "libbase",
234 "libbinder",
235
236 "android.hardware.keymaster@3.0",
237 "android.hardware.keymaster@4.0",
Shawn Willden35f0f222020-01-16 13:21:42 -0700238 "android.hardware.keymaster@4.1",
Paul Crowley8f828792018-02-07 14:41:26 -0800239 "libhardware",
240 "libhardware_legacy",
241 "libhidlbase",
Paul Crowley8f828792018-02-07 14:41:26 -0800242 "libkeymaster4support",
Shawn Willden35f0f222020-01-16 13:21:42 -0700243 "libkeymaster4_1support",
Paul Crowley8f828792018-02-07 14:41:26 -0800244 ],
245}
246
247cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600248 name: "secdiscard",
249 defaults: ["vold_default_flags"],
250
251 srcs: [
252 "FileDeviceUtils.cpp",
253 "secdiscard.cpp",
254 ],
255 shared_libs: ["libbase"],
256}
257
258cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600259 name: "vold_prepare_subdirs",
260 defaults: ["vold_default_flags"],
261
Paul Crowley82b41ff2017-10-20 08:17:54 -0700262 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
263 shared_libs: [
264 "libbase",
265 "libcutils",
266 "liblogwrap",
267 "libselinux",
268 "libutils",
269 ],
270 static_libs: [
271 "libvold_binder",
272 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600273}
274
Colin Crossa8388632017-11-25 08:47:19 -0800275filegroup {
276 name: "vold_aidl",
277 srcs: [
278 "binder/android/os/IVold.aidl",
279 "binder/android/os/IVoldListener.aidl",
280 "binder/android/os/IVoldTaskListener.aidl",
281 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700282 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800283}