Introduce a generic netlink multicast event to report binder transaction failures to userspace. This allows subscribers to monitor these events and take appropriate actions, such as stopping a misbehaving application that is spamming a service with huge amount of transactions. The multicast event contains full details of the failed transactions, including the sender/target PIDs, payload size and specific error code. This interface is defined using a YAML spec, from which the UAPI and kernel headers and source are auto-generated. Signed-off-by: Li Li <dualli@google.com> Signed-off-by: Carlos Llamas <cmllamas@google.com> Link: https://lore.kernel.org/r/20250727182932.2499194-4-cmllamas@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Bug: 372832477 (cherry picked from commit 63740349eba78f242bcbf60d5244d7f2b2600853 git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git char-misc-next) [cmllamas: fix missing t->is_reply, fix ABI header include issue] Change-Id: I7013f9bba450f7ab3331dd850314a7b62af58818 Signed-off-by: Carlos Llamas <cmllamas@google.com>
128 lines
4.5 KiB
Plaintext
128 lines
4.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
menu "Android"
|
|
|
|
config ANDROID_BINDER_IPC
|
|
bool "Android Binder IPC Driver"
|
|
depends on MMU
|
|
depends on NET
|
|
default n
|
|
help
|
|
Binder is used in Android for both communication between processes,
|
|
and remote method invocation.
|
|
|
|
This means one Android process can call a method/routine in another
|
|
Android process, using Binder to identify, invoke and pass arguments
|
|
between said processes.
|
|
|
|
config ANDROID_BINDERFS
|
|
bool "Android Binderfs filesystem"
|
|
depends on ANDROID_BINDER_IPC
|
|
default n
|
|
help
|
|
Binderfs is a pseudo-filesystem for the Android Binder IPC driver
|
|
which can be mounted per-ipc namespace allowing to run multiple
|
|
instances of Android.
|
|
Each binderfs mount initially only contains a binder-control device.
|
|
It can be used to dynamically allocate new binder IPC devices via
|
|
ioctls.
|
|
|
|
config ANDROID_BINDER_DEVICES
|
|
string "Android Binder devices"
|
|
depends on ANDROID_BINDER_IPC
|
|
default "binder,hwbinder,vndbinder"
|
|
help
|
|
Default value for the binder.devices parameter.
|
|
|
|
The binder.devices parameter is a comma-separated list of strings
|
|
that specifies the names of the binder device nodes that will be
|
|
created. Each binder device has its own context manager, and is
|
|
therefore logically separated from the other devices.
|
|
|
|
config ANDROID_BINDER_IPC_RUST
|
|
tristate "Rust version of Android Binder IPC Driver"
|
|
depends on RUST && ANDROID_BINDER_IPC && ANDROID_BINDERFS
|
|
help
|
|
This enables the Rust implementation of the Binder driver. At this
|
|
time, the Rust implementation can only be built as an alternative to
|
|
the C implementation. By default, the C implementation is used, but
|
|
if the binder.impl=rust kernel command-line parameter is provided,
|
|
then the Rust implementation is used instead.
|
|
|
|
To build this as a GKI module, choose m.
|
|
|
|
config ANDROID_BINDER_IPC_RUST_DUMMY
|
|
tristate "Empty module called rust_binder.ko"
|
|
depends on ANDROID_BINDER_IPC && !ANDROID_BINDER_IPC_RUST
|
|
help
|
|
This creates an empty module of the same name as the Rust Binder
|
|
module. This option can be used to trick the build system into
|
|
thinking that Rust Binder was successfully built in cases where Rust
|
|
support is unavailable.
|
|
|
|
config ANDROID_BINDER_IPC_SELFTEST
|
|
bool "Android Binder IPC Driver Selftest"
|
|
depends on ANDROID_BINDER_IPC
|
|
help
|
|
This feature allows binder selftest to run.
|
|
|
|
Binder selftest checks the allocation and free of binder buffers
|
|
exhaustively with combinations of various buffer sizes and
|
|
alignments.
|
|
|
|
config ANDROID_VENDOR_HOOKS
|
|
bool "Android Vendor Hooks"
|
|
depends on TRACEPOINTS
|
|
help
|
|
Enable vendor hooks implemented as tracepoints
|
|
|
|
Allow vendor modules to attach to tracepoint "hooks" defined via
|
|
DECLARE_HOOK or DECLARE_RESTRICTED_HOOK.
|
|
|
|
config ANDROID_DEBUG_KINFO
|
|
bool "Android Debug Kernel Information Support"
|
|
depends on KALLSYMS
|
|
help
|
|
This supports kernel information backup for bootloader usage.
|
|
Specifics:
|
|
- The kallsyms symbols for unwind_backtrace
|
|
- Page directory pointer
|
|
- UTS_RELEASE
|
|
- BUILD_INFO(ro.build.fingerprint)
|
|
|
|
config ANDROID_KABI_RESERVE
|
|
bool "Android KABI reserve padding"
|
|
default y
|
|
help
|
|
This option enables the padding that the Android GKI kernel adds
|
|
to many different kernel structures to support an in-kernel stable ABI
|
|
over the lifespan of support for the kernel.
|
|
|
|
Only disable this option if you have a system that needs the Android
|
|
kernel drivers, but is NOT an Android GKI kernel image. If disabled
|
|
it has the possibility to make the kernel static and runtime image
|
|
slightly smaller but will NOT be supported by the Google Android
|
|
kernel team.
|
|
|
|
If even slightly unsure, say Y.
|
|
|
|
config ANDROID_VENDOR_OEM_DATA
|
|
bool "Android vendor and OEM data padding"
|
|
default y
|
|
help
|
|
This option enables the padding that the Android GKI kernel adds
|
|
to many different kernel structures to support an in-kernel stable ABI
|
|
over the lifespan of support for the kernel as well as OEM additional
|
|
fields that are needed by some of the Android kernel tracepoints. The
|
|
macros enabled by this option are used to enable padding in vendor modules
|
|
used for the above specified purposes.
|
|
|
|
Only disable this option if you have a system that needs the Android
|
|
kernel drivers, but is NOT an Android GKI kernel image and you do NOT
|
|
use the Android kernel tracepoints. If disabled it has the possibility
|
|
to make the kernel static and runtime image slightly smaller but will
|
|
NOT be supported by the Google Android kernel team.
|
|
|
|
If even slightly unsure, say Y.
|
|
|
|
endmenu
|