Clone this repo:
  1. 8357d9a Merge "Update to kernel headers v4.12.3." am: 4c6f031b72 by Christopher Ferris · 3 months ago master
  2. 4c6f031 Merge "Update to kernel headers v4.12.3." by Christopher Ferris · 3 months ago
  3. 0543f74 Update to kernel headers v4.12.3. by Christopher Ferris · 3 months ago
  4. 284ad73 Merge "Update the kernel-headers docs." am: ab0b76f533 by Elliott Hughes · 3 months ago
  5. ab0b76f Merge "Update the kernel-headers docs." by Treehugger Robot · 3 months ago

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.