zoukankan      html  css  js  c++  java
  • android rom制作

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

  • 相关阅读:
    (转)CKEditor+CKFinder 配置
    asp.net一个带抽象工厂的三层架构完整实例
    windows phone 8 手机存储卡数据
    c#常用算法
    mvvm 事件命令
    windows phone 8 语音识别1
    windows phone 8 分辨率
    PHP通用防注入安全代码《转》
    SQL查询语句使用详解《转》
    PHP中文件包含语句的区别《转》
  • 原文地址:https://www.cnblogs.com/ibook360/p/2496325.html
Copyright © 2011-2022 走看看