xref: /aosp_15_r20/external/selinux/libselinux/Android.bp (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Workerpackage {
2*2d543d20SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_selinux_libselinux_license"],
3*2d543d20SAndroid Build Coastguard Worker}
4*2d543d20SAndroid Build Coastguard Worker
5*2d543d20SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
6*2d543d20SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
7*2d543d20SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
8*2d543d20SAndroid Build Coastguard Worker//
9*2d543d20SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10*2d543d20SAndroid Build Coastguard Worker//
11*2d543d20SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
12*2d543d20SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
13*2d543d20SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
14*2d543d20SAndroid Build Coastguard Worker//
15*2d543d20SAndroid Build Coastguard Worker// For unused files, consider creating a 'filegroup' with "//visibility:private"
16*2d543d20SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
17*2d543d20SAndroid Build Coastguard Worker// used in the current project.
18*2d543d20SAndroid Build Coastguard Worker// http://go/android-license-faq
19*2d543d20SAndroid Build Coastguard Workerlicense {
20*2d543d20SAndroid Build Coastguard Worker    name: "external_selinux_libselinux_license",
21*2d543d20SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
22*2d543d20SAndroid Build Coastguard Worker    license_kinds: [
23*2d543d20SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
24*2d543d20SAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-2.0",
25*2d543d20SAndroid Build Coastguard Worker        "legacy_unencumbered",
26*2d543d20SAndroid Build Coastguard Worker    ],
27*2d543d20SAndroid Build Coastguard Worker    license_text: [
28*2d543d20SAndroid Build Coastguard Worker        "LICENSE",
29*2d543d20SAndroid Build Coastguard Worker    ],
30*2d543d20SAndroid Build Coastguard Worker}
31*2d543d20SAndroid Build Coastguard Worker
32*2d543d20SAndroid Build Coastguard Workercommon_CFLAGS = [
33*2d543d20SAndroid Build Coastguard Worker    // Persistently stored patterns (pcre2) are architecture dependent.
34*2d543d20SAndroid Build Coastguard Worker    // In particular paterns built on amd64 can not run on devices with armv7
35*2d543d20SAndroid Build Coastguard Worker    // (32bit). Therefore, this feature stays off for now.
36*2d543d20SAndroid Build Coastguard Worker    "-DNO_PERSISTENTLY_STORED_PATTERNS",
37*2d543d20SAndroid Build Coastguard Worker    "-DDISABLE_SETRANS",
38*2d543d20SAndroid Build Coastguard Worker    "-DDISABLE_BOOL",
39*2d543d20SAndroid Build Coastguard Worker    "-D_GNU_SOURCE",
40*2d543d20SAndroid Build Coastguard Worker    "-DNO_MEDIA_BACKEND",
41*2d543d20SAndroid Build Coastguard Worker    "-DNO_X_BACKEND",
42*2d543d20SAndroid Build Coastguard Worker    "-DNO_DB_BACKEND",
43*2d543d20SAndroid Build Coastguard Worker    "-Wall",
44*2d543d20SAndroid Build Coastguard Worker    "-Werror",
45*2d543d20SAndroid Build Coastguard Worker    "-Wno-error=missing-noreturn",
46*2d543d20SAndroid Build Coastguard Worker    "-Wno-error=unused-function",
47*2d543d20SAndroid Build Coastguard Worker    "-Wno-error=unused-variable",
48*2d543d20SAndroid Build Coastguard Worker    "-DUSE_PCRE2",
49*2d543d20SAndroid Build Coastguard Worker    // 1003 corresponds to auditd, from system/core/logd/event.logtags
50*2d543d20SAndroid Build Coastguard Worker    "-DAUDITD_LOG_TAG=1003",
51*2d543d20SAndroid Build Coastguard Worker]
52*2d543d20SAndroid Build Coastguard Worker
53*2d543d20SAndroid Build Coastguard Workercc_defaults {
54*2d543d20SAndroid Build Coastguard Worker    name: "libselinux_defaults",
55*2d543d20SAndroid Build Coastguard Worker    defaults: ["libselinux_flags_defaults"],
56*2d543d20SAndroid Build Coastguard Worker
57*2d543d20SAndroid Build Coastguard Worker    cflags: common_CFLAGS,
58*2d543d20SAndroid Build Coastguard Worker
59*2d543d20SAndroid Build Coastguard Worker    srcs: [
60*2d543d20SAndroid Build Coastguard Worker        "src/android/android.c",
61*2d543d20SAndroid Build Coastguard Worker        "src/android/android_seapp.c",
62*2d543d20SAndroid Build Coastguard Worker        "src/avc.c",
63*2d543d20SAndroid Build Coastguard Worker        "src/avc_internal.c",
64*2d543d20SAndroid Build Coastguard Worker        "src/avc_sidtab.c",
65*2d543d20SAndroid Build Coastguard Worker        "src/booleans.c",
66*2d543d20SAndroid Build Coastguard Worker        "src/callbacks.c",
67*2d543d20SAndroid Build Coastguard Worker        "src/canonicalize_context.c",
68*2d543d20SAndroid Build Coastguard Worker        "src/checkAccess.c",
69*2d543d20SAndroid Build Coastguard Worker        "src/check_context.c",
70*2d543d20SAndroid Build Coastguard Worker        "src/compute_av.c",
71*2d543d20SAndroid Build Coastguard Worker        "src/compute_create.c",
72*2d543d20SAndroid Build Coastguard Worker        "src/compute_member.c",
73*2d543d20SAndroid Build Coastguard Worker        "src/context.c",
74*2d543d20SAndroid Build Coastguard Worker        "src/deny_unknown.c",
75*2d543d20SAndroid Build Coastguard Worker        "src/disable.c",
76*2d543d20SAndroid Build Coastguard Worker        "src/enabled.c",
77*2d543d20SAndroid Build Coastguard Worker        "src/fgetfilecon.c",
78*2d543d20SAndroid Build Coastguard Worker        "src/freecon.c",
79*2d543d20SAndroid Build Coastguard Worker        "src/fsetfilecon.c",
80*2d543d20SAndroid Build Coastguard Worker        "src/get_initial_context.c",
81*2d543d20SAndroid Build Coastguard Worker        "src/getenforce.c",
82*2d543d20SAndroid Build Coastguard Worker        "src/getfilecon.c",
83*2d543d20SAndroid Build Coastguard Worker        "src/getpeercon.c",
84*2d543d20SAndroid Build Coastguard Worker        "src/hashtab.c",
85*2d543d20SAndroid Build Coastguard Worker        "src/init.c",
86*2d543d20SAndroid Build Coastguard Worker        "src/label.c",
87*2d543d20SAndroid Build Coastguard Worker        "src/label_backends_android.c",
88*2d543d20SAndroid Build Coastguard Worker        "src/label_file.c",
89*2d543d20SAndroid Build Coastguard Worker        "src/label_support.c",
90*2d543d20SAndroid Build Coastguard Worker        "src/lgetfilecon.c",
91*2d543d20SAndroid Build Coastguard Worker        "src/load_policy.c",
92*2d543d20SAndroid Build Coastguard Worker        "src/lsetfilecon.c",
93*2d543d20SAndroid Build Coastguard Worker        "src/mapping.c",
94*2d543d20SAndroid Build Coastguard Worker        "src/matchpathcon.c",
95*2d543d20SAndroid Build Coastguard Worker        "src/policyvers.c",
96*2d543d20SAndroid Build Coastguard Worker        "src/procattr.c",
97*2d543d20SAndroid Build Coastguard Worker        "src/regex.c",
98*2d543d20SAndroid Build Coastguard Worker        "src/reject_unknown.c",
99*2d543d20SAndroid Build Coastguard Worker        "src/selinux_internal.c",
100*2d543d20SAndroid Build Coastguard Worker        "src/sestatus.c",
101*2d543d20SAndroid Build Coastguard Worker        "src/setenforce.c",
102*2d543d20SAndroid Build Coastguard Worker        "src/setfilecon.c",
103*2d543d20SAndroid Build Coastguard Worker        "src/setrans_client.c",
104*2d543d20SAndroid Build Coastguard Worker        "src/sha1.c",
105*2d543d20SAndroid Build Coastguard Worker        "src/stringrep.c",
106*2d543d20SAndroid Build Coastguard Worker    ],
107*2d543d20SAndroid Build Coastguard Worker
108*2d543d20SAndroid Build Coastguard Worker    target: {
109*2d543d20SAndroid Build Coastguard Worker        host: {
110*2d543d20SAndroid Build Coastguard Worker            cflags: [
111*2d543d20SAndroid Build Coastguard Worker                "-DBUILD_HOST",
112*2d543d20SAndroid Build Coastguard Worker            ],
113*2d543d20SAndroid Build Coastguard Worker        },
114*2d543d20SAndroid Build Coastguard Worker        android: {
115*2d543d20SAndroid Build Coastguard Worker            cflags: [
116*2d543d20SAndroid Build Coastguard Worker                "-DHAVE_STRLCPY",
117*2d543d20SAndroid Build Coastguard Worker                "-DHAVE_REALLOCARRAY",
118*2d543d20SAndroid Build Coastguard Worker            ],
119*2d543d20SAndroid Build Coastguard Worker            srcs: [
120*2d543d20SAndroid Build Coastguard Worker                "src/android/android_device.c",
121*2d543d20SAndroid Build Coastguard Worker            ],
122*2d543d20SAndroid Build Coastguard Worker            static: {
123*2d543d20SAndroid Build Coastguard Worker                whole_static_libs: [
124*2d543d20SAndroid Build Coastguard Worker                    "libpackagelistparser",
125*2d543d20SAndroid Build Coastguard Worker                ],
126*2d543d20SAndroid Build Coastguard Worker            },
127*2d543d20SAndroid Build Coastguard Worker
128*2d543d20SAndroid Build Coastguard Worker            shared: {
129*2d543d20SAndroid Build Coastguard Worker                shared_libs: [
130*2d543d20SAndroid Build Coastguard Worker                    "libpackagelistparser",
131*2d543d20SAndroid Build Coastguard Worker                ],
132*2d543d20SAndroid Build Coastguard Worker            },
133*2d543d20SAndroid Build Coastguard Worker            system_shared_libs: ["libc"],
134*2d543d20SAndroid Build Coastguard Worker        },
135*2d543d20SAndroid Build Coastguard Worker    },
136*2d543d20SAndroid Build Coastguard Worker
137*2d543d20SAndroid Build Coastguard Worker    static: {
138*2d543d20SAndroid Build Coastguard Worker        whole_static_libs: [
139*2d543d20SAndroid Build Coastguard Worker            "libpcre2",
140*2d543d20SAndroid Build Coastguard Worker            "liblog",
141*2d543d20SAndroid Build Coastguard Worker        ],
142*2d543d20SAndroid Build Coastguard Worker    },
143*2d543d20SAndroid Build Coastguard Worker    shared: {
144*2d543d20SAndroid Build Coastguard Worker        shared_libs: [
145*2d543d20SAndroid Build Coastguard Worker            "libpcre2",
146*2d543d20SAndroid Build Coastguard Worker            "liblog",
147*2d543d20SAndroid Build Coastguard Worker        ],
148*2d543d20SAndroid Build Coastguard Worker    },
149*2d543d20SAndroid Build Coastguard Worker    header_libs: [
150*2d543d20SAndroid Build Coastguard Worker        "libbase_headers",
151*2d543d20SAndroid Build Coastguard Worker        "libcutils_headers",
152*2d543d20SAndroid Build Coastguard Worker        "liblog_headers",
153*2d543d20SAndroid Build Coastguard Worker    ],
154*2d543d20SAndroid Build Coastguard Worker    local_include_dirs: [
155*2d543d20SAndroid Build Coastguard Worker        "include",
156*2d543d20SAndroid Build Coastguard Worker        "src",
157*2d543d20SAndroid Build Coastguard Worker    ],
158*2d543d20SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
159*2d543d20SAndroid Build Coastguard Worker
160*2d543d20SAndroid Build Coastguard Worker    stl: "none",
161*2d543d20SAndroid Build Coastguard Worker}
162*2d543d20SAndroid Build Coastguard Worker
163*2d543d20SAndroid Build Coastguard Workercc_defaults {
164*2d543d20SAndroid Build Coastguard Worker    name: "libselinux_flags_defaults",
165*2d543d20SAndroid Build Coastguard Worker    host_supported: true,
166*2d543d20SAndroid Build Coastguard Worker    cflags: select(release_flag("RELEASE_SELINUX_DATA_DATA_IGNORE"), {
167*2d543d20SAndroid Build Coastguard Worker        true: ["-DSELINUX_FLAGS_DATA_DATA_IGNORE"],
168*2d543d20SAndroid Build Coastguard Worker        default: [],
169*2d543d20SAndroid Build Coastguard Worker    }),
170*2d543d20SAndroid Build Coastguard Worker}
171*2d543d20SAndroid Build Coastguard Worker
172*2d543d20SAndroid Build Coastguard Workercc_library {
173*2d543d20SAndroid Build Coastguard Worker    name: "libselinux",
174*2d543d20SAndroid Build Coastguard Worker    defaults: ["libselinux_defaults"],
175*2d543d20SAndroid Build Coastguard Worker
176*2d543d20SAndroid Build Coastguard Worker    llndk: {
177*2d543d20SAndroid Build Coastguard Worker        symbol_file: "exported.map.txt",
178*2d543d20SAndroid Build Coastguard Worker    },
179*2d543d20SAndroid Build Coastguard Worker
180*2d543d20SAndroid Build Coastguard Worker    ramdisk_available: true,
181*2d543d20SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
182*2d543d20SAndroid Build Coastguard Worker    recovery_available: true,
183*2d543d20SAndroid Build Coastguard Worker    host_supported: true,
184*2d543d20SAndroid Build Coastguard Worker
185*2d543d20SAndroid Build Coastguard Worker    target: {
186*2d543d20SAndroid Build Coastguard Worker        linux_bionic: {
187*2d543d20SAndroid Build Coastguard Worker            enabled: true,
188*2d543d20SAndroid Build Coastguard Worker        },
189*2d543d20SAndroid Build Coastguard Worker
190*2d543d20SAndroid Build Coastguard Worker        android: {
191*2d543d20SAndroid Build Coastguard Worker            version_script: "exported.map.txt",
192*2d543d20SAndroid Build Coastguard Worker        },
193*2d543d20SAndroid Build Coastguard Worker    },
194*2d543d20SAndroid Build Coastguard Worker
195*2d543d20SAndroid Build Coastguard Worker    stubs: {
196*2d543d20SAndroid Build Coastguard Worker        symbol_file: "exported.map.txt",
197*2d543d20SAndroid Build Coastguard Worker        versions: ["30"],
198*2d543d20SAndroid Build Coastguard Worker    },
199*2d543d20SAndroid Build Coastguard Worker}
200*2d543d20SAndroid Build Coastguard Worker
201*2d543d20SAndroid Build Coastguard Workercc_test_host {
202*2d543d20SAndroid Build Coastguard Worker    name: "libselinux_test",
203*2d543d20SAndroid Build Coastguard Worker    defaults: ["libselinux_defaults"],
204*2d543d20SAndroid Build Coastguard Worker    srcs: ["src/android/android_unittest.cpp"],
205*2d543d20SAndroid Build Coastguard Worker
206*2d543d20SAndroid Build Coastguard Worker    cflags: [
207*2d543d20SAndroid Build Coastguard Worker        // regex.h will conflict with the default regex.h from libc.
208*2d543d20SAndroid Build Coastguard Worker        // Skip regex for gtest.
209*2d543d20SAndroid Build Coastguard Worker        "-DGTEST_HAS_POSIX_RE=0",
210*2d543d20SAndroid Build Coastguard Worker        // Disable automatic interactions with sysfs when libselinux is
211*2d543d20SAndroid Build Coastguard Worker        // initialized. This ensures that the tests remain hermetic on the host.
212*2d543d20SAndroid Build Coastguard Worker        "-DANDROID_UNIT_TESTING",
213*2d543d20SAndroid Build Coastguard Worker    ],
214*2d543d20SAndroid Build Coastguard Worker    whole_static_libs: [
215*2d543d20SAndroid Build Coastguard Worker        "libbase",
216*2d543d20SAndroid Build Coastguard Worker        "liblog",
217*2d543d20SAndroid Build Coastguard Worker        "libpcre2",
218*2d543d20SAndroid Build Coastguard Worker    ],
219*2d543d20SAndroid Build Coastguard Worker
220*2d543d20SAndroid Build Coastguard Worker    // Use default stl.
221*2d543d20SAndroid Build Coastguard Worker    stl: "",
222*2d543d20SAndroid Build Coastguard Worker}
223*2d543d20SAndroid Build Coastguard Worker
224*2d543d20SAndroid Build Coastguard Workercc_binary_host {
225*2d543d20SAndroid Build Coastguard Worker    name: "sefcontext_compile",
226*2d543d20SAndroid Build Coastguard Worker    defaults: ["libselinux_defaults"],
227*2d543d20SAndroid Build Coastguard Worker    srcs: ["utils/sefcontext_compile.c"],
228*2d543d20SAndroid Build Coastguard Worker
229*2d543d20SAndroid Build Coastguard Worker    static_libs: [
230*2d543d20SAndroid Build Coastguard Worker        "libselinux",
231*2d543d20SAndroid Build Coastguard Worker        "libsepol",
232*2d543d20SAndroid Build Coastguard Worker    ],
233*2d543d20SAndroid Build Coastguard Worker
234*2d543d20SAndroid Build Coastguard Worker    stl: "",
235*2d543d20SAndroid Build Coastguard Worker}
236*2d543d20SAndroid Build Coastguard Worker
237*2d543d20SAndroid Build Coastguard Workercc_binary {
238*2d543d20SAndroid Build Coastguard Worker    name: "selabel_get_digests_all_partial_matches",
239*2d543d20SAndroid Build Coastguard Worker    defaults: ["libselinux_defaults"],
240*2d543d20SAndroid Build Coastguard Worker    srcs: ["utils/selabel_get_digests_all_partial_matches.c"],
241*2d543d20SAndroid Build Coastguard Worker
242*2d543d20SAndroid Build Coastguard Worker    static_libs: [
243*2d543d20SAndroid Build Coastguard Worker        "libselinux",
244*2d543d20SAndroid Build Coastguard Worker    ],
245*2d543d20SAndroid Build Coastguard Worker
246*2d543d20SAndroid Build Coastguard Worker    stl: "",
247*2d543d20SAndroid Build Coastguard Worker}
248*2d543d20SAndroid Build Coastguard Worker
249*2d543d20SAndroid Build Coastguard Workerrust_bindgen {
250*2d543d20SAndroid Build Coastguard Worker    name: "libselinux_bindgen",
251*2d543d20SAndroid Build Coastguard Worker    wrapper_src: "rust/selinux.h",
252*2d543d20SAndroid Build Coastguard Worker    crate_name: "selinux_bindgen",
253*2d543d20SAndroid Build Coastguard Worker    visibility: [
254*2d543d20SAndroid Build Coastguard Worker        "//frameworks/native/libs/binder/rust/tests",
255*2d543d20SAndroid Build Coastguard Worker        "//system/security/keystore2:__subpackages__",
256*2d543d20SAndroid Build Coastguard Worker        "//packages/modules/Virtualization:__subpackages__",
257*2d543d20SAndroid Build Coastguard Worker        "//system/software_defined_vehicle:__subpackages__",
258*2d543d20SAndroid Build Coastguard Worker    ],
259*2d543d20SAndroid Build Coastguard Worker    source_stem: "bindings",
260*2d543d20SAndroid Build Coastguard Worker    local_include_dirs: ["include"],
261*2d543d20SAndroid Build Coastguard Worker
262*2d543d20SAndroid Build Coastguard Worker    // Generate bindings only for the symbols that are actually exported (see exported.map.txt).
263*2d543d20SAndroid Build Coastguard Worker    // This makes the generated bindings much more concise and improves compilation
264*2d543d20SAndroid Build Coastguard Worker    // time.
265*2d543d20SAndroid Build Coastguard Worker    bindgen_flags: [
266*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=fgetfilecon",
267*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=fgetfilecon_raw",
268*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=freecon",
269*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=fsetfilecon",
270*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=getcon",
271*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=getfilecon",
272*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=getpeercon",
273*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=getpidcon",
274*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=getprevcon",
275*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=is_selinux_enabled",
276*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=lgetfilecon",
277*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=lsetfilecon",
278*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=security_compute_create",
279*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=security_get_initial_context",
280*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=security_getenforce",
281*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=security_load_policy",
282*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=security_policyvers",
283*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=security_setenforce",
284*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selabel_close",
285*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selabel_lookup",
286*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selabel_lookup_best_match",
287*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selabel_open",
288*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_file_context_handle",
289*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_hw_service_context_handle",
290*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_load_policy",
291*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_load_policy_from_fd",
292*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_restorecon",
293*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_restorecon_pkgdir",
294*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_seapp_context_init",
295*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_service_context_handle",
296*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_set_sehandle",
297*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_setcon",
298*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_setcontext",
299*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_vendor_service_context_handle",
300*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_check_access",
301*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_log_callback",
302*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_set_callback",
303*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_status_open",
304*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_status_updated",
305*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_vendor_log_callback",
306*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=set_selinuxmnt",
307*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=setcon",
308*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=setexeccon",
309*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=setfilecon",
310*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=setfscreatecon",
311*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=setsockcreatecon",
312*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=setsockcreatecon_raw",
313*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=string_to_security_class",
314*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_context_with_level",
315*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_keystore2_key_context_handle",
316*2d543d20SAndroid Build Coastguard Worker        "--allowlist-function=selinux_android_tee_service_context_handle",
317*2d543d20SAndroid Build Coastguard Worker
318*2d543d20SAndroid Build Coastguard Worker        // We also need some constants in addition to the functions.
319*2d543d20SAndroid Build Coastguard Worker        "--allowlist-var=SELABEL_.*",
320*2d543d20SAndroid Build Coastguard Worker        "--allowlist-var=SELINUX_.*",
321*2d543d20SAndroid Build Coastguard Worker    ],
322*2d543d20SAndroid Build Coastguard Worker
323*2d543d20SAndroid Build Coastguard Worker    // This is mainly to run layout tests for generated bindings on the host.
324*2d543d20SAndroid Build Coastguard Worker    host_supported: true,
325*2d543d20SAndroid Build Coastguard Worker
326*2d543d20SAndroid Build Coastguard Worker    apex_available: [
327*2d543d20SAndroid Build Coastguard Worker        "com.android.virt",
328*2d543d20SAndroid Build Coastguard Worker        "//apex_available:platform",
329*2d543d20SAndroid Build Coastguard Worker    ],
330*2d543d20SAndroid Build Coastguard Worker}
331*2d543d20SAndroid Build Coastguard Worker
332*2d543d20SAndroid Build Coastguard Workerrust_test {
333*2d543d20SAndroid Build Coastguard Worker    name: "libselinux_bindgen_test",
334*2d543d20SAndroid Build Coastguard Worker    srcs: [
335*2d543d20SAndroid Build Coastguard Worker        ":libselinux_bindgen",
336*2d543d20SAndroid Build Coastguard Worker    ],
337*2d543d20SAndroid Build Coastguard Worker    crate_name: "selinux_bindgen_test",
338*2d543d20SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
339*2d543d20SAndroid Build Coastguard Worker    auto_gen_config: true,
340*2d543d20SAndroid Build Coastguard Worker    clippy_lints: "none",
341*2d543d20SAndroid Build Coastguard Worker    lints: "none",
342*2d543d20SAndroid Build Coastguard Worker}
343