使用参考板

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

您可以使用 Android 开源项目 (AOSP) 构建和相关的硬件特定二进制文件为 Nexus 和 Pixel 设备创建构建。有关可用的 Android 版本和目标设备,请参阅源代码标签和版本

您还可以为DragonBoard 845cHiKey 960Khadas VIM3Qualcomm Robotics Board RB5 Android 参考板创建构建,这些参考板旨在帮助非移动组件供应商开发驱动程序并将其移植到 Android 版本。使用参考板可以简化升级工作,缩短新 Android 设备的上市时间,通过使 ODM/OEM 能够从更广泛的兼容组件中进行选择来降低设备成本,并提高组件供应商之间的创新速度。

Google 支持DragonBoard 845cHiKey 960Khadas VIM3Qualcomm Robotics Board RB5 Android 参考板。 AOSP 为这些板提供内核源代码和板支持,因此开发人员可以轻松地创建和调试外设驱动程序、进行内核开发以及执行其他任务,而 OEM 负担更少。

龙板845c

DragonBoard 845c 是 RB3 平台的一部分,可从96boards.org 获得

龙板图像

图 1. DragonBoard 845c

编译用户空间

使用以下命令在 DragonBoard 845c 上下载和构建 Android。

  1. 下载安卓源码树:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 下载当前的供应商包:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. 构建 AOSP:

    . ./build/envsetup.sh
    lunch db845c-userdebug
    make -j24
    

安装本地镜像

  1. 将 db845c 引导至快速引导模式。

  2. 运行以下命令:

    ./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
    

如有必要,您可以在以 USB 闪存模式启动 db845c 后运行以下脚本来执行 QDL 板恢复(参见DragonBoard Recovery ):

./device/linaro/dragonboard/installer/db845c/recovery.sh

构建内核

要构建 DragonBoard db845c Android 通用内核映像 (GKI) 内核工件:

  1. 运行以下命令以克隆内核源代码和预构建的 Android 工具链并构建脚本。

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
    
  1. 删除${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/中的所有对象,然后将构建工件从out/android-mainline/dist/复制到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/然后重建用户空间:

    make TARGET_KERNEL_USE=mainline -j24
    

    并使用生成的 boot.img 和 super.img 刷新设备(请参阅编译用户空间)。

  2. 测试 GKI 内核:

    1. 查看最新的 kernel_aarch64 构建

    2. artifacts中,下载 Image。

    3. Gzip 图像

      gzip Image
      
    4. 将其复制到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/

    5. 重建 AOSP 并使用新的 boot.img 刷新设备(请参阅编译用户空间)。

HiKey 960开发板

HiKey 960 开发板可从 Amazon 和Lenovator 获得

HiKey 960开发板图片

图 2. Lenovator 的 HiKey 960 开发板

编译用户空间

使用以下命令在 HiKey 960 开发板上下载和构建 Android。

  1. 下载 Android 源代码树

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 下载当前的供应商包

    ./device/linaro/hikey/fetch-vendor-package.sh
    
  3. 建造

    . ./build/envsetup.sh
    lunch hikey960-userdebug
    make -j24
    

安装本地镜像

  1. 通过打开开关 3 选择快速启动模式(有关详细信息,请参阅HiKey 960 入门指南)。

  2. 给电路板供电。

  3. 刷写本地图片:

    ./device/linaro/hikey/installer/hikey960/flash-all.sh
    
  4. 关闭开关 3 并重启电路板。

构建内核

要构建 HiKey960 Android GKI 内核工件:

  1. 运行以下命令:

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.hikey960 build/build.sh
    
  2. 删除${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/中的所有对象,然后将构建工件从out/android12-5.4/dist/中的内核构建复制到${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/

  3. 连接 DTB:

    cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  > 
    device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    
  4. 构建 Android 用户空间

    lunch hikey960-userdebug
    make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
    

    并使用新内核刷新设备(请参阅编译用户空间

  5. 测试通用内核映像 (GKI) 内核

    • 查看最新的 kernel_aarch64 构建

    • artifacts中,下载Image文件并将其复制到${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/

    • 压缩图像并连接 DTB

    gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
    cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  >
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    

设置序列号

要设置随机序列号,请运行:

  fastboot getvar nve:SN@16\_DIGIT\_NUMBER

引导加载程序使用androidboot.serialno=将生成的序列号导出到内核。此参数在 Android 11 及更低版本中通过内核命令行传递,在内核版本 5.10 或更高版本的 Android 12 中通过 bootconfig 传递。

设置显示器分辨率

编辑device/linaro/hikey/hikey960/BoardConfig.mk参数BOARD_KERNEL_CMDLINE并配置video设置。例如,24 英寸显示器的设置为video=HDMI-A-1:1280x800@60

VIM3 和 VIM3L 板

Khadas 的 Vim3 和 VIM3L 板可从Khadas 网站获得

VIM3板图像

图 3. Khadas 的 VIM3 开发板

编译用户空间

使用以下命令在 VIM3 板上下载和构建 Android。

  1. 下载安卓源码树:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 建造:

    . ./build/envsetup.sh
    lunch yukawa-userdebug
    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
    

    默认情况下,Android 使用 5.10 内核构建。要使用内核 5.4 预构建:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
    

    对于 VIM3L,使用:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
    

安装初始映像

  1. 按照VIM3 刷写说明将开发板置于 USB 升级模式。

  2. 将初始图像闪存到 RAM:

    cd path/to/aosp/device/amlogic/yukawa/bootloader/
    ./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
    ./tools/update run 0xfffa0000
    ./tools/update bl2_boot u-boot_kvim3_noab.bin
    
  3. U-Boot 启动并运行 fastboot 后,运行以下命令:

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
    
  4. 拔下并插入电源线。

开发板应该启动到刚刚刷新的 U-boot 并进入快速启动模式。

闪烁图像

  1. 进入快速启动模式(有关说明,请参阅上一节)。

  2. 刷新所有 Android 图像:

    cd out/target/product/yukawa
    fastboot flash boot boot.img
    fastboot flash super super.img
    fastboot flash cache cache.img
    fastboot flash userdata userdata.img
    fastboot flash recovery recovery.img
    fastboot flash dtbo dtbo-unsigned.img
    fastboot reboot
    

构建内核

要为 VIM3 或 VIM3L 构建内核工件:

  1. 下载额外的工具链:

    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
    
  2. 克隆内核源代码:

    # for 4.19
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
    # for 5.4
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
    # for 5.10
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
    # for 5.15
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
    
  3. 导出构建变量:

    export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    export LLVM=1
    
  4. 构建内核:

    cd hikey-linaro
    make meson_defconfig
    make DTC_FLAGS="-@" -j24
    
  5. 压缩内核并将 build_artifacts 复制到${AOSP_TOPDIR}/device/amlogic/yukawa-kernel

    lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
    KERN_VER=4.19 # for 4.19 kernel
    KERN_VER=5.4  # for 5.4 kernel
    KERN_VER=5.10 # for 5.10 kernel
    KERN_VER=5.15 # for 5.15 kernel
    for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do
        cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f)
    done
    cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
    
  6. 重建 Android 用户空间(参见编译用户空间)并刷新新内核(参见刷新图像)。

高通机器人开发板 RB5

机器人板 RB5 可从96boards.org 获得

rb5_board

图 4.机器人电路板 RB5

编译用户空间

使用以下命令在 RB5 上下载和构建 Android。

  1. 下载安卓源码树:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 下载当前的供应商包:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. 构建 AOSP:

    . ./build/envsetup.sh
    lunch rb5-userdebug
    make -j24
    

安装本地镜像

  1. 将 RB5 启动到快速启动模式。

  2. 运行以下命令:

    ./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
    

如有必要,您可以在以 USB 闪存模式启动 RB5 后运行以下脚本来执行 QDL 板恢复(参见RB5 Recovery ):

   ./device/linaro/dragonboard/installer/rb5/recovery.sh

构建内核

要构建 RB5 Android 通用内核映像 (GKI) 内核工件:

  1. 运行以下命令以克隆内核源代码和预构建的 Android 工具链并构建脚本:

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.db845c ./build/build.sh
    
  2. 删除${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/中的所有对象,然后将构建工件从out/android-mainline/dist/复制到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ ,然后重建用户空间:

    make TARGET_KERNEL_USE=mainline -j24
    

    并使用生成的 boot.img 和 super.img 刷新设备(请参阅编译用户空间)。

  3. 测试 GKI 内核:

    1. 查看最新的 kernel_aarch64 构建
    2. artifacts中,下载 Image。
    3. Gzip 图像

      gzip Image
      
    4. 将其复制到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/

    5. 重建 AOSP 并使用新的 boot.img 刷新设备(请参阅编译用户空间)。