%e5%ae%89%e5%8d%93 category
快来DIY自己的固件吧——N系列固件DIY详细教程(7.27更新RK2918)【转】
发表于:2012年06月11日  分类:安卓  添加评论  226 次浏览 

在写这篇教程之前,特别感谢本论坛的lajidong大神,他的DIY工具让这一切变得如此简单!

正文开始:

我们为什么要DIY固件?DIY固件的好处是什么?

通过DIY固件,我们可以打造自己专属的安卓界面,可以使你的智能机安装更多的程序,支持更多的应用,充分发挥你手中机器的智能所在!

还等什么,快随探花来玩转固件,享受DIY的乐趣吧!

注:本文以RK28(N3 N5系列)为主进行讲解,RK2918系列(N10、N50等)大体相同,可参考!

本篇需要用到的工具:
1,DIY固件工具包(已添加N5-Pro2支持)
2,增强型记事本
3,7Z解压工具
4,IDB擦除工具
5,量产工具

以上工具在本篇最后附有下载地址!

一,固件的解包与封包

   使用lajidong大神提供的DIY固件工具包,可以很轻易的对RK28系列(如N3 N5系列等)固件做出解包与封包工作。首先将下载的固件名字改为“update.img”放入DIY固件工具文件夹内,然后执行文件夹中的“固件解包.bat”即可,等待窗口程序运行完成即可,解包后的文件在本文件夹内“Temp”下。

1.jpg

2011.4.1 21:57 上传

下载附件 (74.39 KB)

注意:
1、请将名为update.img固件放在本工具包目录;
2、本工具包需放在NTFS分区里;
3、以前遗留的同名文件将被覆盖

   修改完成后对应你的机型点击“XX固件打包”工具即可完成打包,会在该文件下内生成名为“update_new.img”的新固件,通过该工具打包后的固件已经默认开启ROOT权限

2.jpg

2011.4.1 22:09 上传

下载附件 (79.84 KB)

解包后的各文件夹说明:

/Temp/boot           启动文件
/Temp/Image         内核文件
/Temp/system/      系统文件            
          /system/app    系统应用程序存放目录
          /system/bin     系统的本地程序,是binary二进制的程序,里面主要是Linux系统自带的组件。
          /system/etc     系统的配置文件,比如APN接入点设置等核心配置。
          /system/fonts     字体文件夹。
          /system/framework  主要是一些核心的文件,从后缀名为jar可以看出是系统平台框架。
          /system/lib     存放的主要是系统底层库,如平台运行时库。
          /system/media    铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
          /system/usr    用户文件夹,包含共享、键盘布局、时间区域文件等。
          /system/xbin    存放系统管理工具,他们都是为系统管理员准备的,是一些系统管理和配置工具。
          /system/build.prop   属性文件,“关于MID”中所显示的软件版本、内核、机型等信息。

PS:关于RK2918方案(如原道N10 N50等)固件解包工具请参考此帖:
【RK玩家固件小组】RK2918固件解包打包教程,可以解boot哦,快来DIY你的N10吧!


二,程序精简

    首先对固件进行解包,然后进入“Tempsystemapp”文件夹,其中的程序为固化程序,你可以对应删除不需要的程序及应用以达到开机加速及精简的效果。

RK2918程序精简指南:极速平板,玩转N10——安卓2.3固件程序精简建议指南

N3系列程序精简指南:【原创】原道N3_2.18固件APP超详细精简指南  (作者:wairen11)

N5-PRO2官方固件精简指南官方固件全部APP说明及精简建议 (作者:jade175)

    进入“Tempsystemfonts”文件夹,你可以删除不需要的字体,比如“adobefonts”这个文件夹,除了自带的电子书会用到,其他的程序基本不会调用该字体。

    进入“Tempsystemmedia”文件夹,你可以删除“bootanimation.zip”(开机logo)这个文件,删除后会启用默认logo(关于LOGO的美化在后文会提到)

    进入“Tempsystemmediaaudio”文件夹,你可以删除“alarms”(闹钟铃声)以及“ringtones”(来电铃声)这两个文件夹。

三,程序扩容

    这里稍微复杂一点点,不过其实看明白很简单,只要你按照做一次,你就会了,下面继续:

1,修改 HWDEF 文件

用记事本打开“Temp”下的“HWDEF”文件,如下图,

3.jpg

2011.4.1 22:09 上传

下载附件 (86.75 KB)

你会看到

userdata        0x000CA000:0×00080000:

这行字,这里表示用户分区,那么到底是多少呢?我们打开系统计算器,点击到十六进制 输入 80000 ,

4.jpg

2011.4.1 22:06 上传

下载附件 (53.83 KB)

然后切换到十进制,你可以看到数值换算为 524288 ,

5.jpg

2011.4.1 22:06 上传

下载附件 (53.19 KB)

因为RK以0.5K为单位,又因为1M=1024K ,所以,我们将 524288K÷2÷1024K/M = 256M 这表示,我们的用户区为256M 。

   到这里,我相信大家就很明白了,如果我们要继续增加256M的可以空间,我们用系统计算器在十六进制下进行相加“80000+80000=100000”

那么,这里你就可以将这里更改为 :

userdata        0x000CA000:0×00100000:


    因为userdata分区修改变大了,那么下一个分区user也需要相应的移动,下一个分区的偏移量即为userdata分区的大小,即CA000+100000=1CA000 ,所以我们相应的修改为:

user                0x001CA000:0xFFFFFFFF:

2,修改parameter 文件

用记事本打开“Temp”下的“parameter”文件,如下图,

6.jpg

2011.4.1 22:06 上传

下载附件 (60.6 KB)

你会看到其中有这样一行字串

0×00080000@0x000CA000(userdata),-@0x0014A000(user)

这个其实是和刚才 HWDEF 文件是对应的,那么我们将该数值修改为HWDEF文件一样:

0×00100000@0x000CA000(userdata),-@0x001CA000(user)

然后保存文件即可,这样,你就完成了固件的256M扩容了,是不是很简单呢?

注意,固件扩容太大可能会导致无法开机,建议逐步增加扩容空间,以免出现问题。

关于分区的衍生:

关于HWDEF和parameter 文件里的数字,在有的固件里,比如在N5-P2原生固件里,这两个文件并不一样,这该如何修改呢?大家注意看,这里其实分区量还是一致的……

比如在HWDEF文件里:

userdata        0x000C2000:0×00080000:
user        0×00142000:0xFFFFFFFF:

在parameter 文件里为:

0×00080000@0x000BA000(userdata),-@0x0013A000(user)

似乎数值都不同,但是仔细看,这里关于用户分区其实都是0×00080000

如果你要增加一倍,即为:80000+80000=100000

那么在HWDEF里你要修改为如下:

userdata        0x000C2000:0×00100000:
user        0x001C2000:0xFFFFFFFF:

(user 偏移量为:C2000+100000=1C2000)

同理,在parameter文件里,修改为:

0×00100000@0x000BA000(userdata),-@0x001BA000(user)

(user 偏移量为:100000+BA000=1BA000)

以上……!

PS:RK2918的固件解包后仅有parameter文件,仅用修改该文件即可实现扩容!

四,固件美化

1,替换默认壁纸

  首先用7Z提取Tempsystemframeworkframework-res.apk文件

  默认壁纸为“framework-resresdrawabledefault_wallpaper.jpg”,修改一张分辨率相同的图片,然后无需解压,使用7Z打开原framework-res.apk程序直接对该图进行替换即可。

2,修改系统图标(电量图标等)

  系统图标位于“framework-res”中的assets、res两个文件夹中,用7Z提取后对应修改即可,注意大小和分辨率与原图标保持一致即可,然后如上述使用7Z直接替换即可。

3,修改原版开机logo

  默认开机logo文件为如下两个文件:

  /framework-res/assets/images/android-logo-mask.png(前景图片)
  /framework-res/assets/images/android-logo-shine.png(背景图片)

  现在了解一下原理,Android 的系统登录动画类似于Windows系统的滚动条,是由前景和背景,也就是上面这两张PNG图片组成,这两张图片也是位于../system/framework/framework-res.apk文件当中。前景图片(android-logo-mask.png)上的Android文字部分镂空,背景图片(android-logo-shine.png)则是简单的纹理。系统登录时,前景图片在最上层显示,程序代码控制背景图片连续滚动,透过前景图片文字镂空部 分滚动显示背景纹理,从而实现动画效果。

  了解后就很简单了,修改两张分辨率相同的图片,如上述使用7Z直接替换即可。

4,修改N系列开机logo

   进入“Tempsystemmedia”文件夹,找到“bootanimation.zip”(开机logo)这个文件,修改好对应的图片后,如上述使用7Z直接替换即可。
  
  删除“Tempsystemmediabootanimation.zip”文件后,系统将自动启用原版logo

5,修改自带壁纸或桌面

   进入“Tempsystemapp”文件夹下找到Launcher.apk文件,如上述方法进行替换即可。

6,修改标题栏图标

   一般来说,同系统图标一样,标题栏图标位于“framework-res”中的assets、res两个文件夹中,但是关于2.3固件需要注意的是要完美修改标题栏,还需要修改systemappSystemUI.apk 这个文件,方法同上!

五,固件深入

1,添加flash支持

   将flash动态库内的文件拷贝到“Tempsystemlib ”下即可实现flash动态支持。固件刷机后自行安装flash播放器即可播放flash文件。

   flash动态库下载地址:http://bbs.imp3.net/thread-996437-1-1.html
   FLASH主程序和播放器:http://u.115.com/file/t79cc65fb3
   (用SWF Player打开FLASH文件,选择FLASH Player播放即可)

2,固件修改去掉震动

  进入“Tempboot”文件夹,用记事本打开“init.rk28board.rc”文件,找到如下语句:

#    mount rootfs rootfs / ro remount

    write /proc/sys/kernel/panic_on_oops 1
    write /proc/sys/kernel/hung_task_timeout_secs 0
    write /proc/cpu/alignment 4
    write /proc/sys/kernel/sched_latency_ns 10000000
    write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
    write /proc/sys/kernel/sched_compat_yield 1
    write /proc/sys/kernel/sched_child_runs_first
0

在后面添加:  
  
   
write /sys/bus/spi/drivers/xpt2046_ts/MOTOenable 0

即可实在开机默认关闭震动,可以完美解决第三方桌面震动问题。

3,修改密度值

  进入“Tempsystem”文件夹,打开build.prop文件,找到如下语句

# density in DPI of the LCD of this board. This is used to scale the UI
# appropriately. If this property is not defined, the default value is 160 dpi.
ro.sf.lcd_density =
120

  修改红色所示数值即可,数值越大,密度越大,图标及字体也最大,反之亦然,N3系列建议修正为136

4,修改DATA分区

进入“Tempboot”文件夹,用记事本打开“init.rk28board.rc”文件,找到如下语句:

mount ext3 mtd@pagecache /data/data nosuid nodev
    chown system system /data/data
    chmod 0771 /data/data

修改为:
   
mkdir /data/data
    chown system system /data/data
    chmod 0771 /data/data


    修改后将让/data/data共享userdata的可用空间,即实现对DATA分区的扩容。

PS:2.3固件与2.1固件不同,在2.3固件里 原来的“init.rk28board.rc”文件被分解成“ init.rc ”与“ init.rk28board.rc ”两个文件,修改的时候需要注意。

六,固件刷机

  打包生成的新固件,大家请连接USB线,然后运行擦除工具,擦除IDB后,使用量产工具进行刷机测试,测试成功后你就可以在论坛上分享你DIY的成果了!

详细刷机过程及工具请参考
RK28系列擦除工具和量产工具及刷机办法:
http://bbs.imp3.net/thread-984075-1-1.html
RK29系列固件升级及刷机办法:http://bbs.imp3.net/thread-10332216-1-1.html

最后附上本篇所使用的DIY固件工具下载地址:

http://u.115.com/file/f64a0d5c81

衍生推荐帖:
1,N系列DIY固件系列教程——实现开机LOGO三屏动画的完全替换

http://bbs.imp3.net/thread-10310971-1-1.html

2,rk28系列,让system可写原创教程

http://bbs.imp3.net/thread-10287142-1-1.html

固定链接: http://anywang.vicp.net:8180/wp/?p=225 | 网邻's Blog

给我留言


/ 快捷键:Ctrl+Enter

留言没头像?这里教你设置头像!