blob: dae085977fab91bbf19389c41876924e808c9c9e [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",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600147 ],
Risanaedae612017-11-27 18:01:35 +0900148 product_variables: {
149 arc: {
150 exclude_srcs: [
Risandcbd4fc2018-11-02 01:26:31 +0900151 "AppFuseUtil.cpp",
Risanaedae612017-11-27 18:01:35 +0900152 "model/ObbVolume.cpp",
153 ],
154 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900155 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900156 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900157 "libarcobbvolume",
158 ],
159 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700160 debuggable: {
161 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
162 },
Risanaedae612017-11-27 18:01:35 +0900163 },
Yifan Hong024a1242018-08-10 13:50:46 -0700164 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700165 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700166 ],
Jiyong Park8d21c922019-01-04 13:35:25 +0900167 whole_static_libs: [
168 "com.android.sysprop.apex",
169 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600170}
171
172cc_binary {
173 name: "vold",
174 defaults: [
175 "vold_default_flags",
176 "vold_default_libs",
177 ],
178
179 srcs: ["main.cpp"],
180 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900181 product_variables: {
182 arc: {
183 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900184 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900185 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900186 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900187 ],
Risanaedae612017-11-27 18:01:35 +0900188 },
189 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700190 init_rc: [
191 "vold.rc",
192 "wait_for_keymaster.rc",
193 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600194
195 required: [
196 "mke2fs",
197 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800198 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600199 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700200
201 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700202 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700203 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600204}
205
206cc_binary {
207 name: "vdc",
208 defaults: ["vold_default_flags"],
209
210 srcs: ["vdc.cpp"],
211 shared_libs: [
212 "libbase",
213 "libbinder",
214 "libcutils",
215 "libutils",
216 ],
217 static_libs: [
218 "libvold_binder",
219 ],
220 init_rc: ["vdc.rc"],
221}
222
223cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800224 name: "wait_for_keymaster",
225 defaults: ["vold_default_flags"],
226
227 srcs: [
228 "wait_for_keymaster.cpp",
229 "Keymaster.cpp",
230 ],
231 shared_libs: [
232 "libbase",
233 "libbinder",
234
235 "android.hardware.keymaster@3.0",
236 "android.hardware.keymaster@4.0",
Shawn Willden35f0f222020-01-16 13:21:42 -0700237 "android.hardware.keymaster@4.1",
Paul Crowley8f828792018-02-07 14:41:26 -0800238 "libhardware",
239 "libhardware_legacy",
240 "libhidlbase",
Paul Crowley8f828792018-02-07 14:41:26 -0800241 "libkeymaster4support",
Shawn Willden35f0f222020-01-16 13:21:42 -0700242 "libkeymaster4_1support",
Paul Crowley8f828792018-02-07 14:41:26 -0800243 ],
244}
245
246cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600247 name: "secdiscard",
248 defaults: ["vold_default_flags"],
249
250 srcs: [
251 "FileDeviceUtils.cpp",
252 "secdiscard.cpp",
253 ],
254 shared_libs: ["libbase"],
255}
256
257cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600258 name: "vold_prepare_subdirs",
259 defaults: ["vold_default_flags"],
260
Paul Crowley82b41ff2017-10-20 08:17:54 -0700261 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
262 shared_libs: [
263 "libbase",
264 "libcutils",
265 "liblogwrap",
266 "libselinux",
267 "libutils",
268 ],
269 static_libs: [
270 "libvold_binder",
271 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600272}
273
Colin Crossa8388632017-11-25 08:47:19 -0800274filegroup {
275 name: "vold_aidl",
276 srcs: [
277 "binder/android/os/IVold.aidl",
278 "binder/android/os/IVoldListener.aidl",
279 "binder/android/os/IVoldTaskListener.aidl",
280 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700281 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800282}