blob: e80bf078f4a2a28741a06a929a23a50ca4e79137 [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",
Daniel Rosenbergd3992492018-10-02 17:40:44 -070042 "android.hardware.boot@1.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060043 "libbase",
44 "libbinder",
45 "libcrypto",
46 "libcrypto_utils",
47 "libcutils",
48 "libdiskconfig",
49 "libext4_utils",
50 "libf2fs_sparseblock",
Eric Biggersa701c452018-10-23 13:06:55 -070051 "libfscrypt",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060052 "libhardware",
53 "libhardware_legacy",
54 "libhidlbase",
55 "libhwbinder",
Shawn Willden35351812018-01-22 09:08:32 -070056 "libkeymaster4support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060057 "libkeyutils",
58 "liblog",
59 "liblogwrap",
60 "libselinux",
61 "libsysutils",
62 "libutils",
63 ],
64}
65
66cc_library_static {
67 name: "libvold_binder",
68 defaults: ["vold_default_flags"],
69
70 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080071 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060072 ],
73 shared_libs: [
74 "libbinder",
75 "libutils",
76 ],
77 aidl: {
78 local_include_dirs: ["binder"],
79 include_dirs: ["frameworks/native/aidl/binder"],
80 export_aidl_headers: true,
81 },
82}
83
Risanaedae612017-11-27 18:01:35 +090084cc_library_headers {
85 name: "libvold_headers",
86 export_include_dirs: ["."],
87}
88
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060089// Static library factored out to support testing
90cc_library_static {
91 name: "libvold",
92 defaults: [
93 "vold_default_flags",
94 "vold_default_libs",
95 ],
96
97 srcs: [
Risanac02a482018-10-31 21:59:47 -060098 "AppFuseUtil.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060099 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600100 "CheckEncryption.cpp",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700101 "Checkpoint.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600102 "Devmapper.cpp",
103 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600104 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700105 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600106 "IdleMaint.cpp",
107 "KeyBuffer.cpp",
108 "KeyStorage.cpp",
109 "KeyUtil.cpp",
110 "Keymaster.cpp",
111 "Loop.cpp",
112 "MetadataCrypt.cpp",
113 "MoveStorage.cpp",
114 "NetlinkHandler.cpp",
115 "NetlinkManager.cpp",
116 "Process.cpp",
117 "ScryptParameters.cpp",
118 "Utils.cpp",
119 "VoldNativeService.cpp",
120 "VoldUtil.cpp",
121 "VolumeManager.cpp",
122 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900123 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600124 "fs/Ext4.cpp",
125 "fs/F2fs.cpp",
126 "fs/Vfat.cpp",
127 "model/Disk.cpp",
128 "model/EmulatedVolume.cpp",
129 "model/ObbVolume.cpp",
130 "model/PrivateVolume.cpp",
131 "model/PublicVolume.cpp",
132 "model/VolumeBase.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900133 "model/StubVolume.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600134 "secontext.cpp",
135 ],
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",
Risandcbd4fc2018-11-02 01:26:31 +0900146 "libparcelfiledescriptor",
Risanaedae612017-11-27 18:01:35 +0900147 ],
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",
Risandcbd4fc2018-11-02 01:26:31 +0900173 "libparcelfiledescriptor",
Risan9929e7d2018-01-22 11:04:25 +0900174 ],
Risanaedae612017-11-27 18:01:35 +0900175 },
176 },
Wei Wangf5b085c2018-05-15 16:12:20 -0700177 init_rc: [
178 "vold.rc",
179 "wait_for_keymaster.rc",
180 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600181
182 required: [
183 "mke2fs",
184 "vold_prepare_subdirs",
Paul Crowley8f828792018-02-07 14:41:26 -0800185 "wait_for_keymaster",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600186 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700187
188 shared_libs: [
Yifan Hong91a68df2018-09-19 10:28:16 -0700189 "android.hardware.health.storage@1.0",
Yifan Hong024a1242018-08-10 13:50:46 -0700190 "libhidltransport",
191 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600192}
193
194cc_binary {
195 name: "vdc",
196 defaults: ["vold_default_flags"],
197
198 srcs: ["vdc.cpp"],
199 shared_libs: [
200 "libbase",
201 "libbinder",
202 "libcutils",
203 "libutils",
204 ],
205 static_libs: [
206 "libvold_binder",
207 ],
208 init_rc: ["vdc.rc"],
209}
210
211cc_binary {
Paul Crowley8f828792018-02-07 14:41:26 -0800212 name: "wait_for_keymaster",
213 defaults: ["vold_default_flags"],
214
215 srcs: [
216 "wait_for_keymaster.cpp",
217 "Keymaster.cpp",
218 ],
219 shared_libs: [
220 "libbase",
221 "libbinder",
222
223 "android.hardware.keymaster@3.0",
224 "android.hardware.keymaster@4.0",
225 "libhardware",
226 "libhardware_legacy",
227 "libhidlbase",
228 "libhwbinder",
229 "libkeymaster4support",
230 ],
231}
232
233cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600234 name: "secdiscard",
235 defaults: ["vold_default_flags"],
236
237 srcs: [
238 "FileDeviceUtils.cpp",
239 "secdiscard.cpp",
240 ],
241 shared_libs: ["libbase"],
242}
243
244cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600245 name: "vold_prepare_subdirs",
246 defaults: ["vold_default_flags"],
247
Paul Crowley82b41ff2017-10-20 08:17:54 -0700248 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
249 shared_libs: [
250 "libbase",
251 "libcutils",
252 "liblogwrap",
253 "libselinux",
254 "libutils",
255 ],
256 static_libs: [
257 "libvold_binder",
258 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600259}
260
Colin Crossa8388632017-11-25 08:47:19 -0800261filegroup {
262 name: "vold_aidl",
263 srcs: [
264 "binder/android/os/IVold.aidl",
265 "binder/android/os/IVoldListener.aidl",
266 "binder/android/os/IVoldTaskListener.aidl",
267 ],
268}
269
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600270subdirs = ["tests"]