android中各種img文件的作用以及系統啓動過程

首先通過編譯,先將android內核編譯成功。正常情況下,在目錄out/target.product/generic/(但是有的就沒有generic文件,如freescale和iriver;但是lonshinetech下面就有這個文件,依據情況而定,只要能找到生成的三個文件就可以。例如:~/freescale/R9.2/out/target/product/imx51_bbg$ )下會生成三個文件:ramdisk.img,system.img,userdata.img。這三個文件的作用如下:

(1)ramdisk.img
      一個分區影像文件,它會在kernel 啓動的時候,以只讀的方式被 mount , 這個文件中只是包含了 /init 以及一些配置文件,這個ramdisk 被用來調用init,以及把真正的root file system mount 起來。
      #其實ramdisk.img的內容就是/out/target/product/generic/root目錄的壓縮而已。
     
  方法1:  android編譯生成後的ramdisk.img是一個gzip格式的文件,輸入命令 # file ramdisk.img, 會得到  =>ramdisk.img: gzip compressed data, from Unix
       
       那麼先解壓ramdisk.img,因爲後綴不是.gz,所以用--S選項, # gunzip -S .img ramdisk.img
       這樣就得到一個新文件ramdisk.img,用 # file ramdisk 查看格式 , 得到 => ramdisk: ASCII cpio archive (SVR4 with no CRC)

          可以看出解壓生成的ramdisk是cpio格式的文件,再次解壓,爲了防止解壓後文件混亂,
          首次建立一個目錄如: # mkdir rfs  //rfs可以用來放ramdisk解壓後的文件,  進入 # cd rfs
          解壓 # cpio -i -F ../ramdisk

  方法2: 將ramdisk.img複製一份到任何其他目錄下,將其改名爲ramdisk.img.gz,然後使用命令 # gunzip ramdisk.img.gz,
         然後新建一個文件夾ramdisk,進入,輸入命令 # cpio -i -F ../ramdisk.img



       得到結果如下
    drwxr-xr-x  8 root root   4096 2011-01-12 11:36 ./
    drwxr-xr-x 13 root root   4096 2011-01-12 11:35 ../
    drwxrwx--x  2 root root   4096 2011-01-12 11:36 data/
    -rw-r--r--  1 root root    118 2011-01-12 11:36 default.prop
    drwxr-xr-x  2 root root   4096 2011-01-12 11:36 dev/
    -rwxr-x---  1 root root 107784 2011-01-12 11:36 init*
    -rwxr-x---  1 root root    492 2011-01-12 11:36 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章