2013-08-16 14:33:13
分享

如何不安装Linux解包华为官方固件?

标签:Linux,华为官方固件

  平常我们习惯了使用bootimg.exe文件对华为官方包进行解压。可是遇到像C8812这类官方固件(update.app或updata.app),bootimg.app就没用了。因为解开的包是不完整的。那么我们怎样来解包呢。难道为了解包去安装一个Linux?答案当然是否定的。

  下面rom之家小编介绍一下自己的方法:

  1.下载Strawberry Perl

  Strawberry Perl 有安装版和绿色版两种版本,安装版比较省事,安装好以后会自动设置好变量等信息。绿色版其实也很简单,解压到某个分区的根目录下(推荐,安装版一样),然后执行一下软件根目录下的那两个批处理(relocation.pl.bat和update_env.pl.bat)即可。

  2.下载split_updata.pl.zip。把update.app或updata.app与压缩包中的文件放在同一个目录中,运行split_update.pl.bat或split_updata.pl.bat即可。稍等几分钟,即可在这个目录下的output目录中找到我们需要的文件。(如果提示 “ ‘perl’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”请检查一下Strawberry Perl 安装是否正确,环境变量是否有问题。)。

  我这里是以C8812为例,说明一下解压出来的问题。大家可能会发现解压出来的文件的名字和内容对不上。这里就要仔细分辨一下解压出来的文件了。C8812的官方包解包后的boot.img实际上是system.img,system.img实际上是userdata.img,file21.mbn实际上是cust.img,file25.mbn实际上是boot.img,appsboot.mbn实际上是recovery.img。改名后怎样解包应该会的吧,用bootimg.exe也行,用其它工具也行。因为我这里主要讲的是解官方包,就不再详细描述了。

  不过,这里提醒习惯使用bootimg.exe的童鞋:解包后的img文件可能不能使用bootimg.exe进行解包操作。system.img,userdata.img和cust.img可以用DiskInternals Linux Reader一类的工具挂载后提取文件。开始我自己也以为得不到boot.img,后来用汉化厨房的boot image工具时才发现其实是有boot.img的。)我们可以使用厨房的boot image工具对其进行解包。

  操作方法如下:运行安卓厨房,在主菜单中选择“0 - 高级选项”——“20 - Boot Image 工具 (解包/打包/etc 脚本)”——“a = 从任意文件夹中的 boot.img 提取 kernel+ramdisk (标准格式)”,然后厨房会提示正在创建bootimg_开头的文件夹,具体路径看提示即可。同时提示我们把boot.img放到这个文件夹中。我们把刚才解压并改名后得到的boot.img放到厨房提示的bootimg_开头的文件夹中,然后按回车键。这时我们就可以在这个bootimg_开头的文件夹中看到boot.img-ramdisk文件夹和zImage文件。boot.img-ramdisk就是initrd文件夹,zImage就是kernel。改名后重新打包成boot.img即可得到完整的卡刷包所需要的文件。cust分区的文件可以自己从手机提取。最新921版本的boot.img比918的sbin目录下多一个文件ueventd文件,使用bootimg.exe打包时在cpiolist文件中加上这一行就好,权限可以和adbd的相同。如果用mkboot啥的打包的就无视吧。

  这里顺便再次提醒一下C8812的同学,官方最新的921版本会锁bootloader,默认不允许刷机。如果升级了921,需要向华为申请解锁码。我最近没怎么看这方面的信息,昨天刚看到921就手贱去升级了,结果升级完才发现不能刷机。结果我的包做了一半就放那了,现在正等华为发给我解锁码呢。BS一下蛋疼的华为。安卓厨房汉化版:http://bbs.shendu.com/thread-2197860-1-1.html