从源代码构建 Android Automotive

2024-01-02

TL;DR

从源代码构建 Android Automotive 后,我该如何

  1. 运行汽车模拟器?
  2. 将 CarService 和相关软件包“安装”到设备上?

Details

我正在尝试建立安卓汽车 https://source.android.com/devices/automotive/从源头。我能够使用以下命令成功构建它:

$ repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r11 $ source build/envsetup.sh $ lunch car_emu_x86_64-userdebug $ make -j8 V=1 &>> make.log

我的问题是如何运行模拟器?在谷歌搜索并浏览了一些 stackoverflow 帖子后,我发现了这个:

首先,我在命令行中设置一个环境变量(模拟器使用它来确定要启动哪个模拟器)

export ANDROID_PRODUCT_OUT=/path/to/build_root

接下来,我创建了一个文件car-emulator.sh并将其放入其中(构建是在 Ubuntu 机器上完成的)

#!/usr/bin/env bash

ANDROID_BUILD_OUT=/path/to/build_root/out
PREBUILT=/path/to/build_root/prebuilts
EMULATOR_OUT=${ANDROID_BUILD_OUT}/target/product/car-x86_64

${PREBUILT}/android-emulator/linux-x86_64/emulator \
    -sysdir ${EMULATOR_OUT} \
    -system ${EMULATOR_OUT}/system.img \
    -ramdisk ${EMULATOR_OUT}/ramdisk.img \
    -data ${EMULATOR_OUT}/userdata.img \
    -kernel ${PREBUILT}/qemu-kernel/x86_64/kernel-qemu \
    -scale 0.7 \
    -memory 512 \
    -partition-size 1024

我还尝试将相关的 (darwin-x86_64) 文件从构建机器下载到我的 Mac 笔记本电脑并尝试在那里运行。模拟器启动但立即崩溃并出现巨大的本机堆栈跟踪。

我的问题的下一部分是如何在设备上安装此映像? 我看到CarService.apk已经生成了。在设备上安装此 APK 是否足以使其正常工作?或者 CarService 和相关包是否应该成为需要整体刷新的系统映像的一部分?


这就是我让它工作的方式安卓8.1.0 branch OPM5.171019.017:

$ source ./build/envsetup.sh
$ lunch aosp_car_x86_64-eng
$ emulator

接下来是终端上的以下输出:

模拟器:警告:系统分区大小已调整以匹配图像文件(2562 MB > 200 MB)

模拟器:警告:调整数据分区大小以匹配图像文件(550 MB > 200 MB)

警告:主机不支持请求的功能:CPUID.80000001H:ECX.sse4a [位 6]

警告:主机不支持请求的功能:CPUID.80000001H:ECX.sse4a [位 6]

Android 模拟器显示屏显示正在启动 Android Automotive。 如果上述解决方案不起作用,我建议您尝试构建工程版本用户调试模式。 请分享堆栈跟踪以供进一步分析。

关于你问题的第二部分。我认为您将 android auto 与 android auto 混淆了。

Android Auto 只是一个应用程序,可以使用 APK 和一些细微的调整来部署/设置,而 Android Automotive 是专门为汽车行业设计的 Android 定制版本,拥有自己的一套系统应用程序。因此,不能简单地通过安装APK来将其部署到设备上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从源代码构建 Android Automotive 的相关文章

  • 五大车载操作(VOS)系统优劣对比,车载系统架构分析-QNX系统性能分析

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com 导读 车载操作
  • 如何找到 Android 2.3.3 平台的源代码?

    当处于调试模式时 我收到一条 Android 内容未找到源消息 我正在使用 Andorid 10 来匹配我的设备 在 android sdk sources 中 我有 android 14 和 Android 15 如何以及在哪里可以获得
  • AOSP 构建:用默认测试密钥替换我自己的密钥

    我正在构建 AOSP 我想用我自己的密钥对构建进行签名 有一些关于此过程的官方文档here 但我想知道我是否可以简单地扭转所有这个过程 而是做这些事情 删除位于以下位置的默认 android 测试键build target product
  • 系统/应用程序中的 APK 何时安装?

    我创建了一个自定义系统映像 并将一个额外的 APK 放入系统 应用程序中 这有点有效 我可以运行该应用程序 但是本机库未加载 loadLibrary 失败 当我打电话时pm install在 APK 上 一切正常并且本地库加载 我的结论是
  • Android CTS:CTS下载、环境设置、构建和执行

    如果您了解 Android 兼容性测试套件 请向我们发送有关CTS源代码下载 环境设置 构建和执行的信息 您可以找到有关的所有信息设置并运行 CTS here 如果您很着急 以下是您最常使用的命令 运行 CTS 首先 添加android s
  • AOSP 6.0 为锤头鲨构建 - 专有二进制文件

    我刚刚为锤头构建了 AOSP 6 0 并尝试刷新它 我的手机在看到 Google 徽标时就卡住了 无法启动 我假设我需要使用此处找到的专有二进制文件https developers google com android nexus driv
  • JNI 集成到 AOSP 构建中

    我需要通过添加一些自定义库来更改 设置 应用程序 但我在配置方面遇到问题 当我尝试调用 System loadLibrary mylibrary 时 我得到libraryPath data app lib com settings 1 fi
  • Dalvik JIT 工作流程

    我对 dalvik vm Android 感兴趣 我试图通过 JIT 的代码来找出它执行的操作以及它如何选择跟踪 我无法遵循代码 因此 我请求所有人帮助我建议 JIT 中执行跟踪选择和翻译的相关函数 你可以尝试 git log grep J
  • 如何启用 Lollipop 中引入的新蓝牙 A2DP 接收器功能?

    我正在尝试修改 Nexus 5 的 AOSP android 映像以包括对蓝牙 A2DP 接收器的支持 我发现 Google 非常友善 为 Nexus 5 提供了一个隐藏的构建目标 https android googlesource co
  • 如何使用 ADB 生成 Android 中的捏合等多点触控事件? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想通过 ADB 命令行在 Android 中生成多点触控 捏合 的输入事件 现在我可以使用以下命令生成触摸屏滑动事件 input t
  • AOSP x86_64 模拟器在 Android Studio 中不可见

    我正在使用 AOSP 模拟器来测试我的代码 我在我的电脑上下载了AOSP的android10 release源代码 然后使用以下命令 source build envsetup sh set stuff for environment lu
  • 相机原生代码底层逻辑

    我试图更好地理解相机本机代码的底层逻辑 但在寻找方法定义时我似乎陷入了死胡同Camera connect 和其他声明的函数Camera h 我遵循的步骤如下 In the master branch I located Camera jav
  • 如何浏览特定版本的Android源代码?

    我知道android源代码保存在这里 https android googlesource com https android googlesource com 但我看不到任何浏览旧版本代码的方法 我会如何看待 比如说 dalvik lib
  • AOSP ActivityManager 未运行

    我正在尝试移植Android7 0进入定制硬件平台并拥有zygote运行背景 但是当我尝试使用启动应用程序时am start lt gt 它给出错误 无法连接到活动管理器 系统正在运行吗 之后我做了service list并发现activi
  • Android 自定义启动器 startActivity() 阻止 BOOT_COMPLETED 意图

    我目前正在开发一个自定义 ROM 基于 CyanogenMod 11 0 旨在实现自定义 Kiosk 模式 为此 我在一个应用程序中包含三个组件 具有系统权限 服务 用于处理对状态 导航栏的修改并禁用电源键 接收方 仅在BOOT COMPL
  • 从 AOSP master 切换到 froyo

    我刚刚用 repo 检查了 master 现在我想改用froyo 我怎样才能做到这一点而不需要再次下载一堆东西 我不想再次下载一堆东西 我只是希望能够像普通的 git 克隆一样在分支之间自由移动 由于您使用 repo 下载了所有内容 因此您
  • AOSP 的“午餐”组合是什么意思?我需要选择什么?

    我是 Android 设备 ROM 开发的新手 无论如何 我现在正在为具有 64 位处理器的中国设备构建 AOSP 我按照 source android com 上的菜单进行操作 当我运行 午餐 命令时 终端显示 午餐菜单 选择一个组合 我
  • 无论如何,要控制宋何时选择Android.bp,何时不选择?

    使用新的构建系统 即 Soong 安卓取代Android mk with Android bp 还有 Android Q 及以上版本 Soong将选择所有Android bp文件 无论所有文件都存在于何处 早些时候 对于 2 级和 3 级模
  • AOSP 中 android.Build.SERIAL 何时何地生成?

    我知道android Build SERIAL是在第一次设备启动时生成的 但我无法准确定位位置和时间 我正在建造AOSP Jelly Bean Android平板电脑 nosdcard 第二个问题 这个是序列号吗 really对所有人来说都
  • 退出设备上的 system.img

    我正在为我们部署给客户的设备 LG p509 Optimus 1 开发自动应用程序更新解决方案 我们可以控制这些设备 并且目前在它们上安装自定义内核 但不是完整的自定义 ROM 由于我们试图在设备上自动更新我们的应用程序 因此我们需要由我们

随机推荐