91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

一文吃透RK平臺OTA升級開發(fā):從邏輯到調(diào)試的完整指南

jf_44130326 ? 來源:Linux1024 ? 2026-02-09 16:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Rockchip(簡稱RKAndroid平臺開發(fā)中,OTAOver The Air)升級是實現(xiàn)設(shè)備軟件迭代的核心方式。無論是本地卡刷升級,還是在線無縫更新,掌握OTA升級的技術(shù)細節(jié),能讓開發(fā)者高效解決固件更新、功能迭代等問題。本文將從升級邏輯、核心技巧、調(diào)試要點到問題排查,全方位拆解RK平臺OTA升級開發(fā),附關(guān)鍵流程圖示,助力開發(fā)者快速上手。

一、OTA升級核心邏輯:兩種系統(tǒng)架構(gòu)的差異

RK平臺OTA升級需區(qū)分AB系統(tǒng)AB系統(tǒng),兩者的分區(qū)設(shè)計、升級流程差異顯著,需針對性開發(fā)。

1.1AB系統(tǒng):傳統(tǒng)Recovery升級邏輯

AB系統(tǒng)(即傳統(tǒng)分區(qū)系統(tǒng))通過Recovery模式完成升級,核心特點是單組分區(qū)+重啟升級,升級時設(shè)備需進入Recovery模式,暫時無法使用。

?分區(qū)設(shè)計:僅包含一套系統(tǒng)分區(qū)(如system、boot、vendor等),升級時直接覆蓋原分區(qū)。

?升級流程

a.生成完整OTA包(含全量系統(tǒng)文件)或差異包(僅含版本間變更內(nèi)容);

b.將升級包放入USB/SD卡或內(nèi)置存儲(如/data/media/0/);

c.設(shè)備檢測到升級包后重啟進入Recovery模式;

d.Recovery校驗升級包,覆蓋原系統(tǒng)分區(qū),完成后重啟進入新系統(tǒng)。

?適用場景:對升級時效性要求不高、存儲空間有限的設(shè)備(如入門級物聯(lián)網(wǎng)設(shè)備、舊款智能硬件)。

1.2 AB系統(tǒng):無縫升級邏輯

AB系統(tǒng)(雙分區(qū)系統(tǒng))通過雙組分區(qū)+后臺升級實現(xiàn)無縫更新,升級時設(shè)備可正常使用,重啟后直接切換到新系統(tǒng),核心特點是零停機升級。

?分區(qū)設(shè)計:所有關(guān)鍵分區(qū)(如boot、system、vendor)均包含A/B兩組(如boot_a/boot_b、system_a/system_b),一組為活躍分區(qū)(當前使用),一組為備用分區(qū)(待升級)。

?升級流程

a.設(shè)備在Android主系統(tǒng)運行時,后臺下載OTA包;

b.升級程序?qū)?/span>OTA包內(nèi)容寫入備用分區(qū)(不影響活躍分區(qū));

c.升級完成后提示用戶重啟,重啟時切換活躍分區(qū)(如從A組切換到B組);

d.若新分區(qū)啟動失敗,系統(tǒng)自動回滾到原活躍分區(qū),保障設(shè)備可用性。

?適用場景:對升級體驗要求高的設(shè)備(如高端智能屏、工業(yè)控制設(shè)備),需額外占用約一倍存儲空間。

1.3核心邏輯對比圖

wKgZPGkaiw2ARy-5AAFsqvnt6ko186.png

二、OTA升級開發(fā)核心技巧

無論是非AB還是AB系統(tǒng),OTA開發(fā)的關(guān)鍵在于正確配置系統(tǒng)+生成合規(guī)升級包+適配升級介質(zhì),以下是實操技巧:

2.1系統(tǒng)配置技巧:按Android版本適配

AB系統(tǒng)默認關(guān)閉,需從Android系統(tǒng)、U-Boot、Kernel三方面配置,不同Android版本配置差異如下:

配置維度

Android 12

Android 13

Android ≥14

Android系統(tǒng)配置

1. BoardConfig.mk中設(shè)BOARD_USES_AB_IMAGE := true2.新增recovery.fstab_AB(添加slotselect參數(shù));3.導入AB配置并指定fstab文件

Android 12,支持壓縮虛擬AB(需額外設(shè)BOARD_ROCKCHIP_VIRTUAL_AB_COMPRESSION := true

1.直接在BoardConfig.mk中開啟AB;2.壓縮虛擬AB僅支持GKI版本

U-Boot配置

芯片defconfig中添加CONFIG_ANDROID_AB=y

Android 12

Android 12

Kernel配置

無需額外配置

無需額外配置

無需額外配置

注意:虛擬AB功能(BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := true)會降低升級性能,非必要不開啟;RK3566/3568/3588trust分區(qū),配置時需刪除trust_a/trust_b相關(guān)項。

2.2 OTA包生成技巧:完整包與差異包

OTA包分為完整包(全量系統(tǒng),適合首次升級或跨版本升級)和差異包(僅含變更內(nèi)容,適合小版本迭代,體積?。?,生成命令需區(qū)分系統(tǒng)類型:

1)完整包生成

系統(tǒng)類型

命令1(原生make

命令2build.sh腳本,更簡潔)

輸出路徑與重命名

AB

make installclean && make -j16 && make dist -j16 && ./mkimage.sh ota

build.sh –AUCKuop

out/target/product/rkxxxx/下生成rkxxxx-ota-eng.root.zip,重命名為update.zip

AB

make installclean && make -j16 && make dist -j16 && ./mkimage_ab.sh ota

build.sh -ABUCKuop

同非AB,需確保首次編譯前執(zhí)行make clean

關(guān)鍵技巧:發(fā)布固件必須用mkimage.sh ota(非AB)或mkimage_ab.sh otaAB),避免單獨燒錄Kernel,否則會導致差異包升級失敗。

2)差異包生成(跨版本更新必備)

差異包需基于前一版本素材包當前版本素材包生成,步驟如下:

1.編譯v1版本固件,保存素材包:out/target/product/rkxxxx/obj/PACKAGING/target_files_intermediates/rkxxx-target_files-eng.xxx.zip重命名為rkxxxx-target_files-v1.zip,并燒錄v1固件到設(shè)備;

2.修改代碼(Kernel/Android),編譯v2版本固件,保存素材包為rkxxxx-target_files-v2.zip;

3.執(zhí)行差異包生成命令(按Android版本區(qū)分):

?Android <13./build/tools/releasetools/ota_from_target_files -v -i舊素材包路徑--block -p ./out/host/linux-x86新素材包路徑 輸出差異包路徑

?Android 13:需指定python3python3 ./build/tools/releasetools/ota_from_target_files ...

?Android ≥14:直接調(diào)用工具:out/host/linux-x86/bin/ota_from_target_files ...

關(guān)鍵技巧:每發(fā)布一個版本,必須保存素材包(target_files.zip)和完整包,否則無法生成后續(xù)差異包。

2.3升級介質(zhì)適配技巧:SD/ USB/ Loader

除了OTA包,升級介質(zhì)(SD卡、USB盤)和Loader的適配也影響升級成功率:

?SD升級卡制作:用SDDiskTool工具,選擇固件升級模式,導入update.img,點擊開始創(chuàng)建AB系統(tǒng)需先在工具config中配置UPGRADE_PROGRAM_PARTITION=boot_b。

?USB升級盤制作:先在U-Boot中開啟CONFIG_ROCKCHIP_USB_BOOT=y(以RK3588為例,修改rk3588_defconfig添加該配置),再用SDDiskTool制作,步驟同SD卡。

?Loader升級:正常OTA無需升級Loader,若需升級,將RKLoader.bin放入$(TARGET_DEVICE_DIR)/ota/loader目錄,OTA打包時會自動加入;AB系統(tǒng)需單獨生成update_loader.zip(編譯后在rockdev目錄下),通過Recovery命令升級。

三、調(diào)試要點:Log、屏幕與存儲問題排查

OTA升級調(diào)試的核心是精準定位問題,需重點關(guān)注Log輸出、屏幕顯示、存儲適配三大場景:

3.1 Log重定向:快速抓取升級日志

升級失敗時,需通過Log定位原因,可將Log輸出到串口、SD卡或/cache/recovery/目錄,配置方式:

?打開Log輸出:修改bootable/recovery/Android.bp,添加對應(yīng)宏定義:

?串口輸出:-DLogToSerial

?/cache/recovery/輸出:-DLogToCache

?SD卡輸出(生成recovery.log):-DLogToSDCard

?查看Log:升級后通過adb pull /cache/recovery/recovery.log(非AB)或adb pull /data/misc/update_engine/logs/update_engine.logAB)獲取日志,重點排查校驗失敗”“分區(qū)掛載錯誤等關(guān)鍵詞。

3.2屏幕旋轉(zhuǎn)適配:解決Recovery顯示異常

部分設(shè)備(如橫屏智能屏)在Recovery模式下屏幕顯示顛倒,需修改旋轉(zhuǎn)配置:

?配置路徑:device/rockchip/XXXX/BoardConfig.mk

?旋轉(zhuǎn)參數(shù):

?不旋轉(zhuǎn):TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_NONE

?旋轉(zhuǎn)90°ROTATION_RIGHT

?旋轉(zhuǎn)180°ROTATION_DOWN

?旋轉(zhuǎn)270°ROTATION_LEFT

3.3存儲適配:NTFS格式與文件保存

?NTFS格式支持:默認不支持NTFSUSB/SD卡,需先獲取NTFS授權(quán),再開啟KernelNTFS配置(CONFIG_NTFS_FS=y),否則升級包無法識別。

?關(guān)鍵文件保存:需持久化的文件(如升級狀態(tài)、配置參數(shù)),建議保存到/cache/recovery/Recovery_*路徑,該路徑格式化時不會被清除,避免升級中斷后配置丟失。

四、常見問題與解決方案

OTA升級中常遇到升級包無法識別”“升級失敗回滾”“Loader升級失敗等問題,以下是高頻問題的排查思路:

4.1升級包無法識別/校驗失敗

問題現(xiàn)象

可能原因

解決方案

設(shè)備未彈出升級對話框

1.升級包未放在根目錄;2.包名不是update.zip3. USB/SD卡未掛載

1.update.zip放入USB/SD卡根目錄或/data/media/0/2.插拔USB線或重啟設(shè)備觸發(fā)檢測;3. AB系統(tǒng)需用update_device.py腳本觸發(fā)升級

升級包校驗失敗

1.包損壞或簽名錯誤;2.素材包版本不匹配(差異包)

1.重新生成OTA包,確保簽名密鑰正確(默認key路徑:Android 13device/rockchip/common/security/testkey,其他版本為build/make/target/product/security/testkey);2.差異包需確保基于前一版本素材包生成

4.2 AB系統(tǒng)升級回滾

問題現(xiàn)象

可能原因

解決方案

重啟后回滾到原系統(tǒng)

1.備用分區(qū)寫入錯誤;2.分區(qū)切換配置錯誤

1.查看update_engine.log,排查寫入失敗原因(如分區(qū)空間不足);2.檢查U-BootCONFIG_ANDROID_AB是否開啟,Android配置中slotselect參數(shù)是否添加

4.3 Loader升級失敗

問題現(xiàn)象

可能原因

解決方案

OTA包未包含Loader

Loader未放入$(TARGET_DEVICE_DIR)/ota/loader

1.執(zhí)行source build/envsetup.sh && lunch XXX后,用get_build_var TARGET_DEVICE_DIR確認路徑;2.RKLoader.bin放入該路徑下的ota/loader目錄,重新打包

AB系統(tǒng)Loader升級無響應(yīng)

未用專用升級包或命令

1.使用rockdev目錄下的update_loader.zip;2.執(zhí)行命令:adb push update_loader.zip /cache/ && adb shell "echo '--fw_rkloader=/cache/update_loader.zip' > /cache/recovery/command" && adb reboot recovery

五、總結(jié)

RK平臺OTA升級開發(fā)需圍繞系統(tǒng)架構(gòu)選型配置適配包生成調(diào)試排查四個環(huán)節(jié),核心要點如下:

1.AB系統(tǒng)適合輕量設(shè)備,AB系統(tǒng)適合無縫升級,需權(quán)衡存儲空間與體驗;

2.生成OTA包時,完整包用mkimage.sh/mkimage_ab.sh,差異包需保存素材包;

3.調(diào)試優(yōu)先抓Log,重點排查校驗、分區(qū)、Loader三大類問題;

4.AB系統(tǒng)需注意雙分區(qū)切換與回滾機制,避免升級變磚。

掌握以上內(nèi)容,即可高效完成RK平臺OTA升級開發(fā),實現(xiàn)設(shè)備的穩(wěn)定迭代。


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

    關(guān)注

    5198

    文章

    20435

    瀏覽量

    333894
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    646

    瀏覽量

    35633
  • OTA
    OTA
    +關(guān)注

    關(guān)注

    7

    文章

    628

    瀏覽量

    38278
  • Rockchip
    +關(guān)注

    關(guān)注

    0

    文章

    91

    瀏覽量

    19575
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    技術(shù)帖 | RK3568開發(fā)板的OTA升級教程

    說起OTA我們應(yīng)該都不陌生,它是種可以為設(shè)備無損失升級系統(tǒng)的方式,能將新功能遠程部署產(chǎn)品上。我們不僅可以通過網(wǎng)絡(luò)下載OTA
    的頭像 發(fā)表于 04-20 08:01 ?2967次閱讀
    技術(shù)帖 | <b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)</b>板的<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>教程

    RK3568開發(fā)OTA升級

    包下載到SD卡或U盤后,再對設(shè)備進行本地升級。 本文將基于飛凌嵌入式RK3568開發(fā)板,詳細介紹OTA升級的流程,特別是本地
    的頭像 發(fā)表于 04-21 14:32 ?1551次閱讀
    <b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>

    基于RK3288嵌入式板卡 Android7.1檔索引資料分享

    基于RK3288嵌入式板卡 Android7.1檔索引資料分享作為直在開發(fā)板方面做研究測試的開發(fā)
    發(fā)表于 05-18 10:28

    飛凌RK3399平臺Android鏡像版本升級的兩種處理方式-OTA 本地升級、OTA遠程升級

    3399平臺android鏡像版本升級的兩種方式OTA 本地升級OTA遠程升級以及
    發(fā)表于 12-17 15:16

    RK3399平臺Android鏡像版本升級的兩種處理方式-OTA 本地升級、OTA遠程升級

    3399平臺android鏡像版本升級的兩種方式OTA 本地升級、OTA遠程升級以及
    發(fā)表于 12-18 13:14

    RK3399平臺Android鏡像版本升級的兩種處理方式-OTA 本地升級、OTA遠程升級

    3399平臺android鏡像版本升級的兩種方式OTA 本地升級OTA遠程升級以及
    發(fā)表于 12-19 16:47

    RK3399平臺Android鏡像-OTA 本地升級、OTA遠程升級

    3399平臺android鏡像版本升級的兩種方式OTA 本地升級、OTA遠程升級以及
    發(fā)表于 08-11 10:00

    RK3399平臺OTA升級包編譯過程是怎樣的

    RK3399平臺升級方式有哪幾種呢?RK3399平臺OTA
    發(fā)表于 03-08 06:20

    iTOP-RK3568開發(fā)OTA升級包編譯

    本節(jié)我們將編譯三個版本的 android 鏡像,V1.0.0 版本、V1.0.1 版本、V1.0.2 版本,其中V1.0.0 版本為基礎(chǔ)版本用于燒寫到 rk3568 開發(fā)板上,V.1.0.0 升級到
    發(fā)表于 03-10 16:18

    搞定RK平臺Wi-Fi/BT調(diào)試!配置問題解決全攻略

    專用芯片,Wi-Fi/BT 的穩(wěn)定運行直接影響產(chǎn)品體驗。本文配置、編譯、測試問題排查,手把手帶你搞定 RK 平臺 Wi-Fi/BT 調(diào)試
    的頭像 發(fā)表于 02-09 16:57 ?1285次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>搞定<b class='flag-5'>RK</b><b class='flag-5'>平臺</b>Wi-Fi/BT<b class='flag-5'>調(diào)試</b>!<b class='flag-5'>從</b>配置<b class='flag-5'>到</b>問題解決全攻略

    RK平臺Android設(shè)備OTA升級教程:原理到U盤實操

    包” 和 “差異包” 兩種升級形態(tài),適配不同場景(如全新安裝、小版本更新)。本文將從 OTA 升級包的類型與編譯入手,拆解 RK 平臺
    的頭像 發(fā)表于 02-09 16:23 ?709次閱讀
    <b class='flag-5'>RK</b><b class='flag-5'>平臺</b>Android設(shè)備<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>教程:<b class='flag-5'>從</b>原理到U盤實操

    打通Rockchip DP調(diào)試原理到實戰(zhàn),覆蓋RK3399/RK3576/RK3588全平臺

    嵌入式開發(fā)中,DisplayPort(DP)接口的調(diào)試常讓工程師頭疼 —— 不同芯片特性差異大、Type-C 與標準口配置不同、高分辨率輸出異常、MST 多屏適配難… 尤其是 Rockchip RK3399、
    的頭像 發(fā)表于 02-04 16:14 ?323次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>打通Rockchip DP<b class='flag-5'>調(diào)試</b>:<b class='flag-5'>從</b>原理到實戰(zhàn),覆蓋<b class='flag-5'>RK</b>3399/<b class='flag-5'>RK</b>3576/<b class='flag-5'>RK</b>3588全<b class='flag-5'>平臺</b>

    深入解析RK平臺GPIO驅(qū)動:原理到調(diào)試,開發(fā)者必看指南

    平臺上,GPIO 驅(qū)動的實現(xiàn)直接影響著硬件交互的穩(wěn)定性與效率。本文將帶你深入剖析 RK 平臺 GPIO 驅(qū)動的核心邏輯、使用方法,以及對調(diào)試
    的頭像 發(fā)表于 02-03 15:53 ?1012次閱讀
    深入解析<b class='flag-5'>RK</b><b class='flag-5'>平臺</b>GPIO驅(qū)動:<b class='flag-5'>從</b>原理到<b class='flag-5'>調(diào)試</b>,<b class='flag-5'>開發(fā)</b>者必看<b class='flag-5'>指南</b>

    讀懂UEFI系統(tǒng):應(yīng)用場景RK平臺開發(fā)全攻略

    ? ? ? 在嵌入式開發(fā)領(lǐng)域, UEFI (統(tǒng)可擴展固件接口)早已不是陌生詞匯。它作為傳統(tǒng) BIOS 的升級替代方案,憑借更強大的功能、更靈活的擴展性,正在成為嵌入式平臺固件
    的頭像 發(fā)表于 01-19 09:55 ?1160次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>讀懂UEFI系統(tǒng):<b class='flag-5'>從</b>應(yīng)用場景<b class='flag-5'>到</b><b class='flag-5'>RK</b><b class='flag-5'>平臺</b><b class='flag-5'>開發(fā)</b>全攻略

    吃透RK芯片parameter文件:基礎(chǔ)配置開發(fā)實戰(zhàn),避開底層所有坑

    ? ? ? 在嵌入式開發(fā)圈,有個 “ 隱形基石文件 ”——RK 系列芯片( RK3326 、 RK3288 、 RK3399 等)的 par
    的頭像 發(fā)表于 02-05 07:07 ?272次閱讀
    <b class='flag-5'>吃透</b><b class='flag-5'>RK</b>芯片parameter文件:<b class='flag-5'>從</b>基礎(chǔ)配置<b class='flag-5'>到</b><b class='flag-5'>開發(fā)</b>實戰(zhàn),避開底層所有坑