This project will no longer be maintained by Intel.
Intel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates.
Patches to this project are no longer accepted by Intel.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project.
There project is still in active development in the below location
https://github.com/projectceladon/kernelflinger
Kernelflinger is the Intel UEFI bootloader for AndroidTM/BrilloTM. It is compatible with the UEFI 2.4 specification.
Kernelflinger implements the Google Bootloader requirements for AndroidTM L, M, N and O desserts.
The key features are:
Kernelflinger depends on the following libraries:
Kernelflinger's compilation requires the following tools:
Kernelflinger's compilation relies on the AndroidTM
compilation system. In an AndroidTM tree, with all the
dependencies checked out, run the following command to build
$OUT/efi/kernelflinger.efi
.
$ make kernelflinger-$TARGET_BUILD_VARIANT
Run the following command to build $OUT/efi/installer.efi
:
$ make installer-$TARGET_BUILD_VARIANT
Kerneflinger specific configuration flags:
TARGET_NO_DEVICE_UNLOCK
: if true, any attempt to unlock the device
(fastboot flashing unlock
) will systematically fail.HAL_AUTODETECT
: Cf. Autodetect.KERNELFLINGER_ALLOW_UNSUPPORTED_ACPI_TABLE
: makes kernelflinger
ignore ACPI table oem_id, oem_table_id and revision fields.KERNELFLINGER_USE_POWER_BUTTON
: makes kernelflinger use the power
key as an input source.KERNELFLINGER_USE_WATCHDOG
: makes kernelflinger start the "kernel"
watchdog prior booting the kernel.KERNELFLINGER_USE_CHARGING_APPLET
: makes Kernelflinger use the
non-standard ChargingApplet protocol to get the battery and charger
status, and modify the boot flow in consequence.KERNELFLINGER_IGNORE_RSCI
: makes Kernelflinger ignore the
non-standard RSCI ACPI table. This APCI table provides the reset
and wake source reasons.KERNELFLINGER_IGNORE_NOT_APPLICABLE_RESET
: makes Kernelflinger
ignore the ACPI table RSCI reset source "not_applicable" when
setting the bootreason.KERNELFLINGER_SSL_LIBRARY
: either 'openssl' or 'boringssl', makes
Kernelflinger build against the OpenSSL library, respectively, the
BoringSSL library. BOARD_AVB_ENABLE
: support AVB (Android Verify Boot)BOARD_SLOT_AB_ENABLE
: support AVB A/B slot.-f
: enforce kernelfliner to enter Fastboot mode-U
[test-suite-name]: run unittest test (see
unittest.c).If you have discovered potential security vulnerability in Kernelflinger, please send an e-mail to secure@intel.com. For issues related to Intel Products, please visit https://security-center.intel.com.
It is important to include the following details:
Vulnerability information is extremely sensitive. Please encrypt all security vulnerability reports using our PGP key.
A member of the Intel Product Security Team will review your e-mail and contact you to to collaborateon resolving the issue. For more information on how Intel works to resolve security issues, see: vulnerability handling guidelines.
Kernelflinger is licensed under the terms of the BSD 2-Clause.