Android5.0的更新包中system.new.dat文件的解包

从Android 5.0开始,即使是update.zip包,也是仿照增量包的方式进行打包了。使用make otapackage得到一个zip文件,查看内容:
boot.img
file_contexts
META-INF
system.new.dat
system.patch.dat
system.transfer.list


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


  • 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文件的大小和写入的数据量。
### 回答1: System.new.dat.br是安卓系统更新包的一种文件格式,通常由厂商提供给用户进行系统升级。它是经过压缩和加密处理的二进制文件,需要经过解包才能查看其内容。 要解包System.new.dat.br文件,首先需要准备好一些工具。推荐使用Brotli压缩工具和Android Image Kitchen解包工具。步骤如下: 1. 将System.new.dat.br文件复制到电脑上,并确保已经安装好Brotli压缩工具。 2. 在命令行输入以下命令: brotli -d -o system.new.dat system.new.dat.br 这条命令的作用是将System.new.dat.br文件解压缩为system.new.dat文件。 3. 接着,在命令行输入以下命令: sdat2img.py system.transfer.list system.new.dat system.img 这条命令的作用是将system.new.dat文件转换为system.img文件。 4. 最后,在命令行输入以下命令: unpackimg.py system.img system 这条命令的作用是将system.img文件解包为system文件夹,里面包含着系统更新包的所有文件。 通过这些步骤,就可以将System.new.dat.br文件解包,并查看其的内容。但需要注意的是,这些操作需要一定的技术水平和经验,不当的操作可能会引起数据丢失和设备损坏。建议只在有经验的人或专业人员的指导下进行操作。 ### 回答2: system.new.dat.br是一个Android设备上存储操作系统文件的包。由于该包采用了Brotli压缩算法,因此需要进行解压缩才能访问其文件。 要解压缩一个system.new.dat.br包,需要先下载并安装Brotli压缩算法工具。然后,通过命令行工具或图形化界面打开该工具,并输入相应的命令行指令,选择要解压缩的system.new.dat.br包并指定解压缩的目标路径。解压缩过程可能需要一些时间,具体速度取决于文件包的大小和计算机的性能。 解压缩后,用户将能够访问其文件,进一步进行操作系统的修改和优化。如果用户不确定自己要对操作系统文件做什么修改,最好遵循官方的建议和指南,并注意备份客户端数据以防止数据损坏或丢失。 总之,解压缩system.new.dat.br包需要使用特定的工具和命令行指令,并需要一定的技术经验和专业知识。对于非专业人士来说,这可能是较为困难的过程,因此需要遵循安全和谨慎的原则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值