xref: /aosp_15_r20/system/vold/Android.bp (revision f40fafd4c6c2594924d919feffc1a1fd6e3b30f3)
1*f40fafd4SAndroid Build Coastguard Workerpackage {
2*f40fafd4SAndroid Build Coastguard Worker    default_applicable_licenses: ["Android-Apache-2.0"],
3*f40fafd4SAndroid Build Coastguard Worker}
4*f40fafd4SAndroid Build Coastguard Worker
5*f40fafd4SAndroid Build Coastguard Workercc_defaults {
6*f40fafd4SAndroid Build Coastguard Worker    name: "vold_default_flags",
7*f40fafd4SAndroid Build Coastguard Worker
8*f40fafd4SAndroid Build Coastguard Worker    cflags: [
9*f40fafd4SAndroid Build Coastguard Worker        "-Wall",
10*f40fafd4SAndroid Build Coastguard Worker        "-Werror",
11*f40fafd4SAndroid Build Coastguard Worker        "-Wextra",
12*f40fafd4SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
13*f40fafd4SAndroid Build Coastguard Worker    ],
14*f40fafd4SAndroid Build Coastguard Worker
15*f40fafd4SAndroid Build Coastguard Worker    tidy: true,
16*f40fafd4SAndroid Build Coastguard Worker    tidy_checks: [
17*f40fafd4SAndroid Build Coastguard Worker        "-*",
18*f40fafd4SAndroid Build Coastguard Worker        "cert-*",
19*f40fafd4SAndroid Build Coastguard Worker        "clang-analyzer-security*",
20*f40fafd4SAndroid Build Coastguard Worker        "android-*",
21*f40fafd4SAndroid Build Coastguard Worker    ],
22*f40fafd4SAndroid Build Coastguard Worker    tidy_checks_as_errors: [
23*f40fafd4SAndroid Build Coastguard Worker        "clang-analyzer-security*",
24*f40fafd4SAndroid Build Coastguard Worker        "cert-*",
25*f40fafd4SAndroid Build Coastguard Worker    ],
26*f40fafd4SAndroid Build Coastguard Worker}
27*f40fafd4SAndroid Build Coastguard Worker
28*f40fafd4SAndroid Build Coastguard Workercc_defaults {
29*f40fafd4SAndroid Build Coastguard Worker    name: "vold_default_libs",
30*f40fafd4SAndroid Build Coastguard Worker
31*f40fafd4SAndroid Build Coastguard Worker    static_libs: [
32*f40fafd4SAndroid Build Coastguard Worker        "[email protected]",
33*f40fafd4SAndroid Build Coastguard Worker        "android.hardware.health.storage-V1-ndk",
34*f40fafd4SAndroid Build Coastguard Worker        "android.security.maintenance-ndk",
35*f40fafd4SAndroid Build Coastguard Worker        "libasync_safe",
36*f40fafd4SAndroid Build Coastguard Worker        "libavb",
37*f40fafd4SAndroid Build Coastguard Worker        "libbootloader_message",
38*f40fafd4SAndroid Build Coastguard Worker        "libdm",
39*f40fafd4SAndroid Build Coastguard Worker        "libext2_uuid",
40*f40fafd4SAndroid Build Coastguard Worker        "libfec",
41*f40fafd4SAndroid Build Coastguard Worker        "libfec_rs",
42*f40fafd4SAndroid Build Coastguard Worker        "libfs_avb",
43*f40fafd4SAndroid Build Coastguard Worker        "libfs_mgr",
44*f40fafd4SAndroid Build Coastguard Worker        "libsquashfs_utils",
45*f40fafd4SAndroid Build Coastguard Worker        "libvold_binder",
46*f40fafd4SAndroid Build Coastguard Worker    ],
47*f40fafd4SAndroid Build Coastguard Worker    shared_libs: [
48*f40fafd4SAndroid Build Coastguard Worker        "[email protected]",
49*f40fafd4SAndroid Build Coastguard Worker        "android.hardware.boot-V1-ndk",
50*f40fafd4SAndroid Build Coastguard Worker        "libboot_control_client",
51*f40fafd4SAndroid Build Coastguard Worker        "libbase",
52*f40fafd4SAndroid Build Coastguard Worker        "libbinder",
53*f40fafd4SAndroid Build Coastguard Worker        "libbinder_ndk",
54*f40fafd4SAndroid Build Coastguard Worker        "libcrypto",
55*f40fafd4SAndroid Build Coastguard Worker        "libcrypto_utils",
56*f40fafd4SAndroid Build Coastguard Worker        "libcutils",
57*f40fafd4SAndroid Build Coastguard Worker        "libext4_utils",
58*f40fafd4SAndroid Build Coastguard Worker        "libf2fs_sparseblock",
59*f40fafd4SAndroid Build Coastguard Worker        "libgsi",
60*f40fafd4SAndroid Build Coastguard Worker        "libhardware",
61*f40fafd4SAndroid Build Coastguard Worker        "libhardware_legacy",
62*f40fafd4SAndroid Build Coastguard Worker        "libincfs",
63*f40fafd4SAndroid Build Coastguard Worker        "libhidlbase",
64*f40fafd4SAndroid Build Coastguard Worker        "libkeymint_support",
65*f40fafd4SAndroid Build Coastguard Worker        "liblog",
66*f40fafd4SAndroid Build Coastguard Worker        "liblogwrap",
67*f40fafd4SAndroid Build Coastguard Worker        "libselinux",
68*f40fafd4SAndroid Build Coastguard Worker        "libsysutils",
69*f40fafd4SAndroid Build Coastguard Worker        "libutils",
70*f40fafd4SAndroid Build Coastguard Worker    ],
71*f40fafd4SAndroid Build Coastguard Worker}
72*f40fafd4SAndroid Build Coastguard Worker
73*f40fafd4SAndroid Build Coastguard Workercc_library_static {
74*f40fafd4SAndroid Build Coastguard Worker    name: "libvold_binder",
75*f40fafd4SAndroid Build Coastguard Worker    defaults: ["vold_default_flags"],
76*f40fafd4SAndroid Build Coastguard Worker
77*f40fafd4SAndroid Build Coastguard Worker    srcs: [
78*f40fafd4SAndroid Build Coastguard Worker        ":vold_aidl",
79*f40fafd4SAndroid Build Coastguard Worker    ],
80*f40fafd4SAndroid Build Coastguard Worker    shared_libs: [
81*f40fafd4SAndroid Build Coastguard Worker        "libbinder",
82*f40fafd4SAndroid Build Coastguard Worker        "libutils",
83*f40fafd4SAndroid Build Coastguard Worker    ],
84*f40fafd4SAndroid Build Coastguard Worker    aidl: {
85*f40fafd4SAndroid Build Coastguard Worker        local_include_dirs: ["binder"],
86*f40fafd4SAndroid Build Coastguard Worker        include_dirs: [
87*f40fafd4SAndroid Build Coastguard Worker            "frameworks/native/aidl/binder",
88*f40fafd4SAndroid Build Coastguard Worker            "frameworks/base/core/java",
89*f40fafd4SAndroid Build Coastguard Worker        ],
90*f40fafd4SAndroid Build Coastguard Worker        export_aidl_headers: true,
91*f40fafd4SAndroid Build Coastguard Worker    },
92*f40fafd4SAndroid Build Coastguard Worker    whole_static_libs: [
93*f40fafd4SAndroid Build Coastguard Worker        "libincremental_aidl-cpp",
94*f40fafd4SAndroid Build Coastguard Worker    ],
95*f40fafd4SAndroid Build Coastguard Worker    export_shared_lib_headers: [
96*f40fafd4SAndroid Build Coastguard Worker        "libbinder",
97*f40fafd4SAndroid Build Coastguard Worker    ],
98*f40fafd4SAndroid Build Coastguard Worker}
99*f40fafd4SAndroid Build Coastguard Worker
100*f40fafd4SAndroid Build Coastguard Workercc_library_headers {
101*f40fafd4SAndroid Build Coastguard Worker    name: "libvold_headers",
102*f40fafd4SAndroid Build Coastguard Worker    recovery_available: true,
103*f40fafd4SAndroid Build Coastguard Worker    export_include_dirs: ["."],
104*f40fafd4SAndroid Build Coastguard Worker}
105*f40fafd4SAndroid Build Coastguard Worker
106*f40fafd4SAndroid Build Coastguard Worker// Static library factored out to support testing
107*f40fafd4SAndroid Build Coastguard Workercc_library_static {
108*f40fafd4SAndroid Build Coastguard Worker    name: "libvold",
109*f40fafd4SAndroid Build Coastguard Worker    defaults: [
110*f40fafd4SAndroid Build Coastguard Worker        "vold_default_flags",
111*f40fafd4SAndroid Build Coastguard Worker        "vold_default_libs",
112*f40fafd4SAndroid Build Coastguard Worker        "keystore2_use_latest_aidl_ndk_shared",
113*f40fafd4SAndroid Build Coastguard Worker    ],
114*f40fafd4SAndroid Build Coastguard Worker
115*f40fafd4SAndroid Build Coastguard Worker    srcs: [
116*f40fafd4SAndroid Build Coastguard Worker        "AppFuseUtil.cpp",
117*f40fafd4SAndroid Build Coastguard Worker        "Benchmark.cpp",
118*f40fafd4SAndroid Build Coastguard Worker        "Checkpoint.cpp",
119*f40fafd4SAndroid Build Coastguard Worker        "CryptoType.cpp",
120*f40fafd4SAndroid Build Coastguard Worker        "EncryptInplace.cpp",
121*f40fafd4SAndroid Build Coastguard Worker        "FileDeviceUtils.cpp",
122*f40fafd4SAndroid Build Coastguard Worker        "FsCrypt.cpp",
123*f40fafd4SAndroid Build Coastguard Worker        "IdleMaint.cpp",
124*f40fafd4SAndroid Build Coastguard Worker        "KeyBuffer.cpp",
125*f40fafd4SAndroid Build Coastguard Worker        "KeyStorage.cpp",
126*f40fafd4SAndroid Build Coastguard Worker        "KeyUtil.cpp",
127*f40fafd4SAndroid Build Coastguard Worker        "Keystore.cpp",
128*f40fafd4SAndroid Build Coastguard Worker        "Loop.cpp",
129*f40fafd4SAndroid Build Coastguard Worker        "MetadataCrypt.cpp",
130*f40fafd4SAndroid Build Coastguard Worker        "MoveStorage.cpp",
131*f40fafd4SAndroid Build Coastguard Worker        "NetlinkHandler.cpp",
132*f40fafd4SAndroid Build Coastguard Worker        "NetlinkManager.cpp",
133*f40fafd4SAndroid Build Coastguard Worker        "Process.cpp",
134*f40fafd4SAndroid Build Coastguard Worker        "Utils.cpp",
135*f40fafd4SAndroid Build Coastguard Worker        "VoldNativeService.cpp",
136*f40fafd4SAndroid Build Coastguard Worker        "VoldNativeServiceValidation.cpp",
137*f40fafd4SAndroid Build Coastguard Worker        "VoldUtil.cpp",
138*f40fafd4SAndroid Build Coastguard Worker        "VolumeManager.cpp",
139*f40fafd4SAndroid Build Coastguard Worker        "cryptfs.cpp",
140*f40fafd4SAndroid Build Coastguard Worker        "fs/Exfat.cpp",
141*f40fafd4SAndroid Build Coastguard Worker        "fs/Ext4.cpp",
142*f40fafd4SAndroid Build Coastguard Worker        "fs/F2fs.cpp",
143*f40fafd4SAndroid Build Coastguard Worker        "fs/Vfat.cpp",
144*f40fafd4SAndroid Build Coastguard Worker        "model/Disk.cpp",
145*f40fafd4SAndroid Build Coastguard Worker        "model/EmulatedVolume.cpp",
146*f40fafd4SAndroid Build Coastguard Worker        "model/ObbVolume.cpp",
147*f40fafd4SAndroid Build Coastguard Worker        "model/PrivateVolume.cpp",
148*f40fafd4SAndroid Build Coastguard Worker        "model/PublicVolume.cpp",
149*f40fafd4SAndroid Build Coastguard Worker        "model/StubVolume.cpp",
150*f40fafd4SAndroid Build Coastguard Worker        "model/VolumeBase.cpp",
151*f40fafd4SAndroid Build Coastguard Worker        "model/VolumeEncryption.cpp",
152*f40fafd4SAndroid Build Coastguard Worker    ],
153*f40fafd4SAndroid Build Coastguard Worker    product_variables: {
154*f40fafd4SAndroid Build Coastguard Worker        arc: {
155*f40fafd4SAndroid Build Coastguard Worker            exclude_srcs: [
156*f40fafd4SAndroid Build Coastguard Worker                "model/StubVolume.cpp",
157*f40fafd4SAndroid Build Coastguard Worker            ],
158*f40fafd4SAndroid Build Coastguard Worker            static_libs: [
159*f40fafd4SAndroid Build Coastguard Worker                "libarcvolume",
160*f40fafd4SAndroid Build Coastguard Worker            ],
161*f40fafd4SAndroid Build Coastguard Worker        },
162*f40fafd4SAndroid Build Coastguard Worker        debuggable: {
163*f40fafd4SAndroid Build Coastguard Worker            cppflags: ["-D__ANDROID_DEBUGGABLE__"],
164*f40fafd4SAndroid Build Coastguard Worker        },
165*f40fafd4SAndroid Build Coastguard Worker    },
166*f40fafd4SAndroid Build Coastguard Worker}
167*f40fafd4SAndroid Build Coastguard Worker
168*f40fafd4SAndroid Build Coastguard Workercc_binary {
169*f40fafd4SAndroid Build Coastguard Worker    name: "vold",
170*f40fafd4SAndroid Build Coastguard Worker    defaults: [
171*f40fafd4SAndroid Build Coastguard Worker        "vold_default_flags",
172*f40fafd4SAndroid Build Coastguard Worker        "vold_default_libs",
173*f40fafd4SAndroid Build Coastguard Worker        "keystore2_use_latest_aidl_ndk_shared",
174*f40fafd4SAndroid Build Coastguard Worker    ],
175*f40fafd4SAndroid Build Coastguard Worker
176*f40fafd4SAndroid Build Coastguard Worker    srcs: ["main.cpp"],
177*f40fafd4SAndroid Build Coastguard Worker    static_libs: [
178*f40fafd4SAndroid Build Coastguard Worker        "libvold",
179*f40fafd4SAndroid Build Coastguard Worker    ],
180*f40fafd4SAndroid Build Coastguard Worker
181*f40fafd4SAndroid Build Coastguard Worker    init_rc: [
182*f40fafd4SAndroid Build Coastguard Worker        "vold.rc",
183*f40fafd4SAndroid Build Coastguard Worker    ],
184*f40fafd4SAndroid Build Coastguard Worker
185*f40fafd4SAndroid Build Coastguard Worker    required: [
186*f40fafd4SAndroid Build Coastguard Worker        "mke2fs",
187*f40fafd4SAndroid Build Coastguard Worker        "vold_prepare_subdirs",
188*f40fafd4SAndroid Build Coastguard Worker        "fuseMedia.o",
189*f40fafd4SAndroid Build Coastguard Worker    ],
190*f40fafd4SAndroid Build Coastguard Worker
191*f40fafd4SAndroid Build Coastguard Worker    product_variables: {
192*f40fafd4SAndroid Build Coastguard Worker        arc: {
193*f40fafd4SAndroid Build Coastguard Worker            exclude_srcs: [
194*f40fafd4SAndroid Build Coastguard Worker                "model/StubVolume.cpp",
195*f40fafd4SAndroid Build Coastguard Worker            ],
196*f40fafd4SAndroid Build Coastguard Worker            static_libs: [
197*f40fafd4SAndroid Build Coastguard Worker                "libarcvolume",
198*f40fafd4SAndroid Build Coastguard Worker            ],
199*f40fafd4SAndroid Build Coastguard Worker        },
200*f40fafd4SAndroid Build Coastguard Worker    },
201*f40fafd4SAndroid Build Coastguard Worker}
202*f40fafd4SAndroid Build Coastguard Worker
203*f40fafd4SAndroid Build Coastguard Workercc_binary {
204*f40fafd4SAndroid Build Coastguard Worker    name: "vdc",
205*f40fafd4SAndroid Build Coastguard Worker    defaults: ["vold_default_flags"],
206*f40fafd4SAndroid Build Coastguard Worker
207*f40fafd4SAndroid Build Coastguard Worker    srcs: [
208*f40fafd4SAndroid Build Coastguard Worker        "vdc.cpp",
209*f40fafd4SAndroid Build Coastguard Worker        "Utils.cpp",
210*f40fafd4SAndroid Build Coastguard Worker    ],
211*f40fafd4SAndroid Build Coastguard Worker    shared_libs: [
212*f40fafd4SAndroid Build Coastguard Worker        "libbase",
213*f40fafd4SAndroid Build Coastguard Worker        "libbinder",
214*f40fafd4SAndroid Build Coastguard Worker        "libcutils",
215*f40fafd4SAndroid Build Coastguard Worker        "liblogwrap",
216*f40fafd4SAndroid Build Coastguard Worker        "libselinux",
217*f40fafd4SAndroid Build Coastguard Worker        "libutils",
218*f40fafd4SAndroid Build Coastguard Worker    ],
219*f40fafd4SAndroid Build Coastguard Worker    static_libs: [
220*f40fafd4SAndroid Build Coastguard Worker        "libvold_binder",
221*f40fafd4SAndroid Build Coastguard Worker    ],
222*f40fafd4SAndroid Build Coastguard Worker}
223*f40fafd4SAndroid Build Coastguard Worker
224*f40fafd4SAndroid Build Coastguard Workercc_binary {
225*f40fafd4SAndroid Build Coastguard Worker    name: "secdiscard",
226*f40fafd4SAndroid Build Coastguard Worker    defaults: ["vold_default_flags"],
227*f40fafd4SAndroid Build Coastguard Worker
228*f40fafd4SAndroid Build Coastguard Worker    srcs: [
229*f40fafd4SAndroid Build Coastguard Worker        "FileDeviceUtils.cpp",
230*f40fafd4SAndroid Build Coastguard Worker        "secdiscard.cpp",
231*f40fafd4SAndroid Build Coastguard Worker    ],
232*f40fafd4SAndroid Build Coastguard Worker    shared_libs: ["libbase"],
233*f40fafd4SAndroid Build Coastguard Worker}
234*f40fafd4SAndroid Build Coastguard Worker
235*f40fafd4SAndroid Build Coastguard Workercc_binary {
236*f40fafd4SAndroid Build Coastguard Worker    name: "vold_prepare_subdirs",
237*f40fafd4SAndroid Build Coastguard Worker    defaults: ["vold_default_flags"],
238*f40fafd4SAndroid Build Coastguard Worker
239*f40fafd4SAndroid Build Coastguard Worker    srcs: [
240*f40fafd4SAndroid Build Coastguard Worker        "vold_prepare_subdirs.cpp",
241*f40fafd4SAndroid Build Coastguard Worker        "Utils.cpp",
242*f40fafd4SAndroid Build Coastguard Worker    ],
243*f40fafd4SAndroid Build Coastguard Worker    shared_libs: [
244*f40fafd4SAndroid Build Coastguard Worker        "libbase",
245*f40fafd4SAndroid Build Coastguard Worker        "libcutils",
246*f40fafd4SAndroid Build Coastguard Worker        "liblogwrap",
247*f40fafd4SAndroid Build Coastguard Worker        "libselinux",
248*f40fafd4SAndroid Build Coastguard Worker        "libutils",
249*f40fafd4SAndroid Build Coastguard Worker    ],
250*f40fafd4SAndroid Build Coastguard Worker    static_libs: [
251*f40fafd4SAndroid Build Coastguard Worker        "libvold_binder",
252*f40fafd4SAndroid Build Coastguard Worker    ],
253*f40fafd4SAndroid Build Coastguard Worker}
254*f40fafd4SAndroid Build Coastguard Worker
255*f40fafd4SAndroid Build Coastguard Workerfilegroup {
256*f40fafd4SAndroid Build Coastguard Worker    name: "vold_aidl",
257*f40fafd4SAndroid Build Coastguard Worker    srcs: [
258*f40fafd4SAndroid Build Coastguard Worker        "binder/android/os/IVold.aidl",
259*f40fafd4SAndroid Build Coastguard Worker        "binder/android/os/IVoldListener.aidl",
260*f40fafd4SAndroid Build Coastguard Worker        "binder/android/os/IVoldMountCallback.aidl",
261*f40fafd4SAndroid Build Coastguard Worker        "binder/android/os/IVoldTaskListener.aidl",
262*f40fafd4SAndroid Build Coastguard Worker    ],
263*f40fafd4SAndroid Build Coastguard Worker    path: "binder",
264*f40fafd4SAndroid Build Coastguard Worker}
265