blob: 1646c424ebdbd2499c14ec0fcf3402330b372e82 [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",
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",
145 "model/VolumeBase.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900146 "model/StubVolume.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 Willdenae8f06f2020-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 Willdenae8f06f2020-01-16 13:21:42 -0700242 "libkeymaster4_1support",
Janis Danisevskis1e782f02019-06-12 13:27:20 -0700243 "libutils",
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",
Zim5048b4b2019-11-19 09:16:03 +0000280 "binder/android/os/IVoldMountCallback.aidl",
Colin Crossa8388632017-11-25 08:47:19 -0800281 "binder/android/os/IVoldTaskListener.aidl",
282 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700283 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800284}