blob: 099876381e8d42e6ff8b1a33bc9d298f559f569c [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 },
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600142}
143
144cc_binary {
145 name: "vold",
146 defaults: [
147 "vold_default_flags",
148 "vold_default_libs",
149 ],
150
151 srcs: ["main.cpp"],
152 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900153 product_variables: {
154 arc: {
155 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900156 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900157 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900158 ],
Risanaedae612017-11-27 18:01:35 +0900159 },
160 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700161 init_rc: [
162 "vold.rc",
163 "wait_for_keymaster.rc",
164 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600165
166 required: [
167 "mke2fs",
168 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800169 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600170 ],
171}
172
173cc_binary {
174 name: "vdc",
175 defaults: ["vold_default_flags"],
176
177 srcs: ["vdc.cpp"],
178 shared_libs: [
179 "libbase",
180 "libbinder",
181 "libcutils",
182 "libutils",
183 ],
184 static_libs: [
185 "libvold_binder",
186 ],
187 init_rc: ["vdc.rc"],
188}
189
190cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800191 name: "wait_for_keymaster",
192 defaults: ["vold_default_flags"],
193
194 srcs: [
195 "wait_for_keymaster.cpp",
196 "Keymaster.cpp",
197 ],
198 shared_libs: [
199 "libbase",
200 "libbinder",
201
202 "android.hardware.keymaster@3.0",
203 "android.hardware.keymaster@4.0",
204 "libhardware",
205 "libhardware_legacy",
206 "libhidlbase",
207 "libhwbinder",
208 "libkeymaster4support",
209 ],
210}
211
212cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600213 name: "secdiscard",
214 defaults: ["vold_default_flags"],
215
216 srcs: [
217 "FileDeviceUtils.cpp",
218 "secdiscard.cpp",
219 ],
220 shared_libs: ["libbase"],
221}
222
223cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600224 name: "vold_prepare_subdirs",
225 defaults: ["vold_default_flags"],
226
Paul Crowley82b41ff2017-10-20 08:17:54 -0700227 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
228 shared_libs: [
229 "libbase",
230 "libcutils",
231 "liblogwrap",
232 "libselinux",
233 "libutils",
234 ],
235 static_libs: [
236 "libvold_binder",
237 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600238}
239
Colin Crossa8388632017-11-25 08:47:19 -0800240filegroup {
241 name: "vold_aidl",
242 srcs: [
243 "binder/android/os/IVold.aidl",
244 "binder/android/os/IVoldListener.aidl",
245 "binder/android/os/IVoldTaskListener.aidl",
246 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700247 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800248}