双卡改造也看心法(3),刷机脚本详解

2014-7-11 17:00:53电脑报

       前段时间的一篇8813Q改双卡教程文章,吸引了广大读者对制作ROM的兴趣。在本系列的第二部分,我们介绍了一些分区、提取、重组的方法,在本期作为系列的最后一期,我将会为大家详细介绍一下刷机脚本中的代码。

       8813Q双卡改造刷机包下载地址:http://go.icpcw.com/c/skgz.htm

       本期达人:@HanRuo,目前就读于黄淮学院播音主持专业,业余时间最爱捣鼓手机,擅长改机和制作ROM包。

 

脚本,刷机“引路器”

       其实,只要改过双卡的朋友都知道,我们做双卡的方法很简单,只要硬件修改完成,然后将特定的刷机包刷入也就完成了我们所说的替换分区的步骤。这是怎么做到的呢?首先,我们来认识一下刷机包,一般的刷机包是一个ZIP的压缩文件。解压后可以看到其中包含system和META-INF两个文件夹以及boot.img这个系统内核文件。

       而在我制作的刷机包中,除了这三个文件之外还多出了两个文件,分别是9.img与10.img,这两个文件就是我们上期提到的分区文件。那是不是只要把这两个分区文件放到普通的刷机包就能直接刷入了呢?答案肯定是否定的。

 

这两个文件就是分区文件

 

       那到底要怎么去做才能搞定呢?这就需要我们在刷机脚本中添加一段命令,才能在刷机过程中执行分区操作。而这个刷机脚本的具体路径就在“META-INF\com\google\android\updater-script”。刷机脚本可以用TXT文本打开,但是排列非常混乱,在这里我建议大家使用notepad编辑器之类的工具打开,接下来,我就为大家简单介绍一下这些代码的作用。

 

认清代码作用 修改还需心细

       一般刷机脚本最开头的部分会有“assert(getprop("ro.product.device")== "8813Q"”等字段,它的作用是验证机型,如果加入了这串代码,就只能刷8813Q这一款手机。紧随其后的是“ui_print("");”这种格式的代码,意思就是在刷机的时候显示一些东西,例如ROM包的信息、作者信息、版本号等。还有的脚本中有“show_progress(0.1,0);”命令,用以显示刷机时的进度条。

       以上的三个代码对刷机过程没有影响,只是可以对刷机过程进行一些个性化的改造。接下来要说的代码是相对重要的,因为它关系到刷机是否成功。随意的更改代码,有可能导致分区错误,让手机变砖。

       接下来可以看到“format("ext4", "EMMC","/dev/block/mmcblk0p17", "0", "/system");”,这部分是指格式化内置第17个分区为EXT4格式。“mount("ext4","EMMC", "/dev/block/mmcblk0p17", "/system");”是指挂载内置第17个分区的标识为SYSTEM。

       “package_extract_dir("system","/system");”的作用是将刷机包内的SYSTEM文件夹解压到刚才挂载好的第17分区。“symlink("busybox","/system/xbin/[", "/system/xbin/[[",”符号连接,主要是供一些软件的调用。而从“set_perm_recursive(0, 0, 0755, 0644, "/system");”这句开始就开始了对挂载文件读写权限的设置。



方框中的代码需要特别注意,在修改的时候一定不能弄错

 

       接下来的脚本代码,就跟刷入9.img与10.img文件有密切关系了。首先是刷入boot.img文件到第12分区,代码如下“package_extract_file("boot.img","/dev/block/mmcblk0p12");”。而刷入第9、10两个分区的代码将“boot.img”和后面的分区号分别替换即可。


此段代码的作用是将boot.img和9、10两个分区文件分别刷入手机

       最后,保存脚本然后将这两个分区文件放入到ZIP压缩包即可。至此,整个双卡的过程与原理已经全部向各位介绍完毕了。希望各位机油们能够有所收获,在DIY手机与系统时胆大心细。其实事情并没有那么困难。
本文出自2014年第26期D.智能手机
分享到:

相关推荐

评论

发表评论
发表评论