<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

    Recovery界面的中文詳細說明

    首先,介紹下進入Recovery的方式
    1:
    完全關機,按住音量下+電源鍵開機,進入bootloader界面
    2:按音量鍵移動光標到Recovery那一行
    3:按電源鍵(之后機器會重啟進入Recovery)
    音量鍵為光標選擇鍵,可以用來移動光標,電源鍵為確認鍵!
    一:Recovery主界面
    *reboot system now:
    重啟手機(刷機完畢選擇此項就能重新啟動系統)
    *apply SDcard:update.zip:安裝存儲卡中的update.zip升級包(你可以把刷機包命名為update.zip然后用這個選項直接升級)
    *wipe data/factory reset:清除用戶數據并恢復出廠設置(刷機前必須執行的選項)
    *wipe cache partition:清除系統緩存(刷機前執行)(系統出問題也可嘗試此選項,一般能夠解決)
    *install zip from SDcard:從SDcard上安裝zip升級包(可以執行任意名稱的zip升級包,不限制升級包名稱)
    *backup and restore:備份和還原系統(作用和原理如同電腦上的chost一鍵備份和還原)
    *mounts and storage:掛載和存儲選項(詳細功能見下面的解釋)
    *advanced:高級設置
    二:backup and restore功能詳解
    *Backup:
    備份當前系統
    *Restore:還原上一個系統
    *Advanced Restore:高級還原選項(用戶可以自選之前備份的系統,然后進行恢復)
    三:mounts and storage功能詳解
    *mount  /system:
    掛載system文件夾(基本用不到)
    *mount  /data:掛載data文件夾(基本用不到)
    *unmount  /cache:取消cache文件夾掛載(基本用不到)
    *unmount  /sdcard:取消內存卡掛載(基本用不到)
    *mount  /sd-ext:掛載內存卡Ext分區(基本用不到)
    *format  boot:格式化boot(刷機前最好執行一下)
    *format  system:格式化system(刷機前最好執行一下)
    *format  data:格式化data(刷機前最好執行一下)
    *format  cache:格式化cache(刷機前最好執行一下)
    *format  sdcard:格式化內儲卡(執行此項你會后悔的)
    *format  sd-ext:格式化內存卡Ext分區(執行此項你會后悔的)
    *mount USB storage:開啟Recovery模式下的USB大容量存儲功能(也就是說可以在Recovery下對內存卡進行讀寫操作)
    四:Advance 功能詳解
    *Reboot  Recovery:
    重啟Recovery(重啟手機并再次進入Recovery) 
    *Wipe  Dalvik  Cache:清空虛擬機緩存(可以解決一些程序FC的問題)  
    *Wipe  Battery  Stats:
    清空電池調試記錄數據(刷機前做下這個,會比較好,感覺自己電量有問題的機油也可以試試)
    *Report  Error:錯誤報告(配合固件管家用的,不是開發者請無視)
    *Key  Test:按鍵測試(基本沒撒用的功能!)
    *Partition  SD  Card:對內存卡分區(個人覺得DHD不需要分區,一來耗電、二來影響速度!)
    *Fix  Permissions:修復Root權限(如果你的手機Root權限出問題了,可以用這個功能)

    [資料] ◆Android系統名詞解釋,詳解recovery模式下各種指令◆



    APK:

            APK 是Android Package 的縮寫,即Android安裝包。APK 相當于電腦上的exe文件或者塞班上的sis文件。

    ROM、RUU:

                 ROM,是用來刷你手機系統的數據文件,也就是Android 系統的封裝包,通過手機的工程模式解壓安裝到手機中形成你手機的操作系統。
                                                       簡單來說就是手機固件,相當于電腦的系統,我們刷機也就是重新安裝這部分。
           官方原版ROM 就是RUU,(相當于原版Windows XP)首先他是一個最安全的升級工具,可以讓我們安全的升級ROM (一定要對應的機型)。
           當我們在刷機過程中由于不當的操作或版本選擇的錯誤,導致無法啟動,可以使用官方的RUU 程序來恢復系統,等于說,這是一個救命道具。

    Radio:

                 Radio指代的是通訊模塊,就是手機里面負責信號部分的模塊,PDA類型的手機,基本都強調這么個概念。一個是PDA,一個是手機(貌似是句廢話- -),舉個很簡單的例子,以三星的PPC手機為例,比如i718.比如i908,他們在刷機的時候(所謂刷機就是重裝系統)一般都是分兩部分,第一部分刷 手機部分,第二部分刷PDA部分,而且兩部分基本不相干。

    app2sd:

                 Google 手機的軟件為了安全性和穩定性都是默認安裝到手機內存里,但是手機內存有限,所以我們會做app2sd 操作,來讓我們安裝的軟件放到sd卡上,而Google 的android 系統是基于Linux 的,所以存儲卡上本身的Fat 格式是不會被識別的,所以我們要分區(第二分區)出來,格式成Linux 認識的ext2 或3 或4 格式,在用鏈接命令,把這個分區映射成一個系統文件夾system/sd(大概這個意思),把所有的軟件裝到這個“文件夾”下,這就是app2sd 的操作。需要ROM 支持并開啟app2sd 功能。
                  app2sd 的操作其實是犧牲了一部分軟件的速度和穩定性來換取更多的手機內存安裝更多的軟件。另外,app2sd只是把軟件放到了sd卡上,運行軟件還是需要占用手 機的內存的,所以,你裝了軟件之后,一般手機內存還是會減少一些。你如果安裝的軟件在70個以內,個人覺得沒有必要,呵呵,如果很多游戲軟件除外。此外, 使用app2sd 最大的好處就是,刷一個帶app2sd 的rom 之后,以后升級這個rom(依然帶app2sd)的時候,你的軟件都會完整保存(個別除外,比如htc input chinese需要重新添加幾個文件到system/lib下),不過很多ROM 是需要Wipe ext 分區的,也就不能保留了。
                  目前來看我們現在所使用的Android 各種軟件暫時還沒有進行app2sd 的必要。
           簡單來說就是把程序安裝到內存卡里面
    注:為了適應用戶需求,從android 2.2開始 android系統已經支持安裝軟件到sd卡。

    root:

                  root 就是你手機的boss,它可以訪問和修改你手機幾乎所有的文件,這些東西可能是制作手機的人不愿意你修改和觸碰的東西,因為他們有可能影響到手機的穩定,還容易被一些hacker 有機會入侵你的手機(貌似還沒有出來這類黑客)。
                  既然root 這么危險,我們為什么還要去獲取它?其實用root 的權限主要是因為我們生在天朝,我們很多東西是受限制的,我們只能利用這些權限來做我們被限制的去做的事情,比如Google 禁止我們看到市場里很多免費或付費軟件,我們可以用marketenabler 來進去看;再比如國慶以來GFW 把我們的市場干掉了,很多朋友只能看不能下,不能綁定gmail,我們可以修改hosts 來搞定他們,但這些都需要root權限。
                  比如目前所有在hero 上截屏的軟件都需要root 權限,沒有root 權限,像Drocap、Shootme、Picme等等這類截屏軟件就不能使用(當然,我們可以連線電腦,使用 91助手在電腦上截取自己想要的hero 屏圖)。個人覺得,除非必要,不要總是去想著獲取root。
            ROOT就是手機的最高權限,相當于塞班的XX權限,可以對系統文件進行操作。

    SPL:

                    SPL全稱“Secondary Program Loader”,中文名叫做二次程序載入器,負責檢測ROM和硬件,尋找系統啟動分區并裝載ROM的其它部分。
              簡單來說,就是俗稱的刷機安全套件,保證您在刷機失敗時也不會變磚頭,通常可分為“Hard-SPL”和“Soft-SPL”兩種。XX手機也就是XX的這個部分。

    recovery:

                  recovery 就是你用 home 鍵+開機鍵 開機后能進入的一個界面(工程模式),在這個界面你可以直接用sd 卡上的zip 的rom 升級或者備份你的系統,老版本的recovery 只有三個選項,無法備份系統,只能用update.zip這個文件名的文件升級,不能用任何文件名的zip文件升級。新版本已經多出很多選項可以供你操 作。
                   此外,一般刷rom 之前最好wipe一下(wipe只是抹除rom 以外的個人數據,不會影響rom 本身),也就是返回出廠設置一下比較好,但是這樣就會丟失你的所有軟件,短信彩信,聯系人(備份在google上沒有關系)和設置等等,備份或者不 wipe 都可以。
    目前最新版為:RA-hero-v1.6.2
    說說RA-hero-v1.6.2里的對應的說明:
    1、Reboot system now——重啟
    2、USB-MS toggle——在recovery 模式下直接連接USB而不需要退出該模式
    3、Backup/Restore——備份和還原
                3-1、Nand backup——Nand 備份
                3-2、Nand + ext backup——Nand 備份(系統和ext 分區一同備份)
                3-3、Nand restore——還原(就是還原3-1、3-2 的最后一次備份)
                3-4、BART backup——BART 備份 (包括系統和ext 分區)
                3-5、BART restore——還原最后一次的BART備份
                Nand 備份類似于系統的備份 而BART 則像是PC 上ghost 的備份。
                Nand 備份 它不會備份ext 分區(就是第二分區 沒有分區的可以不管這個)
                所以你的如果app2sd 了 那么裝在第二分區的程序用Nand 恢復是辦不到的
                BAR T則可以備份到ext 分區 用BART 恢復則可以恢復整個系統 可以使它和你備份前一模一樣,
           不會有一點文件信息的丟失(包括聯系人、短信、圖片、影音等,所以如果你裝的東西比較多,那么備份和恢復會比較慢)
    4、Flash zip from sdcard——從sd卡根目錄的.zip ROM 刷機包刷機
    5、Wipe——清除
                5-1、Wipe data/factory reset——清除內存數據和緩存數據(刷機前建議清除此項)
                5-2、Wipe Dalvik-cache——清除緩存數據 + ext 分區內數據(刷機前建議清除此項)
                5-3、Wipe SD:ext partition——只清除ext 分區內數據(刷機前建議清除此項)
                5-4、Wipe battery stats——清除電池數據(刷機前建議清除此項)
                5-5、Wipe rotate settings——清除傳感器內設置的數據(刷機前建議清除此項)
    6、Partition sdcard——分區sd 卡
                6-1、Partition SD——自動為sd 卡分區
                6-2、Repair SD:ext——修復ext 分區
                6-3、SD:ext2 to ext3——將ext2 分區轉換為ext3 分區(推薦)
                6-4、SD:ext3 to ext4——將ext3 分區轉換為ext4 分區(C4 卡不推薦,C6 卡推薦)
    7、Other——其它
                7-1、Fix apk uid mismatches——修復apk 程序
                7-2、Move apps+dalv to SD——移動程序和虛擬緩存到sd 卡(這個可不是 app2sd)
                7-3、Move recovery.log to SD——移動刷機日志文件到sd 卡
                                                              (執行此操作后,sd 卡根目錄會出現一個“recovery.log” 文件 即為刷機日志文件)

    8、Power off——關機

    fastboot:

    從字面上來看是【快速啟動】的意思,也算是一個刷機界面,不過比recovery更加底層.這個底層是更加接近硬件層的意思.
    兩個都很重要,不過fastboot更為主要.當你不能進入recovery的時候,不要緊張,你還能進fastboot挽救,不過當你連fastboot都不能進入的時候,那可真就是磚了.
    通俗的說 recovery就好比外套,fastboot就好比內褲.當你的外套沒了的時候,你還有內褲,這個時候頂多被人說成是臭流氓.不過當你內褲都沒了的時候,那可就是耍流氓了,到時會有警察叔叔請你喝茶的.
    為了使用Fastboot功能.您必須root您的設備.并獲得S-OFF的SPL.你的電腦還必須裝有ADB驅動.
    進入Fastboot的方式是關機狀態下按返回+開機.

    Fastboot使用方式: fastboot [ <選項> ] <命令>
    解釋:
    []括起來表示這個是可選的.
    <>括起來表示這個是必須的.

    可用命令:
    update <文件名>                        從官方update.zip升級系統.該update.zip必須是官方的
    flashall                                 'flash boot' + 'flash system'
    flash <分區名> [ <文件名> ]         將文件寫入分區.文件必須正確的格式.分區名有但不限于system,recovery,boot,splash1,hboot,radio,userdata,cache
    erase <分區名>                        清空一個分區.
    getvar <參數名>                        顯示一個啟動參數
    boot <內核文件> [ <ramdisk文件> ]           將電腦上的內核下載到手機并用該內核啟動系統.
    flash:raw boot <內核文件> [ <ramdisk文件> ]    創建boot.img并下載到手機啟動系統.
    devices                                  列出所有與電腦連接的設備.
    reboot                                   正常啟動系統
    reboot-bootloader                        啟動系統到hboot

    選項:
    -w                                       清空用戶數據分區和緩存分區.相當于recvery中的"wipe data/factory reset"
    -s <串口號>                       置頂要操作的設備的串口號
    -p <產品名>                             指定要操作的設備的產品名.比如hero,bravo,dream...
    -c <命令行>                        用命令行替換系統的啟動命令行.

    分區解釋:
    system:系統分區.我們刷機器一般就是刷的這個分區.
    userdata:數據分區.
    cache:緩存分區
    recovery:Recovery分區.
    boot:存放內核和ramdisk的分區.
    hboot:這個是SPL所在的分區.很重要哦.也是fastboot所在的分區.刷錯就真的變磚了.
    splash1:這個就是開機第一屏幕了.
    radio:這個是無線所在的分區.
    misc:其他分區.放的是htc的一些東西.]


    http://leox.iteye.com/blog/975303

    http://blogold.chinaunix.net/u/14459/showart_1911144.html

     

    (muddogxp 原創,轉載請注明)

    Recovery簡介

    Android利用Recovery模式,進行恢復出廠設置,OTA升級,patch升級及firmware升級。

    升級一般通過運行升級包中的META-INF/com/google/android/update-script腳本來執行自定義升級,腳本中是一組recovery系統能識別的UI控制,文件系統操作命令,例如write_raw_image(寫FLASH分區),copy_dir(復制目錄)。該包一般被下載至SDCARDCACHE分區下。如果對該包內容感興趣,可以從http://forum.xda-developers.com/showthread.php?t=442480下載JF升級包來看看。

    升級中還涉及到包的數字簽名,簽名方式和普通JAR文件簽名差不錯。公鑰會被硬編譯入recovery,編譯時生成在:out/target/product/XX/obj/PACKAGING/ota_keys_inc_intermediates/keys.inc

    G1中的三種啟動模式

    MAGIC KEY:

    • camera + powerbootloader模式,ADP里則可以使用fastboot模式

    • home + powerrecovery模式

    • 正常啟動

    Bootloader正常啟動,又有三種方式,按照BCBBootloader Control Block, 下節介紹)中的command分類:

    • command == 'boot-recovery' → 啟動recovery.imgrecovery模式

    • command == 'update-radio/hboot' → 更新firmwarebootloader)

    • 其他 → 啟動boot.img

    Recovery涉及到的其他系統及文件

    • CACHE分區文件

    •  
      • /cache/recovery/command: recovery命令,由主系統寫入。所有命令如下:

        • --send_intent=anystring - write the text out to recovery.intent

        • --update_package=root:path - verify install an OTA package file

        • --wipe_data - erase user data (and cache), then reboot

        • --wipe_cache - wipe cache (but not user data), then reboot

      • /cache/recovery/logrecovery過程日志,由主系統讀出

      • /cache/recovery/intentrecovery輸出的intent

    • Recovery 工具通過NAND cache分區上的三個文件和主系統打交道。主系統(包括恢復出廠設置和OTA升級)可以寫入recovery所需的命令,讀出recovery過程中的LOGintent

    • MISC分區內容

      Bootloader Control Block (BCB) 存放recovery bootloader message。結構如下:

      struct bootloader_message {

        char command[32];

        char status[32]; // 未知用途

        char recovery[1024];

      };

      • command可以有以下兩個值

        boot-recovery”:標示recovery正在進行,或指示bootloader應該進入recovery mode

        update-hboot/radio”:指示bootloader更新firmware

      • recovery內容

        recovery\n

        <recovery command>\n

        <recovery command>

        其中recovery commandCACHE:/recovery/command命令


    兩種Recovery Case

    • FACTORY RESET(恢復出廠設置)

    1. 用戶選擇“恢復出廠設置”

    2. 設置系統將"--wipe_data"命令寫入/cache/recovery/command

    3. 系統重啟,并進入recover模式(/sbin/recovery

    4. get_args() 將 "boot-recovery""--wipe_data"寫入BCB

    5. erase_root() 格式化(擦除)DATA分區

    6. erase_root() 格式化(擦除)CACHE分區

    7. finish_recovery() 擦除BCB

    8. 重啟系統

     

    • OTA INSTALLOTA升級)

    1. 升級系統下載 OTA包到/cache/some-filename.zip

    2. 升級系統寫入recovery命令"--update_package=CACHE:some-filename.zip"

    3. 重啟,并進入recovery模式

    4. get_args() "boot-recovery" 和 "--update_package=..." 寫入BCB

    5. install_package() 作升級

    6. finish_recovery() 擦除 BCB

    7. ** 如果安裝包失敗 ** prompt_and_wait() 等待用戶操作,選擇ALT+SALT+W 升級或恢復出廠設置

    8. main() 調用 maybe_install_firmware_update()

      1. 如果包里有hboot/radiofirmware則繼續,否則返回

      2. 將 "boot-recovery" 和 "--wipe_cache" 寫入BCB

      3. 將 firmware image寫入cache分區

      4. 將 "update-radio/hboot" 和 "--wipe_cache" 寫入BCB

      5. 重啟系統

      6. bootloader自身更新firmware

      7. bootloader 將 "boot-recovery" 寫入BCB

      8. erase_root() 擦除CACHE分區

      9. 清除 BCB

    9. main() 調用 reboot() 重啟系統


    Recovery模式流程


    /init  init.rc  /sbin/recovery 

    main():recovery.c


    • ui_init():ui.c UI initialize

      • gr_init():minui/graphics.c set tty0 to graphic mode, open fb0]

      • ev_init():minui/events.c [open /dev/input/event*]

      • res_create_surface:minui/resource.c [create surfaces for all bitmaps used later, include icons, bmps]

      • create 2 threads: progress/input_thread [create progress show and input event handler thread]

    • get_args():recovery.c

      • get_bootloader_message():bootloader.c [read mtdblock0(misc partition) 2nd page for commandline]

      • check if nand misc partition has boot message. If yes, fill argc/argv.

      • If no, get arguments from /cache/recovery/command, and fill argc/argv.

      • set_bootloader_message():bootloader.c [set bootloader message back to mtdblock0]

    • Parser argv[] filled above

    • register_update_commands():commands.c [ register all commands with name and hook function ]

      • registerCommand():commands.c

        • Register command with name, hook, type, cookie.

        • Commands, e.g: assert, delete, copy_dir, symlink, write_raw_image.

      • registerFunction():commands.c

        • Register function with name, hook, cookie.

        • Function, e.g: get_mark, matches, getprop, file_contains

    • install_package():

      • translate_root_path():roots.c [ "SYSTEM:lib" and turns it into a string like "/system/lib", translate the updater.zip path ]

      • mzOpenZipArchive():zip.c [ open updater.zip file (uncompass) ]

      • handle_update_package():install.c

        • verify_jar_signature():verifier.c [ verify signature with keys.inc key; verify manifest and zip package archive ]

          • verifySignature() [ verify the signature file: CERT.sf/rsa. ]

            • digestEntry():verifier.c [ get SHA-1 digest of CERT.sf file ]

            • RSA_verify(public key:keys.inc, signature:CERT.rsa, CERT.sf's digest):libc/rsa.c [ Verify a 2048 bit RSA PKCS1.5 signature against an expected SHA-1 hash. Use public key to decrypt the CERT.rsa to get original SHA digest, then compare to digest of CERT.sf ]

          • verifyManifest() [ Get manifest SHA1-Digest from CERT.sf. Then do digest to MANIFEST.MF. Compare them ]

          • verifyArchive() [ verify all the files in update.zip with digest listed in MANIFEST.MF ]

        • find_update_script():install.c [ find META-INF/com/google/android/update-script updater script ]

        • handle_update_script():install.c [ read cmds from script file, and do parser, exec ]

          • parseAmendScript():amend.c [ call yyparse() to parse to command ]

          • exeCommandList():install.c

            • exeCommand():execute.c [ call command hook function ]

    • erase DATA/CACHE partition

    • prompt_and_wait():recovery.c [ wait for user input: 1) reboot 2) update.zip 3) wipe data ]

      • ui_key_xxx get ALT+x keys

      • 1) do nothing

      • 2) install_package('SDCARD:update.zip')

      • 3) erase_root()  format_root_device() DATA/CACHE

    • may_install_firmware_update():firmware.c [ remember_firmware_update() is called by write_hboot/radio_image command, it stores the bootloader image to CACHE partition, and write update-hboot/radio command to MISC partition for bootloader message to let bootloader update itself after reboot ]

      • set_bootloader_message()

      • write_update_for_bootloader():bootloader.c [ write firmware image into CACHE partition with update_header, busyimage and failimage ]

    • finish_recovery():recovery.c [ clear the recovery command and prepare to boot a (hopefully working) system, copy our log file to cache as well (for the system to read), and record any intent we were asked to communicate back to the system. ]

    • reboot()


    Recovery模式流程圖

    以下流程圖繪制了系統從啟動加載bootloader后的行為流程。

    沒有床,見blog吧~

     

    實際使用的例子:

    adb shell "echo \"send_intent=xxx\" > /cache/recovery/command"

    adb shell "echo \"--update_package=SDCARD:update.zip\" >> /cache/recovery/command"

    adb shell sync

    adb reboot recovery

     

    posted on 2011-08-16 10:00 MEYE 閱讀(3519) 評論(0)  編輯  收藏 所屬分類: Android3D
    主站蜘蛛池模板: 91精品国产免费久久久久久青草| 亚洲成av人片天堂网无码】| 中文字幕成人免费高清在线 | 最近免费中文字幕高清大全 | 毛片a级毛片免费观看品善网| 亚洲人成免费电影| 无码国产精品一区二区免费16 | 午夜无码A级毛片免费视频| 中文字幕人成人乱码亚洲电影| 国产精品亚洲va在线观看| 日韩伦理片电影在线免费观看| 亚洲一区二区无码偷拍| 午夜小视频免费观看| 亚洲JLZZJLZZ少妇| 免费观看日本污污ww网站一区| 国产亚洲女在线线精品| 久久精品国产亚洲Aⅴ蜜臀色欲| 日韩激情无码免费毛片| 亚洲成AV人片高潮喷水| 亚洲一级片内射网站在线观看| eeuss影院ss奇兵免费com| 国产亚洲一区二区手机在线观看 | fc2成年免费共享视频网站| 亚洲国产另类久久久精品小说| 先锋影音资源片午夜在线观看视频免费播放 | 免费看内射乌克兰女| 久久久久亚洲爆乳少妇无| 无码人妻久久一区二区三区免费 | 亚洲欧洲综合在线| 成年女人午夜毛片免费看| 免费观看四虎精品成人| 亚洲av午夜福利精品一区人妖| 91网站免费观看| 国产成人精品久久亚洲高清不卡 | 狠狠综合亚洲综合亚洲色| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 全免费毛片在线播放| 国产成人综合亚洲| 亚洲AV乱码久久精品蜜桃 | 永久黄色免费网站| 婷婷国产偷v国产偷v亚洲|