欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Android內(nèi)核開(kāi)發(fā):系統(tǒng)分區(qū)與鏡像文件的燒寫

本文是《Android內(nèi)核開(kāi)發(fā)》系列的第五篇文章,本文重點(diǎn)介紹如何把編譯輸出的鏡像文件燒寫到Android設(shè)備中。

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計(jì),岢嵐網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:岢嵐等地區(qū)。岢嵐做網(wǎng)站價(jià)格咨詢:18980820575

玩過(guò)刷機(jī)的朋友肯定對(duì)fastboot這個(gè)工具并不陌生,它是Android SDK中提供的一種開(kāi)發(fā)工具,支持通過(guò)USB線將手頭的鏡像文件更新/燒錄到Android設(shè)備中,常用的fastboot燒錄過(guò)程如下:

fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot flash cache cache.img
fastboot flash recovery recovery.img
fastboot reboot

這樣,就把我們編譯輸出的鏡像文件分別成功更新到Android設(shè)備指定的分區(qū)去了。

但是你知道它的原理是什么嗎?

其實(shí)fastboot是Google定義的一種傳輸協(xié)議,它工作在Android設(shè)備與PC機(jī)兩端,就像瀏覽器常用的HTTP協(xié)議一樣,需要服務(wù)器/客戶端同時(shí)支持該協(xié)議才能完成數(shù)據(jù)的傳遞。

Google提供了fastboot協(xié)議的定義和源碼,需要設(shè)備廠商將代碼移植到自己設(shè)備的bootloader中,并不是所有的Android設(shè)備都支持fastboot,因此,我們可能買到的有些開(kāi)發(fā)板的并不支持fastboot,這就需要我們采用其他方式燒錄,或者修改bootloader/u-boot源碼,讓其支持fastboot協(xié)議。

Google定義的fastboot協(xié)議地址:這里(需要×××)

由于AOSP官網(wǎng)被墻,因此我也把該協(xié)議定義文本拷貝了一份到我們Github中,地址如下:

https://github.com/Jhuster/AOSP/blob/master/documents/fastboot_protocol.txt

對(duì)于任何標(biāo)準(zhǔn)的Android設(shè)備而言,它都會(huì)對(duì)內(nèi)部存儲(chǔ)空間進(jìn)行分區(qū),不同的設(shè)備的分區(qū)大小都不一樣,但通常都會(huì)有如下幾個(gè)分區(qū):

    /boot
    /system
    /recovery
    /data
    /cache
    /misc

各個(gè)分區(qū)分別對(duì)應(yīng)著各個(gè)鏡像文件在設(shè)備中實(shí)際的存儲(chǔ)位置。下圖所示,是ADP1/G1手機(jī)的系統(tǒng)分區(qū)劃分:

Android內(nèi)核開(kāi)發(fā):系統(tǒng)分區(qū)與鏡像文件的燒寫


由此我們知道了,其實(shí)fastboot命令執(zhí)行的流程,就是根據(jù)命令參數(shù),將新的鏡像文件拷貝到指定分區(qū)的過(guò)程,其實(shí)并不復(fù)雜。


那么,不支持fastboot協(xié)議的設(shè)備一般是如何燒錄Android鏡像的呢?

其實(shí)上面也提到了,fastboot協(xié)議是工作在bootloader之中的,在沒(méi)有fastboot出現(xiàn)之前,嵌入式系統(tǒng)的鏡像燒寫通過(guò)bootloader也是完全可以完成的,這里通過(guò)示例簡(jiǎn)單演示一下Linux內(nèi)核燒寫過(guò)程 。

通常在u-boot啟動(dòng)過(guò)程中,會(huì)有3秒的停留,在串口終端敲擊回車中斷u-boot啟動(dòng)內(nèi)核的過(guò)程,這時(shí)就可以輸入u-boot支持的各種命令與板子交互了,舉例如下:

$ nand erase 0x100000 0x200000             //擦除掉nandflash指定位置區(qū)域的數(shù)據(jù)
$ tftp 0x80000000 uImage                   //通過(guò)tftp將內(nèi)核下載到內(nèi)存指定位置
$ nand write 0x80000000 0x100000 0x200000  //把內(nèi)存中的內(nèi)核燒寫到nandflash指定的位置

同理,只要清楚存儲(chǔ)空間的分區(qū)和地址,就能夠通過(guò)u-boot完成鏡像的燒寫過(guò)程,當(dāng)然,u-boot是怎么燒錄到開(kāi)發(fā)板的呢?這是通過(guò)JTAG工具燒寫的,這里就不詳細(xì)論述了。

當(dāng)然,如果系統(tǒng)是從外接的SDCard啟動(dòng)就更簡(jiǎn)單了,只需要把SDCard連接到電腦上,覆蓋對(duì)應(yīng)分區(qū)里面的鏡像文件就可以了。

關(guān)于Android系統(tǒng)分區(qū)和鏡像的燒錄介紹到這兒了,有任何疑問(wèn)歡迎留言或者來(lái)信lujun.hust@gmail.com交流,你也可以關(guān)注我的微博 @盧_俊 獲取最新的文章和資訊,謝謝。

新聞標(biāo)題:Android內(nèi)核開(kāi)發(fā):系統(tǒng)分區(qū)與鏡像文件的燒寫
鏈接分享:http://chinadenli.net/article28/ppgscp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)App開(kāi)發(fā)、網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)