Python管家 2025-09-30 09:08 采纳率: 0%
浏览 7

One Android VM image for both SA8295P and SA8775P — what must be rebuilt?

Problem description

I need one Android image that can boot as an Android VM on Qualcomm SA8295P and also on Qualcomm SA8775P.
I already have a working VM image for SA8295P (msmnile_gvmq). I want to reuse as much as possible for SA8775P and need to know which partitions/images must be rebuilt and which can be reused.

Evidence / outputs

Current image set (from lagvm/LINUX/android/out/target/product/msmnile_gvmq):

boot.img       super_empty.img        vendor_boot-debug.img
dtb.img        super.img              vendor_boot.img
dtbo.img       system_dlkm.img        vendor_boot-test-harness.img
init_boot.img  system_ext.img         vendor_dlkm.img
metadata.img   system.img             vendor.img
persist.img    userdata.img           vendor_ramdisk-debug.img
product.img    vbmeta.img             vendor_ramdisk.img
ramdisk.img    vendor-bootconfig.img  vendor_ramdisk-test-harness.img

My initial reasoning

  • Different SoCs (SA8295P vs SA8775P) → kernel, DTB/DTBO, vendor_boot (vendor ramdisk), and *_dlkm kernel modules are SoC-specific and likely must be rebuilt for SA8775P.
  • My SA8775P uses GKI, so matching boot.img/init_boot.img, vendor_boot.img, vendor_dlkm.img/system_dlkm.img, and vbmeta.img are required; vbmeta should be regenerated.
  • vendor.img might be reusable (but HALs/firmware can be SoC-specific).
  • system.img / system_ext.img / product.img might be reusable if VINTF compatibility passes.
  • In VM scenarios, DTB/DTBO must match the hypervisor’s virtual devices.

Environment / versions

  • Run mode: Android as VM on SA8295P and SA8775P
  • SA8295P target: msmnile_gvmq (boots OK)
  • SA8775P target: VM as well
  • Android version: AOSP 14

Questions

  1. For SA8775P VM boot, which images must be rebuilt? Is it correct that at least these are required:
    boot.img / init_boot.img, dtb.img, dtbo.img, vendor_boot.img, vendor_dlkm.img, system_dlkm.img, and regenerated vbmeta.img?
  2. Can I reuse vendor.img and/or system.img / system_ext.img / product.img (inside super.img) across SA8295P and SA8775P ?
  3. For VM use, is there a recommended approach to keep userland common and swap only SoC-specific parts (boot/vbmeta/dtb/*_dlkm, maybe vendor) to support both SoCs with one image set?
  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-09-30 09:08
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    根据你的问题描述,听起来是关于如何创建一个可以支持 SA8295P 和 SA8775P 的 Android 虚拟机图像。

    问题的关键点是关于 "what must be rebuilt",我理解这意味着你需要知道要重建哪些部分才能使 Android 虚拟机图像支持两种不同型号的芯片。

    根据我的理解,我会回答的问题是,如何配置和重建 Android 虚拟机图像以支持两种不同的芯片型号。

    接下来,我会给出一个解决方案:

    解决方案

    1. 获取支持两种芯片型号的 Android 源码
    2. 配置 Android 虚拟机的 build 目录,使得它支持两种类型的芯片
    3. 重建 Android 虚拟机的图像,使得它可以在 SA8295P 和 SA8775P 上部署

    核心代码

    首先,需要配置 Android 虚拟机的 build 目录,例如 device/sam/sa8275pdevice/sam/sa8295p 的支持。这涉及到修改 Android.mkBoardConfig.mk 文件等。

    接着,需要修改 build/core/product_config.mk 文件以支持两种类型的芯片,并配置 BOARD_HARDWARE_CLASS 变量。

    最后,使用 moto-make 将 Android 虚拟机的图像重建,这将根据之前的配置创建支持两种芯片型号的图像。

    更多信息

    如果你需要知道更多细节,包括具体的代码修改和配置指南,请让我知道,我会给出更详细的信息。

    评论

报告相同问题?

问题事件

  • 修改了问题 9月30日
  • 创建了问题 9月30日