1cc_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*", 20 "android-*", 21 ], 22 tidy_flags: [ 23 "-warnings-as-errors=clang-analyzer-security*,cert-*", 24 ], 25} 26 27cc_defaults { 28 name: "vold_default_libs", 29 30 static_libs: [ 31 "libasync_safe", 32 "libavb", 33 "libbootloader_message", 34 "libdm", 35 "libext2_uuid", 36 "libfec", 37 "libfec_rs", 38 "libfs_avb", 39 "libfs_mgr", 40 "libscrypt_static", 41 "libsquashfs_utils", 42 "libvold_binder", 43 ], 44 shared_libs: [ 45 "android.hardware.keymaster@3.0", 46 "android.hardware.keymaster@4.0", 47 "android.hardware.keymaster@4.1", 48 "android.hardware.boot@1.0", 49 "libbase", 50 "libbinder", 51 "libcrypto", 52 "libcrypto_utils", 53 "libcutils", 54 "libdiskconfig", 55 "libext4_utils", 56 "libf2fs_sparseblock", 57 "libhardware", 58 "libhardware_legacy", 59 "libincfs", 60 "libhidlbase", 61 "libkeymaster4support", 62 "libkeymaster4_1support", 63 "libkeyutils", 64 "liblog", 65 "liblogwrap", 66 "libselinux", 67 "libsysutils", 68 "libutils", 69 ], 70} 71 72cc_library_static { 73 name: "libvold_binder", 74 defaults: ["vold_default_flags"], 75 76 srcs: [ 77 ":vold_aidl", 78 ], 79 shared_libs: [ 80 "libbinder", 81 "libutils", 82 ], 83 aidl: { 84 local_include_dirs: ["binder"], 85 include_dirs: [ 86 "frameworks/native/aidl/binder", 87 "frameworks/base/core/java", 88 ], 89 export_aidl_headers: true, 90 }, 91 whole_static_libs: [ 92 "libincremental_aidl-cpp", 93 ], 94} 95 96cc_library_headers { 97 name: "libvold_headers", 98 recovery_available: true, 99 export_include_dirs: ["."], 100} 101 102// Static library factored out to support testing 103cc_library_static { 104 name: "libvold", 105 defaults: [ 106 "vold_default_flags", 107 "vold_default_libs", 108 ], 109 110 srcs: [ 111 "AppFuseUtil.cpp", 112 "Benchmark.cpp", 113 "CheckEncryption.cpp", 114 "Checkpoint.cpp", 115 "CryptoType.cpp", 116 "Devmapper.cpp", 117 "EncryptInplace.cpp", 118 "FileDeviceUtils.cpp", 119 "FsCrypt.cpp", 120 "IdleMaint.cpp", 121 "KeyBuffer.cpp", 122 "KeyStorage.cpp", 123 "KeyUtil.cpp", 124 "Keymaster.cpp", 125 "Loop.cpp", 126 "MetadataCrypt.cpp", 127 "MoveStorage.cpp", 128 "NetlinkHandler.cpp", 129 "NetlinkManager.cpp", 130 "Process.cpp", 131 "ScryptParameters.cpp", 132 "Utils.cpp", 133 "VoldNativeService.cpp", 134 "VoldNativeServiceValidation.cpp", 135 "VoldUtil.cpp", 136 "VolumeManager.cpp", 137 "cryptfs.cpp", 138 "fs/Exfat.cpp", 139 "fs/Ext4.cpp", 140 "fs/F2fs.cpp", 141 "fs/Vfat.cpp", 142 "model/Disk.cpp", 143 "model/EmulatedVolume.cpp", 144 "model/ObbVolume.cpp", 145 "model/PrivateVolume.cpp", 146 "model/PublicVolume.cpp", 147 "model/StubVolume.cpp", 148 "model/VolumeBase.cpp", 149 "model/VolumeEncryption.cpp", 150 ], 151 product_variables: { 152 arc: { 153 exclude_srcs: [ 154 "model/ObbVolume.cpp", 155 ], 156 static_libs: [ 157 "arc_services_aidl", 158 "libarcobbvolume", 159 ], 160 }, 161 debuggable: { 162 cppflags: ["-D__ANDROID_DEBUGGABLE__"], 163 }, 164 }, 165 shared_libs: [ 166 "android.hardware.health.storage@1.0", 167 ], 168 whole_static_libs: [ 169 "com.android.sysprop.apex", 170 "libc++fs" 171 ], 172} 173 174cc_binary { 175 name: "vold", 176 defaults: [ 177 "vold_default_flags", 178 "vold_default_libs", 179 ], 180 181 srcs: ["main.cpp"], 182 static_libs: ["libvold"], 183 product_variables: { 184 arc: { 185 static_libs: [ 186 "arc_services_aidl", 187 "libarcobbvolume", 188 ], 189 }, 190 }, 191 init_rc: [ 192 "vold.rc", 193 "wait_for_keymaster.rc", 194 ], 195 196 required: [ 197 "mke2fs", 198 "vold_prepare_subdirs", 199 "wait_for_keymaster", 200 ], 201 202 shared_libs: [ 203 "android.hardware.health.storage@1.0", 204 ], 205} 206 207cc_binary { 208 name: "vdc", 209 defaults: ["vold_default_flags"], 210 211 srcs: ["vdc.cpp"], 212 shared_libs: [ 213 "libbase", 214 "libbinder", 215 "libcutils", 216 "libutils", 217 ], 218 static_libs: [ 219 "libvold_binder", 220 ], 221 init_rc: ["vdc.rc"], 222} 223 224cc_binary { 225 name: "wait_for_keymaster", 226 defaults: ["vold_default_flags"], 227 228 srcs: [ 229 "wait_for_keymaster.cpp", 230 "Keymaster.cpp", 231 ], 232 shared_libs: [ 233 "libbase", 234 "libbinder", 235 236 "android.hardware.keymaster@3.0", 237 "android.hardware.keymaster@4.0", 238 "android.hardware.keymaster@4.1", 239 "libhardware", 240 "libhardware_legacy", 241 "libhidlbase", 242 "libkeymaster4support", 243 "libkeymaster4_1support", 244 "libutils", 245 ], 246} 247 248cc_binary { 249 name: "secdiscard", 250 defaults: ["vold_default_flags"], 251 252 srcs: [ 253 "FileDeviceUtils.cpp", 254 "secdiscard.cpp", 255 ], 256 shared_libs: ["libbase"], 257} 258 259cc_binary { 260 name: "vold_prepare_subdirs", 261 defaults: ["vold_default_flags"], 262 263 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"], 264 shared_libs: [ 265 "libbase", 266 "libcutils", 267 "liblogwrap", 268 "libselinux", 269 "libutils", 270 ], 271 static_libs: [ 272 "libvold_binder", 273 ], 274} 275 276filegroup { 277 name: "vold_aidl", 278 srcs: [ 279 "binder/android/os/IVold.aidl", 280 "binder/android/os/IVoldListener.aidl", 281 "binder/android/os/IVoldMountCallback.aidl", 282 "binder/android/os/IVoldTaskListener.aidl", 283 ], 284 path: "binder", 285} 286