0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將安卓操作系統(tǒng)移植到嵌入式平臺的最佳實踐

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Kailas Kharse ? 2022-10-26 10:48 ? 次閱讀

Android是流行的智能手機操作系統(tǒng),它正在接管平板電腦,汽車,智能電視,可穿戴設(shè)備,家用電器,游戲機市場等。它為嵌入式平臺提供了獨特而熟悉的體驗,從最小的智能手表屏幕到可折疊和鍍鉻書上的較大顯示屏,再到車載娛樂系統(tǒng),再到最大的電視屏幕。Android操作系統(tǒng)驅(qū)動的醫(yī)療設(shè)備在醫(yī)療保健行業(yè)也被廣泛接受。因此,將Android操作系統(tǒng)移植到嵌入式平臺最近引起了很多關(guān)注。

但是,在執(zhí)行安卓操作系統(tǒng)移植之前,請遵循以下做法,以確保高效和成功的安卓移植。

遵循 Linux 內(nèi)核編碼標準和安卓編碼標準

有各種過程被認為是軟件開發(fā)的基本屬性。這些過程用于特定的編程語言、編程風(fēng)格、方法等。編碼標準確保開發(fā)人員遵循特定的準則來處理項目。在為安卓移植進行驅(qū)動程序定制時,有必要遵循Linux / Android編碼標準。這確保了無錯誤且易于維護的驅(qū)動程序。還需要檢查代碼是否沒有未使用的變量。

在編碼時保持一致性對于程序的質(zhì)量至關(guān)重要。此外,在系統(tǒng)的不同級別上普遍遵循準則,以避免彼此矛盾。完成的程序代碼應(yīng)由單個開發(fā)人員在單個會話中管理,或者看起來像是由單個開發(fā)人員編寫的。

開發(fā)安全啟動和映像身份驗證

安全啟動是設(shè)備安全體系結(jié)構(gòu)的構(gòu)建基塊。從技術(shù)上講,安全啟動是在設(shè)備上加載和執(zhí)行每個軟件映像的啟動序列。此外,此軟件映像是使用軟件授權(quán)的。此序列旨在通過在執(zhí)行之前檢查所有代碼來防止運行未經(jīng)授權(quán)或已修改的代碼。

所有圖像加載都遵循相同的常規(guī)過程,稱為“加載器”。加載程序分配一個安全的內(nèi)存區(qū)域來加載“ELF 標頭”、“程序標頭”和“哈希段”。加載程序通過檢查圖像元數(shù)據(jù)、根證書、證書鏈和哈希表來驗證哈希段。加載程序通過對加載的 ELF 段進行哈希處理并將哈希值與哈希表中的相等條目進行比較來驗證加載的 ELF 段。如果任何計算的哈希值存在差異,則拒絕圖像。

此過程可確保加載程序永遠不會意外覆蓋內(nèi)存中的重要數(shù)據(jù)(包括加載程序的代碼和數(shù)據(jù)),并且圖像數(shù)據(jù)從不受信任的存儲中加載。

開發(fā)已驗證的啟動

已驗證啟動可確保所有執(zhí)行的代碼都來自受信任的源(通常是設(shè)備 OEM)。它直接從引導(dǎo)分區(qū)、受硬件保護的信任根和引導(dǎo)加載程序創(chuàng)建一個完整信任鏈,以訪問其他已驗證的分區(qū),包括系統(tǒng)、供應(yīng)商和可選的 OEM 分區(qū)。在設(shè)備啟動期間,每個階段都會在移交執(zhí)行之前驗證下一階段的完整性和真實性。

之后,“已驗證啟動”會檢查具有回滾保護的 Android 版本是否正確,因為回滾保護通過確保設(shè)備僅更新到較新版本的 Android,有助于防止可能的漏洞利用變得持續(xù)存在。此外,經(jīng)過驗證的啟動還允許Android設(shè)備與用戶交流其完整性狀態(tài)。

安卓操作系統(tǒng)移植

移植 Linux 內(nèi)核是移植安卓系統(tǒng)最重要的因素之一。從 kernel.org 下載相應(yīng)的 Linux 版本,并將 Linux 移植到目標主板。此內(nèi)核稱為目標板的參考內(nèi)核。查找與參考內(nèi)核具有相同修訂版的 Android 內(nèi)核,或者使用最接近的修訂版來簡化過程。將參考內(nèi)核和 Android 內(nèi)核合并到將移植到目標板的合并內(nèi)核中。集成到適用于 Android 的 Linux 內(nèi)核中的一些新組件是調(diào)試器、AshMem、開放活頁夾、電源管理器、低內(nèi)存殺手和記錄器。

要為 Android 正確配置合并的內(nèi)核,您必須通過從合并的源代碼構(gòu)建內(nèi)核映像來測試 Linux 根文件系統(tǒng)的已知工作配置。

注意:引用內(nèi)核和 Android 內(nèi)核的修訂不匹配可能會導(dǎo)致花費更多時間進行合并和調(diào)試。

能夠配置升級(即 OTA)服務(wù)器

OTA(無線)是安卓用于安卓設(shè)備中系統(tǒng)級更新(如操作系統(tǒng)更新)的機制。建議堅持讓移植公司使用安卓OTA升級機制,而不是本土的升級系統(tǒng)。接下來,您可以將 OTA 升級服務(wù)器配置為您選擇的服務(wù)器。這將使您能夠控制更新過程,并控制客戶何時可以使用錯誤修復(fù)。它還為安卓消費類設(shè)備提供了一致的用戶體驗。

移植安卓 11 時需要考慮的事項

Android 11 包含與分區(qū)布局相關(guān)的各種更改,這些更改可以支持動態(tài)分區(qū) - Android 用戶空間分區(qū)系統(tǒng),可在無線 (OTA) 更新期間創(chuàng)建、調(diào)整大小或銷毀分區(qū)。這些動態(tài)分區(qū)消除了供應(yīng)商管理單個大小的分區(qū)(如系統(tǒng)、供應(yīng)商和產(chǎn)品)的痛苦。相反,設(shè)備會分配一個超級分區(qū),以及可以在其中動態(tài)調(diào)整大小的子分區(qū)。

當所有特定于供應(yīng)商的信息都從引導(dǎo)分區(qū)中分離出來并重新定位到供應(yīng)商引導(dǎo)分區(qū)中時,它可以使用 GKI(通用內(nèi)核映像)輕松引導(dǎo)任意設(shè)備?,F(xiàn)在,供應(yīng)商啟動分區(qū)包含以前包含在啟動分區(qū)中的信息(例如閃存頁大小、內(nèi)核、虛擬硬盤加載地址、DTB 本身)。要在移植 Android 11 時成功完成引導(dǎo),引導(dǎo)加載程序必須能夠同時訪問引導(dǎo)分區(qū)和供應(yīng)商引導(dǎo)分區(qū)以獲取足夠的數(shù)據(jù)。

在非 A/B 設(shè)備的恢復(fù)映像上,恢復(fù)映像應(yīng)包含來自設(shè)備樹 blob (DTB) 或高級配置和電源接口ACPI) 覆蓋映像的信息。當此類設(shè)備啟動到恢復(fù)時,引導(dǎo)加載程序可以加載與恢復(fù)映像兼容的覆蓋映像。支持 A/B(無縫)更新的設(shè)備應(yīng)使用恢復(fù)作為啟動而不是單獨的恢復(fù)分區(qū),并且通用內(nèi)核映像 (GKI) 必須使用主啟動標頭版本 3 才能與供應(yīng)商啟動分區(qū)兼容。

遵循上述嵌入式工程實踐,您可以確保在嵌入式平臺上高效、成功地移植Android,增強現(xiàn)有連接設(shè)備的功能,或者從頭開始設(shè)計新系統(tǒng),而不會有太多的麻煩。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 智能手機
    +關(guān)注

    關(guān)注

    66

    文章

    18500

    瀏覽量

    180427
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19142

    瀏覽量

    306038
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6846

    瀏覽量

    123419
收藏 人收藏

    評論

    相關(guān)推薦

    新手怎么學(xué)嵌入式?

    操作系統(tǒng)示例。 學(xué)習(xí)嵌入式技術(shù)是一個充滿挑戰(zhàn)但又極具樂趣的過程。對于新手來說,只要有耐心和恒心,按照上述步驟逐步學(xué)習(xí),從基礎(chǔ)知識編程語言,從硬件知識
    發(fā)表于 12-12 10:51

    RT-Thread聯(lián)合河北大學(xué)發(fā)起嵌入式操作系統(tǒng)專業(yè)班-保定站

    RT-Thread官方將在11月23至24日河北省保定市(河北大學(xué))發(fā)起為期兩天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班暨RT-Thread師資培訓(xùn)!本次培訓(xùn)將會深入講解RT-Thread嵌入式實時操作系統(tǒng)
    的頭像 發(fā)表于 11-16 01:09 ?260次閱讀
    RT-Thread聯(lián)合河北大學(xué)發(fā)起<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>專業(yè)班-保定站

    什么是嵌入式操作系統(tǒng)?

    指揮官配備最先進的裝備。 未來會怎樣? 隨著技術(shù)的發(fā)展,嵌入式操作系統(tǒng)繼續(xù)演進,以滿足更多的應(yīng)用需求和挑戰(zhàn),它們可能會: 支持更多IoT設(shè)備:管理更多的智能家居和工業(yè)設(shè)備,就像是物聯(lián)網(wǎng)世界的大管家
    發(fā)表于 11-08 15:07

    【本周六-深圳】RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班正式開班

    RT-Thread官方在本周六發(fā)起為期三天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班!本次培訓(xùn)將會深入講解RT-Thread嵌入式實時操作系統(tǒng)的核心概念、
    的頭像 發(fā)表于 11-08 01:07 ?257次閱讀
    【本周六-深圳】RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>專業(yè)培訓(xùn)班正式開班

    嵌入式 Linux 操作系統(tǒng)配置

    隨著物聯(lián)網(wǎng)(IoT)和智能設(shè)備的快速發(fā)展,嵌入式系統(tǒng)在各個領(lǐng)域扮演著越來越重要的角色。Linux因其開源、靈活和穩(wěn)定的特性,成為嵌入式系統(tǒng)的首選操作
    的頭像 發(fā)表于 11-06 10:22 ?459次閱讀

    新書發(fā)布——《RT-Thread嵌入式實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入式實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》一書正式發(fā)布。本書的編寫團隊由多位在嵌入式和實時操作系統(tǒng)領(lǐng)域有著豐富經(jīng)
    的頭像 發(fā)表于 09-03 08:06 ?623次閱讀
    新書發(fā)布——《RT-Thread<b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統(tǒng)</b>內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個復(fù)雜的過程,涉及硬件選擇、操作系統(tǒng)移植、驅(qū)動開發(fā)、應(yīng)用程序開發(fā)等多個方面。以下是嵌入式Linux開發(fā)的基本步驟,
    的頭像 發(fā)表于 09-02 09:11 ?532次閱讀

    開啟全新AI時代 智能嵌入式系統(tǒng)快速發(fā)展——“第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束

    粵港澳大灣區(qū)國家技術(shù)創(chuàng)新中心操作系統(tǒng)業(yè)務(wù)負責(zé)人柯善風(fēng)做了“國創(chuàng)面向工業(yè)機器人的OS解決方案和落地實踐”專題報告??律骑L(fēng)介紹國創(chuàng)中心的發(fā)展情況,分享了面向工業(yè)場景、自主可控、中立普惠的國創(chuàng)嵌入式
    發(fā)表于 08-30 17:24

    嵌入式系統(tǒng)中的實時操作系統(tǒng)

    嵌入式RTOS是嵌入式應(yīng)用程序運行、相互交互和與外界通信的底層軟件機制。在本節(jié)中,您將了解嵌入式軟件開發(fā)人員使用哪些流行RTOS以及它們運行的嵌入式硬件
    的頭像 發(fā)表于 08-20 11:28 ?503次閱讀

    RT-Thread出席第六屆中國嵌入式技術(shù)大會,共話嵌入式操作系統(tǒng)與智能工業(yè)

    第六屆中國嵌入式技術(shù)大會將于8月27-28日在深圳會展中心(福田)1號館舉行。本屆大會以“AI與開源,開啟嵌入式系統(tǒng)智能新時代”為主題,聚焦人工智能與嵌入式應(yīng)用、
    的頭像 發(fā)表于 08-03 08:35 ?421次閱讀
    RT-Thread出席第六屆中國<b class='flag-5'>嵌入式</b>技術(shù)大會,共話<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>與智能工業(yè)

    第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇議程發(fā)布

    第30次)主題是“開啟全新AI時代、智能嵌入式操作系統(tǒng)的研究與應(yīng)用”,我們聚焦人工智能、物聯(lián)網(wǎng)與嵌入式操作系統(tǒng)技術(shù)和生態(tài)發(fā)展,智能機器人基
    發(fā)表于 07-26 10:54

    如何提升嵌入式編程能力?

    :掌握嵌入式系統(tǒng)的基本原理,包括中斷、并發(fā)、實時操作、低功耗設(shè)計等。 3. 實踐編程:通過實際編寫和測試代碼來提高技能。從簡單的LED閃爍程序開始,逐步過渡到更復(fù)雜的項目,如定時器PW
    發(fā)表于 06-21 10:01

    再談嵌入式實時操作系統(tǒng)

    程序的可移植性得到了增強,系統(tǒng)開發(fā)的工作量減輕的同時也提高了開發(fā)效率。對實時性和可靠性日益增長的要求正在塑造某些現(xiàn)代領(lǐng)域的嵌入式實時操作系統(tǒng)的發(fā)展方向,例如航空航天、工業(yè)控制、汽車電子
    的頭像 發(fā)表于 04-09 17:27 ?813次閱讀
    再談<b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統(tǒng)</b>

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時的注意事項

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時的注意事項
    的頭像 發(fā)表于 03-29 08:05 ?364次閱讀
    瑞薩CTSU程序在向<b class='flag-5'>嵌入式</b>OS<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>移植</b>時的注意事項

    請問ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)

    我想問一下ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)?
    發(fā)表于 01-15 06:59