blob: 5c6349838034223184f205bbbde8917bf52b63ad [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",
34 "libfs_mgr",
35 "libscrypt_static",
36 "libsquashfs_utils",
37 "libvold_binder",
38 ],
39 shared_libs: [
40 "android.hardware.keymaster@3.0",
Shawn Willden35351812018-01-22 09:08:32 -070041 "android.hardware.keymaster@4.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060042 "libbase",
43 "libbinder",
44 "libcrypto",
45 "libcrypto_utils",
46 "libcutils",
47 "libdiskconfig",
48 "libext4_utils",
49 "libf2fs_sparseblock",
50 "libhardware",
51 "libhardware_legacy",
52 "libhidlbase",
53 "libhwbinder",
Shawn Willden35351812018-01-22 09:08:32 -070054 "libkeymaster4support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060055 "libkeyutils",
56 "liblog",
57 "liblogwrap",
58 "libselinux",
59 "libsysutils",
60 "libutils",
61 ],
62}
63
64cc_library_static {
65 name: "libvold_binder",
66 defaults: ["vold_default_flags"],
67
68 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080069 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060070 ],
71 shared_libs: [
72 "libbinder",
73 "libutils",
74 ],
75 aidl: {
76 local_include_dirs: ["binder"],
77 include_dirs: ["frameworks/native/aidl/binder"],
78 export_aidl_headers: true,
79 },
80}
81
Risanaedae612017-11-27 18:01:35 +090082cc_library_headers {
83 name: "libvold_headers",
84 export_include_dirs: ["."],
85}
86
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060087// Static library factored out to support testing
88cc_library_static {
89 name: "libvold",
90 defaults: [
91 "vold_default_flags",
92 "vold_default_libs",
93 ],
94
95 srcs: [
96 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -060097 "CheckEncryption.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060098 "Devmapper.cpp",
99 "EncryptInplace.cpp",
100 "Ext4Crypt.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600101 "FileDeviceUtils.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600102 "IdleMaint.cpp",
103 "KeyBuffer.cpp",
104 "KeyStorage.cpp",
105 "KeyUtil.cpp",
106 "Keymaster.cpp",
107 "Loop.cpp",
108 "MetadataCrypt.cpp",
109 "MoveStorage.cpp",
110 "NetlinkHandler.cpp",
111 "NetlinkManager.cpp",
112 "Process.cpp",
113 "ScryptParameters.cpp",
114 "Utils.cpp",
115 "VoldNativeService.cpp",
116 "VoldUtil.cpp",
117 "VolumeManager.cpp",
118 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900119 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600120 "fs/Ext4.cpp",
121 "fs/F2fs.cpp",
Dan Pasanend1952662015-10-27 22:52:37 -0500122 "fs/Ntfs.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600123 "fs/Vfat.cpp",
124 "model/Disk.cpp",
Tom Marshallaf693242015-11-04 15:44:44 -0800125 "model/DiskPartition.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600126 "model/EmulatedVolume.cpp",
127 "model/ObbVolume.cpp",
128 "model/PrivateVolume.cpp",
129 "model/PublicVolume.cpp",
130 "model/VolumeBase.cpp",
131 "secontext.cpp",
132 ],
Risanaedae612017-11-27 18:01:35 +0900133 product_variables: {
134 arc: {
135 exclude_srcs: [
136 "model/ObbVolume.cpp",
137 ],
138 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900139 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900140 "libarcobbvolume",
141 ],
142 },
Michael Bestas7e913d52018-12-12 10:28:59 -0500143 bliss: {
144 device_support_hwfde: {
145 cflags: ["-DCONFIG_HW_DISK_ENCRYPTION"],
146 header_libs: ["libcryptfs_hw_headers"],
147 shared_libs: ["libcryptfs_hw"],
148 },
149 device_support_hwfde_perf: {
150 cflags: ["-DCONFIG_HW_DISK_ENCRYPT_PERF"],
151 },
AnilKumar Chimata4d404ad2018-02-11 17:11:24 +0530152 },
Risanaedae612017-11-27 18:01:35 +0900153 },
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 },
Michael Bestas7e913d52018-12-12 10:28:59 -0500172 bliss: {
173 device_support_hwfde: {
174 shared_libs: ["libcryptfs_hw"],
175 },
AnilKumar Chimata35850082018-05-11 00:25:09 +0530176 },
Risanaedae612017-11-27 18:01:35 +0900177 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700178 init_rc: [
179 "vold.rc",
180 "wait_for_keymaster.rc",
181 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600182
183 required: [
184 "mke2fs",
185 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800186 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600187 ],
188}
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"]