blob: 6e52836868cff9af63576b84e628a87a7f51cfb4 [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: [
Risandcbd4fc2018-11-02 01:26:31 +0900140 "AppFuseUtil.cpp",
Risanaedae612017-11-27 18:01:35 +0900141 "model/ObbVolume.cpp",
142 ],
143 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900144 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900145 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900146 "libarcobbvolume",
147 ],
148 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700149 debuggable: {
150 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
151 },
Risanaedae612017-11-27 18:01:35 +0900152 },
Yifan Hong024a1242018-08-10 13:50:46 -0700153 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700154 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700155 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600156}
157
158cc_binary {
159 name: "vold",
160 defaults: [
161 "vold_default_flags",
162 "vold_default_libs",
163 ],
164
165 srcs: ["main.cpp"],
166 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900167 product_variables: {
168 arc: {
169 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900170 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900171 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900172 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900173 ],
Risanaedae612017-11-27 18:01:35 +0900174 },
175 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700176 init_rc: [
177 "vold.rc",
178 "wait_for_keymaster.rc",
179 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600180
181 required: [
182 "mke2fs",
183 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800184 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600185 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700186
187 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700188 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700189 "libhidltransport",
190 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600191}
192
193cc_binary {
194 name: "vdc",
195 defaults: ["vold_default_flags"],
196
197 srcs: ["vdc.cpp"],
198 shared_libs: [
199 "libbase",
200 "libbinder",
201 "libcutils",
202 "libutils",
203 ],
204 static_libs: [
205 "libvold_binder",
206 ],
207 init_rc: ["vdc.rc"],
208}
209
210cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800211 name: "wait_for_keymaster",
212 defaults: ["vold_default_flags"],
213
214 srcs: [
215 "wait_for_keymaster.cpp",
216 "Keymaster.cpp",
217 ],
218 shared_libs: [
219 "libbase",
220 "libbinder",
221
222 "android.hardware.keymaster@3.0",
223 "android.hardware.keymaster@4.0",
224 "libhardware",
225 "libhardware_legacy",
226 "libhidlbase",
227 "libhwbinder",
228 "libkeymaster4support",
229 ],
230}
231
232cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600233 name: "secdiscard",
234 defaults: ["vold_default_flags"],
235
236 srcs: [
237 "FileDeviceUtils.cpp",
238 "secdiscard.cpp",
239 ],
240 shared_libs: ["libbase"],
241}
242
243cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600244 name: "vold_prepare_subdirs",
245 defaults: ["vold_default_flags"],
246
Paul Crowley82b41ff2017-10-20 08:17:54 -0700247 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
248 shared_libs: [
249 "libbase",
250 "libcutils",
251 "liblogwrap",
252 "libselinux",
253 "libutils",
254 ],
255 static_libs: [
256 "libvold_binder",
257 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600258}
259
Colin Crossa8388632017-11-25 08:47:19 -0800260filegroup {
261 name: "vold_aidl",
262 srcs: [
263 "binder/android/os/IVold.aidl",
264 "binder/android/os/IVoldListener.aidl",
265 "binder/android/os/IVoldTaskListener.aidl",
266 ],
267}
268
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600269subdirs = ["tests"]