• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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