<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 189,comments - 115,trackbacks - 0
    Android Recoveryの流程分析
    http://blog.csdn.net/xujianqun/article/details/6652531

    關于recovery的代碼分析,見另一篇

    Android Recoveryの代碼分析


    做個升級程序,支持SD卡、U盤、Flash三種路徑升級


    該升級應用程序要和/recovery/sbin/下的recovery配套使用,

    固件共有boot.img,recovery.img,system.img,

    其中system.img是空的,system.img打包格式要和recovery.img匹配


    使用此程序:

    先把librecovery.so是添加到rootfs文件系統庫中,

    再把應用程序recovery_sample添加到某目錄下,

    然后執行recovery_sample就可以實現update功能


    文檔包括四部分:

    l update庫和應用文件

    l update使用及命令

    l 輸入命令格式例子

    l update/recovery界面


    1、Update庫和應用文件

    文件一:Recovery

    是存在于/gingerbread/bootable/,用于生成recovery可執行文件,生成完將其拷貝到UpdateRecoveryfs/recoveryfs/sbin/目錄下

    文件二:UpdateLibSample

    用于生成update應用的庫文件librecovery.so和可執行文件recovery_sample

    文件三:UpdateRecoveryfs

    用于生成recovery.img,有ramdisk和cramfs兩種格式

    文件四:UpdateRootfs

    用于生成boot.img,有ramdisk和cramfs兩種格式


    ramdisk 格式:
    ./mkbootfs recoveryfs | ./minigzip > ramdisk-recovery.img && \

    ./mkkrnlimg ramdisk-recovery.img recovery.img

    rm ramdisk-recovery.img


    Cramfs 格式:
    ./mkfs.cramfs -n v1.01 recoveryfs recovery.img


    Boot.img和recovery.img打包格式要一致,統一為ramdisk或者cramfs

    流程圖




    兩種打包格式

    ramdisk格式:

    ./mkbootfs recoveryfs | ./minigzip > ramdisk-recovery.img && \

    ./mkkrnlimg ramdisk-recovery.img recovery.img

    rm ramdisk-recovery.img

    Cramfs格式:

    ./mkfs.cramfs -n v1.01 recoveryfs recovery.img


    2、update使用及命令

    輸入 ./recovery_sample可以查看幫助

    ==============================================================

    快捷方式  等效命令

    2 --wipe_cache格式化cache

    3 --wipe_userdata格式化用戶數據

    4 --wipe_udisk格式化U盤數據

    6 --recover_image=BACKUP:update.img恢復出廠設置,從backup還原所有固件

    7 --update_image=SDCARD:update.img默認路徑,從SD卡根目錄下固件update.img升級

    9 --update_kernel單獨升級kernel,從SD卡update.img中取得kernel固件

    10 --update_boot單獨升級boot,從SD卡update.img中取得boot固件

    11 --update_system單獨升級system,從SD卡update.img中取得system固件

    12 --update_recovery單獨升級recovery,從SD卡update.img中取得recovery固件

    13 --update_backup單獨升級backup分區,拷貝SD卡的update.img到backup

    14 --update_parameter單獨升級parameter,從SD卡update.img中取得parameter

    15 --update_loader單獨升級loader,從SD卡update.img中取得loader

    16 (user define path name) 手動輸入升級固件路徑及固件名

    ==============================================================


    l 2-4三個功能實現單獨或者同時擦除cache userdata udisk內容

    l 6 功能recover_image=BACKUP:update.img是從BACKUP分區獲取update.img,然后取出recovery-script腳本命令并執行,還原固件

    l 9-15七個功能分別實現升級kernel、boot、system、recovery、backup、parameter和loader,如果沒有指定升級固件路徑和名稱,默認是SDCARD:update.img。

    l 16 功能是自定義升級固件的路徑和名稱


    3、輸入命令格式例子

    Ø 格式化cache

    ./recovery_sample 2

    Ø 從backup還原所有固件

    ./recovery_sample 6

    Ø 格式化和升級混合,用空格隔開

    ./recovery_sample 2 3 4 12

    Ø 手動輸入升級命令,自定義升級固件路徑和名稱

    ./recovery_sample --update_image=BACKUP:update.img
    ./recovery_sample --update_image=SDCARD:/rockchip/rkdroid.img 9
    ./recovery_sample --update_image=CACHE:/cache/update.img 9 14 

    ./recovery_sample --update_image=uDisk:update.img 11


    注意,在從mtd分區升級之前需要把分區mount到某個文件,然后把固件拷貝到這個文件目錄下

    10個MTD分區對應名字和信息如下:

    #cat proc/mtd

    dev:    size   erasesize  name

    mtd0: 00400000 00001000 "misc"

    mtd1: 00800000 00001000 "kernel"

    mtd2: 00400000 00001000 "boot"

    mtd3: 00800000 00001000 "recovery"

    mtd4: 10000000 00001000 "system"

    mtd5: 10400000 00001000 "backup"

    mtd6: 07400000 00001000 "cache"

    mtd7: 10000000 00001000 "userdata"

    mtd8: 00400000 00001000 "kpanic"

    mtd9: 3dd00000 00001000 "user"

    例如從cache升級,需要把cache掛接到/dev/mtdblock6,就可以從cache升級了。



    4、recovery界面說明

    Reset以后按住home+power組合鍵,可直接進入recovery/update界面。

    在log中如果看到

    RECOVERY key is pressed

    COMBINATION key is pressed

    說明將要進入recovery模式


    按鍵:

    說明:

    vol+ 

    向下,支持菜單循環選擇

    vol - 

    向上,支持菜單循環選擇

    Play 

    確認當前選擇

    按鍵可以自己定義,修改gingerbread/bootable/recovery/etc/int.rc


    菜單說明:

    Options

    名稱

    Description

    Reboot system now

    重啟系統

    立即重啟系統

    Factory reset

    恢復出廠設置

    1. 從backup分區獲取update.img 

    2. 還原除了backup以外所有分區固件
    3. 格式化USERDATA 
    4. 格式化CACHE

    Update from SDCard

    從SD卡升級

    1. 從“update-script”獲取升級命令 

    2. 從SD卡根目錄獲取升級固件update.im
    3. 升級所有固件,除了BACKUP分區
    4. 不擦除用戶數據

    Update from uDisk

    從U盤升級

    1. 從“update-script”獲取升級命令 

    2. 從uDisk根目錄獲取升級固update.img
    3. 升級所有固件,除了BACKUP分區
    4. 不擦除用戶數據

    posted on 2011-09-29 11:24 MEYE 閱讀(2277) 評論(0)  編輯  收藏 所屬分類: Android3D
    主站蜘蛛池模板: 亚洲精品无码AV中文字幕电影网站 | 亚洲一区二区三区亚瑟| 在线观看人成视频免费无遮挡| 免费人成网站在线播放| 亚洲av无码专区在线电影| 免费无码看av的网站| 国产大陆亚洲精品国产| 欧洲 亚洲 国产图片综合| 成人黄色免费网站| ASS亚洲熟妇毛茸茸PICS| 最近的中文字幕大全免费版| 成人亚洲性情网站WWW在线观看| 一级一看免费完整版毛片| 国产亚洲精品影视在线产品| 在线免费观看伊人三级电影| 国产∨亚洲V天堂无码久久久| 三年片在线观看免费观看大全一 | 春意影院午夜爽爽爽免费| 亚洲乱码国产一区网址| a毛片在线看片免费| 亚洲国产精品日韩在线观看| 毛片免费全部免费观看| 特级aaaaaaaaa毛片免费视频| 亚洲人成影院在线无码观看| 国产亚洲免费的视频看| 亚洲小说图片视频| 日日AV拍夜夜添久久免费| 亚洲国产免费综合| 亚洲综合视频在线| 日本成人在线免费观看| 一区二区三区免费在线观看| 亚洲精品综合一二三区在线| 无码人妻久久一区二区三区免费丨| 狠狠入ady亚洲精品| 亚洲中文字幕久久精品无码APP| 中文字幕亚洲免费无线观看日本 | 亚洲国产成人久久精品app| 四虎在线播放免费永久视频 | 免费国产怡红院在线观看| 免费国产成人18在线观看| 亚洲AV无码一区二区三区网址|