tree: a1bc872886238cf7f50be21efe22bfd61138b3ab [path history] [tgz]
  1. modified/
  2. original/
  3. CleanSpec.mk
  4. MODULE_LICENSE_GPL
  5. NOTICE
  6. README.md
README.md

Android kernel headers

This project contains the original kernel headers that are used to generate Bionic's “cleaned-up” user-land headers.

They are mostly covered by the GPLv2 + exception, and thus cannot be distributed as part of the platform itself. The cleaned up headers do not contain copyrightable information and are distributed with bionic.

Importing modified kernel headers files is done using scripts found in bionic.

Note that if you‘re actually just trying to expose device-specific headers to build your device drivers, you shouldn’t modify bionic. Instead use TARGET_DEVICE_KERNEL_HEADERS and friends described in config.mk.

Regenerating the bionic headers

The uapi directory contains the original kernel UAPI (userspace API) headers that are used to generate Bionic's “cleaned-up” user-land headers. The script bionic/libc/kernel/tools/generate_uapi_headers.sh automatically imports the headers from an android kernel repository.

Running the script:

generate_uapi_headers.sh --download-kernel

In order to run the script, you must have properly initialized the build environment using the lunch command. The script will automatically retrieve an android kernel, generate all include files, and then copy the headers to this directory.

Manually modified headers

The modified/scsi directory contains a set of manually updated headers. The scsi kernel headers were never properly made to into uapi versions, so this directory contains the unmodified scsi headers that are imported into bionic. The generation script will indicate if these files have changed and require another manual update.

The files from the scsi directory will be copied into bionic after being processed as is, unless there exists a file of the same name in ../modified/scsi. Any files found in the modified directory completely replace the ones in the scsi directory.