blob: bd4a881d488ad3264a69353eaaa1293855fe9a17 [file] [edit]
#
# List of ABI symbols that we do not want to support in GKI
#
# This is a list of various kernel symbols that are exported but should
# not be added to any symbol list for GKI. The reason for why the
# symbol is not allowed is given here, so that vendors who try to add
# the symbol to their abi file see this rational here, and we do not
# have to say it in gerrit after the symbol is submitted for inclusion.
#
# These symbols are grouped according to functionality / subsystem when
# ever possible.
#
# The format of this file is:
# symbol <TAB> Reason for not allowing it
# File access symbols that are forbidden because drivers should never
# try to access files directly. Instead proper user/kernel apis should
# always be used.
filp_open Drivers should not open files directly
kernel_read Drivers should never read from a file
kernel_read_file Drivers should never read from a file
kernel_read_file_from_path Drivers should never read from a file
kernel_write Drivers should never write to a file
# Kprobe needs to be left alone
disable_kprobe kprobe should not be touched by any driver
enable_kprobe kprobe should not be touched by any driver
# drivers should not care about memory pages
PageMovable Drivers should not care about memory pages
# symbol lookup will circumvent all ABI checking and easily break over time
__symbol_get No kernel symbols can be looked up
__symbol_put No kernel symbols can be looked up
# Building ext4 or f2fs as a module is not supported; they are already built-in.
# This implies that the fscrypt and fsverity symbols should never be exported.
# As this file does not support wildcard patterns, just list a few key symbols.
fscrypt_ioctl_add_key ext4 or f2fs cannot be a module
fscrypt_ioctl_set_policy ext4 or f2fs cannot be a module
fsverity_ioctl_enable ext4 or f2fs cannot be a module
fsverity_ioctl_measure ext4 or f2fs cannot be a module
# Vendor modules are not allowed to replace Binder
unload_binder Partners may not replace Binder