android_system_bpf/loader/Android.bp
Motomu Utsumi 87f696e2c3 Load bpfRingbufProg by rust bpfloader
No behavior change is expected.

Before this CL
"""
$ adb shell ls /etc/bpf/bpfRingbufProg.o
/etc/bpf/bpfRingbufProg.o
$ adb shell ls -lZ /sys/fs/bpf/*bpfRingbufProg*
-rw-rw---- 1 root root u:object_r:fs_bpf:s0  0 2025-05-28 12:40 /sys/fs/bpf/map_bpfRingbufProg_test_ringbuf
-r--r----- 1 root root u:object_r:fs_bpf:s0  0 2025-05-28 12:40 /sys/fs/bpf/prog_bpfRingbufProg_skfilter_ringbuf_test
"""

After this CL
"""
$ adb shell ls /etc/bpf/bpfRingbufProg.bpf
/etc/bpf/bpfRingbufProg.bpf
$ adb shell ls -lZ /sys/fs/bpf/*bpfRingbufProg*
-rw-rw---- 1 root root u:object_r:fs_bpf:s0  0 2025-05-28 15:12 /sys/fs/bpf/map_bpfRingbufProg_test_ringbuf
-r--r----- 1 root root u:object_r:fs_bpf:s0  0 2025-05-28 15:12 /sys/fs/bpf/prog_bpfRingbufProg_skfilter_ringbuf_test
"""

Test: Loaded successfully on kernel 5.10, 5.15, 6.1, 6.12
Test: Load is skipped on user build
Bug: 410982483
Change-Id: I17563ea55a34d216c0d3ccd100a19ca52aa4d7ac
2025-05-30 16:15:21 +09:00

114 lines
2.6 KiB
Text

//
// Copyright (C) 2018 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
default_team: "trendy_team_fwk_core_networking",
// http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// the below license kinds from "system_bpf_license":
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["system_bpf_license"],
}
cc_library {
name: "libbpf_android",
vendor_available: false,
host_supported: false,
target: {
android: {
srcs: [
"Loader.cpp",
],
sanitize: {
misc_undefined: ["integer"],
},
},
},
shared_libs: [
"libbase",
"libutils",
"liblog",
],
header_libs: [
"bpf_headers",
],
export_header_lib_headers: [
"bpf_headers",
],
export_include_dirs: ["include"],
defaults: ["bpf_cc_defaults"],
}
rust_bindgen {
name: "libbpf_android_bindgen",
crate_name: "bpf_android_bindgen",
wrapper_src: "include/libbpf_android.h",
source_stem: "bindings",
bindgen_flags: [
"--verbose",
],
cflags: [
"-Werror",
"-Wall",
"-Wextra",
"-Wno-pragma-once-outside-header",
],
shared_libs: [
"libbase",
"libutils",
"liblog",
"libbpf_android",
],
}
rust_defaults {
name: "bpfloader_defaults",
srcs: [
"bpfloader.rs",
],
rustlibs: [
"libbpf_android_bindgen",
"libandroid_ids",
"libandroid_logger",
"libanyhow",
"liblog_rust",
"liblibbpf_rs",
"liblibbpf_sys",
"liblibc",
"librustutils",
],
}
rust_test {
name: "bpfloader_tests",
defaults: ["bpfloader_defaults"],
test_suites: ["general-tests"],
}
rust_binary {
name: "bpfloader",
defaults: ["bpfloader_defaults"],
required: [
"timeInState.bpf",
],
product_variables: {
debuggable: {
required: [
"bpfRingbufProg.bpf",
],
},
},
}