android rom製作

來源:互聯網
上載者:User

一: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.