当前位置: 首页 > news >正文

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 汽车服务&#xff08;GAS&#xff0c;Google Automotive Service&#xff09;&#xff0c;包含有 Google 地图、应用市场、Google 汽车助理等等。Google 汽车服务同样没有开…...

嵌入式工程师必学(143):模拟信号链基础

概述: 我们每天使用的许多电子设备,以及我们赖以生存的电子设备,如果不使用电子工程师设计的实际输入信号,就无法运行。 模拟信号链由四个主要元件组成:传感器、放大器、滤波器和模数转换器 (ADC)。这些传感器用于检测、调节模拟信号并将其转换为适合由微控制器或其他数…...

《LLM大语言模型深度探索与实践:构建智能应用的新范式,融合代理与数据库的高级整合》

文章目录 Langchain的定义Langchain的组成三个核心组件实现整个核心组成部分 为什么要使用LangchainLangchain的底层原理Langchain实战操作LangSmithLangChain调用LLM安装openAI库-国内镜像源代码运行结果小结 使用Langchain的提示模板部署Langchain程序安装langserve代码请求格…...

e2studio开发RA2E1(5)----GPIO输入检测

e2studio开发RA2E1.5--GPIO输入检测 概述视频教学样品申请硬件准备参考程序源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置GPIO口配置按键口配置按键口&Led配置R_IOPORT_PortRead()函数原型R_IOPORT_PinRead()函数原型代码 概述 本篇文章主要介绍如何…...

Spring @Lazy:延迟初始化,为应用减负

在Spring框架中&#xff0c;Lazy注解的作用非常直观&#xff0c;它就是用来告诉Spring容器&#xff1a;“嘿&#xff0c;这个Bean嘛&#xff0c;先别急着创建和初始化&#xff0c;等到真正需要用到的时候再弄吧&#xff01;” 默认情况下&#xff0c;Spring容器在启动时会立即创…...

将OneDrive上的文件定期备份到移动硬盘

背景&#xff1a; 我在oneDrive上存了很多文件&#xff0c;分布在多个文件夹中&#xff0c;也有套了好几层文件夹的情况。我希望每隔一段时间&#xff0c;将oneDrive上的所有文件向移动硬盘上拷贝一份&#xff0c;但是我只想将距离上一次向移动硬盘拷贝的文件相比&#xff0c;发…...

从0开始,来看看怎么去linux排查Java程序故障

一&#xff0c;前提准备 最基本前提&#xff1a;你需要有liunx环境&#xff0c;如果没有请参考其它文献在自己得到local建立一个虚拟机去进行测试。 有了虚拟机之后&#xff0c;你还需要安装jdk和配置环境变量 1. 安装JDK&#xff08;以OpenJDK 17为例&#xff09; 下载JDK…...

DeepSeek-V3:开源多模态大模型的突破与未来

目录 引言 一、DeepSeek-V3 的概述 1.1 什么是 DeepSeek-V3&#xff1f; 1.2 DeepSeek-V3 的定位 二、DeepSeek-V3 的核心特性 2.1 多模态能力 2.2 开源与可扩展性 2.3 高性能与高效训练 2.4 多语言支持 2.5 安全与伦理 三、DeepSeek-V3 的技术架构 3.1 模型架构 3…...

Deep Sleep 96小时:一场没有硝烟的科技保卫战

2025年1月28日凌晨3点&#xff0c;当大多数人还沉浸在梦乡时&#xff0c;一场没有硝烟的战争悄然打响。代号“Deep Sleep”的服务器突遭海量数据洪流冲击&#xff0c;警报声响彻机房&#xff0c;一场针对中国关键信息基础设施的网络攻击来势汹汹&#xff01; 面对美国发起的这场…...

Redis地理散列GeoHash

GeoHash是一种用于地理位置编码的算法&#xff0c;将二维的地理坐标&#xff08;纬度和经度&#xff09;转换为一维的字符串表示&#xff0c;从而实现对地理位置的高效存储和查询。Redis作为一个内存数据库&#xff0c;提供了对GeoHash的支持&#xff0c;使得地理位置相关的数据…...

JAVA安全—反射机制攻击链类对象成员变量方法构造方法

前言 还是JAVA安全&#xff0c;哎&#xff0c;真的讲不完&#xff0c;太多啦。 今天主要是讲一下JAVA中的反射机制&#xff0c;因为反序列化的利用基本都是要用到这个反射机制&#xff0c;还有一些攻击链条的构造&#xff0c;也会用到&#xff0c;所以就讲一下。 什么是反射…...

专业学习|一文了解并实操自适应大邻域搜索(讲解代码)

一、自适应大邻域搜索概念介绍 自适应大邻域搜索&#xff08;Adaptive Large Neighborhood Search&#xff0c;ALNS&#xff09;是一种用于解决组合优化问题的元启发式算法。以下是关于它的详细介绍&#xff1a; -自适应大领域搜索的核心思想是&#xff1a;破坏解、修复解、动…...

9. k8s二进制集群之kube-controller-manager部署

同样在部署主机上创建证书请求文件(为之后的证书生成做准备)根据上面的证书文件创建证书(结果会在当前目录下产生kube-controller-manager证书)创建kube-controller-manager服务配置文件创建kube-controller-manager服务启动文件同步kube-controller-manager证书到对应mast…...

轮转数组-三次逆置

题目 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 void rotate(int* nums, int numsSize, int k){}示例&#xff1a; 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] …...

3 卷积神经网络CNN

1 Image Classification (Neuron Version) – 1.1 Observation 1 1.2 Observation 2 如果不同的receptive field需要相同功能的neuron&#xff0c;可以使这些neuron共享参数 1.3 Benefit of Convolutional Layer 2 Image Classification (Filter Version) 不用担心filter大小…...

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工

目录 决策树&#xff1a;代码设计代码&#xff1a; 决策树&#xff1a; 代码设计 代码&#xff1a; class Solution {boolean[][] vis;int ret,m,n;public int getMaximumGold(int[][] grid) {m grid.length;n grid[0].length;vis new boolean[m][n]; for(int i 0; i <…...

java基础1(黑马)

一、初识Java 1.Java背景知识 1&#xff09;Java是美国SUN公司在1995年推出的一门计算机高级编程语言。 2&#xff09;Java早期名称为OAK&#xff0c;后来才改为Java。 3&#xff09;Java之父&#xff1a;詹姆斯高斯林。 4&#xff09;2009年&#xff0c;SUN公司被Oracle公…...

ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景

1. 对象属性简写 1.1 基本语法 // 传统写法 const name John; const age 25; const user {name: name,age: age };// ES6 简写语法 const user {name,age };1.2 实际应用场景 // 1. 函数返回对象 function createUser(name, age, email) {return {name,age,email}; }// …...

2025 持续防范 GitHub 投毒,通过 Sharp4SuoExplorer 分析 Visual Studio 隐藏文件

在2024年底的网络安全事件中&#xff0c;某提权工具被发现植入后门&#xff0c;攻击者利用 .suo 文件作为隐蔽的攻击方式。由于 .suo 文件是 Visual Studio 项目的隐藏配置文件&#xff0c;通常不为安全研究人员所关注&#xff0c;因此为攻击者提供了潜在的攻击渠道。 初步调查…...

PCB走线宽度与过流能力参考

我们PCB走线&#xff0c;线宽与允许通过电流的大小是什么样的&#xff1f;几个因素 1、允许的温升&#xff1a;如果能够允许的铜线升高的温度越高&#xff0c;那么允许通过的电流自然也就越高 2、走线的线宽&#xff1a;线越宽 &#xff0c;导线横截面积越大&#xff0c;电阻…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...