• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SPDX-License-Identifier: GPL-2.0
2menu "Android"
3
4config ANDROID_BINDER_IPC
5	bool "Android Binder IPC Driver"
6	depends on MMU
7	default n
8	help
9	  Binder is used in Android for both communication between processes,
10	  and remote method invocation.
11
12	  This means one Android process can call a method/routine in another
13	  Android process, using Binder to identify, invoke and pass arguments
14	  between said processes.
15
16config ANDROID_BINDERFS
17	bool "Android Binderfs filesystem"
18	depends on ANDROID_BINDER_IPC
19	default n
20	help
21	  Binderfs is a pseudo-filesystem for the Android Binder IPC driver
22	  which can be mounted per-ipc namespace allowing to run multiple
23	  instances of Android.
24	  Each binderfs mount initially only contains a binder-control device.
25	  It can be used to dynamically allocate new binder IPC devices via
26	  ioctls.
27
28config ANDROID_BINDER_DEVICES
29	string "Android Binder devices"
30	depends on ANDROID_BINDER_IPC
31	default "binder,hwbinder,vndbinder"
32	help
33	  Default value for the binder.devices parameter.
34
35	  The binder.devices parameter is a comma-separated list of strings
36	  that specifies the names of the binder device nodes that will be
37	  created. Each binder device has its own context manager, and is
38	  therefore logically separated from the other devices.
39
40config ANDROID_BINDER_IPC_SELFTEST
41	bool "Android Binder IPC Driver Selftest"
42	depends on ANDROID_BINDER_IPC
43	help
44	  This feature allows binder selftest to run.
45
46	  Binder selftest checks the allocation and free of binder buffers
47	  exhaustively with combinations of various buffer sizes and
48	  alignments.
49
50config ANDROID_DEBUG_SYMBOLS
51	bool "Android Debug Symbols"
52	help
53	  Enables export of debug symbols that are useful for offline debugging
54	  of a kernel. These symbols would be used in vendor modules to find
55	  addresses of the core kernel symbols for vendor extensions.
56
57	  This driver is statically compiled into kernel and maintains all the
58	  required symbol addresses for vendor modules and provides necessary
59	  interface vendor modules.
60
61config ANDROID_VENDOR_HOOKS
62	bool "Android Vendor Hooks"
63	depends on TRACEPOINTS
64	help
65	  Enable vendor hooks implemented as tracepoints
66
67	  Allow vendor modules to attach to tracepoint "hooks" defined via
68	  DECLARE_HOOK or DECLARE_RESTRICTED_HOOK.
69
70config ANDROID_DEBUG_KINFO
71	bool "Android Debug Kernel Information Support"
72	depends on KALLSYMS
73	help
74	  This supports kernel information backup for bootloader usage.
75	  Specifics:
76	   - The kallsyms symbols for unwind_backtrace
77	   - Page directory pointer
78	   - UTS_RELEASE
79	   - BUILD_INFO(ro.build.fingerprint)
80
81config ANDROID_KABI_RESERVE
82	bool "Android KABI reserve padding"
83	default y
84	help
85	  This option enables the padding that the Android GKI kernel adds
86	  to many different kernel structures to support an in-kernel stable ABI
87	  over the lifespan of support for the kernel.
88
89	  Only disable this option if you have a system that needs the Android
90	  kernel drivers, but is NOT an Android GKI kernel image. If disabled
91	  it has the possibility to make the kernel static and runtime image
92	  slightly smaller but will NOT be supported by the Google Android
93	  kernel team.
94
95	  If even slightly unsure, say Y.
96
97config ANDROID_VENDOR_OEM_DATA
98	bool "Android vendor and OEM data padding"
99	default y
100	help
101	  This option enables the padding that the Android GKI kernel adds
102	  to many different kernel structures to support an in-kernel stable ABI
103	  over the lifespan of support for the kernel as well as OEM additional
104	  fields that are needed by some of the Android kernel tracepoints. The
105	  macros enabled by this option are used to enable padding in vendor modules
106	  used for the above specified purposes.
107
108	  Only disable this option if you have a system that needs the Android
109	  kernel drivers, but is NOT an Android GKI kernel image and you do NOT
110	  use the Android kernel tracepoints. If disabled it has the possibility
111	  to make the kernel static and runtime image slightly smaller but will
112	  NOT be supported by the Google Android kernel team.
113
114	  If even slightly unsure, say Y.
115
116endmenu
117