rom移植

(1)下载自己设备的官方ROM(假设文件名是myrom.img)和想移植的第三方自定义ROM(假设文件名是newrom.img)  (2)解包。      在网上找到unimg工具。把unimg和ROM文件myrom.img和newrom.img都放在同一个目录下(假设是d:\rom目录)。把myrom.img和newrom.img文件分别拖到unimg上就可以开始解包。解包后,可以得到一个myrom.img.dump和newrom.img.dump的目录。      在d:\rom目录下新建两个目录,myrom和b。把myrom.img.dump目录中的RFSFAT16_BOOT_00000000000文件复制到myrom目录下。把newrom.img.dump目录中的RFSFAT16_BOOT_00000000000复制到newrom目录下。  (3)更新boot分区文件      在网上找bootimg工具。也放到d:\rom目录下。然后打开命令行窗口。依次输入如下命令      d:      cd \rom\myrom      ..\bootimg.exe --unpack-bootimg RFSFAT16_BOOT_00000000000      (此命令会输出一些重要的信息,请一定要记下来,等一下打包boot文件时需要用到)      ..\bootimg.exe --unpack-ramdisk      cd ..\newrom      ..\bootimg.exe --unpack-bootimg RFSFAT16_BOOT_00000000000      ..\bootimg.exe --unpack-ramdisk      这样就可以看到在myrom目录和newrom目录下分别解包出如下文件      kernel       :Linux内核文件,这个文件不同设备有不同。所以为什么我们直接刷别人的ROM可能会出现白屏问题。      initrd目录   :这其实就是系统的根目录      cpiolist.txt :记录着initrd目录中每个文件的权限和用户信息,这文件是为了等一下打包用的。我们不用管它。       下面,把myrom目录和newrom目录中的initrd目录下的init.sun4i.rc目录分别打开(请不要用记事本或写字板打开这个文件,因为这文件是UNIX格式,如果你用记事本或写字板打开,保存后会自动变成DOS格式,会破坏文件格式)      找到加载驱动的地方,如下图。把myrom目录中init.sun4i.rc文件中对应的内容,替换掉newrom目录中init.sun4i.rc的对应内容。      并记下myrom文件中要使用的驱动的文件名(等一下要更新system分区时需要用到)。         ################################           # insmod vibrator                   insmod /system/vendor/modules/sun4i-vibrator.ko   (这是振动器驱动,如果不想使用振动器,可禁用这行)               chmod 777 /sys/class/timed_output/sun4i-vibrator/enable   (如果禁用了振动器驱动,也要同时禁用这行)            #insmod key & tp driver               insmod /system/vendor/modules/goodix_touch.ko     (这就是触控驱动,通常替换这个驱动已经足够)               insmod /system/vendor/modules/sun4i-keyboard.ko            # insmod mali driver                insmod /system/vendor/modules/ump.ko               insmod /system/vendor/modules/mali.ko            #csi module               insmod /system/vendor/modules/videobuf-core.ko               insmod /system/vendor/modules/videobuf-dma-contig.ko               insmod /system/vendor/modules/gt2005.ko               insmod /system/vendor/modules/sun4i_csi0.ko      ################################       把更新后的newrom目录中的init.sun4i.rc文件保存到myrom目录中,替换myrom目录的对应的文件。      下面开始重新打包boot分区,请打开命令行窗口,依次输入如下内容:      d:      cd \rom\myrom      ..\bootimg.exe --repack-ramdisk      ..\bootimg.exe --repack-bootimg 0x40000000 "console=ttyS0,115200 rw init=/init loglevel=8" 2048 2048      (repack-bootimg后面的一大堆参数是根据之前unpack-bootimg时得到,请大家一定要改为自己设备对应的参数,否则无法启动)       打包成功后,得到boot.img文件。把boot.img文件改名为RFSFAT16_BOOT_00000000000,并复制到myrom.img.dump目录下,替换原来的文件。  (4) 更新system分区,如下操作需要在Ubuntu下完成。       把myrom.img.dump和newrom.img.dump中的RFSFAT16_SYSTEM_000000000文件复制到Ubuntu系统下的/root目录,分别改名为system-myrom和system-newrom,       上网下载ext4_utils工具,并编译出simg2img,mkuserimg.sh,make_ext4fs 三个程序。并复制到/root目录下。       然后依次输入如下命令:       cd /root       ./simg2img system-myrom system-myrom.img       ./simg2img system-newrom system-newrom.img       mkdir /mnt/img /mnt/img2       mount -o loop system-newrom.img /mnt/img       mount -o loop system-myrom.img /mnt/img2       这时候,你就可以看到两个ROM的/system分区的内容。下面我们可以把官方ROM中的驱动复制到新ROM中。       cd /mnt/img/vendor/modules       cp -p /mnt/img2/vendor/modules/需要的文件.ko ./       哪些文件要复制过来,就要看(3)中你的设备要用哪些驱动了。       #########################          下面的文件是否需要替换,就要看你的设备与新ROM的区别大不大了,我的领先版2就没有替换这些文件。          /mnt/img/lib/hw/*.*          /mnt/img/lib/libhardware*.*       #########################       把驱动替换完毕后,就开始打包。      cd /root/      ./mkuserimg.sh -s /mnt/img RFSFAT16_SYSTEM_000000000 ext4 system 256M      最后一个参数是说把system打包成一个256MB的分区镜像,如果你的system大于256MB的话,程序执行会出错,试试改为512M。      把RFSFAT16_SYSTEM_000000000复制回到windows中,替换掉myrom.img.dump目录中对应的文件。      最后一步,打包。打开命令行      d:      cd \rom      verifycalc myrom.img.dump\RFSFAT16_SYSTEM_000000000 myrom.img.dump\RFSFAT16_VSYSTEMFS_000000      verifycalc myrom.img.dump\RFSFAT16_BOOT_00000000000 myrom.img.dump\RFSFAT16_VBOOT_0000000000      unimg -e myrom.img      打包后的myrom.img 就可以用livesuite 刷机了。    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值