Android OTA 问题分析
分享下 Android OTA 問(wèn)題分析思路,針對(duì)不同類型的問(wèn)題進(jìn)行分析。
一、 升級(jí)過(guò)程,校驗(yàn)失敗;
升級(jí)校驗(yàn)失敗是開(kāi)發(fā)過(guò)程中常見(jiàn)的問(wèn)題,校驗(yàn)失敗實(shí)際是針對(duì)版本拿升級(jí)包進(jìn)行打 patch,目前 Android 基本都是 block 升級(jí),所以校驗(yàn)失敗也就是某些 block 校驗(yàn)不過(guò)。
1. 首先排查,設(shè)備刷的版本和升級(jí)包對(duì)應(yīng)的版本是否匹配;
這種情況一般比較少見(jiàn),但是應(yīng)當(dāng)首先予以排除。查看設(shè)備的版本號(hào),編譯時(shí)間輟,和升級(jí)包里面的是否一致。
包括下面幾種情況:
1)升級(jí)包正確,但是設(shè)備刷錯(cuò)了版本(比如升級(jí)包是 V001 -> V002 的,但是版本是 V003 的);
2)設(shè)備刷的版本正確,但是下載的升級(jí)包錯(cuò)誤(比如設(shè)備是 V001版本,但是升級(jí)包是 V002-> V003 的差分包);
3)升級(jí)包或者版本編譯異常導(dǎo)致校驗(yàn)失敗。升級(jí)過(guò)程:源版本 -> 目標(biāo)版本;
3.1:源版本里面的 imges,和 target 包里面的 imges 不同,導(dǎo)致升級(jí)過(guò)程分區(qū)校驗(yàn)失敗;這種情況就需要排查源版本里面的 images,和 target 包里面的images 是否相同;
注意:正式版本編譯時(shí),升級(jí)包要和版本一起編譯,而且再升級(jí)包編譯完成后,target 包里面的部分 images 要覆蓋到版本里面的 images。這部分修改,之前 MTK 平臺(tái)默認(rèn)是有的,但是高通平臺(tái)沒(méi)有,需要合入這部分補(bǔ)丁。
本地升級(jí)驗(yàn)證的情況下,同樣應(yīng)該注意排查升級(jí)包拷貝過(guò)程中,拷貝不完全導(dǎo)致的升級(jí)包損壞的情況。
2. 排查設(shè)備分區(qū)是否被篡改,比如是否被 remount等情況;
在線升級(jí)情況,在升級(jí)包下載后本身會(huì)對(duì)升級(jí)包完整性進(jìn)行校驗(yàn),如果完整性校驗(yàn)通過(guò),則會(huì)進(jìn)行升級(jí)包內(nèi)容進(jìn)行校驗(yàn)。如果分區(qū)被篡改,則會(huì)導(dǎo)致分區(qū)的 block 發(fā)生變化,從而校驗(yàn)失敗。
這種情況,重新刷機(jī)應(yīng)該就可以升級(jí)成功。
3. 其他導(dǎo)致升級(jí)失敗的情況;
1)系統(tǒng)配置了升級(jí)分區(qū),比如system 分區(qū),但是升級(jí)包里面沒(méi)有包含該分區(qū)。
2)缺少selnux 權(quán)限導(dǎo)致,比如沒(méi)有權(quán)限讀取分區(qū),則也導(dǎo)致校驗(yàn)失敗;沒(méi)有權(quán)限寫(xiě)入分區(qū),則會(huì)導(dǎo)致升級(jí)失敗;
二、 升級(jí)完成,設(shè)備不開(kāi)機(jī);
針對(duì)設(shè)備升級(jí)完成,設(shè)備無(wú)法開(kāi)機(jī)的情況,常規(guī)分析方法如下:
1. 通過(guò)工具回讀設(shè)備的分區(qū)(data/cache 等非系統(tǒng)分區(qū)不用回讀,回讀的常規(guī)分區(qū)如 boot/lk/preloader/system/vendor/product等),和系統(tǒng)版本里面的image進(jìn)行二進(jìn)制對(duì)比,看是否一致。高通平臺(tái) QFILE 工具,MTK 平臺(tái) Flashtool 工具。
如果對(duì)比某個(gè)分區(qū)不一致,就要具體分析為什么分區(qū)和逾期的不一致。
2. 通過(guò)串口抓去 kernel 日志進(jìn)行分析,這種情況相當(dāng)于找具體的問(wèn)題,需要在版本里面打開(kāi)串口日志重新編譯版本 + 升級(jí)包驗(yàn)證。
通過(guò)串口日志,可以找到具體的問(wèn)題點(diǎn),然后再具體分析。
總結(jié)
以上是生活随笔為你收集整理的Android OTA 问题分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ESP32 HttpServer模式下
- 下一篇: android ota机制,Androi