• linux 平台中 android中system.img的打包过程



    http://blog.csdn.net/howellzhu/article/details/42804191


    我们来看一个制作system.img的命令实例:


    $ ./make_ext4fs -s -T 1421464178 -S file_contexts -l 1073741824 -a system system.img system/

    参数说明:
    // -s 表示安静处理,不输出动作,可以不带该参数
    // -T 表示Unix时间戳,对system.img中的文件设置修改时间,可以到搜索“站长之家 时间戳”获取某个时间点的时间戳;
    // -S 表示sepolicy file_contexts
    // -l 表示最大的文件大小(受限于分区大小);
    // -a 表示Android的mount点,比如system、userdata、recovery;
    // system.img 表示输出文件名;
    // system/ 表示输入目录,该目录下有framework、app、bin等目录;

    这里需要对file_contexts进行一下说明,该文件是对selinux文件系统的说明,一般在原来镜像文件的root目录下可以找到,如果自己修改/增加/删除了执行文件,可能需要对文件进行修改。具体的内容比较复杂,需要selinux的知识,这里不说了。
    -l表示最大的文件大小,受限制于分区大小,如果制作出来的分区镜像大于该值,将会提示失败,这里使用1GB=1073741824B,一般比较新的手机都已经具备该大小了。


    这里得到是一个经过压缩的img,无法直接进行mount。如果需要mount后查看,可以通过simg2img命令进行转换然后进行mount:
    $ ./simg2img system.img system.ext4.img
    $ sudo mount -t ext4 system.img mnt/
    当然,如果不需要查看文件,我们只需要拿到system.img就好。system.ext4.img除了在主机上查看文件,对于打包过程没有帮助。

    其实制作system.img非常简单简单,这里写出来主要是为了后面一片制作android-5.0以上更新包的博文做一个参考引用。

    make_ext4fs和simg2img是两个linux的执行文件,如果有Android源代码,它们是编译后的结果,出现在out/host/linux-x86/bin/目录中。
    这里也提供下载路径方便下载:

  • 相关阅读:
    Python——6切片
    Python——5函数
    Python——4Dict和Set类型
    C# for循环
    C# while循环
    C#循环结构
    C#判断
    C#运算符
    windows安装IIS不成功的原因
    “未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644989.html
Copyright © 2020-2023  润新知