- 浏览: 422913 次
- 性别:
文章分类
最新评论
-
wrw_ahut:
你这个怎么停下来?怎么跳转activity
Android启动界面实现 -
huiqoo:
高仿UC半透明MENU菜单(有图有真相) -
wenzhixin:
多谢分享~
Android启动界面实现 -
orange9711:
学习学习
Android启动界面实现 -
qinweiping:
问下楼主 好像这个反编译 只能看到程序的主体结构吧 还是和源程 ...
APK反编译利器Apktool下载及用法介绍
对于第三方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,然后就享受你自己的修改成果吧:)
发表评论
-
解决Android SDK Manager国内下载缓慢的问题
2014-10-26 23:01 698点击Android SDK Manager菜单Tools-& ... -
Android Launcher一些资源
2012-01-10 16:03 1592棒槌网@Android相关文章推荐: rjJ-ZRs\ An ... -
APK反编译利器Apktool下载及用法介绍
2011-12-29 19:40 6515近期在研究rom过程中发现一个非常不错的软件,可以帮助我们把A ... -
制作rom利器bootimg
2011-12-29 19:22 2829打包: bootimg ... -
Android版本检测\自动更新
2011-11-30 10:39 2759package com.hiyo.game.pdk.tool; ... -
高仿UC半透明MENU菜单(有图有真相)
2011-11-13 15:55 1957转载自:http://www.eoeandroid.com/ ... -
Android启动界面实现
2011-11-13 15:39 6793转载自:http://www.eoeandroid.com/t ... -
获取本机外网IP地址(External IP Address)
2010-12-15 22:45 6802import java.io.IOException; ... -
Red5+OpenOffice+OpenMeetings架设视频会议网络
2009-07-01 09:57 2248因工作需要,这两天弄了一个视频会议服务器。采用了flash流媒 ... -
J2EE or J2SE? JNDI works with both
2009-05-11 16:21 1522J2EE or J2SE? JNDI works with b ... -
脚本启动Java应用程序(Windows/Linux)
2009-05-08 16:40 36941、新建文件夹myapp,放你的应用; 2、将你的程序 ... -
破解Java程序
2007-12-13 17:36 1898第一步是定位,这也是 ... -
WebSphere 应用服务器环境搭建实践指南
2007-08-22 18:20 5226Dan Wu (wdan@cn.ibm.com), 高级信息工 ... -
beanutils研究心得
2007-01-23 15:47 2159Beanutils用了魔术般的反射技术,实现了很多夸张有用的功 ... -
apache-common功能列表
2007-01-23 15:16 4992... -
Apache Commons工具集简介[转载]
2007-01-21 02:20 5607js 代码 <script ... -
利用servlet生成简单的验证码
2007-01-21 01:47 1617在web.xml配置: 代码 < ... -
实战篇:设计自己的Annotation
2007-01-21 01:44 1395From:http://lighter.iteye.com 第 ... -
JSTL 入门: 表达式语言
2007-01-15 11:23 1413JSP 标准标记库(JSP Stand ... -
extremeTable介绍
2007-01-10 11:14 46091、何为 extremeTable,又一个开源taglib e ...
相关推荐
【安卓update.zip刷机包制作教程】 在Android操作系统中,"刷机"是指通过替换系统固件来更新或个性化手机的操作。"update.zip"文件是Android系统常用的刷机包格式,通常包含新的系统镜像、补丁或者第三方ROM。本...
《深入理解Update.ZIP_TWRP_RK3368_3.1.0-0_170318:卡刷包与TWRP恢复的奥秘》 在Android系统的世界里,"Update.ZIP_TWRP_RK3368_3.1.0-0_170318" 是一个非常关键的文件,它是为基于RK3368芯片设备设计的TWRP 3.1.0...
"update.zip" 文件名暗示了这可能是一个用于系统更新的压缩包,它被设计用于手机卡刷操作。 在Android系统中,卡刷主要通过两种方式执行:Fastboot模式和 Recovery模式。Fastboot模式是更低级别的刷机方式,需要...
同时,下载适用于你设备的官方或第三方ROM固件,这通常是一个ZIP文件,如“vivo X70刷机包下载线刷固件ROM系统资料下载X70PRO+刷机方法.刷机教程卡刷线刷升级降级解锁开机还原.zip”。这个文件包含了完整的刷机所需...
在IT领域,特别是Android系统定制和开发中,固件更新是常见的操作,而华为作为知名的智能手机制造商,其设备固件的管理和更新也有其特定的方法。本文将深入探讨华为官方提供的解压工具——HuaweiUpdateExtractor_0.9...
ROM固件通常是一个大的ZIP文件,包含了手机启动时所需的所有组件,如系统文件、库、设置、以及预装的应用程序。为了能够查看和修改这些内容,就需要使用专业的解包工具。"华为解包工具.zip"就是这样一个专门针对华为...
update.zip则包含实际的固件文件,这些文件在更新过程中会被解压并安装到设备的系统分区上。通常,这个zip文件会有一个结构化的目录结构,包括系统映像、配置文件、资源文件等,以确保设备更新后的正常运行。 固件...
7. **update.zip**: 这是待解包的华为设备固件更新文件,通常包含有系统的更新内容,如新的系统文件、驱动程序、应用程序等。 使用华为官方固件APP专用解包工具,用户可以查看固件包内的结构,了解更新内容,甚至...
在恢复模式下,用户可以选择“安装更新”或“从SD卡安装”选项来刷入update.zip。 刷机过程需要谨慎,因为错误的操作可能会导致设备变砖。在尝试root或安装update.zip之前,用户应确保备份重要数据,并遵循可靠来源...
UPDATE-SuperSU-v1.43.zip是一个专门为N7100设备设计的ROOT包,它为用户提供了一种安全而便捷的方式来获取设备的最高权限,从而能够修改系统级别的设置,安装自定义ROM,以及使用各种需要ROOT的应用程序。...
4. **解压刷机文件**:下载的刷机包通常是压缩文件,需要使用解压缩工具(如WinRAR或ZIP)将其解压,得到包含固件文件的文件夹。 5. **使用刷机工具**:刷机过程中通常会用到专门的刷机工具,例如Fastboot、Odin等...
CM ROM 是基于Android系统的一个第三方固件,它提供了更多的自定义选项和性能优化,深受Android爱好者和开发者喜爱。在进行CM ROM 制作时,我们需要了解其基本结构和关键组件的修改方法。 首先,我们来关注"data...
标题“update ls.zip”暗示了这是一个更新包,用于升级或刷新某个设备的系统,而“乐视_NEW C1S”标签表明这个刷机包是专为乐视NEW C1S设备设计的。刷机在IT领域中通常指的是更换或更新电子设备(如智能手机、电视...
1.下载“ROM固件内置软件提取固件解包系统解压工具.rar”,解压得到“SystemExtractor” 2.下载官方flymey固件更新包“update.zip”,解压得到“update” 3.将update更新包里面文件夹内提出把两个文件“system.new....
首先,"update.zip"文件是华为悦盒固件更新的通用格式,它包含了新的系统镜像、配置文件和必要的刷机脚本。这个文件通常由华为官方发布,用于修复系统bug、提升性能或者添加新功能。将它复制到U盘是为了方便在电视盒...
安卓机型ROM解包打包工具MIK解压版 说明: 是一个允许用户使用 Windows 重新打包...拆包和组装服务包:* .zip (Update.zip) 反编译和编译应用程序 (* .apk) 将程序文件夹放在任何位置,靠近磁盘根目录,路径不应包含
这可能是指固件更新文件,通常以.zip或.tar等压缩格式提供,包含了将新固件安装到电视所需的所有文件。用户通常需要通过电视的设置菜单或专门的升级工具来执行这个“update”文件,以完成降级过程。 总的来说,这个...