blob: dca801e7ab31953215b57de908e468382913e65a [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 ],
Risanaedae612017-11-27 18:01:35 +0900136 product_variables: {
137 arc: {
138 exclude_srcs: [
Risandcbd4fc2018-11-02 01:26:31 +0900139 "AppFuseUtil.cpp",
Risanaedae612017-11-27 18:01:35 +0900140 "model/ObbVolume.cpp",
141 ],
142 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900143 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900144 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900145 "libarcobbvolume",
146 ],
147 },
Mark Salyzync4405e92018-09-20 10:09:27 -0700148 debuggable: {
149 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
150 },
Risanaedae612017-11-27 18:01:35 +0900151 },
Yifan Hong024a1242018-08-10 13:50:46 -0700152 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700153 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700154 ],
Jiyong Park8d21c922019-01-04 13:35:25 +0900155 whole_static_libs: [
156 "com.android.sysprop.apex",
157 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600158}
159
160cc_binary {
161 name: "vold",
162 defaults: [
163 "vold_default_flags",
164 "vold_default_libs",
165 ],
166
167 srcs: ["main.cpp"],
168 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900169 product_variables: {
170 arc: {
171 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900172 "arc_services_aidl",
Risandcbd4fc2018-11-02 01:26:31 +0900173 "libarcappfuse",
Risanaedae612017-11-27 18:01:35 +0900174 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900175 ],
Risanaedae612017-11-27 18:01:35 +0900176 },
177 },
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 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700188
189 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700190 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700191 "libhidltransport",
192 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600193}
194
195cc_binary {
196 name: "vdc",
197 defaults: ["vold_default_flags"],
198
199 srcs: ["vdc.cpp"],
200 shared_libs: [
201 "libbase",
202 "libbinder",
203 "libcutils",
204 "libutils",
205 ],
206 static_libs: [
207 "libvold_binder",
208 ],
209 init_rc: ["vdc.rc"],
210}
211
212cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800213 name: "wait_for_keymaster",
214 defaults: ["vold_default_flags"],
215
216 srcs: [
217 "wait_for_keymaster.cpp",
218 "Keymaster.cpp",
219 ],
220 shared_libs: [
221 "libbase",
222 "libbinder",
223
224 "android.hardware.keymaster@3.0",
225 "android.hardware.keymaster@4.0",
226 "libhardware",
227 "libhardware_legacy",
228 "libhidlbase",
229 "libhwbinder",
230 "libkeymaster4support",
231 ],
232}
233
234cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600235 name: "secdiscard",
236 defaults: ["vold_default_flags"],
237
238 srcs: [
239 "FileDeviceUtils.cpp",
240 "secdiscard.cpp",
241 ],
242 shared_libs: ["libbase"],
243}
244
245cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600246 name: "vold_prepare_subdirs",
247 defaults: ["vold_default_flags"],
248
Paul Crowley82b41ff2017-10-20 08:17:54 -0700249 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
250 shared_libs: [
251 "libbase",
252 "libcutils",
253 "liblogwrap",
254 "libselinux",
255 "libutils",
256 ],
257 static_libs: [
258 "libvold_binder",
259 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600260}
261
Colin Crossa8388632017-11-25 08:47:19 -0800262filegroup {
263 name: "vold_aidl",
264 srcs: [
265 "binder/android/os/IVold.aidl",
266 "binder/android/os/IVoldListener.aidl",
267 "binder/android/os/IVoldTaskListener.aidl",
268 ],
269}
270
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600271subdirs = ["tests"]