admin 管理员组

文章数量: 1184232

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

安卓自制 recovery 教程 推荐学习 我想大家对 recovery 已经很熟悉了吧 基本每个机型都可以在网络上找到你们机型的对应的 recovery 但是有些新出的机型或者一些冷门安卓机型是没有 recovery 这时候我们怎么办呢 其实我们完全可以手工去制作一个属于自己机型的 recovery 下面我就给大家写个教程一起探讨一下。 首先我给大家介绍一下 recovery.img 包含镜像和内核两部分

大家一般对着 recovery.img 右击解压会出现压缩包损坏 其实这个包是可以解开的 需要特定的工具 思路我们就有了 我们可以拿其它型号的 recovery 解包后得到镜像和内核部分 然后从你要的型号的官方 ruu 中提取官方的 recovery.img 也解包得到镜像和内核部分

然后把官方 recovery 的内核部分和 其他手机recovery 的镜像合包组成新的 recovery 这样我们的 recovery 就做成了。

下面我们来看看具体步骤 htc 为例  准备工作

下载 recovery.img 专用的 bootimg.rar 群共享  这个工具本来是解包 boot.img

同样可以用来解包 recovery recovery.img 要名为 boot.img

从官方 ruu 中提取到官方 recovery.img 并命名为 boot.img 下载其他机型的 其他手机的 recovery.img 建议大家下载 g6 5.0.2.0 比较稳定

 同样命名为 boot.img 解压 bootimg.rar 得到 bootimg 文件夹复制到 d 先复制官方的 recovery bootimg 文件夹 流程

开始 - 运行 -cmd d: 回车 cd boot 回车 bootimg   --unpack-bootimg 这时候我们的官方 recovery 就被解包了

解包后会得到下面一个文件夹和一个文件将这两个文件剪切到电脑其他地方

我们用同样的方法解包一下其他手机的 recovery 也会得到两个相同的文件 之后我们把官方的内核 kernel 其他手机的镜像 ramdisk.gz 一起放到 bootimg 文件夹 看图中的第一步官方 recovery 解包 base 基址是 0x200000,cmdline 命令行是 “mem=211M console=null androidboot.hardware=qcom",page-size 2048padding-size 4096 那么都要回编回去 接下来打包的时候就应该输入以下命令

根据你操作的时候实际数值来  bootimg  --repack-bootimg  0x200000  "mem=211M console=null androidboot.hardware=qcom"  2048  4096

如下图所示 OK 这才是真正的打包完成 就如果直接打包的话 华为中兴的无所谓 不过其他机器就开不了机器了

个性点的定制思路 可以用 boot --unpack-ramdisk 命名解开镜像包 ramdisk 后到 initrd 文件夹中的 res 文件夹改改图标 之后用 bootimg --repack-ramdisk 命令重新合成 ramdisk 之后再合成 boot.img 以上我们成功解包官方的和 其他手机的 recovery 之后合并了一个新的 recovery 最后我们把新生成的 boot.img 再改回 recovery.imgrecovery.img 得到了下面的不用我说了吧

/////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////



本文标签: 其他手机 解压 编程