blob: f565732eab2e7612fdaef5f953ed84e48693d9e5 [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",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060034 "libfec",
35 "libfec_rs",
Bowgo Tsai549fd0e2018-11-29 22:15:08 +080036 "libfs_avb",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060037 "libfs_mgr",
38 "libscrypt_static",
39 "libsquashfs_utils",
40 "libvold_binder",
41 ],
42 shared_libs: [
43 "android.hardware.keymaster@3.0",
Shawn Willden35351812018-01-22 09:08:32 -070044 "android.hardware.keymaster@4.0",
Daniel Rosenbergd3992492018-10-02 17:40:44 -070045 "android.hardware.boot@1.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060046 "libbase",
47 "libbinder",
48 "libcrypto",
49 "libcrypto_utils",
50 "libcutils",
51 "libdiskconfig",
52 "libext4_utils",
53 "libf2fs_sparseblock",
Eric Biggersa701c452018-10-23 13:06:55 -070054 "libfscrypt",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060055 "libhardware",
56 "libhardware_legacy",
57 "libhidlbase",
58 "libhwbinder",
Shawn Willden35351812018-01-22 09:08:32 -070059 "libkeymaster4support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060060 "libkeyutils",
61 "liblog",
62 "liblogwrap",
63 "libselinux",
64 "libsysutils",
65 "libutils",
66 ],
67}
68
69cc_library_static {
70 name: "libvold_binder",
71 defaults: ["vold_default_flags"],
72
73 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080074 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060075 ],
76 shared_libs: [
77 "libbinder",
78 "libutils",
79 ],
80 aidl: {
81 local_include_dirs: ["binder"],
82 include_dirs: ["frameworks/native/aidl/binder"],
83 export_aidl_headers: true,
84 },
85}
86
Risanaedae612017-11-27 18:01:35 +090087cc_library_headers {
88 name: "libvold_headers",
89 export_include_dirs: ["."],
90}
91
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060092// Static library factored out to support testing
93cc_library_static {
94 name: "libvold",
95 defaults: [
96 "vold_default_flags",
97 "vold_default_libs",
98 ],
99
100 srcs: [
Risanac02a482018-10-31 21:59:47 -0600101 "AppFuseUtil.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600102 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600103 "CheckEncryption.cpp",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700104 "Checkpoint.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600105 "Devmapper.cpp",
106 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600107 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700108 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600109 "IdleMaint.cpp",
110 "KeyBuffer.cpp",
111 "KeyStorage.cpp",
112 "KeyUtil.cpp",
113 "Keymaster.cpp",
114 "Loop.cpp",
115 "MetadataCrypt.cpp",
116 "MoveStorage.cpp",
117 "NetlinkHandler.cpp",
118 "NetlinkManager.cpp",
119 "Process.cpp",
120 "ScryptParameters.cpp",
121 "Utils.cpp",
122 "VoldNativeService.cpp",
123 "VoldUtil.cpp",
124 "VolumeManager.cpp",
125 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900126 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600127 "fs/Ext4.cpp",
128 "fs/F2fs.cpp",
129 "fs/Vfat.cpp",
130 "model/Disk.cpp",
131 "model/EmulatedVolume.cpp",
132 "model/ObbVolume.cpp",
133 "model/PrivateVolume.cpp",
134 "model/PublicVolume.cpp",
135 "model/VolumeBase.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900136 "model/StubVolume.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600137 ],
Risanaedae612017-11-27 18:01:35 +0900138 product_variables: {
139 arc: {
140 exclude_srcs: [
Risandcbd4fc2018-11-02 01:26:31 +0900141 "AppFuseUtil.cpp",
Risanaedae612017-11-27 18:01:35 +0900142 "model/ObbVolume.cpp",
143 ],
144 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900145 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900146 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900147 "libarcobbvolume",
148 ],
149 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700150 debuggable: {
151 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
152 },
Risanaedae612017-11-27 18:01:35 +0900153 },
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"],
Risanaedae612017-11-27 18:01:35 +0900171 product_variables: {
172 arc: {
173 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900174 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900175 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900176 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900177 ],
Risanaedae612017-11-27 18:01:35 +0900178 },
179 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700180 init_rc: [
181 "vold.rc",
182 "wait_for_keymaster.rc",
183 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600184
185 required: [
186 "mke2fs",
187 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800188 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600189 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700190
191 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700192 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700193 "libhidltransport",
194 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600195}
196
197cc_binary {
198 name: "vdc",
199 defaults: ["vold_default_flags"],
200
201 srcs: ["vdc.cpp"],
202 shared_libs: [
203 "libbase",
204 "libbinder",
205 "libcutils",
206 "libutils",
207 ],
208 static_libs: [
209 "libvold_binder",
210 ],
211 init_rc: ["vdc.rc"],
212}
213
214cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800215 name: "wait_for_keymaster",
216 defaults: ["vold_default_flags"],
217
218 srcs: [
219 "wait_for_keymaster.cpp",
220 "Keymaster.cpp",
221 ],
222 shared_libs: [
223 "libbase",
224 "libbinder",
225
226 "android.hardware.keymaster@3.0",
227 "android.hardware.keymaster@4.0",
228 "libhardware",
229 "libhardware_legacy",
230 "libhidlbase",
231 "libhwbinder",
232 "libkeymaster4support",
233 ],
234}
235
236cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600237 name: "secdiscard",
238 defaults: ["vold_default_flags"],
239
240 srcs: [
241 "FileDeviceUtils.cpp",
242 "secdiscard.cpp",
243 ],
244 shared_libs: ["libbase"],
245}
246
247cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600248 name: "vold_prepare_subdirs",
249 defaults: ["vold_default_flags"],
250
Paul Crowley82b41ff2017-10-20 08:17:54 -0700251 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
252 shared_libs: [
253 "libbase",
254 "libcutils",
255 "liblogwrap",
256 "libselinux",
257 "libutils",
258 ],
259 static_libs: [
260 "libvold_binder",
261 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600262}
263
Colin Crossa8388632017-11-25 08:47:19 -0800264filegroup {
265 name: "vold_aidl",
266 srcs: [
267 "binder/android/os/IVold.aidl",
268 "binder/android/os/IVoldListener.aidl",
269 "binder/android/os/IVoldTaskListener.aidl",
270 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700271 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800272}