| 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. |