posts - 189,comments - 115,trackbacks - 0
           

          android 鏡像制作方法(待整理)

          http://blog.csdn.net/liushaogeng/article/details/5941289

          一:update.zip包的制作
             1:新建一個目標,在此目錄下準備好需要的文件,如system目錄文件、boot.img、recovery.img等.
               mkdir testupdate
               cp system/ testupdate/ -tf
               注:如果文件是system.img鏡像可以用unyaffs解壓出來得到system
             2:用make-update-script工具生成update-script腳本,如下
               cp make-update-script testupdate/
               cp android-info.txt testupdate/
               cd testupdate
               ./make-update-script system android-info.txt > update-script
               rm make-update-script android-info.txt
               vi update-script //根據需要適當修改些腳本
                說明:system是要更新的目錄,android-info.txt是板的版本信息,update-script是輸出文件名
             3:建立一個目錄名稱為META-INF/com/google/android,把上面生成的腳本放進去
                mkdir -p META-INF/com/google/android
                mv update-script META-INF/com/google/android/
             4:壓縮文件
               zip -r update.zip system META-INF
             5:給壓縮文件添加簽名
               mv update.zip ../signapk/
               cd ../signapk/
               java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip signed-update.zip
             6:刪除多余的文件,并把生成的包重命名
               rm update.zip
               mv signed-update.zip ../update.zip
               cd ../
             7:大功告成,把更新包update.zip拷到sdcard根目錄下去驗證吧!

             注意:
             1)如果文件里有連接,應該在獲取update-script之后在原文件里刪除鏈接文件,再打包,否則symlink將出錯;
             2)如果原文件里有空目錄,所獲的簽名將失去此記錄,所以如果空目錄必須存在,更新之后的文件將與原文件不同(少了空目錄)

          二:ramdisk.img 制作
             方法1:
               解壓:
                  1) mv ramdisk.img ramdisk.img.gz
                  2) gunzip ramdisk,img.gz
                  3) mkdir ramdisk;cd ramdisk
                  4) cpio -i -F ../ramdisk.img
               壓縮:
                  1) 產生要pack的目錄list,也可以自己列
                     cpio -i -t -F ../ramdisk.img > list
                  2) 利用剛生成的list文件列表,cpio歸檔
                     cpio -o -H newc -O new.img < list
                  3) gzip new.img
             方法2:
                 解壓:  gunzip -c ../your-ramdisk-file | cpio -i
                 壓縮:  find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz

             注意:在android里的做法是
                 1)先得到ramdisk所需要的文件,比如root目錄
                 2)用mkbootfs制作ramdisk.img,用法如下
                    mkbootfs root | gzip > ramdisk.img
                 這里需要驗證哪個能用android寫下去

          三:boot.img的制作
              1:android正常做法
                  1):連接
                     mkbootimg --kernel your-kernel-file --ramdisk newramdisk.cpio.gz --cmdline "mem=128 console=ttymxc0,115200n8 init=/init rw" --output mynewimage.img
                     或
                     mkbootimg --kernel your-kernel-file --ramdisk newramdisk.cpio.gz --cmdline  --output mynewimage.img

                  2):提取img中的kernel和ramdisk
                     ./split_bootimg.pl mynewimage.img

              2:uboot
                 直接把uImage重命名為boot.img即可

          四:system.img的制作(只為 yaffs2格式)
                  1)壓制:./mkyaffs2image system/ system.img
                  2)解壓:./unyaffs system.img

          四:system.img的制作(只為yaffs2格式)
                  1)壓制:./mkyaffs2image system/ system.img
                  2)解壓:./unyaffs system.img

          五:recovery.img的制作
                  1:如果recovery的鏡像是只有文件系統部分時候可以如第四所示范
                  2:如果recovery為ramdisk形式

          =============================================
          制 作ramdisk的過程。
          1.在/mnt下創建rdmnt 和 rdimg 目錄
          mkdir rdmnt
            mkdir rdimg
          2.創建一個ramdisk文件,大小32768 X 1k。
          dd if=/dev/zero of=rdimg/ramdisk bs=1k count=32768
          3.使用ext2方式格式該文件
          mke2fs  -F -v -m0 rdimg/ramdisk
          4.將該ramdisk文件和rdmnt掛載
            mount -o loop rdimg/ramdisk  rdmnt/
          5.拷貝文件到掛載目錄中。
          文件系統目錄在:/home/xrqun/workdir/filesys/
            cp –av /home/xrqun/workdir/filesys/*  rdmnt
          6.卸載ramdisk
            umount rdmnt
          7壓縮 ramdisk文件
            gzip –c -9 <rdimg/ramdisk > rdimg/ramdisk.gz
          8.拷貝該ramdisk.gz映像到tftpboot目錄下
            cp rdimg/ramdisk.gz /tftpboot/
          9. 使用mkimage工具
              mkimage  -n "uboot.ramdisk.filesys" -A arm -O linux -T ramdisk -C gzip  -d ramdisk.gz  uboot.ramdisk.gz

          參考:http://liaowb1234.blog.163.com/blog/static/771555472010027104534626/


          posted on 2011-10-19 16:53 MEYE 閱讀(682) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 内江市| 海盐县| 怀来县| 乌鲁木齐县| 易门县| 齐河县| 若羌县| 城步| 平舆县| 和田县| 灯塔市| 白城市| 尼玛县| 平安县| 石阡县| 鱼台县| 琼结县| 济宁市| 宜君县| 临沭县| 弥勒县| 镇赉县| 玉山县| 永昌县| 杭锦旗| 石柱| 兴城市| 宿松县| 宁南县| 庆安县| 乐业县| 南雄市| 漾濞| 定日县| 锦屏县| 商丘市| 吉首市| 分宜县| 平舆县| 河曲县| 司法|