刷机包制作完整教程_第1页
刷机包制作完整教程_第2页
刷机包制作完整教程_第3页
刷机包制作完整教程_第4页
刷机包制作完整教程_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、刷机包为单个签名的 zip压缩包。在刷机包中有一个脚本文件,里面有一系列命令,规定好 把不同的文件内容复制的手机的指定分区,从而达到刷机目的。那么怎样来制备这种zip刷机包呢?那个脚本文件又是什么呢? 本章的内容包括三个部分:1制作刷机补丁2制作完整刷机包ROM3如何单刷基带和内核通常,两者都称作刷机包。在本文中,我们说刷机补丁 ”是指ROM的补充内容。例如:在英文底包上刷中文文件, 或者替换字库,替换主题或桌面等等。 它们不构成可使手机运行的 全部文件,它们仅仅是 ROM的一部分。以前,常用 update.zip来传播。当我们说 完整刷机 包ROM时,我们是特指一个独立完整的ROM,包含一个

2、刷 ROM所具有的所有必要刷机1. 制作刷机补丁我们都知道,ROM发布者通常发布刷机补丁来升级 ROM。ROM发布后,需要增加、刷新、 更改ROM内容或功能时,没有必要重新安装整个 ROM。只要把需要更新的部分写成一个 刷 机补丁 ”,刷进手机与已有的系统合并就行了。在介绍如何制作刷机补丁之前,先让我们来看一个实例:用刷机补丁来更新两个主题文件,把 TouchWiz30Launcher.apk 和 SystemUl.apk 复制进手机的 /system/app 目录。刷机包补丁文 件名为:CWM_Update.zip。用Win RAR打开刷机补丁文件 CWM_Update.zip,看到有两个目

3、录:META-INF system刷机脚本文件和签名 要复制的补丁内容继续打开/system就看到文件夹 /app,再下去在/app下看到要复制的两个主题文件TouchWiz30Launcher.apk和SystemUI.apk (见截图)。从/system目录开始,所有的目录结构 和akp文件放置的位置都必须与手机里的内容一一对应。然后进入META-INF目录(见截图),我们看到有三个文件和一个字文件夹com。这三个文件是签名文件,是签名操作产生的。在An droid手机里,所有要刷入手机或在手机里运行的程序都必须经过签名。从com继续向下走,在/META-INF/com/google/an

4、droid目录下看到有两个文件:update-b in ary刷机包用的二进制文件 updater-script刷机包脚本文件这个刷机包脚本文件 updater-script规定了要刷什么,刷到哪和怎样刷。从这个具体的例子,我们可以总结制作刷机补丁的步骤如下:1)创建一个工作目录:先假定它是CWM_Update。2)在CWM_Update下产生两个子文件夹:META-INF和systemCWM_Update/META-INFCWM_Update/system3) 再在CWM_Update/system下产生下一级子文件夹,存放补丁的内容。目录结构和文件放置要与手机里的文件结构完全一致。apk应

5、用程序放在/app下,字库放在/fonts下,主题放在/framework下,触摸键定义放在 /usr/keylayout下,库文件放在/lib下,等等。 文章出处: 安卓库()4) 在 CWM_Update/META-INF 下再产生/META-INF/com/google/a ndroid到其它的刷机包里去把现成的update-binary和updater-script复制进/android目录。我的做法是把 META-INF的整个目录内容都一起复制过了,里面已经有了三个签名文件和刷机包用的二进制文件update-bi nary, 次搞定,省事。

6、不要碰再它们了。5) 现在来编辑脚本文件updater-script,它规定了要复制什么、怎么复制、复制到什么地方。用文本编辑器打开 updater-script,看到内容如下:mou nt(MTD, system, /system);ui_pri nt(Updati ng system.);show_progress(0.100000, 0);set_progress(1.000000);package_extract_dir(system, /system); show_progress(0.900000, 10);ui_pri nt(Update complete!);unmoun t(

7、/system);对脚本文件updater-script内容解释如下:mou nt(MTD, system, /system);挂载 MTD、system、/system( system 是 CWM_Update.zip 里的 /system 文件夹,/system 是手 机空间上的文件夹)ui_pri nt(Updati ng system.);手机屏幕显示提示信息Updat ing system.show_progress(0.100000, 0);是控制进度条状态(进度条当操作完成后前进10%)set_progress(1.000000);把进度条手动设置到100%package_ext

8、ract_dir(system, /system);将CWM_Update.zip的system文件夹下的内容复制到手机的/systemshow_progress(0.900000, 10);同上,是控制进度条状态(进度条当操作完成后前进90%)ui_pri nt(Update complete!);手机屏幕显示提示信息Update complete!unmoun t(/system);卸载手机/system文件系统,刷机到此结束。注意:在unmount之后必须有一个空行!这是规定。6) 在 CWM_Update 目录下,把 META-INF 和system 两个目录打包成一个压缩文件 CWM

9、_Update.zip 。File Edjt ViewT ools HelpOrganize *OpenNew folder耳三 I7Q 裔FavoritesJf-NameDate modifiedTypeSizeMETA-INF7/3/2Q11 4;05 File folderj Liibradessystem7/3/2011 3:20 +File fotder湛 CWM_Update.zip7/3/2011 6:24 WinRAR ZIP9网亘罰u规诃艺3“ Local Disk CQ APK-T口ds * CXVM_Update 7) 最后,用签名程序 Auto-Sign对CWM_Upd

10、ate.zip进行签名。制作过程结束,刷机补丁就 做好了。注释:如果你打算制作一个刷机补丁的话, 原样使用这个脚本文件就行了, 不用做任何修改。 在实际制作时,可以直接从已有的刷机补丁中把META-INF目录完全复制过来,连签名过程都省了。但是注意检查一下 updater-script的内容,以防造成错误后果!文章出处:安卓库()2.制作完整刷机包 ROM有了上面如何制作刷机补丁做基础,你也不难制作出一个完整的卡刷”刷机包 ROM。与制作Odin刷机包相比,这里没有复杂的 RFS解包和打包过程,不需要 Linux环境,所有操作 在Windows下就搞

11、定了。编辑 /system目录下的内容直截了当,删减和添加内容都方便。我们还是从一个实例出发,考察 ROM结构和文件的放置,然后归纳制作步骤,介绍制作技 巧。随便打开卡刷 ROM截图如下:Documents libraryJVP23.4_SunnyOK_CN-2Arrange by Folder TNameDate modifiedTypeSizeMETA-INF6/21/2011 1:35 File foldersystem6/21/2011 1:38 File folderupdates6/21/2011 1:39 . File folc .与匠Lj install busy box6/1

12、0/2011 3:24 File:如、w r 文早出处:安卓库()META-INF目录在上一节介绍过了,存放的是签名文件和重要的刷机脚本文件updater-script。system目录下的内容就是你手机里 /system目录下的内容,一模一样。与上一节相比,这里多了一个目录 updates。它是干什么用的呢?打开就一目了然了。updates目录里面有三个文件:modem.bin, zImage禾口 redbend_ua。大家对 modem.bin禾口 zImage 不陌生吧?它们分别是基带和内核文件。另一个文件redbend_ua是刷机用的,不用管

13、它,但是,不能删掉。最后一个文件in stallbusybox也不要动它。现在再回过头来看看刷机脚本文件updater-script。由于现在要刷进手机的内容多了,所以updater-script的内容也就更复杂了。完整的脚本文件给出如下:show_progress(0.200000, 10);set_perm(0, 0, 0777, /sbi n/mou nt);run _program(/sb in/moun t, /system);set_perm(0, 0, 0777, /sbi n/mou nt);run_program(/sb in/mou nt, /dev/block/stl10

14、, /dbdata);set_perm(0, 0, 0777, /sbi n/mou nt); run_program(/sbi n/mou nt, CACHE:);set_perm(0, 0, 0777, /sbi n/mou nt);run_program(/sbi n/mou nt, /dev/block/mmcblk0p2, /data); delete_recursive(/system);delete_recursive(/dbdata); delete_recursive(/cache);delete_recursive(/data/dalvik-cache); delete_r

15、ecursive(/data);mou nt(MTD, system, /system); package_extract_dir(system, /system);package_extract_dir(updates, /tmp);show_progress(0.200000, 50);symli nk(toolbox, /system/bi n/cat);symli nk(toolbox, /system/bi n/chmod);symli nk(toolbox, /system/bi n/chow n);symli nk(toolbox, /system/bi n/cmp);symli

16、 nk(toolbox, /system/bi n/date);symli nk(toolbox, /system/bi n/dd);文章出处:安卓库 ()symli nk(toolbox, /system/bi n/df);symli nk(toolbox, /system/b in /dmesg);symli nk(toolbox, /system/bi n/geteve nt);symli nk(toolbox, /system/b in /getprop);symli nk(toolbox, /system/bi n/hd);symli nk

17、(toolbox, /system/bi n/id);symli nk(toolbox, /system/b in/ifcon fig);symli nk(toolbox, /system/bi n/iftop);symli nk(toolbox, /system/b in/in smod);symli nk(toolbox, /system/bi n/ioctl);symli nk(toolbox, /system/bi n/ion ice);symli nk(toolbox, /system/bi n/kill);symli nk(toolbox, /system/bi n/ln);sym

18、li nk(toolbox, /system/b in/log);symli nk(toolbox, /system/bi n/ls);symli nk(toolbox, /system/b in/lsmod);symli nk(toolbox, /system/b in/mkdir);symli nk(toolbox, /system/b in/moun t);symli nk(toolbox, /system/b in/mv);symli nk(toolbox, /system/b in/nan dread);symli nk(toolbox, /system/b in/n etstat)

19、;symli nk(toolbox, /system/bi n/newfs_msdos);symli nk(toolbox, /system/bi n/notify);symli nk(toolbox, /system/b in/printen v);symli nk(toolbox, /system/b in/ps);symli nk(toolbox, /system/bi n/reboot);symli nk(toolbox, /system/bi n/ren ice);symli nk(toolbox, /system/bi n/rm);symli nk(toolbox, /system

20、/bi n/rmdir);symli nk(toolbox, /system/bi n/rmmod);symli nk(toolbox, /system/bi n/route);symli nk(toolbox, /system/b in /schedtop);symli nk(toolbox, /system/b in/sen deve nt);symli nk(toolbox, /system/bi n/setc on sole);symli nk(toolbox, /system/b in /setprop);symli nk(toolbox, /system/b in /sleep);

21、symli nk(toolbox, /system/b in /smd);symli nk(toolbox, /system/bi n/start);symli nk(toolbox, /system/b in /stop);symli nk(toolbox, /system/bi n/syn c);symli nk(toolbox, /system/b in /top);symli nk(toolbox, /system/b in/umoun t);symli nk(toolbox, /system/bi n/vmstat);symli nk(toolbox, /system/b in/wa

22、tchprops);symli nk(toolbox, /system/bi n/wipe);出处:安卓库symlink(/system/bin/dumpstate,/system/bin/dumpmesg);文 章()symli nk(/system/b in/debuggerd, /system/b in/csview);set_perm_recursive(0, 0, 0755, 0644, /system);set_perm_recursive(0, 2000, 0755, 0755, /system/bi n);set_perm_recur

23、sive(0, 0, 0755, 0755, /system/etc); set_perm_recursive(1002, 1002, 0755, 0440, /system/etc/bluetooth);set_perm_recursive(0, 2000, 0755, 0755, /system/ve ndor/bi n);set_perm_recursive(0, 2000, 0755, 0644, /system/ve ndor/etc);set_perm_recursive(0, 2000, 0755, 0644, /system/ve ndor/firmware);set_perm

24、_recursive(0, 2000, 0755, 0755, /system/xbi n);set_perm(O, 2000, 0755, /system/ve ndor);set_perm(0, 2000, 0755, /system/ve ndor/firmware);set_perm(0, 2000, 0755, /system/ve ndor/bi n/laun ch_gps.sh);set_perm(0, 2000, 0755, /system/ve ndor/bi n/gpsd);set_perm(0, 2000, 0755, /system/etc/bluetooth);set

25、_perm(0, 3003, 02755, /system/bi n/n etcfg);set_perm(0, 3004, 02755, /system/bi n/pi ng);set_perm(1002, 1002, 0440, /system/etc/dbus.co nf);set_perm(1014, 2000, 0550, /system/etc/dhcpcd/dhcpcd-ru n-hooks);set_perm(0, 2000, 0550, /system/etc/i ni t.goldfish.sh);set_perm(0, 0, 06755, /system/bi n/su);

26、symli nk(/system/b in/su, /system/xb in/su);set_perm(0, 0, 06755, /system/xb in/busybox);set_perm(0, 0, 755, /tmp/redbe nd_ua);show_progress(0.200000, 60);set_perm(0, 0, 0777, /system/xbi n/busybox);run _program(/system/xb in/busybox, -i nstall, -s, /system/xb in);show_progress(0.200000, 70);set_per

27、m(0, 0, 0777, /tmp/redbe nd_ua);run _program(/tmp/redbe nd_ua, restore, /tmp/modem.bi n, /dev/block/bml12); show_progress(0.200000, 80);set_perm(0, 0, 0777, /tmp/redbe nd_ua);run _program(/tmp/redbe nd_ua, restore, /tmp/zImage, /dev/block/bml7);show_progress(0.200000, 90);set_perm(0, 0, 0777, /tmp/r

28、edbe nd_ua);run _program(/tmp/redbe nd_ua, restore, /tmp/zImage, /dev/block/bml8);show_progress(1.000000, 0);set_perm(0, 1000, 0755, /system/xb in/busybox);package_extract_file(i nstallbusybox, /tmp/in stallbusybox);set_perm(0, 0, 0777, /tmp/i nstallbusybox);run _program(/tmp/in stallbusybox);unmoun

29、 t(/system);感兴趣的机友可以到机锋论坛或其它论坛去学习脚本文件里的语句和语法,这里不作介绍。也看看参考目录中的链接。值得要提的是下面这两句,用run_program语句把基带文件modem.bin复制到bml12分区,把内核文件zImage复制进bml7分区。run _program(/tmp/redbe nd_ua, restore, /tmp/modem.bi n, /dev/block/bml12);文章出 处:安卓库()run _program(/tmp/redbe nd_ua, restore, /tmp/zImage, /de

30、v/block/bml7);现在给出制作完整刷机包ROM的步骤:1) 创建一个工作目录:先假定它是JVP-ROM。2) 在JVP-ROM下产生三个子文件夹:META-INF,system和updates:JVP-ROM/META-INFJVP-ROM /systemJVP-ROM /updates3)去找一个现成的卡刷刷机包 ROM ,例如我6月22日发的卡刷包 ROM :JVP2.3.4_Su nny OK_CN-2.zip。把解压后得到的META-INF 和 in stallbusybox 都复制进JVP-ROM目录,把redbend_ua复制进/updates文件夹。4)在JVP-ROM/system下准备好所用相应的内容。这个不用教你,自己看一下手机里的/system 就清楚了。另外,定制 ROM必须会修改和编辑/systemo5)把选好的基带和内核文件放到JVP-ROM/updates目录下。6)在 JVP-ROM 目录下,把 META-INF , system, updates 和 in stallbusybox 一起打包成压缩文件JVP-ROM.zip。这就是完成了的完整刷机包ROM 了。注释:1)以上没有说签名步骤,原因是在第3)步里已经把签名文件都复制过来了,不需要再签名。2)如果没有借用以前的签

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论