Android车机DIY开发之软件篇(九) NXP AutomotiveOS编译
Android车机DIY开发之软件篇(十一) NXP AutomotiveOS编译
Google 在汽车上也提供了用于汽车的 Google 汽车服务(GAS,Google Automotive Service),包含有 Google 地图、应用市场、Google 汽车助理等等。Google 汽车服务同样没有开源,而是以软件包的形式提供给制造商。 目前国内汽车搭载的 Android 系统都是在标准的 Android Automotive OS 基础上对架构重新进行了定制及应用的本地化适配。
SystemUI 位置 /frameworks/base/packages/SystemUI
CarSystemUI 位置 packages/apps/Car/SystemUI
CarLuncher 位置packages/apps/Car/Launcher
CarServices 位置packages/services/Car/service
CarAPI 位置packages/Car/car-lib car-support-lib
编译镜像文件位置 device/generic/car/XXX.mk
Android Studio for Platform
1. 下载地址
nxp下载地址
解压automotive-14.0.0_2.1.0.tar.gz 到 ~/.
2.在HOME执行
sudo rm -rf /usr/bin/python
sudo ln -s /usr/bin/python2 /usr/bin/python
git config --global user.name “赵川”
git config --global user.email"zc1508890767@gmail.com"
sudo apt-get install libqt5x11extras5
sudo dpkg -i nekoray-3.26-2023-12-09-debian-x64.deb
设置代理
git config --global http.proxy http://127.0.0.1:2081
git config --global https.proxy https://127.0.0.1:2081
浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
按网页上指示运行
谷歌镜像
mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=${PATH}:~/bin
source ~/imx-automotive-14.0.0_2.1.0/imx_android_setup.sh
mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=${PATH}:~/bin
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
source ~/imx-automotive-12.0.0_1.1/imx_android_setup.sh
基于清华大学镜像服务器,修改 android_build/.repo/manifests/ 目录下 .xml 文件,如下所示:
fetch="https://android.googlesource.com/"改为fetch="https://aosp.tuna.tsinghua.edu.cn"review="https://android-review.googlesource.com/"/> <defaultrevision="refs/tags/android-14.0.0.2.1.0" 上面这条命令会执行很长时间~~~~~~ 下载A内核交叉编译工具链
[下载网页](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads/12-3-rel1)
AArch32 arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-eabi.tar.xz
AArch64 arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
AArch32 :```bash
sudo tar -xvJf arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-eabi.tar.xz -C /opt
export AARCH32_GCC_CROSS_COMPILE=/opt/arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-
```
AArch64:```bash
sudo tar -xvJf arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linuxgnu.tar.xz -C /opt
export AARCH64_GCC_CROSS_COMPILE=/opt/arm-gnu-toolchain-12.3.rel1-x86_64-
aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
```
运行:
```bash
sudo git clone -b main-kernel-build-2024 --single-branch --depth 1 https://
android.googlesource.com/platform/prebuilts/clang/host/linux-x86 /opt/
prebuilt-android-clang
cd /opt/prebuilt-android-clang
sudo git fetch origin 3bd47139ac0e3593d4707ac0eeb2d45aa7411b67
sudo git checkout 3bd47139ac0e3593d4707ac0eeb2d45aa7411b67
export CLANG_PATH=/opt/prebuilt-android-clang
export LIBCLANG_PATH=/opt/prebuilt-android-clang/clang-r510928/lib
``````bash
sudo git clone -b main-kernel-build-2024 --single-branch --depth 1 https://
android.googlesource.com/kernel/prebuilts/build-tools /opt/prebuilt-androidkernel-build-tools
cd /opt/prebuilt-android-kernel-build-tools
sudo git fetch origin ae85d23af20f61220b114fc3f7bb6f77cc140365
sudo git checkout ae85d23af20f61220b114fc3f7bb6f77cc140365
export PATH=/opt/prebuilt-android-kernel-build-tools/linux-x86/bin:$PATH
```
/etc/profile下载Arm Cortex-M4内核交叉编译工具链
[下载网页](https://developer.arm.com/downloads/-/gnu-rm)```bash
sudo tar -jxvf gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2 -C /opt
export ARMGCC_DIR=/opt/gcc-arm-none-eabi-7-2018-q2-update
``````bash
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/
cmake-3.13.2.tar.gz
tar -xzvf cmake-3.13.2.tar.gz; cd cmake-3.13.2;
sudo ./bootstrap
sudo make
sudo make install
```## 3.编译source build/envsetup.sh
lunch1. aosp_arm-eng2. aosp_arm64-eng3. aosp_barbet-userdebug4. aosp_bluejay-userdebug5. aosp_bluejay_car-userdebug6. aosp_bramble-userdebug7. aosp_bramble_car-userdebug8. aosp_car_arm-userdebug9. aosp_car_arm64-userdebug10. aosp_car_x86-userdebug11. aosp_car_x86_64-userdebug12. aosp_cf_arm64_auto-userdebug13. aosp_cf_arm64_phone-userdebug14. aosp_cf_x86_64_foldable-userdebug15. aosp_cf_x86_64_pc-userdebug16. aosp_cf_x86_64_phone-userdebug17. aosp_cf_x86_64_tv-userdebug18. aosp_cf_x86_auto-userdebug19. aosp_cf_x86_phone-userdebug20. aosp_cf_x86_tv-userdebug21. aosp_cheetah-userdebug22. aosp_cloudripper-userdebug23. aosp_coral-userdebug24. aosp_coral_car-userdebug25. aosp_flame-userdebug26. aosp_flame_car-userdebug27. aosp_oriole-userdebug28. aosp_oriole_car-userdebug29. aosp_panther-userdebug30. aosp_raven-userdebug31. aosp_raven_car-userdebug32. aosp_ravenclaw-userdebug33. aosp_redfin-userdebug34. aosp_redfin_car-userdebug35. aosp_redfin_vf-userdebug36. aosp_slider-userdebug37. aosp_sunfish-userdebug38. aosp_sunfish_car-userdebug39. aosp_trout_arm64-userdebug40. aosp_trout_x86-userdebug41. aosp_whitefin-userdebug42. aosp_x86-eng43. aosp_x86_64-eng44. arm_krait-eng45. arm_v7_v8-eng46. armv8-eng47. armv8_cortex_a55-eng48. armv8_kryo385-eng49. beagle_x15-userdebug50. beagle_x15_auto-userdebug51. car_ui_portrait-userdebug52. car_x86_64-userdebug53. db845c-userdebug54. evk_6sl-user55. evk_6sl-userdebug56. evk_7ulp-user57. evk_7ulp-userdebug58. evk_7ulp_revb-user59. evk_7ulp_revb-userdebug60. evk_8mm-user61. evk_8mm-userdebug62. evk_8mn-user63. evk_8mn-userdebug64. evk_8mp-user65. evk_8mp-userdebug66. evk_8mq-user67. evk_8mq-userdebug68. evk_8ulp-user69. evk_8ulp-userdebug70. evk_93-user71. evk_93-userdebug72. gsi_car_arm64-userdebug73. gsi_car_x86_64-userdebug74. hikey-userdebug75. hikey64_only-userdebug76. hikey960-userdebug77. hikey960_tv-userdebug78. hikey_tv-userdebug79. mek_8q-user80. mek_8q-userdebug81. mek_8q_car-user82. mek_8q_car-userdebug83. mek_8q_car2-user84. mek_8q_car2-userdebug85. poplar-eng86. poplar-user87. poplar-userdebug88. qemu_trusty_arm64-userdebug89. rb5-userdebug90. sabreauto_6q-user91. sabreauto_6q-userdebug92. sabresd_6dq-user93. sabresd_6dq-userdebug94. sabresd_6dq_car-user95. sabresd_6dq_car-userdebug96. sabresd_6sx-user97. sabresd_6sx-userdebug98. sabresd_7d-user99. sabresd_7d-userdebug100. sdk_car_arm-userdebug101. sdk_car_arm64-userdebug102. sdk_car_portrait_x86_64-userdebug103. sdk_car_x86-userdebug104. sdk_car_x86_64-userdebug105. sdk_pc_x86_64-userdebug106. silvermont-eng107. uml-userdebug108. watch_8ulp-user109. watch_8ulp-userdebug110. yukawa-userdebug111. yukawa_sei510-userdebug./imx-make.sh -j4 2>&1 | tee build-log.txt编译选项
| mek_8q_car-trunk_staginguserdebug | i.MX 8QuadXPlus/8QuadMax MEK Board with the EVSfunction enabled on the Arm Cortex-M4 CPU core|
|--|--|
| mek_8q_car2-trunk_staginguserdebug | i.MX 8QuadMax/8QuadXPlus MEK Board with the EVS function enabled on the Arm Cortex-A CPU cores (Power mode switch demo is running on the Cortex-M4 core in thisconfiguration) |
|--|--|
| | |相关文章:
Android车机DIY开发之软件篇(九) NXP AutomotiveOS编译
Android车机DIY开发之软件篇(十一) NXP AutomotiveOS编译 Google 在汽车上也提供了用于汽车的 Google 汽车服务(GAS,Google Automotive Service),包含有 Google 地图、应用市场、Google 汽车助理等等。Google 汽车服务同样没有开…...
6.【BUUCTF】[SUCTF 2019]CheckIn
打开题目页面如下 看样子是一道有关文件上传的题 上传一句话木马 显示:非法后缀! 看来.php后缀被过滤了 上传一张带有木马的照片 在文件地址处输入cmd 输入以下代码执行 copy 1.jpg/b4.php/a 5.jpg 最后一行有一句话木马 上传带有木马的图片 但其实…...
在线教程丨YOLO系列10年更新11个版本,最新模型在目标检测多项任务中达SOTA
YOLO (You Only Look Once) 是计算机视觉领域中最具影响力的实时目标检测算法之一,以其高精度与高效性深受业界青睐,广泛应用于自动驾驶、安防监控、医疗影像等领域。 该模型最早于 2015 年由华盛顿大学研究生 Joseph Redmon 发布,开创了将目…...
ES6 变量解构赋值总结
1. 数组的解构赋值 1.1 基本用法 // 基本数组解构 const [a, b, c] [1, 2, 3]; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3// 跳过某些值 const [x, , y] [1, 2, 3]; console.log(x); // 1 console.log(y); // 3// 解构剩余元素 const [first, ...re…...
FreeRTOS学习 --- 中断管理
什么是中断? 让CPU打断正常运行的程序,转而去处理紧急的事件(程序),就叫中断 中断执行机制,可简单概括为三步: 1,中断请求 外设产生中断请求(GPIO外部中断、定时器中断…...
Docker基础以及单体实战
Docker 一、Docker1.1 Docker组成1.2 Dcoker运行图1.3 名称空间Namepace 1.4 docker、Docker compose、kubermetes 二、Docker安装2.1 在线Docker安装2.2 使用官方通用安装脚本2.3 二进制安装Docker三、Docker基础命令3.1 启动类3.2 镜像类3.3 容器类3.4 网络类3.5 Docker comp…...
FFmpeg rtmp推流直播
文章目录 rtmp协议RTMP协议组成RTMP的握手过程RTMP流的创建RTMP消息格式Chunking(Message 分块) rtmp服务器搭建Nginx服务器配置Nginx服务器 librtmp库编译推流 rtmp协议 RTMP(Real Time Messaging Protocol)是由Adobe公司基于Flash Player播放器对应的…...
2025Java面试题超详细整理《微服务篇》
什么是微服务架构? 微服务框架是将某个应用程序开发划分为许多独立小型服务,实现敏捷开发和部署,这些服务一般围绕业务规则进行构建,可以用不同的语言开发,使用不同的数据存储,最终使得每个服务运行在自己…...
Python爬虫-如何正确解决起点中文网的无限debugger
前言 本文是该专栏的第45篇,后面会持续分享python爬虫干货知识,记得关注。 本文以起点中文网为例子,针对起点中文网使用控制台调试出现无限debugger的情况,要如何解决? 针对该问题,笔者在正文将介绍详细而又轻松的解决方法。废话不多说,下面跟着笔者直接往下看正文详细…...
IIC重难点-2
一、光环境传感器硬件原理图 二、i.MX6ull I2C控制器介绍 1. Inter IC (I2C)提供标准I2C从机和主机的功能。I2C被设计为兼容标准NXP I2C总线协议。 2. I2C是一种双线双向串行总线,它提供了一种简单有效的数据交换方法,最大限度地减少了…...
优化数据库结构
MySQL学习大纲 一个好的数据库设计方案对于数据库的性能尝尝会起到事倍功半的效果,合理的数据库结构不仅使数据库占用更小的磁盘空间,而且使查询速度更快。数据库结构的设计需要考虑数据冗余、查询和更新速度、字段的数据类型是否合理等多方面的内容&…...
用Argo的netCDF文件计算海洋混合层和障碍层深度并通过M_Map工具包画出全球海洋MLD和BL的分布图
用Argo的netCDF文件计算海洋混合层和障碍层深度并通过M_Map工具包画出全球海洋MLD和BL的分布图。 P.S.: 1.需先安装m_map的toolbox。2.混合层及障碍层的定义参考Clment de Boyer Montegut, et al. “”Mixed layer depth over the global ocean: An examination of profile dat…...
2. K8S集群架构及主机准备
本次集群部署主机分布K8S集群主机配置主机静态IP设置主机名解析ipvs管理工具安装及模块加载主机系统升级主机间免密登录配置主机基础配置完后最好做个快照备份 2台负载均衡器 Haproxy高可用keepalived3台k8s master节点5台工作节点(至少2及以上)本次集群部署主机分布 K8S集群主…...
OpenAI 实战进阶教程 - 第六节: OpenAI 与爬虫集成实现任务自动化
爬虫与 OpenAI 模型结合,不仅能高效地抓取并分析海量数据,还能通过 NLP 技术生成洞察、摘要,极大提高业务效率。以下是一些实际工作中具有较高价值的应用案例: 1. 电商价格监控与智能分析 应用场景: 电商企业需要监控…...
51单片机07 串口通信
串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信。51单片机内部自带UART(Universal Asynchronous Recei…...
Java进阶——IO 流
文章目录 Java进阶——IO 流 1、File 类的使用 1.1、File 常用构造器1.2、路径分隔符1.3、File 的常用方法 2、IO流原理及流的分类 2.1、IO流原理2.2、流的分类 3、IO流的体系结构4、节点流 4.1、FileReader 读入数据的操作4.2、FileWriter 写出数据的操作4.3、FileReader 和 …...
我的鸿蒙学习之旅:探索万物互联的新宇宙
在科技飞速发展的今天,操作系统领域的创新层出不穷。华为鸿蒙系统的出现,犹如一颗璀璨的新星,照亮了万物互联的未来之路。怀着对新技术的好奇与渴望,我踏上了学习鸿蒙的征程,这段经历充满了挑战与惊喜,也让…...
Java 引入和使用jcharset,支持UTF-7字符集
一、背景说明 Java标准库不直接支持UTF-7字符集,但通过我们可以使用第三方库jcharset方便地处理UTF-7编码的数据。 二、引入说明 JDK8及以下版本,我们将jcharset.jar并将其放到${JAVA_HOME}/jre/lib/ext/下即可完成引入。 JDK17及以后版本,对…...
如何在Window计算机本地部署DeepSeek-r1模型
如何在Window计算机本地部署DeepSeek-r1模型 安装Ollama配置GPU加速(可选)部署DeepSeek-r1模型1.5b模型效果演示 本文介绍了如何使用Ollama在Windows计算机本地部署DeepSeek-r1模型。 安装Ollama 访问Ollama官网下载对应操作系统的安装包(支…...
取消和确认按钮没有显示的问题
取消和确认按钮没有显示的问题<template #footer> <template #footer> <!-- 使用插槽名称 #footer --> <span class"dialog-footer"> <el-button click"dialogVisible false">取消</el-button> …...
Python 操作列表(元组)
在本章中,你将学习如何遍历 整个列表,这只需要几行代码,无论列表有多长。循环让你能 够对列表的每个元素都采取一个或一系列相同的措施,从而高效地处理任何长度的列表,包括包含数千乃至数百万个元素的列表。 元组 列表…...
跳跃注意力模块(Skip Attention Module, SAM)详解及代码复现
定义与原理 跳跃注意力模块(Skip Attention Module, SAM)是一种创新的深度学习技术,旨在解决传统注意力机制在处理长序列数据时面临的挑战。它通过引入多跳机制,实现了对输入数据更全面、更细致的特征表示,从而提高了模型的性能。 定义 跳跃注意力模块是一种将多跳上下…...
搭建集成开发环境PyCharm
1.下载安装Python(建议下载并安装3.9.x) https://www.python.org/downloads/windows/ 要注意勾选“Add Python 3.9 to PATH”复选框,表示将Python的路径增加到环境变量中 2.安装集成开发环境Pycharm http://www.jetbrains.com/pycharm/…...
国防科大:双目标优化防止LLM灾难性遗忘
📖标题:How to Complete Domain Tuning while Keeping General Ability in LLM: Adaptive Layer-wise and Element-wise Regularization 🌐来源:arXiv, 2501.13669 🌟摘要 🔸大型语言模型(LLM…...
NacosRce到docker逃逸实战
NacosRce到docker逃逸实战 1、Nacos Derby Rce打入内存马 这个漏洞的原理大家应该都知道, 2.3.2 < Nacos < 2.4.0版本默认derby接口未授权访问,攻击者可利用未授权访问执行SQL语句加载构造恶意的JAR包导致出现远程代码执行漏洞。 在日常的漏洞挖…...
解释 Java 中的 HashMap 和 ConcurrentHashMap 的区别,以及 HashMap 的线程不安全性 ?
Java中的HashMap和ConcurrentHashMap的区别 HashMap 和 ConcurrentHashMap 是Java中两种常用的Map实现,它们在多线程环境下的表现有很大的不同。 HashMap HashMap 是非线程安全的,这意味着在多线程环境下使用 HashMap 可能会导致数据不一致或其他并发…...
在Vue3 + Vite 项目中使用 Tailwind CSS 4.0
文章目录 首先是我的package.json根据官网步骤VS Code安装插件验证是否引入成功参考资料 首先是我的package.json {"name": "aplumweb","private": true,"version": "0.0.0","type": "module","s…...
【戒抖音系列】短视频戒除-2-(移动端)定时关闭抖音等短视频
视频会影响人的潜意识。某种情况下,短视频已经成为了一种毒药,会让人上瘾的毒药。 短视频会让人上瘾,但是音频就太容易引起上瘾。因为没有图像传入到大脑当中,也就不会分泌更多的“多巴胺”,就不会影响到大脑。 如果抖…...
C语言基础系列【2】开发环境搭建
选择合适的编译器 在C语言或者C这种编译型语言开发中,编译器是必不可少的工具。它将C语言源代码转换为机器代码,使程序能够在计算机上运行。 常见的C语言编译器包括GCC(GNU Compiler Collection,GNU编译器套件)、Cla…...
vs 编译错误 error C4996
编译出错:error C4996: Json::Reader::Reader: Use CharReader and CharReaderBuilder instead : 参见“Json::Reader::Reader”的声明 新版本已经标志Json::Reader::Reader为废弃接口,编译情况下可能会出错提示,根据编译器的不同ÿ…...
