Android是流行的智能手機(jī)操作系統(tǒng),它正在接管平板電腦,汽車,智能電視,可穿戴設(shè)備,家用電器,游戲機(jī)市場等。它為嵌入式平臺提供了獨(dú)特而熟悉的體驗(yàn),從最小的智能手表屏幕到可折疊和鍍鉻書上的較大顯示屏,再到車載娛樂系統(tǒng),再到最大的電視屏幕。Android操作系統(tǒng)驅(qū)動的醫(yī)療設(shè)備在醫(yī)療保健行業(yè)也被廣泛接受。因此,將Android操作系統(tǒng)移植到嵌入式平臺最近引起了很多關(guān)注。
但是,在執(zhí)行安卓操作系統(tǒng)移植之前,請遵循以下做法,以確保高效和成功的安卓移植。
遵循 Linux 內(nèi)核編碼標(biāo)準(zhǔn)和安卓編碼標(biāo)準(zhǔn)
有各種過程被認(rèn)為是軟件開發(fā)的基本屬性。這些過程用于特定的編程語言、編程風(fēng)格、方法等。編碼標(biāo)準(zhǔn)確保開發(fā)人員遵循特定的準(zhǔn)則來處理項(xiàng)目。在為安卓移植進(jìn)行驅(qū)動程序定制時(shí),有必要遵循Linux / Android編碼標(biāo)準(zhǔn)。這確保了無錯(cuò)誤且易于維護(hù)的驅(qū)動程序。還需要檢查代碼是否沒有未使用的變量。
在編碼時(shí)保持一致性對于程序的質(zhì)量至關(guān)重要。此外,在系統(tǒng)的不同級別上普遍遵循準(zhǔn)則,以避免彼此矛盾。完成的程序代碼應(yīng)由單個(gè)開發(fā)人員在單個(gè)會話中管理,或者看起來像是由單個(gè)開發(fā)人員編寫的。
開發(fā)安全啟動和映像身份驗(yàn)證
安全啟動是設(shè)備安全體系結(jié)構(gòu)的構(gòu)建基塊。從技術(shù)上講,安全啟動是在設(shè)備上加載和執(zhí)行每個(gè)軟件映像的啟動序列。此外,此軟件映像是使用軟件授權(quán)的。此序列旨在通過在執(zhí)行之前檢查所有代碼來防止運(yùn)行未經(jīng)授權(quán)或已修改的代碼。
所有圖像加載都遵循相同的常規(guī)過程,稱為“加載器”。加載程序分配一個(gè)安全的內(nèi)存區(qū)域來加載“ELF 標(biāo)頭”、“程序標(biāo)頭”和“哈希段”。加載程序通過檢查圖像元數(shù)據(jù)、根證書、證書鏈和哈希表來驗(yàn)證哈希段。加載程序通過對加載的 ELF 段進(jìn)行哈希處理并將哈希值與哈希表中的相等條目進(jìn)行比較來驗(yàn)證加載的 ELF 段。如果任何計(jì)算的哈希值存在差異,則拒絕圖像。
此過程可確保加載程序永遠(yuǎn)不會意外覆蓋內(nèi)存中的重要數(shù)據(jù)(包括加載程序的代碼和數(shù)據(jù)),并且圖像數(shù)據(jù)從不受信任的存儲中加載。
開發(fā)已驗(yàn)證的啟動
已驗(yàn)證啟動可確保所有執(zhí)行的代碼都來自受信任的源(通常是設(shè)備 OEM)。它直接從引導(dǎo)分區(qū)、受硬件保護(hù)的信任根和引導(dǎo)加載程序創(chuàng)建一個(gè)完整信任鏈,以訪問其他已驗(yàn)證的分區(qū),包括系統(tǒng)、供應(yīng)商和可選的 OEM 分區(qū)。在設(shè)備啟動期間,每個(gè)階段都會在移交執(zhí)行之前驗(yàn)證下一階段的完整性和真實(shí)性。
之后,“已驗(yàn)證啟動”會檢查具有回滾保護(hù)的 Android 版本是否正確,因?yàn)榛貪L保護(hù)通過確保設(shè)備僅更新到較新版本的 Android,有助于防止可能的漏洞利用變得持續(xù)存在。此外,經(jīng)過驗(yàn)證的啟動還允許Android設(shè)備與用戶交流其完整性狀態(tài)。
安卓操作系統(tǒng)移植
移植 Linux 內(nèi)核是移植安卓系統(tǒng)最重要的因素之一。從 kernel.org 下載相應(yīng)的 Linux 版本,并將 Linux 移植到目標(biāo)主板。此內(nèi)核稱為目標(biāo)板的參考內(nèi)核。查找與參考內(nèi)核具有相同修訂版的 Android 內(nèi)核,或者使用最接近的修訂版來簡化過程。將參考內(nèi)核和 Android 內(nèi)核合并到將移植到目標(biāo)板的合并內(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)致花費(fèi)更多時(shí)間進(jìn)行合并和調(diào)試。
能夠配置升級(即 OTA)服務(wù)器
OTA(無線)是安卓用于安卓設(shè)備中系統(tǒng)級更新(如操作系統(tǒng)更新)的機(jī)制。建議堅(jiān)持讓移植公司使用安卓OTA升級機(jī)制,而不是本土的升級系統(tǒng)。接下來,您可以將 OTA 升級服務(wù)器配置為您選擇的服務(wù)器。這將使您能夠控制更新過程,并控制客戶何時(shí)可以使用錯(cuò)誤修復(fù)。它還為安卓消費(fèi)類設(shè)備提供了一致的用戶體驗(yàn)。
移植安卓 11 時(shí)需要考慮的事項(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)商管理單個(gè)大小的分區(qū)(如系統(tǒng)、供應(yīng)商和產(chǎn)品)的痛苦。相反,設(shè)備會分配一個(gè)超級分區(qū),以及可以在其中動態(tài)調(diào)整大小的子分區(qū)。
當(dāng)所有特定于供應(yīng)商的信息都從引導(dǎo)分區(qū)中分離出來并重新定位到供應(yīng)商引導(dǎo)分區(qū)中時(shí),它可以使用 GKI(通用內(nèi)核映像)輕松引導(dǎo)任意設(shè)備。現(xiàn)在,供應(yīng)商啟動分區(qū)包含以前包含在啟動分區(qū)中的信息(例如閃存頁大小、內(nèi)核、虛擬硬盤加載地址、DTB 本身)。要在移植 Android 11 時(shí)成功完成引導(dǎo),引導(dǎo)加載程序必須能夠同時(shí)訪問引導(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ù)時(shí),引導(dǎo)加載程序可以加載與恢復(fù)映像兼容的覆蓋映像。支持 A/B(無縫)更新的設(shè)備應(yīng)使用恢復(fù)作為啟動而不是單獨(dú)的恢復(fù)分區(qū),并且通用內(nèi)核映像 (GKI) 必須使用主啟動標(biāo)頭版本 3 才能與供應(yīng)商啟動分區(qū)兼容。
遵循上述嵌入式工程實(shí)踐,您可以確保在嵌入式平臺上高效、成功地移植Android,增強(qiáng)現(xiàn)有連接設(shè)備的功能,或者從頭開始設(shè)計(jì)新系統(tǒng),而不會有太多的麻煩。
審核編輯:郭婷
-
智能手機(jī)
+關(guān)注
關(guān)注
66文章
18610瀏覽量
183055 -
嵌入式
+關(guān)注
關(guān)注
5141文章
19537瀏覽量
315030 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7091瀏覽量
124959
發(fā)布評論請先 登錄
嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式
RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班來上海啦!

RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班登陸鄭州!

2025嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班正式啟動!

新手怎么學(xué)嵌入式?
什么是嵌入式操作系統(tǒng)?
【本周六-深圳】RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班正式開班

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

嵌入式linux開發(fā)的基本步驟有哪些?
開啟全新AI時(shí)代 智能嵌入式系統(tǒng)快速發(fā)展——“第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束
嵌入式系統(tǒng)中的實(shí)時(shí)操作系統(tǒng)
RT-Thread出席第六屆中國嵌入式技術(shù)大會,共話嵌入式操作系統(tǒng)與智能工業(yè)

評論