You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac构建AOSP OTA包失败,缺失brillo_update_payload如何解决?

M1芯片Mac构建AOSP OTA包失败的问题解决

问题背景

已在M1 MacBook完成AOSP环境搭建,通过以下命令可成功完成全量构建:

source build/envsetup.sh 
lunch
m

执行make otapackage构建OTA包时,因darwin平台默认禁用otatools,修改了build/make/core/Makefile配置:

ifeq ($(BUILD_OS),darwin)
  build_ota_package := true
  build_otatools_package := true
else

重新全量构建后再次执行make otapackage,出现如下错误:

> make otapackage
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=10
TARGET_PRODUCT=aosp_sunfish
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_OS=darwin
HOST_OS_EXTRA=Darwin-21.6.0-x86_64-12.6
HOST_BUILD_TYPE=release
BUILD_ID=QD4A.200805.003
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=device/google/sunfish hardware/google/av hardware/google/interfaces hardware/google/pixel hardware/qcom/sm7150 hardware/qcom/sm7150/display vendor/google/camera vendor/qcom/sm7150 vendor/google/interfaces vendor/qcom/sm8150/codeaurora/telephony/ims vendor/qcom/sm8150/proprietary/data/permissions vendor/qcom/sm8150/proprietary/qcril-data-hal/qdp vendor/qcom/sm8150/proprietary/qcril-data-hal/util vendor/qcom/sm8150/proprietary/qcril-data-hal/datamodule vendor/qcom/sm8150/proprietary/qcril-hal
============================================
wildcard(out/target/product/sunfish/clean_steps.mk) was changed, regenerating...
FAILED: ninja: 'out/host/darwin-x86/bin/brillo_update_payload', needed by 'out/target/product/sunfish/aosp_sunfish-ota-eng.kohleradmin.zip', missing and no known rule to make it
16:09:01 ninja failed with: exit status 1

#### failed to build some targets (01:39 (mm:ss)) ####

问题原因

报错核心是缺少brillo_update_payload工具,这是因为AOSP旧版本(如Android 10)对M1架构的darwin平台支持不完善,默认配置下otatools相关依赖的构建规则未完全启用,导致工具无法生成。

解决步骤

  1. 完善otatools构建配置
    除修改build/make/core/Makefile外,还需调整build/make/core/main.mk中的配置,确保darwin平台下开启otatools构建:

    ifneq ($(BUILD_OS),darwin)
      BUILD_OTATOOLS := true
    else
      BUILD_OTATOOLS := true  # 将此处修改为true
    endif
    
  2. 单独预构建otatools
    全量构建完成后,先单独执行otatools的构建命令,确保依赖工具生成:

    make otatools
    

    等待构建完成后,再执行make otapackage。

  3. 启用Rosetta 2兼容模式
    M1为arm64架构,当前构建的host工具为x86_64,存在架构不匹配问题。右键终端选择「获取信息」,勾选「使用Rosetta打开」,重启终端后重新执行全量构建+OTA包构建流程。

  4. 升级AOSP版本
    Android 10对M1 Mac的兼容性较差,建议切换到Android 12及以上版本,官方后续版本针对darwin/arm64架构做了大量适配,能大幅减少此类工具缺失问题。

M1 Mac是否支持构建AOSP OTA包?

M1 Mac可以构建AOSP OTA包,但需要满足以下条件:

  • 需通过Rosetta 2兼容模式运行,或使用Android 12及以上适配arm64的AOSP版本
  • 需手动调整otatools相关构建配置,确保依赖工具编译规则生效
  • 旧版本AOSP(如Android 10)会存在较多兼容性坑,不推荐使用

内容的提问来源于stack exchange,提问作者Jayson_jia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:10:50