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](https://android.googlesource.com/platform/build/+/master/core/config.mk#186). 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.