首页»版块 历史内容 历史内容 历史内容 为安卓5.1到来着手准备之——刷机包system.new.dat文件 ...

为安卓5.1到来着手准备之——刷机包system.new.dat文件解包

 关闭 [复制帖子标题和链接]

1.5万6

荣耀粉丝9321092  LV10  发表于 2015-6-15 16:47:32 属地未知 来自:浏览器
本帖最后由 littlebai1119 于 2015-7-15 22:09 编辑

先来一点关于刷机包变化的科普:

从Android 5.0开始,即使是update.zip包,也是仿照增量包的方式进行打包了。
本文使用CM团队Google Nexus 10 cm12.1刷机包,查看内容:
install
META-INF
system(这里面已经不是系统文件了
boot.img
file_contexts
system.new.dat(系统文件在这里!)
system.patch.dat
system.transfer.list

================================================
显然system.img不再提供,而是提供了三个文件,利用这三个文件的脚本在/META-INF/com/google/android/updater-script文件中:

1.block_image_update("/dev/block/platform/msm_sdcc.1/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");  

而该函数定义在:
bootable/recovery/updater/blockimg.c:BlockImageUpdateFn()中。

代码中有一段注释用于描述transfer list文件的内容,它支持如下命令:
1) 文件的第一行是版本号,当前是1;
2) 文件的第二行是总共需要写入的block数量(后面new命令的range加起来应该等于该值);
3) erase [rangeset]: 将目标分区的range清除;
4) zero [rangeset]:将目标分区的range使用0填充;
5) new [rangeset]: 将目标分区的range使用new_data文件填充;

比如如下的一个system.transfer.list文件:
1
90270
erase 2,0,262144
new 28,0,32767,32768,32770,32833,32835,33347,65535,65536,65538,98304,98306,98369,98371,98883,124176,131072,131074,163840,163842,163905,163907,196608,196610,229376,229378,229441,229443
第一行1表示该transfer文件的版本为1;
第二行表示new命令总共要写入90270个block;
第三行表示删除的range是从0到262144,2表示range的区间描述数目是2个数值,即0和262144;
第四行表示从system.new.dat文件中读取block,然后依次写入如下14个区间:[0, 32767), [32768, 32770) ...这个区间的block总数刚好是前面描述的90270个。

这样的做法实际上是一个稀疏数组的区间描述,用以降低update.zip文件的大小和写入的数据量。


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

实话,我看不懂上面;但解开system.new.dat,还是有办法和工具的。

首先你需要安装java并设置变量。(在此先略过)
下载SystemExtractor解包工具,解压
解包工具下载:pan.baidu.com/s/1c0rWghE
把ROM中的system.new.dat和system.transfer.list 放到place_for_system.new.dat_system.transfer.list_here文件夹里
然后双击工具包内的Extraktor_EN.cmd
按1回车,等待它完成
解开的文件在extract_file_here/system.new_里

解开后发现,/system.new_/app/里是一个个文件夹,打开后发现:应用和lib。
这样很好了!——因为不再为精简应用后,不方便清理lib而烦恼了。
(哈哈!)可是依然有:system.new_/lib/


RAR.png (86.39 KB, 下载次数: 19)

荣耀俱乐部-为安卓5.1到来着手准备之——刷机包system.new.dat文件解包-1

工具.png (114.83 KB, 下载次数: 23)

荣耀俱乐部-为安卓5.1到来着手准备之——刷机包system.new.dat文件解包-2

QQ截图20150615161602.png (133.35 KB, 下载次数: 22)

荣耀俱乐部-为安卓5.1到来着手准备之——刷机包system.new.dat文件解包-3

捕获.PNG (31.77 KB, 下载次数: 16)

荣耀俱乐部-为安卓5.1到来着手准备之——刷机包system.new.dat文件解包-4
评论6
荣耀粉丝9321092  LV10  发表于 2015-6-15 16:58 属地未知 来自:浏览器
本帖最后由 littlebai1119 于 2015-6-15 21:32 编辑

为安卓5.1到来着手准备之——精简探讨(1)
http://cn.club.vmall.com/thread-4643339-1-1.html

荣耀粉丝9321092  LV10  发表于 2015-6-16 13:24 属地未知 来自:浏览器
凡事,预则立。
荣耀粉丝9321092  LV10  发表于 2015-12-8 10:51 属地未知 来自:浏览器
702760 发表于 2015-12-8 10:49
解包修改后怎样打包回去呢???请指教!!!先行谢过!!!

HRT团队的KangVIP制作刷机包,就使用的这个格式文件,楼主可私信大神咨询。
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表