Files
ack-tegra/drivers/android/Kconfig
Li Li 2e05770b48 BACKPORT: FROMGIT: binder: introduce transaction reports via netlink
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>
2025-08-27 13:00:40 -07:00

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