国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

石家莊 外貿(mào)網(wǎng)站建設(shè)公司排名網(wǎng)絡(luò)營(yíng)銷(xiāo)項(xiàng)目

石家莊 外貿(mào)網(wǎng)站建設(shè)公司排名,網(wǎng)絡(luò)營(yíng)銷(xiāo)項(xiàng)目,index 石家莊網(wǎng)站建設(shè),寧波網(wǎng)站建設(shè)icp備Android 虛擬 A/B 分區(qū)推出快三年了,不論是 google 還是百度結(jié)果,除了源代碼之外,竟然沒(méi)有人提到這個(gè) Android Virtual A/B 的調(diào)試工具 ,著實(shí)讓人感覺(jué)意外。 所以我相信還有不少人不知道 Android OTA 到底都有哪些調(diào)試工具&#…

Android 虛擬 A/B 分區(qū)推出快三年了,不論是 google 還是百度結(jié)果,除了源代碼之外,竟然沒(méi)有人提到這個(gè) Android Virtual A/B 的調(diào)試工具 ,著實(shí)讓人感覺(jué)意外。

所以我相信還有不少人不知道 Android OTA 到底都有哪些調(diào)試工具,這些工具又該如何使用?所以決定開(kāi)一個(gè)專(zhuān)欄,專(zhuān)門(mén)介紹 Android OTA 相關(guān)的各種工具。

本文為洛奇看世界(guyongqiangx)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。
文章鏈接:https://blog.csdn.net/guyongqiangx/article/details/129122159

有下圖為證,到目前位置,百度結(jié)果還沒(méi)有 snapshotctl 相關(guān)內(nèi)容:

百度搜索 snapshotctl 工具的結(jié)果

對(duì)于 snapshotctl,除了 Android 自家的開(kāi)發(fā)者之外,肯定有下游開(kāi)發(fā)者用過(guò),但沒(méi)有人分享過(guò)這個(gè)工具,因此本篇算是全網(wǎng)對(duì) snapshotctl 介紹的第一篇,我相信還有不少人連這個(gè)工具都沒(méi)有聽(tīng)說(shuō)過(guò)。

本文基于 Android 代碼版本: android-11.0.0_r21,但后續(xù)版本也大同小異

在線代碼:http://aospxref.com/android-11.0.0_r21/

其實(shí) snapshotctl 的工具使用并不復(fù)雜,源碼也還算簡(jiǎn)單,代碼位于:

system/core/fs_mgr/libsnapshot/snapshotctl.cpp

這里不再詳細(xì)分析代碼,主要演示 snapshotct 工具的使用。

1. snapshotctl 的功能

在早期版本(android-11.0.0_r21)中,snapshotctl 支持 dump 和 map 操作,后面又增加了 unmap 操作。

snapshotctl 的幫助信息:

console:/ # snapshotctl -h                                                     
snapshotctl: Control snapshots.
Usage: snapshotctl [action] [flags]
Actions:dumpPrint snapshot states.mergeDeprecated.mapMap all partitions at /dev/block/mapper
64|console:/ # 

2. dump 操作

dump 操作是 snapshtctl 最有用的操作,可以輸出系統(tǒng)升級(jí)中的各種狀態(tài)。

以下是我的一塊板子上運(yùn)行 snapshotctl dump 的輸出:

console:/ # snapshotctl dump                                                   
snapshotctl W 10-10 21:43:54  3770  3770 snapshot.cpp:247] Cannot read /metadata/ota/snapshot-boot: No such file or directory
Update state: initiated
Compression: 0
Current slot: _a
Boot indicator: booting from unknown slot
Rollback indicator: No such file or directory
Forward merge indicator: No such file or directory
Source build fingerprint: google/inuvik/inuvik:11/RVC/eng.rocky.20221010.210616:userdebug/dev-keys
Snapshot: system_bstate: CREATEDdevice size (bytes): 1263079424snapshot size (bytes): 1263079424cow partition size (bytes): 119177216cow file size (bytes): 949866496allocated sectors: 0metadata sectors: 0compression: none
Snapshot: vendor_bstate: CREATEDdevice size (bytes): 80506880snapshot size (bytes): 80506880cow partition size (bytes): 0cow file size (bytes): 978944allocated sectors: 0metadata sectors: 0compression: none
console:/ # 

3. map 操作

如果升級(jí)中出現(xiàn)了問(wèn)題,可以通過(guò) snapshotctl map 操作把系統(tǒng)中的各種 base, cow 和 cow-img 等文件都映射成設(shè)備方便檢查。

以下是一個(gè)映射示例:

console:/ # snapshotctl map
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:2525] Successfully unmapped snapshot system_b
snapshotctl I 10-11 19:59:53  6127  6127 fs_mgr_dm_linear.cpp:247] [libfs_mgr]Created logical partition system_b-base on device /dev/block/dm-4
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:638] Mapped system_b-cow-img to /dev/block/dm-5
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:2596] Mapped COW device for system_b at /dev/block/dm-6
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:2490] Mapped system_b as snapshot device at /dev/block/dm-7
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:2525] Successfully unmapped snapshot vendor_b
snapshotctl I 10-11 19:59:53  61[10577.688566] audit: rate limit exceeded
27  6127 fs_mgr_dm_linear.cpp:247] [libfs_mgr]Created logical partition vendor_b-base on device /dev/block/dm-8
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:638] Mapped vendor_b-cow-img to /dev/block/dm-9
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:2556] Mapped COW image for vendor_b at vendor_b-cow-img
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:2490] Mapped vendor_b as snapshot device at /dev/block/dm-10
snapshotctl I 10-11 19:59:53  6127  6127 snapshot.cpp:2741] MapAllSnapshots succeeded.
console:/ # 

上面的 map 操作映射了下面的文件:

console:/ # ls -lh data/gsi/ota/
total 454M
-rw------- 1 root root   26 2022-10-11 00:00 system_b-cow-img.img
-rw------- 1 root root 906M 2022-10-11 00:00 system_b-cow-img.img.0000
-rw------- 1 root root   26 2022-10-11 00:00 vendor_b-cow-img.img
-rw------- 1 root root 956K 2022-10-11 00:00 vendor_b-cow-img.img.0000

如果 super 空間有分配用于升級(jí)也會(huì)被映射,具體我還沒(méi)有詳細(xì)檢查。

一旦映射了分區(qū),就可以通過(guò)其它工具對(duì)升級(jí)的鏡像進(jìn)行檢查了,例如使用 dmctl 工具查看映射的狀態(tài),如下:

console:/ # dmctl 
usage: dmctl <command> [command options]dmctl -f file
commands:create <dm-name> [-ro] <targets...>delete <dm-name>list <devices | targets> [-v]getpath <dm-name>getuuid <dm-name>info <dm-name>status <dm-name>resume <dm-name>suspend <dm-name>table <dm-name>help-f file reads command and all parameters from named fileTarget syntax:<target_type> <start_sector> <num_sectors> [target_data]
234|console:/ # dmctl table
Invalid arguments, see 'dmctl help'
234|console:/ # su
console:/ # dmctl list devices
Available Device Mapper Devices:
userdata             : 252:3
system_b             : 252:7
vendor_b             : 252:10
vendor_b-base        : 252:8
system_a             : 252:0
vendor_b-cow-img     : 252:9
vendor_a             : 252:1
system_b-base        : 252:4
system_b-cow-img     : 252:5
system_b-cow         : 252:6
scratch              : 252:2
console:/ # 
console:/ # dmctl info vendor_b-base
device        : vendor_b-base
active        : true
access        : rw 
activeTable   : true
inactiveTable : false
bufferFull    : false
console:/ # 
console:/ # dmctl info vendor_b-cow-img
device        : vendor_b-cow-img
active        : true
access        : rw 
activeTable   : true
inactiveTable : false
bufferFull    : false
console:/ # 
console:/ # 
console:/ # dmctl table vendor_b-cow-img
Targets in the device-mapper table for vendor_b-cow-img:
0-1912: linear, 259:4 6107136
console:/ # 
console:/ # dmctl table system_b-cow
Targets in the device-mapper table for system_b-cow:
0-888: linear, 259:3 2469000
888-232768: linear, 259:3 2627128
232768-2087976: linear, 252:5 0
console:/ #
console:/ # dmctl table system_b-cow-img
Targets in the device-mapper table for system_b-cow-img:
0-4096: linear, 259:4 569344
4096-8192: linear, 259:4 675840
8192-12288: linear, 259:4 1134592
12288-16384: linear, 259:4 1155072
16384-20480: linear, 259:4 1179648
20480-28672: linear, 259:4 1187840
28672-65536: linear, 259:4 1200128
65536-69632: linear, 259:4 1253376
69632-73728: linear, 259:4 1269760
73728-77824: linear, 259:4 1302528
77824-86016: linear, 259:4 1318912
86016-102400: linear, 259:4 1351680
102400-106496: linear, 259:4 1376256
106496-118784: linear, 259:4 1384448
118784-131072: linear, 259:4 1466368
131072-155648: linear, 259:4 1482752
155648-159744: linear, 259:4 1515520
159744-163840: linear, 259:4 1699840
163840-172032: linear, 259:4 1712128
172032-176128: linear, 259:4 1773568
176128-184320: linear, 259:4 1867776
184320-192512: linear, 259:4 2097152
192512-196608: linear, 259:4 2109440
196608-204800: linear, 259:4 2134016
204800-208896: linear, 259:4 2158592
208896-212992: linear, 259:4 2170880
212992-217088: linear, 259:4 2187264
217088-221184: linear, 259:4 2215936
221184-225280: linear, 259:4 2244608
225280-249856: linear, 259:4 2310144
249856-253952: linear, 259:4 2355200
253952-294912: linear, 259:4 2449408
294912-311296: linear, 259:4 2912256
311296-323584: linear, 259:4 4030464
323584-372736: linear, 259:4 4050944
372736-376832: linear, 259:4 4149248
376832-385024: linear, 259:4 4165632
385024-389120: linear, 259:4 4325376
389120-516096: linear, 259:4 4620288
516096-557056: linear, 259:4 4751360
557056-565248: linear, 259:4 4796416
565248-1855208: linear, 259:4 4812800
console:/ # 

4. unmap 操作

可以通過(guò) snapshotctl unmap 將前面映射的分區(qū)卸載。

console:/ # snapshotctl unmap                                                  
snapshotctl I 10-11 19:59:48  6120  6120 snapshot.cpp:2525] Successfully unmapped snapshot system_b
snapshotctl I 10-11 19:59:48  6120  6120 snapshot.cpp:2525] Successfully unmapped snapshot vendor_b
console:/ # 

5. merge 操作

目前 snapshotctl 工具中的 merge 操作已經(jīng)取消。

console:/ # snapshotctl merge
snapshotctl W 10-11 19:43:10  5986  5986 snapshotctl.cpp:66] Deprecated. Call update_engine_client --merge instead.
70|console:/ # 

這里的提示指出,如果需要進(jìn)行 merge,可以通過(guò)命令:" update_engine_client --merge" 來(lái)進(jìn)行。

所以,如果虛擬分區(qū)升級(jí)出現(xiàn)問(wèn)題,可以先通過(guò) snapshotctl dump 查看一些基本信息,然后通過(guò) snapshotctl map 將所有虛擬分區(qū)設(shè)備映射出來(lái)進(jìn)行檢查,具體有哪些檢查的手段,這個(gè)看每個(gè)人自己的工具儲(chǔ)備了,也可以多關(guān)注我的博客"洛奇看世界(https://blog.csdn.net/guyongqiangx)",后面陸續(xù)為您分享更多 OTA 工具,包括一些洛奇自己開(kāi)發(fā)的工具。

6. 其它

到目前為止,我寫(xiě)過(guò) Android OTA 升級(jí)相關(guān)的話題包括:

  • 基礎(chǔ)入門(mén):《Android A/B 系統(tǒng)》系列
  • 核心模塊:《Android Update Engine 分析》 系列
  • 動(dòng)態(tài)分區(qū):《Android 動(dòng)態(tài)分區(qū)》 系列
  • 虛擬 A/B:《Android 虛擬 A/B 分區(qū)》系列
  • 升級(jí)工具:《Android OTA 相關(guān)工具》系列

更多這些關(guān)于 Android OTA 升級(jí)相關(guān)文章的內(nèi)容,請(qǐng)參考《Android OTA 升級(jí)系列專(zhuān)欄文章導(dǎo)讀》。

如果您已經(jīng)訂閱了動(dòng)態(tài)分區(qū)和虛擬分區(qū)付費(fèi)專(zhuān)欄,請(qǐng)務(wù)必加我微信,備注訂閱賬號(hào),拉您進(jìn)“動(dòng)態(tài)分區(qū) & 虛擬分區(qū)專(zhuān)欄 VIP 答疑群”。我會(huì)在方便的時(shí)候,回答大家關(guān)于 A/B 系統(tǒng)、動(dòng)態(tài)分區(qū)、虛擬分區(qū)、各種 OTA 升級(jí)和簽名的問(wèn)題。

除此之外,我有一個(gè) Android OTA 升級(jí)討論群,里面現(xiàn)在有 400+ 朋友,主要討論手機(jī),車(chē)機(jī),電視,機(jī)頂盒,平板等各種設(shè)備的 OTA 升級(jí)話題,如果您從事 OTA 升級(jí)工作,歡迎加群一起交流,請(qǐng)?jiān)诩游椅⑿艜r(shí)注明“Android OTA 討論組”。此群僅限 Android OTA 開(kāi)發(fā)者參與~

公眾號(hào)“洛奇看世界”后臺(tái)回復(fù)“wx”獲取個(gè)人微信。

http://m.aloenet.com.cn/news/33141.html

相關(guān)文章:

  • 哪里網(wǎng)站用vue.js做的網(wǎng)站排名查詢(xún)平臺(tái)
  • 網(wǎng)站建設(shè) 大公司小公司軟文發(fā)布軟件
  • 做網(wǎng)站怎樣賺賣(mài)流量中國(guó)國(guó)家培訓(xùn)網(wǎng)正規(guī)嗎
  • 東莞做網(wǎng)站的公司有哪些谷歌網(wǎng)址
  • 個(gè)體戶(hù)做網(wǎng)站有優(yōu)勢(shì)嗎google谷歌搜索主頁(yè)
  • 網(wǎng)站建設(shè)方面的優(yōu)劣勢(shì)分析上海網(wǎng)絡(luò)營(yíng)銷(xiāo)
  • 波波網(wǎng)站建設(shè)域名查詢(xún)網(wǎng)
  • 圖片瀑布流網(wǎng)站鄭州百度網(wǎng)站優(yōu)化排名
  • 怎樣用linux做網(wǎng)站微信廣告投放推廣平臺(tái)
  • 工藝品網(wǎng)站怎么做提高網(wǎng)站排名
  • 沈陽(yáng)網(wǎng)站制作費(fèi)用中國(guó)搜索
  • wordpress適合電影網(wǎng)站的模板剛開(kāi)的店鋪怎么做推廣
  • php 網(wǎng)站301怎么優(yōu)化自己公司的網(wǎng)站
  • 政府網(wǎng)站建設(shè)需求調(diào)查表網(wǎng)站推廣方法大全
  • 個(gè)人網(wǎng)站備案可以盈利嗎阻斷艾滋病的藥有哪些
  • 南昌網(wǎng)站建設(shè)公務(wù)網(wǎng)絡(luò)營(yíng)銷(xiāo)策略都有哪些
  • 方案 網(wǎng)站建設(shè)快手seo軟件下載
  • 織夢(mèng)網(wǎng)站問(wèn)題班級(jí)優(yōu)化大師怎么加入班級(jí)
  • 電商加盟上海搜索引擎關(guān)鍵詞優(yōu)化
  • 做美食的網(wǎng)站有那一些韓國(guó)網(wǎng)站
  • ip動(dòng)態(tài)地址做網(wǎng)站網(wǎng)站seo站長(zhǎng)工具
  • 第一家做誘惑的網(wǎng)站廈門(mén)seo優(yōu)化
  • 貴州潤(rùn)鐵祥建設(shè)工程有限公司網(wǎng)站外包公司軟件開(kāi)發(fā)
  • 杭州江干區(qū)抖音seo哪里有五年級(jí)上冊(cè)語(yǔ)文優(yōu)化設(shè)計(jì)答案
  • 電子商務(wù)網(wǎng)站的作用seo排名第一的企業(yè)
  • win7iis部署asp.net網(wǎng)站媒體營(yíng)銷(xiāo)平臺(tái)
  • 企業(yè)網(wǎng)站營(yíng)銷(xiāo)優(yōu)缺點(diǎn)百度推廣平臺(tái)
  • 做網(wǎng)站費(fèi)用會(huì)計(jì)分錄百度貼吧網(wǎng)頁(yè)版登錄入口
  • 視頻網(wǎng)站 如何做seo專(zhuān)業(yè)seo公司
  • 什么網(wǎng)站可以做醫(yī)療設(shè)備的十大少兒編程教育品牌