mkyaffs2image

来源:互联网 发布:mac如何给iphone充电 编辑:程序博客网 时间:2024/05/05 11:14

一、mkyaffs2image的使用;

在Ubuntu中第一次使用mkyaffs2image命令时,会提示

mkyaffs2image:找不到命令

还需要安装mkyaffs2image

http://code.google.com/p/fatplus/downloads/detail?name=yaffs2-source.tar&can=2&q=

下载yaffs2-source.tar 

解压后,进入utils文件夹,然后make

将make之后生成的mkyaffs2image文件拷贝到/usr/bin目录下

$ su
# cp mkyaffs2image /usr/bin/
# chmod 777 /usr/bin/mkyaffs2image

之后

$ mkyaffs2image 
mkyaffs2image: image building tool for YAFFS2 built Jan  6 2012
usage: mkyaffs2image dir image_file [convert]
           dir        the directory tree to be converted
           image_file the output file to hold the image
           'convert'  produce a big-endian image from a little-endian machine

表明安装成功,同时也可以看到该命令的用法

mkyaffs2image dir image_file

例如,针对Android源码中的system.img文件的生成,可以使用

$ mkyaffs2image out/target/product/smdkv210/system/ out/target/product/smdkv210/system.img

================================================================

二、用mkyaffs2image与执行make命令的差别;

android源代码开发中,

用flashtool download时,需要system.img,userdata.img等文件;

当然实际业务中也需要把第三方apk装入系统中;

第三方apk放入system/app下话烧录后用户无法卸载,除非开发者用adb命令;

开发中会遇到这样一个问题:

第三方apk较多的话,若全部放入system/app,执行#./makeMtk -t projectName systemimage命令后生成的system.img太大;

我这边system.img超过200M在flashtool中刷的话,flashtool识别不了system.img;

解决的办法是把一部分apk移到data/app下,然后重新生成userdata.img和system.img;

==================

上面方法有个弊端:如果更改了一些系统apk,比如launcher2.apk改成iphonelaucher.apk;

即使system/app中#rm -rf launcher2.apk了(手动删除也一样),

执行#./makeMtk -t projectName systemimage命令后系统会自动在system/app下生成launcher2.apk,

这样在system/app下就同时有这两个launcher了;

纵然lancher2.apk没有被调用它还是在里头;

增加了system.img的大小;

有几十个这样的apk的话,那system.img就很容易大于200M而不能刷了;

========

解决办法:用mkyaffs2image打包成system.img及userdata.img即可;

替换原来的system.img和userdata.img,刷机;

========

原创粉丝点击