0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将Android操作系统移植到嵌入式平台的最佳实践

星星科技指导员 来源:volansys 作者:Kailas Kharse 2022-12-06 14:44 次阅读

Android是流行的智能手机操作系统,正在接管平板电脑,汽车,智能电视,可穿戴设备,家用电器,游戏机市场等。它为嵌入式平台提供了独特而熟悉的体验,从最小的智能手表屏幕到可折叠和Chromebook上的较大显示器,再到车载娱乐系统,再到最大的电视屏幕。基于Android操作系统的医疗设备在医疗保健行业中也被广泛接受。因此,将Android操作系统移植到嵌入式平台最近引起了很多关注。

但是,在执行 Android 操作系统移植之前,请遵循以下做法以确保高效和成功的 Android 移植。

遵循 Linux 内核编码标准和 Android 编码标准

有各种过程被认为是软件开发的基本属性。这些过程用于具有编程风格、方法等的特定编程语言。编码标准可确保开发人员遵循特定的准则来处理项目。在为 Android 移植进行驱动程序定制时,有必要遵循 Linux/Android 编码标准。这确保了无错误且易于维护的驱动程序。还需要检查代码是否没有未使用的变量。

在编码时保持一致性对于程序的质量至关重要。此外,在系统的不同级别上普遍遵循准则,以避免相互矛盾。完成的程序代码应该由单个开发人员在单个会话中进行管理,或者看起来像是由单个开发人员编写的。

开发安全启动和映像身份验证

安全启动是设备安全体系结构的构建基块。从技术上讲,安全启动是一个启动序列,其中每个软件映像都在设备上加载和执行。此外,此软件映像是使用软件授权的。此序列旨在通过在执行前检查所有代码来防止运行未经授权或修改的代码。

所有图像加载都遵循称为“加载器”的相同常规过程。加载器分配一个安全的内存区域来加载“ELF 标头”、“程序标头”和“哈希段”。加载程序通过检查映像元数据、根证书、证书链和哈希表来验证哈希段。加载器通过对加载的 ELF 段进行哈希处理并将哈希值与哈希表中的相等条目进行比较来验证加载的 ELF 段。如果任何计算的哈希值存在差异,则拒绝图像。

开发经过验证的引导

验证启动可确保所有执行的代码都来自受信任的来源(通常是设备 OEM)。它创建完整的信任链,从引导分区、受硬件保护的信任根和引导加载程序到其他经过验证的分区,包括系统、供应商和可选的 OEM 分区。在设备启动期间,每个阶段都会在移交执行之前验证下一阶段的完整性和真实性。

之后,“已验证启动”会通过回滚保护检查正确版本的 Android,因为回滚保护通过确保设备仅更新到较新版本的 Android 来帮助防止可能的漏洞持续存在。此外,经过验证的启动还允许 Android 设备与用户沟通其完整性状态。

Port Linux Kernel for Android

移植Linux内核是移植Android的最重要因素之一。从 kernel.org 下载相应的 Linux 版本,并将 Linux 移植到目标主板 此内核称为目标主板的参考内核。查找与参考内核具有相同修订版的 Android 内核,或者使用最接近的版本来简化该过程。将参考内核和 Android 内核合并到将移植到目标主板的合并内核。集成到Android版Linux内核中的一些新组件是Debugger,AshMem,Open Binder,Power Manager,Low Memory killer和Logger。

要为 Android 正确配置合并内核,您必须通过从合并的源代码构建内核映像来使用 Linux 根文件系统测试已知的工作配置。

注意:参考内核和 Android 内核的修订不匹配可能会导致花费更多时间进行合并和调试。

能够配置升级(即 OTA)服务器

OTA(无线)是 Android 用于在 Android 设备中进行系统级更新(如操作系统更新)的机制。建议移植公司坚持使用Android OTA升级机制,而不是本土升级系统。并且,您可以将OTA升级服务器配置为您选择的服务器。这将使您能够控制更新过程,并控制何时向客户提供错误修复。它还为Android消费者设备提供了一致的用户体验。

移植安卓 11 时要考虑的事项

Android 11 包含与分区布局相关的各种更改,这些更改可以支持动态分区 - 适用于 Android 的用户空间分区系统,可在无线 (OTA) 更新期间创建、调整大小或销毁分区。这些动态分区消除了供应商管理各个大小的分区(如系统、供应商和产品)的痛苦。相反,设备会分配一个超级分区,以及可以在其中动态调整大小的子分区。

当所有特定于供应商的信息都从引导分区中分解出来并重新定位到供应商引导分区中时,它可以使用 GKI(通用内核映像)轻松引导任意设备。现在,供应商引导分区包含以前包含在引导分区中的信息(如闪存页面大小、内核、虚拟硬盘加载地址、DTB 本身)。要在移植 android 11 时成功完成投票,引导加载程序必须有权访问引导分区和供应商引导分区以获取足够的数据。

在非 A/B 设备的恢复映像上,恢复映像应包含来自设备树 blob (DTB) 或高级配置和电源接口ACPI) 覆盖映像的信息。当此类设备启动到恢复状态时,引导加载程序可以加载与恢复映像兼容的覆盖映像。支持 A/B(无缝)更新的设备应使用恢复作为启动,而不是单独的恢复分区,通用内核映像 (GKI) 必须使用主启动标头版本 3 才能与供应商启动分区兼容。

遵循上述嵌入式工程实践,您可以确保在嵌入式平台上高效、成功地移植Android,并增强现有连接设备的功能或从头开始设计新系统,而不会有太多麻烦。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4790

    文章

    17320

    浏览量

    278125
  • Android
    +关注

    关注

    12

    文章

    3706

    浏览量

    124812
  • 操作系统
    +关注

    关注

    37

    文章

    5546

    浏览量

    121153
收藏 人收藏

    评论

    相关推荐

    [原创]嵌入式操作系统的可移植

    平台移植另一个硬件平台的难易度,这根本就是舍本逐末的提法。试问,一个含嵌入式系统的产品中,操作系统重要还是应用程序重要?我们说嵌入式操作系统嵌入式产业的核心,是针对整个产业来说的,毕竟
    发表于 03-16 22:11

    ARM嵌入式操作系统汇总

    嵌入式LINUXWinCEAndroidTinyOS嵌入式实时操作系统(RTOS)FreeRTOS μTenuxVxWorksμClinuxeCos μC/OS-IIo ARM 嵌入式操作系统导读
    发表于 03-25 14:15

    嵌入式操作系统及其特点

    嵌入式操作系统嵌入式应用软件的开发平台嵌入式操作系统(OPerating System,OS)是嵌入非易失性存储器中的软件,用户的其他应用程序都建立在嵌入式操作系统之上。嵌入式操作系统
    发表于 07-11 16:51

    嵌入式操作系统怎么选择?

    嵌入式操作系统是ARM CPU的软件基础,从8位/16位单片机发展以arm CPU核为代表的32位嵌入式处理器,嵌入式操作系统替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。更重
    发表于 04-07 07:13

    概述常用的嵌入式操作系统

    嵌入式系统:具有专属功能的计算机系统1.基本概述常用的嵌入式操作系统:1.Android2.FreeRTOS3.Ubuntu/Debian Linux4.uCOS-II/III嵌入式系统的可
    发表于 11-03 07:11

    嵌入式Linux之Android操作系统

    嵌入式Linux是Linux内核的改编版,用于嵌入式系统嵌入式Linux最流行的例子是Android 操作系统。但是,需要大量硬件资源来支持嵌入式 Linux,特别是如果它将部署在实时机器对机器
    发表于 11-04 08:18

    Android嵌入式智能操作系统简析

    Android操作系统时,需要专门将Android移植 特定硬件平台下,同时必要的驱动进行编写及开发。成为Android的核心层开发者,在这种嵌入式设备...
    发表于 11-05 09:21

    Linux嵌入式操作系统移植

    嵌入式操作系统移植”打个比喻,那么“Linux嵌入式操作系统移植”就像是给“PC机装Windows操作系统”。第一步:Bootloader移植(类比于设置PC机中的Bios)1
    发表于 12-16 07:18

    MINIX嵌入式操作系统进程调度的移植

    操作系统作为与UNIX操作系统完全兼容但内部结构有完全不同的操作系统,采用微内核结构.分析了MINIX 3操作系统作为嵌入式操作系统移植中的一个关键问题调度程序的移植,并说
    发表于 11-07 15:49 18次下载
    MINIX<b>嵌入式</b><b>操作系统</b>进程调度的<b>移植</b>

    嵌入式实时操作系统原理与最佳实践

    嵌入式实时操作系统原理与最佳实践,下来看看
    发表于 07-29 17:11 177次下载

    嵌入式操作系统移植

    嵌入式操作系统移植,感兴趣的小伙伴们可以看看。
    发表于 11-08 18:13 3次下载

    嵌入式操作系统FREERTOS的移植.

    嵌入式操作系统FREERTOS的移植.(济南嵌入式开发招聘)-嵌入式操作系统FREERTOS移植                 
    发表于 07-30 12:01 15次下载
    <b>嵌入式</b><b>操作系统</b>FREERTOS的<b>移植</b>.

    嵌入式实时操作系统FreeRTOS在ARM7上移植实现

    嵌入式实时操作系统FreeRTOS在ARM7上移植实现(嵌入式开发工程师待遇)-嵌入式实时操作系统FreeRTOS在ARM7上移植的实现             
    发表于 07-30 12:05 18次下载
    <b>嵌入式</b>实时<b>操作系统</b>FreeRTOS在ARM7上<b>移植</b>实现

    Android操作系统移植嵌入式平台最佳实践

    嵌入式工程实践,您可以确保在嵌入式平台上高效成功地移植 Android,并增强现有连接设备的功能或从头开始设计新系统,而无需太多麻烦。
    的头像 发表于 07-01 10:20 1494次阅读

    安卓操作系统移植嵌入式平台最佳实践

    系统,再到最大的电视屏幕。Android操作系统驱动的医疗设备在医疗保健行业也被广泛接受。因此,Android操作系统移植嵌入式平台最近引起了很多关注。
    的头像 发表于 10-26 10:48 789次阅读