日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高通公司 MSM8K GPT异常原因分析无法开机的问题

發(fā)布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高通公司 MSM8K GPT异常原因分析无法开机的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題分析過程如下面:

一、

MSM8916臺gpt概率問題:采用QPST emmc software download下載軟件工具后,無法開機。例如下面的附圖:

log分析是userdata分區(qū)未成功mount 。



二、

adb shell ls /dev/block 顯示。開機失敗的機器。比正常開機的機器少一個分區(qū):mmcblk0p28 ,這個分區(qū)就是userdata所在分區(qū)!

參考本人的轉(zhuǎn)并補充內(nèi)容的還有一篇文章《add_partition 函數(shù)學(xué)習(xí)》

可知,/dev/block/mmcblk0pxx 這些分區(qū)是依據(jù)gpt內(nèi)容而創(chuàng)建,因此懷疑gpt內(nèi)容錯誤,導(dǎo)致user分區(qū)沒有被成功創(chuàng)建。

root@zxx/ # cd dev/block/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
root@zxx:/dev/block # ls

mmcblk0
mmcblk0p1
mmcblk0p10
mmcblk0p11
mmcblk0p12
mmcblk0p13
mmcblk0p14
mmcblk0p15
mmcblk0p16
mmcblk0p17
mmcblk0p18
mmcblk0p19
mmcblk0p2
mmcblk0p20
mmcblk0p21
mmcblk0p22
mmcblk0p23
mmcblk0p24
mmcblk0p25
mmcblk0p26
mmcblk0p27
// mmcblk0p28 正常開機的有p28分區(qū)
mmcblk0p3
mmcblk0p4
mmcblk0p5
mmcblk0p6
mmcblk0p7
mmcblk0p8
mmcblk0p9
mmcblk0rpmb


三、

使用dd命令,從mmc設(shè)備mmcblk0中將gpt數(shù)據(jù)讀取出來,正常開機、和無法開機的都讀取一份。


四、 使用二進制比較工具h(yuǎn)excmp對照兩份gpt的內(nèi)容,主要異常有兩處,例如以下兩圖:



從圖中能夠能夠看到gpt headergpt header CRC 及 partition array CRC不同,First LBA、Last LBA不同。

例如以下圖:


下圖是partiton array 內(nèi)容的比較。從圖中能夠看到userdata分區(qū)的end lba不同。

無法開機的gpt內(nèi)容與默認(rèn)build出來的gpt_main0.bin比較 ,發(fā)現(xiàn)userdata分區(qū)的end lba居然和build出來的是相等的。

userdata分區(qū)是整個emmc的最后一分區(qū),不同的emmc size最后一個分區(qū)的end lba是build階段無法知道的。因此build的僅僅是一個默認(rèn)值。

必須由下載工具自己主動更新該lba值。



四、

從上面的分析能夠知道QPST emmc software download 工具沒有更新userdata end lba。或者更新失敗。

那么,怎樣證明是工具沒有寫這個lba?還是寫失敗?或者寫的是錯誤的內(nèi)容?

使用winhex工具,從無法開機的gpt內(nèi)容中將gpt header 和 gpt partition arrary 的內(nèi)容分別截取出來。

使用AS-CRC32.EXE 工具。分別對gpt header 和 gpt partition array 的內(nèi)容計算出crc。工具例如以下圖:


通過對照crc。計算機出的crc的無法開機的gpt header中的兩個crc都是相等的。


因此,能夠證明,gpt中的userdata end 并不是是寫入失敗,或者沒有寫入。

而是QPST emmc software download 工具定稿的錯誤的內(nèi)容。

結(jié)論: 由上分析,能夠證明是QPST emmc software download 工具的問題。


五、

解決方式建議。

更新QPST的軟件版本號,最新版本號支持一個新的使用firehose協(xié)議的下載工具:QFIL,

取代QPST emmc software download 。QFIL更穩(wěn)定,更好用。例如以下圖:



參考:

80-N7350-1_B_GUID_Partition_Tables_Programming.pdf

UEFI_2_4_Errata_B.pdf



版權(quán)聲明:本文博主原創(chuàng)文章,博客,未經(jīng)同意不得轉(zhuǎn)載。

轉(zhuǎn)載于:https://www.cnblogs.com/bhlsheji/p/4875714.html

總結(jié)

以上是生活随笔為你收集整理的高通公司 MSM8K GPT异常原因分析无法开机的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。