包括ROM的制作、汉化、优化、celecmd、mortscrtip、马尼拉基本修改等等。
第一章 模板与ROM的简略说明
我们升级手机系统,是下载一个ROM,再通过电脑刷进手机或者直接复制到手机存储卡里卡刷进去。那么一个ROM是怎样制作出来的呢?最方便的方法莫过于使用模板制作了。而模板是什么呢?又是怎样来的呢?
英文里制作ROM叫做cook rom,为什么这样叫呢?顾名思义,就是一个ROM其实是煮出来的。如果我们已经有了一个模板,那么制作出一个ROM对于我们来说,其实就相当于跟煮饭、炒菜一样简单,我们只需把材料(OEM包等)扔进去,然后很简单的(点击一下鼠标)就可以煮出来。(当然煮的好不好吃是另外一回事,呵呵)
因此,模板可以看成是非常简单就能制作出ROM的软件,对于我的模板,只需点击一下BT BuildOSexe,再勾上/去掉你所需要/不需要的OEM软件,点击开始,过几分钟就会自动做好ROM并弹出刷机软件,呵呵,够简单吧。
而模板的来源,可以利用工具将官方发布的ROM反向分解形成(或者下载别人制作好的)。 那么我们先来讲讲如何形成一个标准的模板吧。
第二章 将官方ROM转化成标准的模板结构 一、必要软件 1、安装net 35(win7可跳过) 下载: http://downloadmicrosoftcom/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35exe 2、安装VC2008(win7可跳过) 下载:ftp://pcg@ftppcgpcgnet/ppc/VCredist x86rar 3、模板工具BT BUILD下载: 下载:ftp://pcg@ftppcgpcgnet/ppc/BT BuildOSrar 3、模板分区剩余空间15G以上 4、建议在ntfs分区使用。 5、在文件夹选项里打开显示系统、隐藏文件,最好也显示扩展名。 二、下载官方ROM 1、可以去HTC官方网站下载,凭你的PPC机SN号下载,若没有适合的SN号可以去拜托GOOGLE大神。 2、一些论坛偶尔也会放出一些test、ship rom、chs rom。 三、ROM的最基本结构(头晕的可跳过) 从官方下载回来的ROM,是EXE格式,可以直接用winrar解压出来,其中RUU_signednbh是ROM,其余文件是刷机软件(注:刷机软件一般是通用的)。 RUU_signednbh这个文件是由一个或多个NB文件合成的。官方的RUU_signednbh通常由osnb(系统)、ipl、spl(装载系统、CID检测等)、MainSplash(第一屏)、radio(通讯)等等组成。 而osnb则是一个ROM主要部分,由os镜像+头部尾部组成(头部尾部不同机型不一定相同),纯os镜像由两部分组成:xip和imgfsbin,而imgfsbin又可以分成两部分:oem和sys,xip是系统首先装载的基本文件,oem是厂商定制的软件(其中除了驱动外90%以上是通用的),sys是微软的系统核心。 Nbh文件可以用NBHextractexe这个文件来分解。
具体请参考:http://wenkubaiducom/linkurl=q8ubyLeqeHuw5ulMMsQSXEYZ1suEBVgqdElJZkMwwtP1qYQUFTvmLyRNx1LJQubN3vm2aVYfUZqXecdJUXnLZvWt4v4GdW6D-BVySLbxou7
" 您好,官网没有提供刷机软件。由于刷机存在风险,如因自行刷机后导致的手机问题,还有可能会影响包修,因此我们不建议您自行刷机。
若手机因系统故障无法正常使用或自行刷机后导致手机出现问题,建议您将机器送到售后服务中心,由工程师帮助检查处理。 "
如何制作ROM
有点玩机兴趣的android爱好者,应该对custom ROM这种东西都不陌生。我介绍root权限获取的时候,就直接用的MoDaCo Custom ROM作为例子。适用于Hero比较好的ROM还有不少,比如Drizzy’s Custom Hero ROM等等,都可以在XDA上找到。肯定有不少朋友感到很好奇,这些ROM都是怎么做的。考虑到中文社区相关资料比较少,在这里抛砖引玉,大概原理介绍一下。
对于第三方ROM来讲,通常都包括两部分,一个recovery image,一个updatezip。而大多数的第三方ROM的特色,就是加入了很多东西,比如superuser程序来获得root权限,busybox来扩充命令行下的功能,各种各样的配置文件或者小工具,比如默认打开中文locale,等等。这些看似神奇的改动,都是在 updatezip里面搞的,custom recovery image的主要作用就是引导用户的操作,比如让你先备份,再应用updatezip,再重启之类的操作。由于custom recovery image和updatezip的耦合性很小,所以不少custom ROM直接都用同一个custom recovery image,这个好像是出自MoDaCo作者之手。再然后,我之前的文章已经有对 recovery image的简单讲解,所以这里,我主要介绍一下updatezip的制作。
如果我们直接把MoDaCo ROM中的updatezip解包,我们会发现有一个bootimg,一个data文件夹,一个system文件夹,一个META-INF文件夹。这个data文件夹放的是initrc,而本来在系统中,initrc就是在data目录下的。当然,两者的作用不一样,这里的initrc主要作用是开机执行你希望执行的命令,比如MoDaCo的initrc就是install busybox。
而值得详细说明的,就是system文件夹。MoDaCo ROM版本的system下有一系列作者希望放到系统中的工具,对于apk文件,就放到app下,工具就放到bin和xbin下,依此类推。换句话说,system或者data这个目录层次结构是取决于你自己的,你希望放的东西属于什么,应该运行在online系统的什么目录下,updatezip里面就应该是有相应的目录路径,然后东西就放在里面。
具体点,我们现在要依样画葫芦,搞一个新的updatezip,那么第一步就是首先建立一个文件夹
mkdir new-update
好,假设我新updatezip的作用就是预装我自己的一个程序,myapk,那么,我建立对应的子目录
mkdir -p new-update/system/app
cp myapk
这样,system目录就完成了。但是这时,updatezip的目录层次还没完,我们看MoDaCo ROM中的updatezip中有文件夹叫META-INF,这个文件夹很关键,除了根目录下的三个文件外,里面层层目录,就包括了一个文件,叫 update-script,内容如下
show_progress 01 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 02 0
format BOOT:
write_raw_image PACKAGE:bootimg BOOT:
show_progress 02 100
这里面的内容,大部分是针对你要做的修改设置的。比如
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下的内容(就是那个initrc)复制到手机上,然后
format BOOT:
write_raw_image PACKAGE:bootimg BOOT:
刷boot分区。
那我们这里没有这么多新增的东西,应该怎么写呢?
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 04755 SYSTEM:app/myapk
就可以了。你当然还可以做一些别的事情,比如加一个FORMAT DATA之类的^_^开个玩笑,千万别这个干,不然你的数据就全没了。
好,那么也就是说,我们要在自己的new-update目录下也建一个/META-INF/com/google/目录,然后把新的update-script扔进去。
完了么?差一点。其实如果你没有别的需求了,那么就完了,可以把下面这一小块跳过。下面这一小块,是关于bootimg的。在如何修改Android系统的Ramdisk以及boot镜像文章中,我们谈到,如果刷boot镜像有问题,就要用别的方法让系统boot我们自己的boot image了,这个别的方法,自然就是用updatezip了。MoDaCo ROM版本的updatezip也包括了一个bootimg,但是如果我们有出于各种需求自己修改的bootimg,自然就可以替换掉原来的了。当然注意,如果加了bootimg,那么update-script里面就不能漏掉
write_raw_image PACKAGE:bootimg BOOT:
这句。
好,到现在,我们的new-update目录下有
/system/app/myapk
/META-INF/com/google/update-script
/META-INF/MANIFESTMF
/META-INF/CERTSF
/META-INF/CERTRSA
bootimg
恩,那么就进入打包阶段。你可能会问,这有什么难的,直接zip一下不就得了。如果要是这么简单就好了,你打包后,必须把你的内容都sign一下,得到相应的cert,才能在fastboot模式中被承认并成功刷机。
在sign你的文件之前,先做这么几件事
打包。进入update文件夹,zip updatezip xxx xxxx xxxx xxxx xxxx。什么意思呢,就是只把你需要的文件打包,不要用/作为参数。而且相对路径最好是在update下面,不要在外面用zip updatezip /update/这种命令打包
去sun网站下载最新的
下载这个文件testsign一定要用JRE16016或者更高,我知道这个有点恶心,但是提供下载的testsighjar就是按照这个版本或者更高编译的,你用老版本就运行不了。
好,下下来以后,执行这个命令
~/jre160_16/bin/java -classpath testsign_path/testsignjar testsign updatezip update-signedzip
稍微讲解一下,java程序是最新jre下的,testsign_path是你放testsignjar的地方,建议放到sdk的tool目录下。update是待sign文件,update-signed是指定的生成文件名。
sign执行完后,用unzip -l看,会发现
/META-INF/MANIFESTMF
/META-INF/CERTSF
/META-INF/CERTRSA
rom需要懂并且会写硬件驱动的
目前国内的所谓高手都是改国外玩家写出的rom
换ui
删几个程序优化一下
然后就成自己写的了,不信看看国内顶顶大名的miui吧
miui都是拿国外cm小组的写好的rom修改后打包的
如果想了解如何修改rom自己封包的话
就就去下Auto-sign
这个数字签名软件吧
话说制作刷机包是个技术活,可以经常到论坛逛逛积累经验,叔叔,安智,蚂蚁什么的都行,加个机油的群好好探讨交流,制作rom涉及多,就不展开讲了。第一,学会删减多余apk和定制软件(直接删减刷机包)第二基于包的修改改字体,改变开机第一二屏图案和开机动画,飞行模式开wifi等第三学会反编译,运用工程模式改亮度音量,各种制包的工具,编程软件,有不懂得联系我哈
你有两种选择。第一,源码编译,你得用UBUNTU系统同步源码,提取官方ROM包的BOOTIMG RECOVERYIMG 进行适配。然后用RECOVERY刷入即可。
第二,修改别人做的ZIP刷机包,这需要替换文件,反编译,回编译。。。这个两万字说不完。所以您去贴吧,论坛学吧。
一:打开电脑上的ROM助手
二:在主界面你会看到:系统精简,性能优化,预装APK,编辑system,解包img,ROM签名,APK签名,一键ROOT,编辑BOOT,信息修改,性能优化,预装lib等功能。不要着急使用,下面我们一步步操作!举例:先打开“系统精简”等待加载,时间主要根据刷机包的大小而定,一般你从一数到十就能加载完毕!(不管是线刷还是卡刷,不必考虑过多,它都支持,但是一定要与机型匹配,就算是万能的神器也不可能把你的国产机刷成苹果六代,不过卡刷包可以直接打开,线刷包则需要打开里面后缀为systemimg的文件)!
三:下面你就可以看到刷机包里的所有软件及信息,如:应用名称,文件名,版本信息,大小及操作方式都一一罗列在此,所谓操作方式,就是指是否删除,可根据需求自行选择!个人建议:标注为“预装软件”的都删除,以免刷机后占用内存空间,如果你个人喜欢,可以不删除哦!而那些“建议保留”的软件不要轻易删除,小心造成系统瘫痪。(勾选需要删除的软件后,带封包时操作会自动给予删除,只要打上勾,就不必担心!)
四:此时你会在软件右侧的工具框里看到“内置预装”、“内置lib”,“性能优化”、“信息修改”以及“一键root”。比如:“性能优化”和“一键root”,点击一下,即可操作成功!
五:再来说说“内置预装”,左边框里显示的是手机必备应用,根据个人喜好添加即可。你也可以添加自己下载好的APK,选择“添加本地APK”就能添加成功。之后添加的所有应用都会在右边的框里显示出来。
六:在“信息修改”里,同样是根据个人需求,可以修改手机铃声、提示音与闹铃,如果软件包里的铃声太多,你可以删除,以此预留空间来内置更多喜欢的软件哦。
七:待全部操作完毕后,可以点击“开始封装”。稍等一会儿,就一小会儿,眨眼的功夫一个新的rom包就制作完成。在这个过程中,针对rom包的精简和优化,应用的删除和预装都已经操作完成!接下来就可以进入刷机环节喽!
提示:待封装完毕后,系统会将rom包自动保存至名为“MOGU”的一个文件夹里,注意rom包是以封包日期及时间命名哦,有助于区分原刷机包,及制作日期时间,避免混淆。
本教程其实就是制作ROM的简单流程和原理,根据本教程,可以制作一个自已三星 Galaxy S III i9300 刷机包 ROM,一起来学习吧。注:本人仅抛砖引玉提供教程,本人不负责由于刷机不当造成的任何后果。首先你需要做好以下准备:
1、一个linux环境(你的计算机水平至少能够使用VirtualBox装一个Ubuntu系统同时还能知道在哪里输入命令行)
2、完整的官方ROM包(包含cacheimg hiddenimg modembin recoveryimg systemimg这几个文件)
3、最新的Superuserapp、su程序(下载请自行Google)
4、ex4_utils工具包(下载后有三个文件:make_ext4fs mkuserimgsh simg2img,作用是linux环境下解压三星img和打包三星img的工具,下载请自行Google)
5、i9300 Odin刷机程序(下载请自行Google)制作ROM的操作需在linux环境下进行(当然应该也有windows环境下的操作方法,方法请自行Google),不要一听linux就觉得很难,其实要做到很简单,和windows的cmd差不多,制作流程为:解开官方tar的ROM包,并将三星的img格式转换成ext文件格式(你需要改动的仅仅是systemimg分区内容),完成程序替换或精简(此时加入Root),然后打包为三星img格式,最后压缩成tar的ROM刷机包。1、解开一个完整的tar刷机包,得到cacheimg hiddenimg modembin recoveryimg systemimg五个分区镜像文件:
windows下你可以使用rar直接打开tar文件解压,liunx环境下你需要这样输入相关命令:tar xvf xxxtarmd5xxxtarmd5是你下载的官方rom包,有的rom包没有经过md5校验最后的扩展名为tar;命令行中的xvf为tar命令参数详细请Google。2、官方ROM中的img文件为三星自家的分区格式,需要转换为标准的ext格式才能读取(格式转换有很多方法,windows环境也可转换,方法请自行Google)linux环境下使用前面提到的ex4_utils工具包,输入下面的命令:/simg2img systemimg newsysimgnewsysimg就是转后为标准分区格式的img文件,sim2img文件可在ex4_utils工具包中找到。3、linux环境下挂载newsysimg:
新建一个文件夹tempmkdir temp将newsysimg挂载到tempmount -o loop newsysimg temp打开temp文件夹,是不是手机system分区内的文件都在这了?现在你可以精简你认为没有必要的程序,或者将原始程序替换为你制作好的美化程序。4、将这个ROM包制作成原始Rooted的,你需要从网上下载最新的SuperUser或SuperSU程序,还有su文件。
拷贝su到xbin文件夹:cp su temp/xbin/su赋予su文件超级权限:chmod 06755 temp/xbin/su现在你进入temp/xbin/文件夹,敲入ls,su文件变成红色的就说明已经有了超级权限。
拷贝Superuserapk到app文件夹:cp Superuserapk temp/app/Superuserapk赋予Superuser文件超级权限:chmod 06755 temp/app/Superuserapk现在你进入temp/app/文件夹,敲入ls,Spueruser文件变成红色的就说明已经有了超级权限。5、将你整理好的Temp文件夹打包回三星格式的img镜像文件/mkuserimgsh -s temp systemimg ext4 tempdir 1536M6、最后制作属于你自己的完整刷机包,此时你可以组合你的Rom包,比如把modembin换成联通的基带,或者自己的cacheimg:tar cvf 给你的刷机包起个名tar cacheimg hiddenimg modembin recoveryimg systemimg也可加入校验md5sum -t 给你的刷机包起个名tar >> 给你的刷机包起个名tar7、最后解除挂载umount temp8、用odin刷入你的自定义刷机包看看吧(刷机前别忘了wipe)。
祝你成功!觉得好就加个分呗。补充:获得定制systemimg的另一种方法:
首先你已root,然后再手机上替换/system/app内的文件,直至你满意为止。
现在将你现在手机的/system分区备份,获得systemimg
Windows环境下,cmd窗口输入:(前提是你会使用adb,方法请自行Google)adb shell
exit这样你就获得了你目前手机的system分区镜像,直接跳至上面的第6步,制作刷机包。注:由于本博客没有启用代码框插件,所以写本文是代码用b-quote所框住,所以在本文中所缩进去独立成行的均为输入命令。
欢迎分享,转载请注明来源:品搜搜测评网