2024年9月18日发(作者:真鸿卓)
前言:
本文为locke原创文章,请尊重作者的劳动成果,转载请注明出处:
;本文所涉及到的资源及工具均来源于网络,有需要的请自行
Google。欢迎转发本文,转发时请保留本文的完整性并注明出处。谢谢!
在这之前,还是要说一下那句话:DIY有风险,刷机需谨慎!!!
建议最好在有机子官方固件的前提下再做DIY操作,以防变成砖头后还能用官方固件刷回
去。刷机前请拔出TF卡并备份机子上所有自己有用的资料再刷机。
目录:
前言……………………………………………………………………………………..………
篇前随语………………………………………………………………………………..………
一、无官方固件的系统文件提取、解包…………………………..…………………
二、有官方固件的系统文件解包……………………………………..………………
2-1.解包………………………………………………… ………………..
2-2.解密…………………………………………………… ……………..
2-3.解包…………………………………………………… ……………..
2-4.Windows下的解包………………………………………………… ……………..
2-5.打包……………………………………………………………… … ……………..…
2-6.boot的解包、打包…………………………………………………… …………..
三、固件升级……………………………………………………………………………….
篇前随语:
距离写第一篇2818的教程有一段时间了,在那之前几乎没有任何资料可找到或者说可
供参考,所以写的东东都是灰常简单的。没想到短短的时间,各路高手都出招了,技术各有
不同,玩法各有不同,能改动的不能改动的几乎都有人在研究,好不热闹。
有不少网友让我多写一些这方面的教程,如果时间允许,我也想啊,但是,一来呢,本人时
间有限,工作中杂事比较多,业余时间也比较少,再者也只是对有兴趣的东东才会有动力多
下些功夫去研究,还有就是,本人能力有也限,有些东东掌握的不全面,在一些高手前面就
一菜鸟,所以不是比较有把握的都不敢放到上面来,以免误导别人。
下面介绍的内容以及方法不一定适合所有的RK281x机型,不同的机型一些资源不一定会相
同。这里只是提供一个修改思路,仅供参考。
本文涉及到的一些东东有些来源于网络,有些是参考网友的方法,有些甚至直接“拿来”
用的,在此,先感谢lajidong提供的一些资源和方法,让我受益不少,再者也感谢一下我不
知道名字却在此借用了他们技术的网友。
关于固件的修改,有些机子能找到相应的官方源文件,有些纯山寨机子,整个三无的产品,
所以在这里,对这两种作简单介绍:
一是无官方固件的情况下进行文件提取;
二是有官方固件的情况下进行解包、打包。
一、无官方固件的系统文件提取、解包
在无官方固件情况下,能得到固件方法也有很多种,比如直接从机子里拷贝出来、用本机终
端、用adb等等。这里简单的介绍两种方法进行固件提取:一是可以用之前那篇教程的方法,
用91助手将文件提取出来然后直接进行修改。二是通过本机安装终端,用终端来备份固件,
不过前提是需要Root。
用91助手提取文件的方法就不介绍了,在之前那篇文章里有作介绍,这里着重介绍用终端
来备份出系统文件。
需准备的工具:Universal 、ConnectBot_1.7.1_、
先将三个APK都安装上,然后运行Universal Androot,把Root temporary(Unroot after reboot)
前的勾选上,点击“Root:-)”,完毕后退出,然后运行ConnectBot,在界面中点击左下角的
SSH按钮,选择local,然后随便输入一个名字,出现的界面出现一个“$”和虚拟键盘,在界
面中输入:
cat /proc/mtd
出现如下信息:
$ cat /proc/mtd
dev: size erasesize name
mtd0: 00002000 00000010 "misc"
mtd1: 00004000 00000010 "kernel"
mtd2: 00002000 00000010 "boot"
mtd3: 00004000 00000010 "recovery"
mtd4: 00040000 00000010 "system"
mtd5: 0003a000 00000010 "backup"
mtd6: 0003a000 00000010 "cache"
mtd7: 00080000 00000010 "userdata"
mtd8: 00178000 00000010 "user"
mtd9: 00020000 00000010 "pagecache"
mtd10: 00020000 00000010 "swap"
列出了整机的分区信息,dev为分区设备号,显示共有11个分区,size为分区大小,name
为分区名称。找到我们需要的分区的相息,比如我们此时需备份system的信息,那system
的信息:mtd4: 00040000 00000010 "system",即,第五个分区,大小为40000(16进制,换
算成十进制=262144)。
输入su切换到root下,此时提示是否取得root权限,选择“允许”,再输入dd
if=/dev/block/mtdblock4 of=/flash/ count=262144,因备份的文件比较大,要等一会
后才提示备份完成,即可在用户盘中将备份的文件拷到电脑上进行修改了。
输入exit退出root,再次输入exit退出程序。
$ su
# dd if=/dev/block/mtdblock4 of=/flash/ count=262144
# exit
$ exit
这样就将system的分区备份出来了,也可按上面的办法将boot分区备份出来,以备用。 在
这里不做过多的介绍了,有需要的同鞋可以参考附档中的一篇关于“rk固件提取”的文章,因
为是在网上找到的,所以原作者是哪个就不清楚了,在这里借用一下他的资源,希望他不要
介意咯。
二、有官方固件的系统文件解包
2-1.解包
将放入“解包、打包工具”文件夹内然后在命令行模式输入:
-unpack Temp
上述命令表示用将解压至Temp文件夹下。
2-2.解密
将TempImage内的拷到“解包、打包工具”文件夹下,然后输入:
rkDecrypt
即可将文件解密,不解密的情况下是不能对进行解包的。 (或将
直接拖至上也可直接解包。)解密之后才是标准的cramfs格式,才
能用相应工具解包。
2-3.解包
解密后的现在可以用cramfsck进行解包了,在Linux下对工具包内的
进行解包:
mkdir system
sudo mount -t cramfs -o loop system
tar cvzf system
sudo umount system
rm -r system
tar xzvf
当然,也可用cramfsck来直接解包(cramfsck -x system ),但我以前在2808上测试
时经常出现莫名的问题,所以后来已放弃这种解包方式了。
2-4.Windows下的解包
当然,现在也可以在Windows下也有工具可进行解包了,不过须在NTFS格式下才可以,
且必须保证源文件是正确的,因为在WIN下的工具是不对进行CRC校验的。
通过上面的2-2.的步骤将之解包后,在命令行中输入:
pfn -p1
cramfsck_nocrc -x system
即可在WIN下将解包到“解包、打包工具”的“system”文件夹下了。
以上介绍了固件的解包工作的步骤,比较繁锁。在Win下我们可用批处理一键搞定所有操
作:
-unpack Temp
copy .
rkDecrypt
pfn -p1
rmdir /s /q system 2>nul
cramfsck_nocrc -x system
以上那些内容为对文件的提取、解包工作。剩下的工作就是对system文件进行编辑,例如,
精减固件、美化等,可按“瑞芯微RK2808_安卓(android)系统固件包修改基础教程”中的方法
进行修改即可。
2-5.打包
玩过2808的人就知道,打包成cramfs格式的img文件是非常简单的。所以,将system
文件夹修改好了后,在 Linux系统下将之打包即可。代码:
mkcramfs system system_
为了便于区分,新生成的img为system_,将修改好的img改名为后放
入TempImage文件夹下,然后在命令行模式输入:
-pack Temp update_
这样就将修改好的文件重新打包成升级包了。
同样,在Win下也可以进行打包,在命令行模式输入:
mkcramfs -q system system_
copy system_ .
pfn -p2
-pack Temp update_
2818的解包、打包的方法和2808完全一样,唯一不同的就是,2818的进行了
加密,需要解密后才能继续操作。对于不太懂的同鞋可看一下“瑞芯微RK2808_安卓(android)
系统固件包修改基础教程”,在这里只是增加了Windows下的相关操作,所以写的就比较简
单了。
上面的解包、打包着重在于介绍其操作方法,只是提供一种解决思路,有需要的同学可以跟
据我提供的“一键操作.bat”、“system、boot解包打包.bat”进行增、删,以便更适合自己使用。
重要说明:在Windows下对进行解包、打包还是存在很大的不稳定性,比如改
好后发现程序崩溃、3G dingle不能开打等莫名的问题,很有可能就是在解、打包过程中造
成的。所以,在此强烈建议对的操作还是在Linux下进行,以减少出错的可能性。
也许是我RP不咋滴,唉。。。。
2-6.boot的解包、打包
Boot能修改的地方现在也越来越多了,故在此也放上其解包、打包的方法。 也是
cramfs格式,所以用2-3.的方法就可以正常解包,这里就不作介绍了,请参考2-3
Win下的解包,在命令行模式:
rmdir /s /q boot 2>nul
cramfsck_nocrc -x boot
修改完boot后,打包稍麻烦些,要多增加一个步骤,要先将之打包成普通cramfs后再增加
RK专门的CRC校验值,这样才能正常引导系统。
CRC的校验可以在Win下操作,在命令行模式:
mkcramfs -q boot
rkcrc
del /f /q
三、固件升级
固件升级,有三种方法:量产升级、用户升级和开发工具升级,前两种升级是将所有相关的
文件打包成后用工具升级。后面一种,可单独升级某一个文件,对于没有官方固
件的情况下提取出来的文件,因为缺少相关的文件,所以没办法打包成,用量产
工具和用户工具就没办法对其升级了。所以只能使用开发工具来升级。
开发工具升级的好处就是,不用将全部文件都重新升一次,只需将其中修改过的文件重新升
级即可,其它文件无需再将升级,比如,修改了后只升级它即可,修改了
后单独升级即可。因为不用升级所有文件,对于修改后的固件测试,可大大的
减少等待的时间。
以下对其进行简单的补充,
1.用开发工具单独升级某个文件后有时也会出现莫名的问题,比如测试时好的,重新开机
后或者还原出厂设置后就出问题了。所以还是建议测试OK后再打包用量产工具或用户工具
重新再升级一次较好。(主要针对有官方固件的同鞋,山寨机的就将就一下使用了。)
2.用开发工具升级是OK的,但打包后用量产工具升级过程中,校验时出现错误,一般都
是HWDEF里system分区的size的问题,导致偏移量冲突,此时适当的修改一下system的
size即可。
唉,死了不少脑细胞,感觉还是不太满意,不怎么通俗易读。暂时就这样吧,实在不行哪
天兴致来了再发第三版。
教程中难免会有错误之处,欢迎指正!
locke
不设回复可见,沉了就沉了,沉了说明这教程写的不好。。。
2024年9月18日发(作者:真鸿卓)
前言:
本文为locke原创文章,请尊重作者的劳动成果,转载请注明出处:
;本文所涉及到的资源及工具均来源于网络,有需要的请自行
Google。欢迎转发本文,转发时请保留本文的完整性并注明出处。谢谢!
在这之前,还是要说一下那句话:DIY有风险,刷机需谨慎!!!
建议最好在有机子官方固件的前提下再做DIY操作,以防变成砖头后还能用官方固件刷回
去。刷机前请拔出TF卡并备份机子上所有自己有用的资料再刷机。
目录:
前言……………………………………………………………………………………..………
篇前随语………………………………………………………………………………..………
一、无官方固件的系统文件提取、解包…………………………..…………………
二、有官方固件的系统文件解包……………………………………..………………
2-1.解包………………………………………………… ………………..
2-2.解密…………………………………………………… ……………..
2-3.解包…………………………………………………… ……………..
2-4.Windows下的解包………………………………………………… ……………..
2-5.打包……………………………………………………………… … ……………..…
2-6.boot的解包、打包…………………………………………………… …………..
三、固件升级……………………………………………………………………………….
篇前随语:
距离写第一篇2818的教程有一段时间了,在那之前几乎没有任何资料可找到或者说可
供参考,所以写的东东都是灰常简单的。没想到短短的时间,各路高手都出招了,技术各有
不同,玩法各有不同,能改动的不能改动的几乎都有人在研究,好不热闹。
有不少网友让我多写一些这方面的教程,如果时间允许,我也想啊,但是,一来呢,本人时
间有限,工作中杂事比较多,业余时间也比较少,再者也只是对有兴趣的东东才会有动力多
下些功夫去研究,还有就是,本人能力有也限,有些东东掌握的不全面,在一些高手前面就
一菜鸟,所以不是比较有把握的都不敢放到上面来,以免误导别人。
下面介绍的内容以及方法不一定适合所有的RK281x机型,不同的机型一些资源不一定会相
同。这里只是提供一个修改思路,仅供参考。
本文涉及到的一些东东有些来源于网络,有些是参考网友的方法,有些甚至直接“拿来”
用的,在此,先感谢lajidong提供的一些资源和方法,让我受益不少,再者也感谢一下我不
知道名字却在此借用了他们技术的网友。
关于固件的修改,有些机子能找到相应的官方源文件,有些纯山寨机子,整个三无的产品,
所以在这里,对这两种作简单介绍:
一是无官方固件的情况下进行文件提取;
二是有官方固件的情况下进行解包、打包。
一、无官方固件的系统文件提取、解包
在无官方固件情况下,能得到固件方法也有很多种,比如直接从机子里拷贝出来、用本机终
端、用adb等等。这里简单的介绍两种方法进行固件提取:一是可以用之前那篇教程的方法,
用91助手将文件提取出来然后直接进行修改。二是通过本机安装终端,用终端来备份固件,
不过前提是需要Root。
用91助手提取文件的方法就不介绍了,在之前那篇文章里有作介绍,这里着重介绍用终端
来备份出系统文件。
需准备的工具:Universal 、ConnectBot_1.7.1_、
先将三个APK都安装上,然后运行Universal Androot,把Root temporary(Unroot after reboot)
前的勾选上,点击“Root:-)”,完毕后退出,然后运行ConnectBot,在界面中点击左下角的
SSH按钮,选择local,然后随便输入一个名字,出现的界面出现一个“$”和虚拟键盘,在界
面中输入:
cat /proc/mtd
出现如下信息:
$ cat /proc/mtd
dev: size erasesize name
mtd0: 00002000 00000010 "misc"
mtd1: 00004000 00000010 "kernel"
mtd2: 00002000 00000010 "boot"
mtd3: 00004000 00000010 "recovery"
mtd4: 00040000 00000010 "system"
mtd5: 0003a000 00000010 "backup"
mtd6: 0003a000 00000010 "cache"
mtd7: 00080000 00000010 "userdata"
mtd8: 00178000 00000010 "user"
mtd9: 00020000 00000010 "pagecache"
mtd10: 00020000 00000010 "swap"
列出了整机的分区信息,dev为分区设备号,显示共有11个分区,size为分区大小,name
为分区名称。找到我们需要的分区的相息,比如我们此时需备份system的信息,那system
的信息:mtd4: 00040000 00000010 "system",即,第五个分区,大小为40000(16进制,换
算成十进制=262144)。
输入su切换到root下,此时提示是否取得root权限,选择“允许”,再输入dd
if=/dev/block/mtdblock4 of=/flash/ count=262144,因备份的文件比较大,要等一会
后才提示备份完成,即可在用户盘中将备份的文件拷到电脑上进行修改了。
输入exit退出root,再次输入exit退出程序。
$ su
# dd if=/dev/block/mtdblock4 of=/flash/ count=262144
# exit
$ exit
这样就将system的分区备份出来了,也可按上面的办法将boot分区备份出来,以备用。 在
这里不做过多的介绍了,有需要的同鞋可以参考附档中的一篇关于“rk固件提取”的文章,因
为是在网上找到的,所以原作者是哪个就不清楚了,在这里借用一下他的资源,希望他不要
介意咯。
二、有官方固件的系统文件解包
2-1.解包
将放入“解包、打包工具”文件夹内然后在命令行模式输入:
-unpack Temp
上述命令表示用将解压至Temp文件夹下。
2-2.解密
将TempImage内的拷到“解包、打包工具”文件夹下,然后输入:
rkDecrypt
即可将文件解密,不解密的情况下是不能对进行解包的。 (或将
直接拖至上也可直接解包。)解密之后才是标准的cramfs格式,才
能用相应工具解包。
2-3.解包
解密后的现在可以用cramfsck进行解包了,在Linux下对工具包内的
进行解包:
mkdir system
sudo mount -t cramfs -o loop system
tar cvzf system
sudo umount system
rm -r system
tar xzvf
当然,也可用cramfsck来直接解包(cramfsck -x system ),但我以前在2808上测试
时经常出现莫名的问题,所以后来已放弃这种解包方式了。
2-4.Windows下的解包
当然,现在也可以在Windows下也有工具可进行解包了,不过须在NTFS格式下才可以,
且必须保证源文件是正确的,因为在WIN下的工具是不对进行CRC校验的。
通过上面的2-2.的步骤将之解包后,在命令行中输入:
pfn -p1
cramfsck_nocrc -x system
即可在WIN下将解包到“解包、打包工具”的“system”文件夹下了。
以上介绍了固件的解包工作的步骤,比较繁锁。在Win下我们可用批处理一键搞定所有操
作:
-unpack Temp
copy .
rkDecrypt
pfn -p1
rmdir /s /q system 2>nul
cramfsck_nocrc -x system
以上那些内容为对文件的提取、解包工作。剩下的工作就是对system文件进行编辑,例如,
精减固件、美化等,可按“瑞芯微RK2808_安卓(android)系统固件包修改基础教程”中的方法
进行修改即可。
2-5.打包
玩过2808的人就知道,打包成cramfs格式的img文件是非常简单的。所以,将system
文件夹修改好了后,在 Linux系统下将之打包即可。代码:
mkcramfs system system_
为了便于区分,新生成的img为system_,将修改好的img改名为后放
入TempImage文件夹下,然后在命令行模式输入:
-pack Temp update_
这样就将修改好的文件重新打包成升级包了。
同样,在Win下也可以进行打包,在命令行模式输入:
mkcramfs -q system system_
copy system_ .
pfn -p2
-pack Temp update_
2818的解包、打包的方法和2808完全一样,唯一不同的就是,2818的进行了
加密,需要解密后才能继续操作。对于不太懂的同鞋可看一下“瑞芯微RK2808_安卓(android)
系统固件包修改基础教程”,在这里只是增加了Windows下的相关操作,所以写的就比较简
单了。
上面的解包、打包着重在于介绍其操作方法,只是提供一种解决思路,有需要的同学可以跟
据我提供的“一键操作.bat”、“system、boot解包打包.bat”进行增、删,以便更适合自己使用。
重要说明:在Windows下对进行解包、打包还是存在很大的不稳定性,比如改
好后发现程序崩溃、3G dingle不能开打等莫名的问题,很有可能就是在解、打包过程中造
成的。所以,在此强烈建议对的操作还是在Linux下进行,以减少出错的可能性。
也许是我RP不咋滴,唉。。。。
2-6.boot的解包、打包
Boot能修改的地方现在也越来越多了,故在此也放上其解包、打包的方法。 也是
cramfs格式,所以用2-3.的方法就可以正常解包,这里就不作介绍了,请参考2-3
Win下的解包,在命令行模式:
rmdir /s /q boot 2>nul
cramfsck_nocrc -x boot
修改完boot后,打包稍麻烦些,要多增加一个步骤,要先将之打包成普通cramfs后再增加
RK专门的CRC校验值,这样才能正常引导系统。
CRC的校验可以在Win下操作,在命令行模式:
mkcramfs -q boot
rkcrc
del /f /q
三、固件升级
固件升级,有三种方法:量产升级、用户升级和开发工具升级,前两种升级是将所有相关的
文件打包成后用工具升级。后面一种,可单独升级某一个文件,对于没有官方固
件的情况下提取出来的文件,因为缺少相关的文件,所以没办法打包成,用量产
工具和用户工具就没办法对其升级了。所以只能使用开发工具来升级。
开发工具升级的好处就是,不用将全部文件都重新升一次,只需将其中修改过的文件重新升
级即可,其它文件无需再将升级,比如,修改了后只升级它即可,修改了
后单独升级即可。因为不用升级所有文件,对于修改后的固件测试,可大大的
减少等待的时间。
以下对其进行简单的补充,
1.用开发工具单独升级某个文件后有时也会出现莫名的问题,比如测试时好的,重新开机
后或者还原出厂设置后就出问题了。所以还是建议测试OK后再打包用量产工具或用户工具
重新再升级一次较好。(主要针对有官方固件的同鞋,山寨机的就将就一下使用了。)
2.用开发工具升级是OK的,但打包后用量产工具升级过程中,校验时出现错误,一般都
是HWDEF里system分区的size的问题,导致偏移量冲突,此时适当的修改一下system的
size即可。
唉,死了不少脑细胞,感觉还是不太满意,不怎么通俗易读。暂时就这样吧,实在不行哪
天兴致来了再发第三版。
教程中难免会有错误之处,欢迎指正!
locke
不设回复可见,沉了就沉了,沉了说明这教程写的不好。。。