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

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

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

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

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

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

但是,在執(zhí)行 Android 操作系統(tǒng)移植之前,請遵循以下做法以確保高效且成功地進(jìn)行 Android 移植。

遵循 Linux 內(nèi)核編碼標(biāo)準(zhǔn)和 Android 編碼標(biāo)準(zhǔn)

有各種程序被認(rèn)為是軟件開發(fā)的基本屬性。這些程序用于特定的編程語言、編程風(fēng)格、方法等。編碼標(biāo)準(zhǔn)確保開發(fā)人員遵循特定的指導(dǎo)方針來處理項(xiàng)目。在進(jìn)行 Android 移植的驅(qū)動程序定制時,必須遵循 Linux/Android 編碼標(biāo)準(zhǔn)。這確保了無錯誤且易于維護(hù)的驅(qū)動程序。還需要檢查代碼是否沒有未使用的變量。

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

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

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

所有圖像加載都遵循稱為“加載器”的相同通用過程。加載器分配一個安全的內(nèi)存區(qū)域來加載“ELF Header”、“The Program Header”和“The hash segment”。加載程序通過檢查圖像元數(shù)據(jù)、根證書、證書鏈和哈希表來驗(yàn)證哈希段。加載器通過散列它們并將散列值與散列表中的相等條目進(jìn)行比較來驗(yàn)證加載的 ELF 段。如果任何計算的哈希值存在差異,則圖像被拒絕。

這個過程確保加載器永遠(yuǎn)不會意外地覆蓋內(nèi)存中的重要數(shù)據(jù)(包括加載器的代碼和數(shù)據(jù)),而圖像數(shù)據(jù)是從不受信任的存儲中加載的。

開發(fā)經(jīng)過驗(yàn)證的引導(dǎo)

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

之后,驗(yàn)證啟動會通過回滾保護(hù)檢查正確的 Android 版本,因?yàn)榛貪L保護(hù)通過確保設(shè)備僅更新到較新版本的 Android 來幫助防止可能的漏洞持續(xù)存在。此外,驗(yàn)證啟動還允許 Android 設(shè)備與用戶交流其完整性狀態(tài)。

用于 Android 的端口 Linux 內(nèi)核:

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

移植 Linux 內(nèi)核是移植 Android 的最重要因素之一。從 kernel.org 下載適當(dāng)?shù)?Linux 版本并將 Linux 移植到您的目標(biāo)板。該內(nèi)核被稱為目標(biāo)板的參考內(nèi)核。查找與參考內(nèi)核具有相同版本的 Android 內(nèi)核,或者使用最接近的版本來簡化過程。將參考內(nèi)核和 Android 內(nèi)核合并為一個合并的內(nèi)核,該內(nèi)核將被移植到目標(biāo)板上。為 Android 集成到 Linux 內(nèi)核中的一些新組件是 Debugger、AshMem、Open Binder、Power Manager、Low memory killer 和 logger。

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

注意:參考內(nèi)核和 Android 內(nèi)核的版本不匹配可能會導(dǎo)致花費(fèi)更多時間進(jìn)行合并和調(diào)試。

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

OTA(空中下載)是 Android 用于在 Android 設(shè)備中進(jìn)行系統(tǒng)級更新的機(jī)制,例如操作系統(tǒng)更新。建議堅(jiān)持移植公司使用Android OTA升級機(jī)制,而不是國產(chǎn)升級系統(tǒng)。接下來,您可以將 OTA 升級服務(wù)器配置為您選擇的服務(wù)器。這將使您能夠控制更新過程并控制何時向客戶提供錯誤修復(fù)。它還為 Android 消費(fèi)設(shè)備提供一致的用戶體驗(yàn)。

移植 Android 11 時需要考慮的事項(xiàng)

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ū)。

當(dāng)所有特定于供應(yīng)商的信息都從引導(dǎo)分區(qū)中提取出來并重新定位到供應(yīng)商引導(dǎo)分區(qū)中時,它可以使用 GKI(通用內(nèi)核映像)輕松引導(dǎo)任意設(shè)備?,F(xiàn)在供應(yīng)商引導(dǎo)分區(qū)包含以前包含在引導(dǎo)分區(qū)中的信息(例如閃存頁面大小、內(nèi)核、ramdisk 加載地址、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) 覆蓋映像的信息。當(dāng)此類設(shè)備啟動恢復(fù)時,引導(dǎo)加載程序可以加載與恢復(fù)映像兼容的覆蓋映像。支持 A/B(無縫)更新的設(shè)備應(yīng)使用恢復(fù)作為引導(dǎo)而不是單獨(dú)的恢復(fù)分區(qū),并且通用內(nèi)核映像 (GKI) 必須使用 3 的主引導(dǎo)標(biāo)頭版本以與供應(yīng)商引導(dǎo)分區(qū)兼容。

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

審核編輯:郭婷

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

    關(guān)注

    5046

    文章

    18817

    瀏覽量

    298540
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3903

    瀏覽量

    126616
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207910
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    第六屆國產(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ā)展,智能機(jī)器人基
    發(fā)表于 07-26 10:54

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

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

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

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

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

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

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

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

    【本周四周五】師資培訓(xùn)嵌入式操作系統(tǒng)開發(fā)與實(shí)踐

    11月9日至10日(本周四周五), RT-Thread聯(lián)動瑞薩電子共同舉辦師嵌入式操作系統(tǒng)開發(fā)與實(shí)踐師資培訓(xùn)活動, 助力物聯(lián)網(wǎng)系統(tǒng)/
    的頭像 發(fā)表于 11-09 09:50 ?336次閱讀
    【本周四周五】師資培訓(xùn)<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>開發(fā)與<b class='flag-5'>實(shí)踐</b>

    基于嵌入式Linux內(nèi)核的Android操作系統(tǒng)智能移動終端

    電子發(fā)燒友網(wǎng)站提供《基于嵌入式Linux內(nèi)核的Android操作系統(tǒng)智能移動終端.pdf》資料免費(fèi)下載
    發(fā)表于 11-06 10:07 ?0次下載
    基于<b class='flag-5'>嵌入式</b>Linux內(nèi)核的<b class='flag-5'>Android</b><b class='flag-5'>操作系統(tǒng)</b>智能移動終端

    有無操作系統(tǒng)嵌入式Linux驅(qū)動設(shè)備有何區(qū)別?

    系統(tǒng)的軟件與硬件連接起來,使它們能夠相互交互。 嵌入式系統(tǒng)常使用Linux系統(tǒng)作為開發(fā)平臺
    的頭像 發(fā)表于 10-29 17:29 ?602次閱讀

    一種嵌入式操作系統(tǒng)—VxWorks

    電子發(fā)燒友網(wǎng)站提供《一種嵌入式操作系統(tǒng)—VxWorks.pdf》資料免費(fèi)下載
    發(fā)表于 10-27 10:59 ?0次下載
    一種<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>—VxWorks

    【11月師資培訓(xùn)】嵌入式操作系統(tǒng)開發(fā)與實(shí)踐

    ,使用操作系統(tǒng)進(jìn)行開發(fā)已經(jīng)成為主流。RT-Thread,作為國產(chǎn)開源嵌入式物聯(lián)網(wǎng)操作系統(tǒng),以其中立第三方、構(gòu)架先進(jìn)、功能強(qiáng)大和社區(qū)繁榮等特點(diǎn),在眾多領(lǐng)域得到了廣泛應(yīng)用。 11月9日至10日 , RT-Thread
    的頭像 發(fā)表于 10-27 09:45 ?317次閱讀
    【11月師資培訓(xùn)】<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>開發(fā)與<b class='flag-5'>實(shí)踐</b>

    嵌入式實(shí)時操作系統(tǒng)μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《嵌入式實(shí)時操作系統(tǒng)μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 10-23 14:07 ?0次下載
    <b class='flag-5'>嵌入式</b>實(shí)時<b class='flag-5'>操作系統(tǒng)</b>μC/OS-Ⅱ在LPC1788上的<b class='flag-5'>移植</b>及應(yīng)用

    基于ARM的嵌入式網(wǎng)絡(luò)平臺的設(shè)計與實(shí)踐

    電子發(fā)燒友網(wǎng)站提供《基于ARM的嵌入式網(wǎng)絡(luò)平臺的設(shè)計與實(shí)踐.pdf》資料免費(fèi)下載
    發(fā)表于 10-13 14:32 ?0次下載
    基于ARM的<b class='flag-5'>嵌入式</b>網(wǎng)絡(luò)<b class='flag-5'>平臺</b>的設(shè)計與<b class='flag-5'>實(shí)踐</b>

    基于嵌入式Linux系統(tǒng)的MiniGUI的移植

    電子發(fā)燒友網(wǎng)站提供《基于嵌入式Linux系統(tǒng)的MiniGUI的移植.pdf》資料免費(fèi)下載
    發(fā)表于 10-12 10:20 ?1次下載
    基于<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>系統(tǒng)</b>的MiniGUI的<b class='flag-5'>移植</b>

    STM32嵌入式操作系統(tǒng)介紹

    嵌入式操作系統(tǒng)的特點(diǎn)? 嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)
    發(fā)表于 09-28 06:59