blob: 039f60e20dba9127427ca5e4ff6130f03e3dee0d [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",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700112 "Checkpoint.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800113 "CryptoType.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600114 "Devmapper.cpp",
115 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600116 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700117 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600118 "IdleMaint.cpp",
119 "KeyBuffer.cpp",
120 "KeyStorage.cpp",
121 "KeyUtil.cpp",
122 "Keymaster.cpp",
123 "Loop.cpp",
124 "MetadataCrypt.cpp",
125 "MoveStorage.cpp",
126 "NetlinkHandler.cpp",
127 "NetlinkManager.cpp",
128 "Process.cpp",
129 "ScryptParameters.cpp",
130 "Utils.cpp",
131 "VoldNativeService.cpp",
Yurii Zubrytskyi9e7482e2020-03-24 16:23:51 -0700132 "VoldNativeServiceValidation.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600133 "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 ],
Mark Salyzyn865086d2020-07-17 08:17:50 -0700149 product_variables: {
150 debuggable: {
151 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
152 },
153 },
Yifan Hong024a1242018-08-10 13:50:46 -0700154 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700155 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700156 ],
Jiyong Park8d21c922019-01-04 13:35:25 +0900157 whole_static_libs: [
158 "com.android.sysprop.apex",
159 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600160}
161
162cc_binary {
163 name: "vold",
164 defaults: [
165 "vold_default_flags",
166 "vold_default_libs",
167 ],
168
169 srcs: ["main.cpp"],
170 static_libs: ["libvold"],
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 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600185}
186
187cc_binary {
188 name: "vdc",
189 defaults: ["vold_default_flags"],
190
191 srcs: ["vdc.cpp"],
192 shared_libs: [
193 "libbase",
194 "libbinder",
195 "libcutils",
196 "libutils",
197 ],
198 static_libs: [
199 "libvold_binder",
200 ],
201 init_rc: ["vdc.rc"],
202}
203
204cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800205 name: "wait_for_keymaster",
206 defaults: ["vold_default_flags"],
207
208 srcs: [
209 "wait_for_keymaster.cpp",
210 "Keymaster.cpp",
211 ],
212 shared_libs: [
213 "libbase",
214 "libbinder",
215
216 "android.hardware.keymaster@3.0",
217 "android.hardware.keymaster@4.0",
Shawn Willden35f0f222020-01-16 13:21:42 -0700218 "android.hardware.keymaster@4.1",
Paul Crowley8f828792018-02-07 14:41:26 -0800219 "libhardware",
220 "libhardware_legacy",
221 "libhidlbase",
Paul Crowley8f828792018-02-07 14:41:26 -0800222 "libkeymaster4support",
Shawn Willden35f0f222020-01-16 13:21:42 -0700223 "libkeymaster4_1support",
Paul Crowley8f828792018-02-07 14:41:26 -0800224 ],
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 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700262 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800263}