diff --git a/static/build.html b/static/build.html index 47af064d..c57b4199 100644 --- a/static/build.html +++ b/static/build.html @@ -70,15 +70,6 @@
  • Updating and switching branches or tags
  • -
  • - Kernel - -
  • Extracting vendor files for Pixel devices
  • Setting up the OS build environment
  • Reproducible builds
  • @@ -103,6 +94,15 @@
  • Prebuilt code @@ -257,21 +257,6 @@ a fully self-contained build process with minimal external dependencies is gradual and there are still dependencies that need to be installed on the host system.

    -

    The Linux kernel build process is not integrated into the rest of the AOSP build - process, but does reuse the same prebuilts to make the build reproducible.

    - -

    Additional Linux kernel build dependencies not provided by the source tree:

    - - - -

    The dependency on the host libgcc and binutils for building utilities during the - build process will be phased out by moving to a pure LLVM-based toolchain alongside - doing it for the target. This is lagging a bit behind for the kernel, particularly - code built for the host.

    -

    Additional Android Open Source Project build dependencies not provided by the source tree:

    @@ -391,108 +376,6 @@ cd ../.. GrapheneOS only provides a stable history via tags.

    -
    -

    Kernel

    - -

    The kernel needs to be built in advance, since it uses a separate build system.

    - -

    Prebuilts are provided for all the officially supported devices, so this step - is optional.

    - -
    -

    4th generation Pixels

    - -
    mkdir -p android/kernel/coral
    -cd android/kernel/coral
    -repo init -u https://github.com/GrapheneOS/kernel_manifest-coral.git -b 13
    -repo sync -j16
    - -

    To build the coral kernel for the Pixel 4 and Pixel 4 XL:

    - -
    KBUILD_BUILD_VERSION=1 KBUILD_BUILD_USER=build-user KBUILD_BUILD_HOST=build-host KBUILD_BUILD_TIMESTAMP="Thu 01 Jan 1970 12:00:00 AM UTC" BUILD_CONFIG=private/msm-google/build.config.floral build/build.sh
    - -

    To build the sunfish kernel for the Pixel 4a:

    - -
    KBUILD_BUILD_VERSION=1 KBUILD_BUILD_USER=build-user KBUILD_BUILD_HOST=build-host KBUILD_BUILD_TIMESTAMP="Thu 01 Jan 1970 12:00:00 AM UTC" BUILD_CONFIG=private/msm-google/build.config.sunfish build/build.sh
    - -

    Replace the files in the OS source tree at - device/google/coral-kernel/ or - device/google/sunfish-kernel/ with your build in - out/android-msm-pixel-4.14/dist/.

    -
    - -
    -

    5th generation Pixels

    - -

    For 5th generation Pixels:

    - -
    mkdir -p android/kernel/redbull
    -cd android/kernel/redbull
    -repo init -u https://github.com/GrapheneOS/kernel_manifest-redbull.git -b 13
    -repo sync -j16
    - -

    To build the redbull kernel for the Pixel 4a (5G), Pixel 5 and Pixel 5a - kernel:

    - -
    BUILD_CONFIG=private/msm-google/build.config.redbull.vintf build/build.sh
    - -

    Replace the files in the OS source tree at - device/google/redbull-kernel/ (userdebug/eng) and - device/google/redbull-kernel/vintf/ (user) with your build in - out/android-msm-pixel-4.19/dist/.

    -
    - -
    -

    6th generation Pixels

    - -

    To sync the raviole kernel for the Pixel 6 and Pixel 6 Pro:

    - -
    mkdir -p android/kernel/raviole
    -cd android/kernel/raviole
    -repo init -u https://github.com/GrapheneOS/kernel_manifest-raviole.git -b 13
    -repo sync -j16
    - -

    To sync the bluejay kernel for the Pixel 6a:

    - -
    mkdir -p android/kernel/bluejay
    -cd android/kernel/bluejay
    -repo init -u https://github.com/GrapheneOS/kernel_manifest-bluejay.git -b 13
    -repo sync -j16
    - -

    To build the raviole kernel for the Pixel 6 and Pixel 6 Pro:

    - -
    LTO=full BUILD_KERNEL=1 ./build_slider.sh
    - -

    To build the bluejay kernel for the Pixel 6a:

    - -
    LTO=full BUILD_KERNEL=1 ./build_bluejay.sh
    - -

    Replace the files in the OS source tree at - device/google/raviole-kernel/ or - device/google/bluejay-kernel/ with your build in - out/mixed/dist/.

    -
    - -
    -

    7th generation Pixels

    - -

    To sync the pantah kernel for the Pixel 7 and Pixel 7 Pro:

    - -
    mkdir -p android/kernel/pantah
    -cd android/kernel/pantah
    -repo init -u https://github.com/GrapheneOS/kernel_manifest-pantah.git -b 13
    -repo sync -j16
    - -

    To build the pantah kernel for the Pixel 7 and Pixel 7 Pro:

    - -
    LTO=full BUILD_AOSP_KERNEL=1 ./build_cloudripper.sh
    - -

    Replace the files in the OS source tree at - device/google/pantah-kernel/ with your build in - out/mixed/dist/.

    -
    -
    -

    Extracting vendor files for Pixel devices

    @@ -816,6 +699,123 @@ cd ../.. separately and then bundled into the source tree as binaries. This section will be gradually expanded to cover building all of it.

    +
    +

    Kernel

    + +

    The Linux kernel is built separately using an AOSP kernel build system + wrapping the upstream Linux kernel build system. Since it's a separate build + system from the rest of the OS, the kernels are built separately. Many of the + repositories are shared with the rest of the OS including the repositories + providing the prebuilt toolchain for reproducible builds not depending on the + tools from the host OS.

    + +

    Additional Linux kernel build dependencies beyond the AOSP dependencies not + provided by the source tree:

    + +
      +
    • libgcc (for the host, not the target)
    • +
    • binutils (for the host, not the target)
    • +
    + +

    The dependency on the host libgcc and binutils for building utilities during the + build process will be phased out by moving to a pure LLVM-based toolchain alongside + doing it for the target. This is lagging a bit behind for the kernel, particularly + code built for the host.

    + +
    +

    4th generation Pixels

    + +
    mkdir -p android/kernel/coral
    +cd android/kernel/coral
    +repo init -u https://github.com/GrapheneOS/kernel_manifest-coral.git -b 13
    +repo sync -j16
    + +

    To build the coral kernel for the Pixel 4 and Pixel 4 XL:

    + +
    KBUILD_BUILD_VERSION=1 KBUILD_BUILD_USER=build-user KBUILD_BUILD_HOST=build-host KBUILD_BUILD_TIMESTAMP="Thu 01 Jan 1970 12:00:00 AM UTC" BUILD_CONFIG=private/msm-google/build.config.floral build/build.sh
    + +

    To build the sunfish kernel for the Pixel 4a:

    + +
    KBUILD_BUILD_VERSION=1 KBUILD_BUILD_USER=build-user KBUILD_BUILD_HOST=build-host KBUILD_BUILD_TIMESTAMP="Thu 01 Jan 1970 12:00:00 AM UTC" BUILD_CONFIG=private/msm-google/build.config.sunfish build/build.sh
    + +

    Replace the files in the OS source tree at + device/google/coral-kernel/ or + device/google/sunfish-kernel/ with your build in + out/android-msm-pixel-4.14/dist/.

    +
    + +
    +

    5th generation Pixels

    + +

    For 5th generation Pixels:

    + +
    mkdir -p android/kernel/redbull
    +cd android/kernel/redbull
    +repo init -u https://github.com/GrapheneOS/kernel_manifest-redbull.git -b 13
    +repo sync -j16
    + +

    To build the redbull kernel for the Pixel 4a (5G), Pixel 5 and Pixel 5a + kernel:

    + +
    BUILD_CONFIG=private/msm-google/build.config.redbull.vintf build/build.sh
    + +

    Replace the files in the OS source tree at + device/google/redbull-kernel/ (userdebug/eng) and + device/google/redbull-kernel/vintf/ (user) with your build in + out/android-msm-pixel-4.19/dist/.

    +
    + +
    +

    6th generation Pixels

    + +

    To sync the raviole kernel for the Pixel 6 and Pixel 6 Pro:

    + +
    mkdir -p android/kernel/raviole
    +cd android/kernel/raviole
    +repo init -u https://github.com/GrapheneOS/kernel_manifest-raviole.git -b 13
    +repo sync -j16
    + +

    To sync the bluejay kernel for the Pixel 6a:

    + +
    mkdir -p android/kernel/bluejay
    +cd android/kernel/bluejay
    +repo init -u https://github.com/GrapheneOS/kernel_manifest-bluejay.git -b 13
    +repo sync -j16
    + +

    To build the raviole kernel for the Pixel 6 and Pixel 6 Pro:

    + +
    LTO=full BUILD_KERNEL=1 ./build_slider.sh
    + +

    To build the bluejay kernel for the Pixel 6a:

    + +
    LTO=full BUILD_KERNEL=1 ./build_bluejay.sh
    + +

    Replace the files in the OS source tree at + device/google/raviole-kernel/ or + device/google/bluejay-kernel/ with your build in + out/mixed/dist/.

    +
    + +
    +

    7th generation Pixels

    + +

    To sync the pantah kernel for the Pixel 7 and Pixel 7 Pro:

    + +
    mkdir -p android/kernel/pantah
    +cd android/kernel/pantah
    +repo init -u https://github.com/GrapheneOS/kernel_manifest-pantah.git -b 13
    +repo sync -j16
    + +

    To build the pantah kernel for the Pixel 7 and Pixel 7 Pro:

    + +
    LTO=full BUILD_AOSP_KERNEL=1 ./build_cloudripper.sh
    + +

    Replace the files in the OS source tree at + device/google/pantah-kernel/ with your build in + out/mixed/dist/.

    +
    +
    +

    Browser and WebView