在此先要明确声明一下:
依照此做法出现您的手机出现任何问题,概不负责的喔!!
英文好的朋友,可以直接看英文官方的参考网站即可:
只用android源代码做一些简单实验的朋友可以参考下面这几个网站:
说起android刷机包,听起来非常神秘,实际上它仅仅是一个经过数字签名的zip压缩包而已。如果要自己制作刷机包,则必须了解刷机包的基本工作原理,偶首先从android系统的启动说起:
android系统启动的时候,首先会进行一些诸如硬件自检之类的操作,这些操作完成以后(至少它应该知道当前的机器有没有电),会检查一下当前手机按键的状态(接下来就是所谓刷机模式切换了,不同的android手机有不同的按键组合用来进入刷机模式),如果此时按键状态处于刷机组合,那么系统会调用ROM里面的一个叫做recovery的程序(这时就是进入了所谓的刷机程序了,它只是一个工具性质程序,用于检查刷机包的完整性和数字签名的合法性。对于目前大多数root过的机器而言,数字签名的合法性都不会成问题,然后由recovery程序将刷机包进行解压,然后把刷机包里面的文件写入到ROM中去,以此完成刷机过程);如果此时按键没有标明是刷机模式,那么系统会创建内存盘,开始从ROM里面载入相应的文件系统,并把相关的文件拷贝到内存盘中,进而引导linux启动,然后是启动虚拟机dalvik,然后就是创建工作进程载入和运行framework,然后就会看到待机的画面。当然在这个过程中还发生了许多事情,启动了许多服务,为了简化起见,对于启动过程偶只讲解到此,感兴趣的朋友可以自己结合着linux的启动过程加以对比来学习。
现在来总结一下,实际上刷机包就是一个ROM文件的压缩包,进入刷机模式后,recovery程序会把刷机包里面的文件写入ROM存储区替换ROM存储区的原有文件;当下次启动手机的时候,会从ROM中载入刚刚替换过的文件,并利用这些文件来启动和运行系统。这就是刷机包的全部功能和作用,看不懂的朋友可以反复看几次,刷机的本质就是文件的覆盖和替换操作,偶相信各位一定能看懂!
OK,现在大家已经知道ROM文件的zip压缩包就是所谓的刷机包。制作刷机包的过程就是准备这些文件,然后重新把这些文件压缩成一个zip包的过程,在制作的最后,使用签名工具签个名,就可以测试和发布刷机包了。虽然说起来就是一句话的事情,但是实际上准备这些文件的过程是非常痛苦和漫长的。
那么updatezip压缩包里面的都包含哪些文件?这些文件又都是如何做出来的呢?hoho,现在开始渐渐接触到问题的本质了,解压缩这个updatezip压缩包以后我们可以看到两个目录和一个文件:
bootimg <---文件,这是编译内核源代码生成的内核映像,然后与android源码编译出来的ramdiskimg一起通过mkbootimg工具创建出来的,图省事的朋友也可以从网上其他的刷机包里面拷贝一个能用的出来即可,基本上都差不多。
META-INF <---目录,这个目录是手工创建的,主要用来存放一个升级脚本update-script(这个脚本的内容与system目录中包含的文件有很大关联)以及保存若干刷机包内的apk文件的签名。
system <---目录,这个目录就是编译android的平台源代码生成的,
其实最好的学习方式就是把现在互联网上的那些updatezip包给解包,然后自己一个一个文件地看和分析,然后修改,尝试做自己的刷机包。
对于这个bootimg,基本思路是编译android kernel代码,生成内核image然后利用mkbootimg感兴趣的朋友可以参考下面这两个wiki网站:
下面的做法偶都是在linux下面完成的(slackware 131):
(1)下载和编译android的源代码,具体过程不再赘述
如果各位还不知道repo sync之类的命令的话,可以参考网上的关于下载android源代码以及编译的文章,据偶所知这些文章非常丰富。编译之前一定要注意平台的选择,不同平台的驱动程序是不一样的!这些参数可以通过:
$ cd android-src <---进入android的源代码目录
$ build/envsetupsh <---设置环境变量,运行完毕后,你可以输入一下help命令,看看google的团队提供了多少有用的便利命令,这对于我们以后修改代码重新编译非常有帮助。
$ lunch generic-eng <---开始配置android的源代码的编译选项
运行上述命令后会看到如下输出:
wayne@wayne:~/android-src$ lunch generic-eng
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=21-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
$ make -j2 <---只有单核的CPU的朋友可以尝试此参数,双核的朋友可以试试-j3,否则就老老实实运行make即可。
然后就是一个漫长的等待,这个时间大概有1-2小时左右(偶的机器比较慢),完全编译完毕以后硬盘的占用大概需要8个G左右。
(2)编译完成以后,进入wayne@wayne:~/android-src/out/target/product/generic目录,应该会看到如下的文件:
android-infotxt
data
obj
ramdiskimg
sdk
system
userdataimg
clean_stepsmk
installed-filestxt
previous_build_configmk
root
symbols
systemimg
这里的systemimg是不是很眼熟?!对拉,这个就是刷机包里面好像也有一个叫做什么system的目录,那么这个systemimg里面都有什么呢?这里面的东西其实就是当前目录下的一个叫做system的目录里面的内容了,只是保存成了yaffs文件系统的格式。我们可以通过unyaffs工具来把systemimg给解开来看看,就明白偶说话了。
unyaffs的代码下载地址为:
在linux下编译方法非常地简单,只需要下载源代码,然后运行:$ gcc -c unyaffsc
$ gcc -o unyaffs unyaffso
即可生成这个unyaffs的解包工具,利用这个工具就可以把自己生成的systemimg进行解包,然后修改里面的内容了。
unyaffs使用方法非常简单:
$ unyaffs systemimg [回车]
即可将systemimg解包成一个叫做system的目录,里面包含了整个android的文件系统
(3)刚刚开始,不适合一切从头来,还是老实一些,先从修改别的大牛们做得刷机包开始吧
首先拷贝一个从网上下载下来的刷机包,然后找一个目录解压缩(当然,这是最保险的做法,自己做这些目录也没有任何问题,只是比较费时间而已)
$ unzip xxxxxxzip <--- 这个xxxxxzip就是从网上下载的某刷机包(一定要跟你的代码版本基本一致喔,偶在这里用的是21的刷机包)
(4)替换原有的system目录
解压缩刷机包以后,会看到在开篇的时候提到的两个目录,一个文件:
bootimg
META-INF
system
好了,可以把system目录拷贝到别的路径下备份一给,防止这些修改发生别的问题。然后把wayne@wayne:~/android-src/out/target/product/generic这个目录下面的system拷贝到当前的工作目录下。注意,这个system目录里面有很多“符号链接”指向了toolbox。这些链接其实没啥用,可以通过后面的update-script自动进行创建的,因此,需要用一个脚本把这些链接都删掉。
可以参考:
这个网页附件给出来的DeleteExtrastxt改写成一个DeleteExtrassh脚本来清除这些符号链接。
(5)修改update-script脚本
修改META-INF/com/google/android目录下的那个叫做update-script的脚本,只要修改一下即可,主要是删除一些不存在的文件以及增加一些文件的权限之类的定义(语法十分清晰,一目了然)。把需要“预装”到刷机包里面的apk安装程序都准备好,将这些apk拷贝到system/app目录下即可。那个bootimg能不改就不改,因为这东西涉及到驱动和内核的问题,出了问题刷机包就启动不了了。
安装包路径错误应该
打开手机的设置,点击我的设备,点击MIUI版本,连续双击miui版本号7次,就打开扩展功能了,然后再点击右上角三个,选择手动选择安装包,就可以安装本地的卡刷包了。
随着手机系统的更新换代,大家对安卓系统升级也比较感兴趣,而安卓系统升级一般指通过刷机来升级。接下来向您介绍一下安卓手机系统的固件刷机升级方法吧~
固件刷机时建议按照以下步骤操作:
1、刷机前准备工作:
(1)资料备份:在刷机前一定要备份好个人数据,以免造成数据丢失,推荐使用系统自带的“手机搬家”APP进行数据搬家。
(2)OPPO手机固件安装包的下载地址:
① ColorOS 11及以上版本:进入ColorOS官网固件包下载专区「OPPO官网 > 服务 > 系统升级」:https://wwwcoloroscom/rom,下载并安装OPPO升级工具。根据工具上的操作提示将手机与电脑连接,OPPO升级工具会为您检测并下载最新固件包。
② ColorOS 7及以下版本:进入ColorOS官网固件包下载专区「OPPO官网 > 服务 > 系统升级」:https://wwwcoloroscom/rom,找到对应的机型后下载即可。
温馨提示:
目前固件升级工具暂不支持系统版本为“ColorOS 6版本的机型”和“ColorOS 7版本升级到ColorOS 11版本的系统升级”。
(3)刷机前请保持手机电量充足(电量大于20%)。
2、刷机教程:https://wwwcoloroscom/index/newsDetailid=68
方法一:简单模式刷机
(1)将下载好的固件包放入手机存储根目录中「“文件管理”APP > 手机存储」,该目录即为根目录。
(2)直接点击该“固件”安装包,然后自动重启升级即可。
方法二:Recovery模式刷机
(1)将下载好的固件包放入手机存储根目录中「“文件管理”APP > 手机存储」,该目录即为根目录。
(2)将手机关机,然后长按电源键和音量减键进入Recovery模式。
(3)进入Recovery模式后,点击「简体中文 > 安装升级文件 > 从手机存储,找到放在根目录后缀为OZIP的固件包,点击进行升级」,此时只需等待系统自动升级完成,不要做任何操作,刷机完成后直接点击重启即可。
温馨提示:
系统升级完成后可以删除升级固件包,对手机不会有影响。
刷机步骤
1 手机开机时同时按开机键和音量加键,大概10秒钟,
2 进入recovery模式,
3 进入recovery模式之后,可以看到:wipe data/factory reset,wipe cache partition
即为双清Wipe。
4 接着用音量上下键选择wipe data/factory re
set ,用电源键确定,音量键选择yes,电源键 ,确定。
5 返回键,返回recovery模式主页面,找到:wipe cache partition ,音量键为选择,电源键确定。
6 返回键,返回recovery模式主页面,电源键,选择第一项:reboot system now 重启系统。
7 完成以上操作,即为 双wipe。
8install zip from sdcard。
9choose zip from sdcard。
10找到安装包,开始刷机刷,请耐心等待,自动完成。
11最后选择重启手机。完成。
1:先将上面下载好的rom卡刷包复制到手机的sd卡的根目录下
2:然后手机关机,进入刷好的recovery中
(进入的方法:手机先关机,然后手机在关机的状态下同时按住手机的音量键上键
+
电源键,两键一起按约6秒即可进入recovery)
3:用音量键选择清空数据/恢复出厂设置然后再选择是的-清空所有数据然后按电源键确认
5:返回主界面,按音量键选择从sd卡选择刷机包然后再选择从sdcard读取刷机包,然后找到刚才复制到手机sd卡根目录下的zip格式的rom刷机包(比如:xxxxxxzip),然后再选择是的-安装
xxxxxzip,按电源键确认
6:等待刷机完成后,返回recovery主界面,最后选择关闭手机或里进入重启选项选择重启手机
友情提示:刷机之后第一次开机可能较慢,耐心等待。
随着手机系统的更新换代,大家对安卓系统升级也比较感兴趣,而安卓系统升级一般指通过刷机来升级。接下来向您介绍一下安卓手机系统的固件刷机升级方法吧~
固件刷机时建议按照以下步骤操作:
1、刷机前准备工作:
(1)资料备份:在刷机前一定要备份好个人数据,以免造成数据丢失,推荐使用系统自带的“手机搬家”APP进行数据搬家。
(2)OPPO手机固件安装包的下载地址:
① ColorOS 11及以上版本:进入ColorOS官网固件包下载专区「OPPO官网 > 服务 > 系统升级」,下载并安装OPPO升级工具。根据工具上的操作提示将手机与电脑连接,OPPO升级工具会为您检测并下载最新固件包。
② ColorOS 7及以下版本:进入ColorOS官网固件包下载专区「OPPO官网 > 服务 > 系统升级」,找到对应的机型后下载即可。
温馨提示:
目前固件升级工具暂不支持系统版本为“ColorOS 6版本的机型”和“ColorOS 7版本升级到ColorOS 11版本的系统升级”。
(3)刷机前请保持手机电量充足(电量大于20%)。
2、刷机教程:
方法一:简单模式刷机
(1)将下载好的固件包放入手机存储根目录中「“文件管理”APP > 手机存储」,该目录即为根目录。
(2)直接点击该“固件”安装包,然后自动重启升级即可。
方法二:Recovery模式刷机
(1)将下载好的固件包放入手机存储根目录中「“文件管理”APP > 手机存储」,该目录即为根目录。
(2)将手机关机,然后长按电源键和音量减键进入Recovery模式。
(3)进入Recovery模式后,点击「简体中文 > 安装升级文件 > 从手机存储,找到放在根目录后缀为OZIP的固件包,点击进行升级」,此时只需等待系统自动升级完成,不要做任何操作,刷机完成后直接点击重启即可。
温馨提示:
系统升级完成后可以删除升级固件包,对手机不会有影响。
欢迎分享,转载请注明来源:品搜搜测评网