LongLong ago就知道盖世兔更新到ICS了,受不鸟ICS的诱惑,于是决定去升级
本文分两部分:第一部分简要概述刷机的步骤,第二部分,结合刷机、工具、以及ROM,浅谈一下对android以及samsung spec android的理解
本文对于各种工具的使用不做解释,都是些机械步骤,相当简单,自行百度
Step1:备份:没备份万一失败了,联系人,短信都丢了,你就等着哭吧。
备份方法一:
使用Kies备份,
优点:官方备份。简单。
缺点:只能备份联系人、短信、备忘录、音乐视频。系统设置,对于应用程序的数据没有备份。
备份方法二:
使用CWM进行备份,(CWM是一个第三方recovery镜像,相当于PC的Ghost):
优点:备份的完全,一丝不漏~,
缺点:非官方,开机出现黄三角,增加刷机次数。
Step2:选择合适的刷机包(使用Kise官方升级,跳过此步)
首先要知道自己的机器是国行还是港水、欧水、韩水、各种水,据说国行是不能刷其他水的ROM,而其他水是可以通刷的。原因据说是国行的分区表与其他水不同,要刷只能重新分区。如何区分自己是什么水。网上很多人说,进拨号盘打个神马暗码去看,我个人感觉,暗码记不住。不如使用adb来查:adb shell getprop ro.csc.country_code 然后可以查看每个国家的缩写。一目了然。
三星版本的版本号,看不懂,特别是内核和基带版本,都是XXKE4,XXLPT,估计内部有特别含义代表哪个国家,我们外部是看不懂。
个人比较喜欢刷官方版本,原因是官方版本测试全、稳定,虽然带了很多国内没法用的应用~~但至少都是些知名软件。但是第三方做的,特别是国内会因为很多商业原因加很多乱七八糟的的软件。本人买回盖世兔时就内增20多款无用国内软件。一开始以为是三星自带的,后来刷了官方版本之后,才发现原来是国内JS加的。
水版的缺点:
1、语言不通、刷个港水还行,至少还是中文,刷个欧水也行,英文好的至少压力不大,但是韩水~~~一大堆的钢管文谁看得懂啊。
2、暂时没想出来
Step3: 刷机
方法一:采用Kies官方升级:
优点:官方升级安全可靠,无需format。资料全部保留。
缺点:1、当前版本必须是官方版本(或者是准官方,就是只是做个汉化、增减apk等),否则无法升级。2、升级后也是官方版本就是上述的语言问题。
方法二:CWM卡刷(T卡升级)
优点:等同于PC的Ghost,不说了
缺点:CWM为第三方recovery会黄三角和增加非官方刷机计数
方法三:Odin线刷
Odin工具为三星内部刷机的工具,相当于MTK的Flash Tools
Odin工具只要两个选项要注意下:
PDA一般都是放ROM的,可以是ROM整包。可以是单个内核、ROM(system.img)
Phone:一般就是放modem.img(就是基带)。
区别:PDA与通信无关的模块,Phone就是与通信有关的模块,没有Phone那么就没办法打电话(简单的理解)
优点:怎么样都能刷
缺点:最容易刷成砖,要刷回来也容易,只要有个OK的包就可以刷好
FAQ:
刷了不开机,怎么办?
1、ROM包没选对,整个正确的刷
2、format后,再开机试试,(俗称双wipe)
3、还是不行?那么别刷新的了,找个以前备份的刷回去
4、还是不行?找售后吧。可能硬件刷坏了
刷完能开机,但是用着用着进入系统后老是死机(冻屏、重启、XX已停止运行)?
说明刷的是正确的,后来软件配置出问题了。
进入安全模式(开机动画时按住音量下,进入系统后、左下方会显示安全模式,就和windows的安全模式一样)
在安全模式,不能安装apk,不会加载非系统应用(即不在system/app下面)。
如果能进入,那么找到出问题的apk,卸了,改配置,等等,然后重启正常进入,看看是不是好了,如果还有问题,那么进入安全模式,把该备份的都备份了,回复出厂设置吧,问题肯定出在装的软件上面。出厂设置必有用。
如果安全模式都进入都会死机,那么说明系统应用也出问题了,最简单的还是format(双wipe)
刷完非国行ROM,系统显示英文可以理解,但是为嘛微博、豌豆荚等国内应用也显示了英文?
因为系统设置的地区在英语国家,所以微博、豌豆荚等国内软件如果有英文资源,那么会相应显示英文资源。
修改方法是:设置->语言和输入法->语言->找到祖国。如果能找到那么万事OK,如果找不到~~~那么说明ROM里面并没有内置,这并不是说不能改成中文。因为Google当初设计时是把中文考虑进去的,所以大框架里面是包括中文区的,虽然没有选项可以选择,但是可以找到通过adb命令修改目前地区。
adb shell setprop persist.sys.language zh
adb shell setprop persist.sys.language CN
然后重启,可以发现虽然系统还是英文,但是微博、豌豆荚等国内应用变成了中文,再进入语言设置发现变成了中文区了,虽然进入后列表里面还是没有选择中文。其他有中文资源的应用,相应也会显示出中文
刷机就说到这里,下面来讲讲一些知识点:
首先说下Odin和flash tools,身为一个MTK平台的软件人员,对于flash tools 应该是相当熟悉了,而Odin就是一个三星自研发的download工具。所以用起来和flash tool没什么差别。就是工具使用上的一些问题。
三星img包的组成:
普通的img组成大概有这么几项
uboot.img 包含uboot,手机开机首先启动的部分,相当于pC的BIOS。启动后根据按键状态来选择NORMAL BOOT 还是 RECOVERY BOOT
boot.img 一般由ramdisk.img 和 kernel.img组成。ramdisk为根文件系统镜像 kernel又叫zImage,是android Linux内核,通俗的说就是驱动部分
userdata.img 为data分区镜像,挂载/data 存储用户和系统数据
system.img system分区镜像,挂载/system 差不多整个android系统都包含在里面
recovery.img recovery镜像,属于一个小型Linux系统,与android没太多关系。大多执行T卡升级和备份和还原操作,理论上还可以对userdata.img & system.img进行操作,从而在系统崩溃时可以进行修复。CWM就是一个recovery系统,拥有较强大的功能
cache.img 没怎么研究,不清楚
更多信息参见 http://blog.csdn.net/wutianyin222/article/details/7854375 虽然写得也差不多
三星镜像分析:
boot.bin
cache.img
factoryfs.img
hidden.img
modem.bin
param.lfs
Sbl.bin
zImage
可以看得出来三星的img与原生的有很大不同,可以这么猜测:
boot.img == uboot.img
cache == cache
modem = system.img$modem MTK平台的modem包含在system里面
zImage = boot.img$kernel 原生的貌似NORMAL boot 一份zImage,recovery boot 一份zImage,而三星将zImage通用了。分两份有个好处是当normal boot的kernel出问题了,至少可以保证recovery还是可以进入的。然后通过odin刷CWM可以知道三星的zImage包含了recovery
factoryfs很大,可以认为: factoryfs = system+userdata
Sbl.bin
param.lfs 不太清楚,个人感觉像preloader,保存下载信息,有点像scatter_files
hidden.img 网上传说的隐藏分区,具体干什么不清楚。
设置存储位置:
对于系统的设置,保存的位置一般有以下几个地方
/data/data/com.android.provider.settings/databases/*.db
/data/dara/com.android.settings/shared_prefs/*.xml
以上两个位置可以通过数据库编辑器和文本编辑器(UTF-8格式)进行修改,不过data分区需要root权限访问
还有一个位置也存储这系统设置,这个地方的配置往往更加重要。而且貌似不生成文件,也就是说找不到文件直接修改,即使生成文件,也是临时的。因为每次系统启动时都会初始化这些属性。这个就是android的Property。
Property在Java层可以使用SystemProperty.get/set调用,本地方法为setprop getprop
getprop无需权限,但是setprop需要权限。
每个Property都是一个键值对,getprop无参调用输出所有属性,也可以输入key来查找相应的value
setprop <key> <value>
每个属性都必须遵循一定的命名规则:
ro开头的表示只读属性,用setprop是无用的,一般从/default.prop /system/default.prop /system/build.prop /data/default.prop中读取。一般只能用download image来修改
persist开头表示会保存到存储设备,具体存到哪里没研究过
gsm,net等开头表示网络属性,通过系统网络与外部通信获得,建议不要手动改。