blob: 080c5fe6821c6b38a82492aaec92a330557a1be9 [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",
122 "fs/Vfat.cpp",
123 "model/Disk.cpp",
124 "model/EmulatedVolume.cpp",
125 "model/ObbVolume.cpp",
126 "model/PrivateVolume.cpp",
127 "model/PublicVolume.cpp",
128 "model/VolumeBase.cpp",
129 "secontext.cpp",
130 ],
Risanaedae612017-11-27 18:01:35 +0900131 product_variables: {
132 arc: {
133 exclude_srcs: [
134 "model/ObbVolume.cpp",
135 ],
136 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900137 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900138 "libarcobbvolume",
139 ],
140 },
141 },
Yifan Hong024a1242018-08-10 13:50:46 -0700142 shared_libs: [
143 "android.hardware.health.filesystem@1.0",
144 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600145}
146
147cc_binary {
148 name: "vold",
149 defaults: [
150 "vold_default_flags",
151 "vold_default_libs",
152 ],
153
154 srcs: ["main.cpp"],
155 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900156 product_variables: {
157 arc: {
158 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900159 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900160 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900161 ],
Risanaedae612017-11-27 18:01:35 +0900162 },
163 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700164 init_rc: [
165 "vold.rc",
166 "wait_for_keymaster.rc",
167 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600168
169 required: [
170 "mke2fs",
171 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800172 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600173 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700174
175 shared_libs: [
176 "android.hardware.health.filesystem@1.0",
177 "libhidltransport",
178 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600179}
180
181cc_binary {
182 name: "vdc",
183 defaults: ["vold_default_flags"],
184
185 srcs: ["vdc.cpp"],
186 shared_libs: [
187 "libbase",
188 "libbinder",
189 "libcutils",
190 "libutils",
191 ],
192 static_libs: [
193 "libvold_binder",
194 ],
195 init_rc: ["vdc.rc"],
196}
197
198cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800199 name: "wait_for_keymaster",
200 defaults: ["vold_default_flags"],
201
202 srcs: [
203 "wait_for_keymaster.cpp",
204 "Keymaster.cpp",
205 ],
206 shared_libs: [
207 "libbase",
208 "libbinder",
209
210 "android.hardware.keymaster@3.0",
211 "android.hardware.keymaster@4.0",
212 "libhardware",
213 "libhardware_legacy",
214 "libhidlbase",
215 "libhwbinder",
216 "libkeymaster4support",
217 ],
218}
219
220cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600221 name: "secdiscard",
222 defaults: ["vold_default_flags"],
223
224 srcs: [
225 "FileDeviceUtils.cpp",
226 "secdiscard.cpp",
227 ],
228 shared_libs: ["libbase"],
229}
230
231cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600232 name: "vold_prepare_subdirs",
233 defaults: ["vold_default_flags"],
234
Paul Crowley82b41ff2017-10-20 08:17:54 -0700235 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
236 shared_libs: [
237 "libbase",
238 "libcutils",
239 "liblogwrap",
240 "libselinux",
241 "libutils",
242 ],
243 static_libs: [
244 "libvold_binder",
245 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600246}
247
Colin Crossa8388632017-11-25 08:47:19 -0800248filegroup {
249 name: "vold_aidl",
250 srcs: [
251 "binder/android/os/IVold.aidl",
252 "binder/android/os/IVoldListener.aidl",
253 "binder/android/os/IVoldTaskListener.aidl",
254 ],
255}
256
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600257subdirs = ["tests"]