blob: bef64710af587a8848d957fc95f79aaf43e3e285 [file] [log] [blame]
Bob Badour8eb43ae2021-02-12 14:24:10 -08001package {
2 default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
Jeff Sharkeyd16dc502017-10-23 14:38:55 -06005cc_defaults {
6 name: "vold_default_flags",
7
8 cflags: [
9 "-Wall",
10 "-Werror",
11 "-Wextra",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060012 "-Wno-unused-parameter",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060013 ],
14
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060015 tidy: true,
16 tidy_checks: [
17 "-*",
18 "cert-*",
19 "clang-analyzer-security*",
Nick Kralevichd78fb532019-03-29 16:07:58 -070020 "android-*",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060021 ],
Chih-Hung Hsieh1ab55a52022-04-27 15:54:25 -070022 tidy_checks_as_errors: [
23 "clang-analyzer-security*",
24 "cert-*",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060025 ],
26}
27
28cc_defaults {
29 name: "vold_default_libs",
30
31 static_libs: [
Devin Moore965d67c2023-05-22 18:14:40 +000032 "android.hardware.health.storage@1.0",
33 "android.hardware.health.storage-V1-ndk",
34 "android.security.maintenance-ndk",
Narayan Kamath02efdf52019-11-27 10:53:51 +000035 "libasync_safe",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060036 "libavb",
37 "libbootloader_message",
David Andersonb9224732019-05-13 13:02:54 -070038 "libdm",
David Anderson10de69d2019-06-27 13:40:09 -070039 "libext2_uuid",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060040 "libfec",
41 "libfec_rs",
Bowgo Tsai549fd0e2018-11-29 22:15:08 +080042 "libfs_avb",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060043 "libfs_mgr",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060044 "libsquashfs_utils",
45 "libvold_binder",
Weston Carvalho6ab20652024-12-03 15:21:45 -060046 "android.system.vold-V1-cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060047 ],
48 shared_libs: [
Daniel Rosenbergd3992492018-10-02 17:40:44 -070049 "android.hardware.boot@1.0",
Kelvin Zhangdec03ab2022-06-21 14:31:01 -070050 "android.hardware.boot-V1-ndk",
51 "libboot_control_client",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060052 "libbase",
53 "libbinder",
Devin Moore965d67c2023-05-22 18:14:40 +000054 "libbinder_ndk",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060055 "libcrypto",
56 "libcrypto_utils",
57 "libcutils",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060058 "libext4_utils",
59 "libf2fs_sparseblock",
Yo Chiang0af25a32020-10-07 14:20:00 +080060 "libgsi",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060061 "libhardware",
62 "libhardware_legacy",
Songchun Fanab55cec2019-12-02 10:50:12 -080063 "libincfs",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060064 "libhidlbase",
Devin Moore965d67c2023-05-22 18:14:40 +000065 "libkeymint_support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060066 "liblog",
67 "liblogwrap",
68 "libselinux",
69 "libsysutils",
70 "libutils",
71 ],
72}
73
74cc_library_static {
75 name: "libvold_binder",
76 defaults: ["vold_default_flags"],
77
78 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080079 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060080 ],
81 shared_libs: [
82 "libbinder",
83 "libutils",
84 ],
85 aidl: {
86 local_include_dirs: ["binder"],
Songchun Fanab55cec2019-12-02 10:50:12 -080087 include_dirs: [
88 "frameworks/native/aidl/binder",
Jiyong Park50c3ab62020-01-20 12:37:52 +090089 "frameworks/base/core/java",
Songchun Fanab55cec2019-12-02 10:50:12 -080090 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060091 export_aidl_headers: true,
92 },
Songchun Fanab55cec2019-12-02 10:50:12 -080093 whole_static_libs: [
Jeongik Cha89253242021-01-26 22:35:14 +090094 "libincremental_aidl-cpp",
Songchun Fanab55cec2019-12-02 10:50:12 -080095 ],
Songchun Fanf77beb52021-02-25 23:16:11 +000096 export_shared_lib_headers: [
97 "libbinder",
98 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060099}
100
Risanaedae612017-11-27 18:01:35 +0900101cc_library_headers {
102 name: "libvold_headers",
Tao Baob1bbc702019-10-01 23:31:17 -0700103 recovery_available: true,
Risanaedae612017-11-27 18:01:35 +0900104 export_include_dirs: ["."],
105}
106
Weston Carvalho6ab20652024-12-03 15:21:45 -0600107vintf_fragment {
108 name: "android.system.vold-service.xml",
109 src: "android.system.vold-service.xml",
110}
111
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600112// Static library factored out to support testing
113cc_library_static {
114 name: "libvold",
115 defaults: [
116 "vold_default_flags",
117 "vold_default_libs",
David Drysdale4babbc72021-11-22 18:19:40 +0000118 "keystore2_use_latest_aidl_ndk_shared",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600119 ],
120
121 srcs: [
Risanac02a482018-10-31 21:59:47 -0600122 "AppFuseUtil.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600123 "Benchmark.cpp",
Daniel Rosenberg65f99c92018-08-28 01:58:49 -0700124 "Checkpoint.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800125 "CryptoType.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600126 "EncryptInplace.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600127 "FileDeviceUtils.cpp",
Eric Biggersa701c452018-10-23 13:06:55 -0700128 "FsCrypt.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600129 "IdleMaint.cpp",
130 "KeyBuffer.cpp",
131 "KeyStorage.cpp",
132 "KeyUtil.cpp",
Eric Biggersd86a8ab2021-06-15 11:34:00 -0700133 "Keystore.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600134 "Loop.cpp",
135 "MetadataCrypt.cpp",
136 "MoveStorage.cpp",
137 "NetlinkHandler.cpp",
138 "NetlinkManager.cpp",
139 "Process.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600140 "Utils.cpp",
Weston Carvalho6ab20652024-12-03 15:21:45 -0600141 "VendorVoldNativeService.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600142 "VoldNativeService.cpp",
Yurii Zubrytskyi131365a2020-03-24 23:49:02 -0700143 "VoldNativeServiceValidation.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600144 "VoldUtil.cpp",
145 "VolumeManager.cpp",
Daniel Lee32d2d252024-08-30 11:09:36 -0700146 "WriteBooster.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600147 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900148 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600149 "fs/Ext4.cpp",
150 "fs/F2fs.cpp",
151 "fs/Vfat.cpp",
152 "model/Disk.cpp",
153 "model/EmulatedVolume.cpp",
154 "model/ObbVolume.cpp",
155 "model/PrivateVolume.cpp",
156 "model/PublicVolume.cpp",
Risan8c9f3322018-10-29 08:52:56 +0900157 "model/StubVolume.cpp",
Paul Crowley220567c2020-02-07 12:45:20 -0800158 "model/VolumeBase.cpp",
Paul Crowley886e5722020-02-07 12:51:56 -0800159 "model/VolumeEncryption.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600160 ],
Omar Eissa390ec9d2025-03-12 09:46:34 +0000161 shared_libs: [
162 "server_configurable_flags",
163 ],
164 static_libs: [
165 "vold_flags_c_lib",
166 ],
Mark Salyzyn865086d2020-07-17 08:17:50 -0700167 product_variables: {
Risan4ad20482021-01-20 05:53:15 +0000168 arc: {
169 exclude_srcs: [
170 "model/StubVolume.cpp",
171 ],
172 static_libs: [
173 "libarcvolume",
174 ],
175 },
Mark Salyzyn865086d2020-07-17 08:17:50 -0700176 debuggable: {
177 cppflags: ["-D__ANDROID_DEBUGGABLE__"],
178 },
179 },
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600180}
181
182cc_binary {
183 name: "vold",
184 defaults: [
185 "vold_default_flags",
186 "vold_default_libs",
David Drysdale4babbc72021-11-22 18:19:40 +0000187 "keystore2_use_latest_aidl_ndk_shared",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600188 ],
189
190 srcs: ["main.cpp"],
Devin Moore965d67c2023-05-22 18:14:40 +0000191 static_libs: [
192 "libvold",
193 ],
194
Wei Wangf5b085c2018-05-15 16:12:20 -0700195 init_rc: [
196 "vold.rc",
Wei Wangf5b085c2018-05-15 16:12:20 -0700197 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600198
199 required: [
200 "mke2fs",
201 "vold_prepare_subdirs",
Ken Chen0093f6a2022-07-11 22:12:39 +0800202 "fuseMedia.o",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600203 ],
Yifan Hong024a1242018-08-10 13:50:46 -0700204
Risan4ad20482021-01-20 05:53:15 +0000205 product_variables: {
206 arc: {
207 exclude_srcs: [
208 "model/StubVolume.cpp",
209 ],
210 static_libs: [
211 "libarcvolume",
212 ],
213 },
Alix34778692022-04-18 04:00:10 +0000214 },
Weston Carvalho6ab20652024-12-03 15:21:45 -0600215 vintf_fragment_modules: ["android.system.vold-service.xml"],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600216}
217
218cc_binary {
219 name: "vdc",
220 defaults: ["vold_default_flags"],
221
Sean Keys8452f412021-07-07 22:38:04 +0000222 srcs: [
223 "vdc.cpp",
224 "Utils.cpp",
225 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600226 shared_libs: [
227 "libbase",
228 "libbinder",
229 "libcutils",
Sean Keys8452f412021-07-07 22:38:04 +0000230 "liblogwrap",
231 "libselinux",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600232 "libutils",
233 ],
234 static_libs: [
235 "libvold_binder",
236 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600237}
238
239cc_binary {
240 name: "secdiscard",
241 defaults: ["vold_default_flags"],
242
243 srcs: [
244 "FileDeviceUtils.cpp",
245 "secdiscard.cpp",
246 ],
247 shared_libs: ["libbase"],
248}
249
250cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600251 name: "vold_prepare_subdirs",
Jooyung Han6d079252023-08-11 15:34:35 +0000252 defaults: ["vold_default_flags"],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600253
Alix34778692022-04-18 04:00:10 +0000254 srcs: [
255 "vold_prepare_subdirs.cpp",
256 "Utils.cpp",
257 ],
Paul Crowley82b41ff2017-10-20 08:17:54 -0700258 shared_libs: [
259 "libbase",
260 "libcutils",
261 "liblogwrap",
262 "libselinux",
263 "libutils",
264 ],
265 static_libs: [
266 "libvold_binder",
267 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600268}
269
Colin Crossa8388632017-11-25 08:47:19 -0800270filegroup {
271 name: "vold_aidl",
272 srcs: [
273 "binder/android/os/IVold.aidl",
274 "binder/android/os/IVoldListener.aidl",
Zim5048b4b2019-11-19 09:16:03 +0000275 "binder/android/os/IVoldMountCallback.aidl",
Colin Crossa8388632017-11-25 08:47:19 -0800276 "binder/android/os/IVoldTaskListener.aidl",
277 ],
Dan Willemsen87c7f882018-09-14 21:28:50 -0700278 path: "binder",
Colin Crossa8388632017-11-25 08:47:19 -0800279}
Omar Eissa390ec9d2025-03-12 09:46:34 +0000280
281aconfig_declarations {
282 name: "vold_flags",
283 package: "android.vold.flags",
284 srcs: ["aconfig/flags.aconfig"],
285 container: "system",
286}
287
288cc_aconfig_library {
289 name: "vold_flags_c_lib",
290 aconfig_declarations: "vold_flags",
291}