`
menjoy
  • 浏览: 417563 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

卡刷rom固件update.zip的制作教程

阅读更多

  对于第三方ROM来讲,通常都包括两部分,一个recovery image,一个update.zip。而大多数的第三方ROM的特色,就是加入了很多东西,比如superuser程序来获得root权限,busybox来扩充命令行下的功能,各种各样的配置文件或者小工具,比如默认打开中文locale,等等。这些看似神奇的改动,都是在 update.zip里面搞的,custom recovery image的主要作用就是引导用户的操作,比如让你先备份,再应用update.zip,再重启之类的操作。由于custom recovery image和update.zip的耦合性很小,所以不少custom ROM直接都用同一个custom recovery image,这个好像是出自MoDaCo作者之手。再然后,我之前的文章已经有对 recovery image的简单讲解,所以这里,我主要介绍一下update.zip的制作

  如果我们直接把MoDaCo ROM中的update.zip解包,我们会发现有一个boot.img,一个data文件夹,一个system文件夹,一个META-INF文件夹。这个data文件夹放的是init.rc,而本来在系统中,init.rc就是在data目录下的。当然,两者的作用不一样,这里的init.rc主要作用是开机执行你希望执行的命令,比如MoDaCo的init.rc就是install busybox。

  而值得详细说明的,就是system文件夹。MoDaCo ROM版本的system下有一系列作者希望放到系统中的工具,对于apk文件,就放到app下,工具就放到bin和xbin下,依此类推。换句话说,system或者data这个目录层次结构是取决于你自己的,你希望放的东西属于什么,应该运行在online系统的什么目录下,update.zip里面就应该是有相应的目录路径,然后东西就放在里面。

  具体点,我们现在要依样画葫芦,搞一个新的update.zip,那么第一步就是首先建立一个文件夹

  mkdir new-update

  好,假设我新update.zip的作用就是预装我自己的一个程序,my.apk,那么,我建立对应的子目录

  mkdir -p new-update/system/app

  cp my.apk !$

  这样,system目录就完成了。但是这时,update.zip的目录层次还没完,我们看MoDaCoROM中的update.zip中有文件夹叫META-INF,这个文件夹很关键,除了根目录下的三个文件外,里面层层目录,就包括了一个文件,叫 update-script,内容如下

  show_progress 0.1 0

  copy_dir PACKAGE:system SYSTEM:

  set_perm_recursive 0 0 0755 0644 SYSTEM:xbin

  set_perm_recursive 0 0 0755 0644 SYSTEM:sd

  set_perm 0 0 04755 SYSTEM:bin/su

  set_perm 0 0 04755 SYSTEM:bin/a2sd

  set_perm 0 0 04755 SYSTEM:xbin/busybox

  copy_dir PACKAGE:data DATA:

  show_progress 0.2 0

  format BOOT:

  write_raw_image PACKAGE:boot.img BOOT:

  show_progress 0.2 10

  这里面的内容,大部分是针对你要做的修改设置的。比如

  copy_dir PACKAGE:system SYSTEM:

  就是把system中新增的工具拷贝到手机上,然后

  set_perm_recursive 0 0 0755 0644 SYSTEM:xbin

  set_perm_recursive 0 0 0755 0644 SYSTEM:sd

  set_perm 0 0 04755 SYSTEM:bin/su

  set_perm 0 0 04755 SYSTEM:bin/a2sd

  set_perm 0 0 04755 SYSTEM:xbin/busybox

  就是设置MoDaCo ROM中新增程序的权限,然后

  copy_dir PACKAGE:data DATA:

  把data下的内容(就是那个init.rc)复制到手机上,然后

  format BOOT:

  write_raw_image PACKAGE:boot.img BOOT:

  刷boot分区。

  那我们这里没有这么多新增的东西,应该怎么写呢?

  copy_dir PACKAGE:system SYSTEM:

  set_perm_recursive 0 0 04755 SYSTEM:app/my.apk

  就可以了。你当然还可以做一些别的事情,比如加一个FORMAT DATA之类的^_^开个玩笑,千万别这个干,不然你的数据就全没了。

  好,那么也就是说,我们要在自己的new-update目录下也建一个/META-INF/com/google/目录,然后把新的update-script扔进去。

  完了么?差一点。其实如果你没有别的需求了,那么就完了,可以把下面这一小块跳过。下面这一小块,是关于boot.img的。在如何修改Android系统的Ramdisk以及boot镜像文章中,我们谈到,如果刷boot镜像有问题,就要用别的方法让系统boot我们自己的boot image了,这个别的方法,自然就是用update.zip了。MoDaCoROM版本的update.zip也包括了一个boot.img,但是如果我们有出于各种需求自己修改的boot.img,自然就可以替换掉原来的了。当然注意,如果加了boot.img,那么update-script里面就不能漏掉

  write_raw_image PACKAGE:boot.img BOOT:

  这句。

  好,到现在,我们的new-update目录下有

  /system/app/my.apk

  /META-INF/com/google/update-script

  /META-INF/MANIFEST.MF

  /META-INF/CERT.SF

  /META-INF/CERT.RSA

  boot.img

  恩,那么就进入打包阶段。你可能会问,这有什么难的,直接zip一下不就得了。如果要是这么简单就好了,你打包后,必须把你的内容都sign一下,得到相应的cert,才能在fastboot模式中被承认并成功刷机。

  在sign你的文件之前,先做这么几件事

  打包。进入update文件夹,zip update.zip xxx xxxx xxxx xxxx xxxx。什么意思呢,就是只把你需要的文件打包,不要用./*作为参数。而且相对路径最好是在update下面,不要在外面用zip update.zip ./update/*这种命令打包

  去sun网站下载最新的jre

  下载这个文件testsign

  一定要用JRE1.6.0.16或者更高,我知道这个有点恶心,但是提供下载的testsigh.jar就是按照这个版本或者更高编译的,你用老版本就运行不了。

  好,下下来以后,执行这个命令

  ~/jre1.6.0_16/bin/java -classpath testsign_path/testsign.jar testsign update.zip update-signed.zip

  稍微讲解一下,java程序是最新jre下的,testsign_path是你放testsign.jar的地方,建议放到sdk的tool目录下。update是待sign文件,update-signed是指定的生成文件名。

  sign执行完后,用unzip -l看,会发现

  /META-INF/MANIFEST.MF

  /META-INF/CERT.SF

  /META-INF/CERT.RSA

  三个文件的日期属性变了。我怀疑就是重新生成了这三个文件。但如果之前打包时候不包括这三个文件,sign完又不会新生成。因为不管大局,所以我就没有仔细研究,有清楚的朋友恳请赐教。

  好了,现在,把你自己的update.zip放到sd卡上,在fastboot下通过recovery image引导,执行update.zip,然后就享受你自己的修改成果吧:)

分享到:
评论

相关推荐

    vivo X70刷机包下载线刷固件ROM系统资料下载X70PRO+刷机方法.刷机教程卡刷线刷升级降级解锁开机还原.zip

    vivo X70刷机包下载线刷固件ROM系统资料下载X70PRO+刷机方法.刷机教程卡刷线刷升级降级解锁开机还原.zip

    华为解包工具.zip

    将华为手机ROM固件下载到PC本地后,先运行提取工具中的Huawei Update Extractor程序,选择固件文件后列出固件中的所有文件信息,CTRL选择文件右键提取即可得到镜像文件。

    优博讯i6200S:I6300A刷机方法.zip

    优博讯i6200S/I6300A刷机方法,圆通工业手机型号I6310B 自带圆通移动管理APP,韵达i6310B刷机

    安卓机型ROM解包打包工具MIK解压版

    安卓机型ROM解包打包工具MIK解压版 说明: 是一个允许用户使用 Windows 重新打包...拆包和组装服务包:* .zip (Update.zip) 反编译和编译应用程序 (* .apk) 将程序文件夹放在任何位置,靠近磁盘根目录,路径不应包含

    ROM固件内置软件提取固件解包系统解压工具

    1.下载“ROM固件内置软件提取固件解包系统解压工具.rar”,解压得到“SystemExtractor” 2.下载官方flymey固件更新包“update.zip”,解压得到“update” 3.将update更新包里面文件夹内提出把两个文件“system.new....

    update.zip

    2.准备一U盘格式化为FAT32,在根目录建个upgrade文件夹,将固件放进去,然后盒子关电,重上电的同时狂按遥控器的待机键,争取以3次/秒的频率按,持续10多秒后进入REC选1确定开刷。 3.识别到固件升级,耐心等待固件升级...

    MiBOX2_2S_dredd_gitv_1.3.112d.2199.zip

    MDZ-09-AA 海外版rom

    刷机包定制 App2zip Pro v1.04

    我们换一种思路,如果能把第三方应用和数据打包,制作成一个没有系统文件只是第三方应用和相关数据的update.zip升级包,然后通过recovery直接刷到系统里面去,这样就能实现快速无人值守恢复应用,并且保留之前的使用...

    2016天赐5.1极速版_嫖虫系统强刷包.zip

    1.下载RAR包后,解压缩,按照里面的强刷教程进行强刷 2.刷机进度完成后,电视会自动关机(天赐系统官方取消了重启 功能),自行按遥控器电源键开机; 3.电视升级过官方16年的新系统的话,有可能导致无法强刷本 ROM...

    华为悦盒EC6108备份固件复制到U盘刷机包

    将update.zip文件放置U盘,插到盒子进行刷机,之后U盘内多了一个ROM.zip文件

    signapk.zip

    将diy固件改名为updatesign.zip后和工具放在一起,双击autosign.bat(需要本机安装过java环境)就会自动签名,完成后生成的update_signed.zip就是最终成品了,改个名字拿去刷机吧!

    创维酷开42K1Y青春版精简版系统

    有可能导致无法强刷本ROM(长按电源键进入的是官方的新RECOVER,无法刷本ROM),请下载一个15年的官方包,修改包名为updatek1t.zip,放入U盘插电后用官方的新RECOVER自动降级,再强刷本ROM。 三、刷机步骤如下: 1....

    一键bat百变ROMdiy工具

    *apply SDcard:update.zip:安装存储卡中的update.zip升级包(你可以把刷机包命名为update.zip然后用这个选项直接升级) *wipe data/factory reset:清除用户数据并恢复出厂设置(刷机前必须执行的选项) *wipe ...

    三星刷机包 I8150 update

    所有ROM刷入均可ROOT,下了顶起,让更多人分享 使用方式: ㈠、 下载上述文件后,不可解压,直接放在手机的/sdcard目录下,不是你的那个4G三星内存卡里 ㈡、手机关机后,同时按住:音量上键+HOME(方形键)+开机键...

    新大陆NL5101(rk3228h)固件

    福建联通IPTV /bak提取固件 卡刷包 NL5101 IPTV ROM 瑞芯微rk3228h update.zip 安卓4.4.4 tvbox FuJianLT

    创维E900_Hi3798MV100_2002版云南电信免拆刷机包

    创维E900_Hi3798MV100_2002版云南电信免拆刷机包,使用时请修改文件名为update.zip,免拆刷机。

    海尔D50LW7100系统包_刷机固件_131217

    强制升级需要的文件:aml_autoscript、recovery.img、update.zip、factory_update_param.aml 将相关升级文件放到U盘根目录,按住本控中间键,交流上电,直到屏幕出现画面即可松开,进入相关升级

    魔百盒CM201-2-YS易视腾代工固件

    魔百盒CM201-2-YS易视腾代工固件。 这不是原厂固件。是可以安装第三方软件的固件。...只要把压缩包打开后,把update.zip复制到u盘里,再把U盘插到魔百和的靠近网络接口的USB插口上,再系统里点击升级就OK。

    mt6735-twrp-recovery

    团队胜利恢复项目(TWRP) 该分支机构的目标是在保持尽可能多的原始AOSP代码的同时,将TWRP基于AOSP。 这个目标应该使我们能够将更新应用于以后的AOSP代码,而几乎不需要做任何额外的工作。 考虑到这一目标,我们将...

    XiaomiFirmwareUpdater:为您提供所有小米设备的固件包(备份)-开源

    获取适用于小米设备的可刷新固件 zip 文件的最简单方法! XiaomiFirmwareUpdater 是一个为每个小米设备提供固件包的脚本。 它是一个自动化脚本,每六小时在 Linux 服务器上运行一次,从 MIUI 官方 ROM 中提取固件,...

Global site tag (gtag.js) - Google Analytics