blob: fd7f0674dde8330c3afb5d60b8d31652e900386d [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*",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060020 ],
21 tidy_flags: [
22 "-warnings-as-errors=clang-analyzer-security*,cert-*",
23 ],
24}
25
26cc_defaults {
27 name: "vold_default_libs",
28
29 static_libs: [
30 "libavb",
31 "libbootloader_message",
32 "libfec",
33 "libfec_rs",
Bowgo Tsai549fd0e2018-11-29 22:15:08 +080034 "libfs_avb",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060035 "libfs_mgr",
36 "libscrypt_static",
37 "libsquashfs_utils",
38 "libvold_binder",
39 ],
40 shared_libs: [
41 "android.hardware.keymaster@3.0",
Shawn Willden35351812018-01-22 09:08:32 -070042 "android.hardware.keymaster@4.0",
Daniel Rosenbergd3992492018-10-02 17:40:44 -070043 "android.hardware.boot@1.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060044 "libbase",
45 "libbinder",
46 "libcrypto",
47 "libcrypto_utils",
48 "libcutils",
49 "libdiskconfig",
50 "libext4_utils",
51 "libf2fs_sparseblock",
Eric Biggersa701c452018-10-23 13:06:55 -070052 "libfscrypt",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060053 "libhardware",
54 "libhardware_legacy",
55 "libhidlbase",
56 "libhwbinder",
Shawn Willden35351812018-01-22 09:08:32 -070057 "libkeymaster4support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060058 "libkeyutils",
59 "liblog",
60 "liblogwrap",
61 "libselinux",
62 "libsysutils",
63 "libutils",
64 ],
65}
66
67cc_library_static {
68 name: "libvold_binder",
69 defaults: ["vold_default_flags"],
70
71 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080072 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060073 ],
74 shared_libs: [
75 "libbinder",
76 "libutils",
77 ],
78 aidl: {
79 local_include_dirs: ["binder"],
80 include_dirs: ["frameworks/native/aidl/binder"],
81 export_aidl_headers: true,
82 },
83}
84
Risanaedae612017-11-27 18:01:35 +090085cc_library_headers {
86 name: "libvold_headers",
87 export_include_dirs: ["."],
88}
89
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060090// Static library factored out to support testing
91cc_library_static {
92 name: "libvold",
93 defaults: [
94 "vold_default_flags",
95 "vold_default_libs",
96 ],
97
98 srcs: [
Risanac02a482018-10-31 21:59:47 -060099 "AppFuseUtil.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600100 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600101 "CheckEncryption.cpp",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700102 "Checkpoint.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600103 "Devmapper.cpp",
104 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600105 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700106 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600107 "IdleMaint.cpp",
108 "KeyBuffer.cpp",
109 "KeyStorage.cpp",
110 "KeyUtil.cpp",
111 "Keymaster.cpp",
112 "Loop.cpp",
113 "MetadataCrypt.cpp",
114 "MoveStorage.cpp",
115 "NetlinkHandler.cpp",
116 "NetlinkManager.cpp",
117 "Process.cpp",
118 "ScryptParameters.cpp",
119 "Utils.cpp",
120 "VoldNativeService.cpp",
121 "VoldUtil.cpp",
122 "VolumeManager.cpp",
123 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900124 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600125 "fs/Ext4.cpp",
126 "fs/F2fs.cpp",
127 "fs/Vfat.cpp",
128 "model/Disk.cpp",
129 "model/EmulatedVolume.cpp",
130 "model/ObbVolume.cpp",
131 "model/PrivateVolume.cpp",
132 "model/PublicVolume.cpp",
133 "model/VolumeBase.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900134 "model/StubVolume.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600135 "secontext.cpp",
136 ],
Risanaedae612017-11-27 18:01:35 +0900137 product_variables: {
138 arc: {
139 exclude_srcs: [
140 "model/ObbVolume.cpp",
141 ],
142 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900143 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900144 "libarcobbvolume",
145 ],
146 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700147 debuggable: {
148 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
149 },
Risanaedae612017-11-27 18:01:35 +0900150 },
Yifan Hong024a1242018-08-10 13:50:46 -0700151 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700152 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700153 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600154}
155
156cc_binary {
157 name: "vold",
158 defaults: [
159 "vold_default_flags",
160 "vold_default_libs",
161 ],
162
163 srcs: ["main.cpp"],
164 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900165 product_variables: {
166 arc: {
167 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900168 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900169 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900170 ],
Risanaedae612017-11-27 18:01:35 +0900171 },
172 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700173 init_rc: [
174 "vold.rc",
175 "wait_for_keymaster.rc",
176 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600177
178 required: [
179 "mke2fs",
180 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800181 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600182 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700183
184 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700185 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700186 "libhidltransport",
187 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600188}
189
190cc_binary {
191 name: "vdc",
192 defaults: ["vold_default_flags"],
193
194 srcs: ["vdc.cpp"],
195 shared_libs: [
196 "libbase",
197 "libbinder",
198 "libcutils",
199 "libutils",
200 ],
201 static_libs: [
202 "libvold_binder",
203 ],
204 init_rc: ["vdc.rc"],
205}
206
207cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800208 name: "wait_for_keymaster",
209 defaults: ["vold_default_flags"],
210
211 srcs: [
212 "wait_for_keymaster.cpp",
213 "Keymaster.cpp",
214 ],
215 shared_libs: [
216 "libbase",
217 "libbinder",
218
219 "android.hardware.keymaster@3.0",
220 "android.hardware.keymaster@4.0",
221 "libhardware",
222 "libhardware_legacy",
223 "libhidlbase",
224 "libhwbinder",
225 "libkeymaster4support",
226 ],
227}
228
229cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600230 name: "secdiscard",
231 defaults: ["vold_default_flags"],
232
233 srcs: [
234 "FileDeviceUtils.cpp",
235 "secdiscard.cpp",
236 ],
237 shared_libs: ["libbase"],
238}
239
240cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600241 name: "vold_prepare_subdirs",
242 defaults: ["vold_default_flags"],
243
Paul Crowley82b41ff2017-10-20 08:17:54 -0700244 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
245 shared_libs: [
246 "libbase",
247 "libcutils",
248 "liblogwrap",
249 "libselinux",
250 "libutils",
251 ],
252 static_libs: [
253 "libvold_binder",
254 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600255}
256
Colin Crossa8388632017-11-25 08:47:19 -0800257filegroup {
258 name: "vold_aidl",
259 srcs: [
260 "binder/android/os/IVold.aidl",
261 "binder/android/os/IVoldListener.aidl",
262 "binder/android/os/IVoldTaskListener.aidl",
263 ],
264}
265
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600266subdirs = ["tests"]