教会网-生活常识知识分享
  • 微信客服微信客服
  • 微信公众号微信公众号
您现在的位置是:首页 > 科技

怎么移植rom(怎么移植后总有一种大便的感觉?)

教会网 2022-10-22

怎么移植rom

(1)下载自己设备的官方ROM(假设文件名是myrom.img)和想移植的第三方自定义ROM(假设文件名是newrom.img)

怎么移植rom(怎么移植后总有一种大便的感觉?)

(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 刷机了。

成功启动后,如果看到显示不正常的话,可能因为移植的ROM与我们设备的分辨率不一样。比如我把极光ROM移植到领先版2后就遇到这个问题。

我是通过添加如下设置到新ROM的/system/build.prop文件来解决的。

################

ro.sf.lcd_density=125

################

125这个值是我试出来,在领先版2下可以正常显示的。你可以自己改成喜欢的数值(在100-200期间改)。

rom怎么移植?

1、对应自己机型的rom kitchen(即厨房,不同的厨房功能不尽相同,然而基本功能都一样:分解/合成rom,只是分解得有多深罢了。我在用的这个是NTC_HTC S1厨房,下载地址: ,可供大家参考。本教程也以此kitchen为示例,向大家讲述移植过程)。 2、xipporterex22-37(一个XIP移植工具,其实还有别的功能的。内有22-37共15个工具,而我用到的只有32。该工具在上面的NTC_HTC S1厨房中有包含)。 3、Beyond Compare 3(一个文件比较工具,在移植基本组件及排查故障时经常用到。)所谓“移植”,就是使别的rom能够结合你机子的硬件而在你的机子里运行,的这么一个结合过程。不同的机型有不同的硬件或驱动,若直接拿取作自己的系统, 会刷成白屏甚至变砖的。那么,移植工作往往需要两个rom,就是你机子自带的rom,和你想要被移植的目标的rom(以下简称“目标rom”)。当然,你 也可使用“模板”来移植,这一点我们稍后再作了解。 总体流程:分解rom——移植XIP——移植SYS——移植OEM——定制OEM(可选)——修改initflash.dat——使用mybuildOS开始定制——合成rom下面简要说一下各步骤:分解rom:需 要分解两个rom(是哪两个rom呢?上面有说明)。不同品牌机型有不同的刷机rom,比如有*.bin格式、*.os.nb格式、*.nbh格式 和*.img格式等等,然而要注意的是rom的压缩方式。压缩方式分两种:XPR和LZX。不同格式需要的分解工具是不同的。像LZX压缩方式,代表就是 乐讯K800。XPR的机型比较多,如睿峰、睿智、金鹏M9I等我们都熟知的高仿机型。要分解rom,请明确你要分解的rom的压缩方式。 除了查阅相关资 料外,这里倒有一个方法:尝试把目标rom放在你的kitchen工具里分解以下,看分解后得不到OEM文件夹吗?分解出的SYS文件夹内只有那么零星几 个文件吗?如果两个问题答案都为“是”,那么就证明,这个rom的压缩方式和你的自带rom不同了。此时你需要用针对此压缩格式的kitchen来分解 了。移植XIP:XIP 就是机子的核心信息了。移植XIP用到的工具,我向大家推荐的是xipporterex22-37。这是一个一键式移植工具。使用方法简单,可在网上找到 相关资料。我是用22-37中的32的。通过此软件移植出来的新XIP:xip_out.bin,可以根据你的kitchen的操作提示植入。刚才我们说的,分解rom,分解出来后可以得出两个文件:SYS和OEM(有的kitchen工具只分解出DUMP文件夹,这时怎么办呢?请参考文章末尾的常见疑难及参考解答)。移植SYS:移植SYS,就是保留你原机自带ROM分解出来的SYS文件夹下的.ROM文件夹、.VM文件夹、和Metadata文件夹下的packages.cif及 packages.sof文件。其他的删除。然后把目标ROM分解出的SYS文件夹下的除了.ROM文件夹、.VM文件夹和Metadata文件夹外的所 有文件复制到自带ROM的SYS文件夹中去,再把目标ROM中SYS\\Metadata文件夹中的除了packages.cif及 packages.sof文件之外的文件复制到自带ROM的SYS\\Metadata下。这样进行文件替换即可。 移植OEM:通常,分解出的OEM文件中,虽然也有不少的文件,但可找到OEMDrivers、OEM_DPI_96、OEM_Lang_0804、OEMMISC这四 个文件夹和一张OEM.cer的证书。证书几乎是通用的,大可不必替换。而上面的这4个文件夹OEMDrivers、OEM_DPI_96、 OEM_Lang_0804和OEMMISC,对于哪个保留哪个替换,网上有几种说法,而经验认为,可只保留并必需保留原机的OEMDrivers(当然,如果你移植的不是rom,而是“模板”,那么保留的东西将会是不同的,这一点我们在文章末尾的常见疑难及参考解答中再作说明)。其他的可用目标rom 的替换。为保证成功,请参照上面移植SYS的方法,把文件删了再进行复制,而不要直接复制。这两种替换方式是不同的。定制OEM包:定制OEM包,可把你喜欢的软件捆绑进你的ROM内,成为机子自带软件,但随着自带软件增多,会影响机子的运行速度。而定制OEM包也并不是移植ROM必需的步骤,故在此我们不作说明。 修改initflash.dat:修改initflash.dat文件,其实就是修改开始菜单的快捷方式。initflash.dat文件一般放在OEM\\OEM_Lang_0804下。打 开时请用相关软件,把编码译为Unicode码。这里提供给各位的参考软件为:Unicode和Notepad2。各位可通过查看此文件,看看程序是如何 建立快捷方式的,从而作出修改。而在ROM移植中,如果你的自带rom为纯净ROM ,并且不打算自行(自行,指的是,不通过mybuildOS来定制)定制OEM包,那么这一步可忽略了。如果你的自带ROM不是纯净ROM的话,关于提 纯,我们在文章末尾再作讨论。使用mybuildOS开始定制:mybuildOS 程序能根据你修改后的SYS和OEM文件夹,制造出一个DUMP文件夹,从而提供给工具作合成ROM素材使用。打开mybuildOS程序(通常第一次运 行,会提示cannot find file config.int,这并不影响正常使用,因config.int文件,是使用mybuildOS点击保存后,生成的一个文件,其用意只是方便你在下次 使用mybuildOS时,不必再做相关设置而已)。我们可以看到的分为两种情况: 1、空白的,什么都没有。这种情况是因为缺少option.xml文 件,通常在ROM-ROM移植时出现; 2、里面有软件可选。这种情况通常在移植模板时出现。针对第二种情况,我们在文章末尾再做说明。而第一种情况,虽然 界面空白,然而大可不必理会,只需要直接按下界面上的运行按钮进行定制就可以了,而这样定制的意思是,默认你已选择了跟随目标ROM移植过来的所有软件。使用mybuildOS,经常会出现问题的。而常见的问题有以下两种: 1、文件重复(already exists):通常为OEM文件夹中某文件与SYS文件夹中某同名文件相同(所谓相同,指的不仅仅是名字相同),可在界面下方找到该问题文件所在目录。 删除其一即可。而我建议各位,删除OEM中的为佳(如问题文件在OEMDrivers目录中,则删除SYS中的最好,强烈建议各位,不要改动 OEMDrivers中的文件)。这里推荐大家使用文件比较器Beyond Compare 3。比较前请先备份。细心比较不要删错了。尤其是不要看见凡是同名的都删掉。要具体分析一下。 2、initflash.dat文件缺失(String reference not set a instance of a String.Parameter name:s)。该问题是由于OEM_Lang_0804文件夹下的initflash.dat缺失所致。此外还有别的问题,不常出现,然而大家可另阅资料。这里提供一个网址: /viewthread.php?tid=811highlight=mybuildOS 内里有些许别的问题的解决方案。合成rom:通过mybuildOS定制后,可进行ROM合成。值得注意的是,合成的是经改造后的自带ROM,这一点很多人初学的朋友是搞不清楚的,贯穿ROM移植的基本原理,就是拿新的东西去更新自己。合成后改名,进行刷机即可。说到这里,系统移植算是结束了。

安卓ROM移植教程

如果转换过程中失败了,应该是JAVA的版本低了,升级到最新的JRE试一下。当然

也可以不合并,并不影响ROM的移植。替换MT4G专用的文件,一般我们下载的MIUI

ROM都是Desire

HD的,我们下载了以后,要先把MT4G专用的文件替换进去:boot.img

和bcm4329.ko

分别为内核和无线驱动,一般来说换内核必换的system/lib/modules/bcm4329.ko,这个文件是wifi和蓝牙驱动,不同内核的驱动不同,如果不换wifi和蓝牙只会提示错误

这个前面介绍过了。这个可以从我以前的ROM中拿,也可以自己下载CyanogenMod

7的小4

ROM中提取。也可以到XDA上面下载新的AOSP核心。bin/目录下的2个文件,awb_camera和lsc_camera

这2个是相机相关文件,用Desire

HD的就会出现前置倒置的问题,etc/firmware

这整个文件夹都可以替换掉(注意,是etc下面的firmware)etc/目录下

A1026_CFG.csv、

AdieHWCodec_WA.csv、AdieHWCodec.csv、media_profiles.xml、NOTICE.html.gz音频解码和视频相关配置,替换掉etc/gps.conf

GPS的配置,可以自己去搜一下,了解如何改后,可以自己动手改一下。lib/hw/目录下,从我的ROM中提取后替换掉。

lib/modules/bcm4329.ko

WIFI驱动,替换掉。lib/目录下的.SO文件,从我的ROM中和Desire

HD官方ROM中对比文件大小,不一样的就是可以替换的,可以从我的ROM中拿,也可以去CM7的ROM中拿,注意:千万要看好了,是在用我ROM和Desire

HD官方ROM对比文件大小,不要拿CM7的对比,替换错了会开机卡在第一屏。usr/目录下的keylayout和keychars2个文件夹是键盘相关文件,可以直接从我的ROM中提取替换。,到此为止,简单的工作都做完了。下面要开始修改文件了。修改刷机脚本

这个文件嘛,一般是留名用的:

主要改以下几个地方:1、ro.product.locale.language=hdpi(或者有的机型是mdpi

ldpi)

ro.product.locale.region=改成ro.product.locale.language=zh

ro.product.locale.region=CN

这样开机第一次锁屏的时候就是中文2.

ro.build.description=

后面改成你想要的,也就是你作品的名字

ro.product.version=

这里也可以改成你作品的名字或者版本号,一般我们留为基于制作的官方系统的驱动版本号3、ro.sf.lcd_density=

后面一般为240。

4、ro.ril.def.agps.mode

=

2

听说改成0可以加速gps定位省流量

请对照我提供的文件进行修改,这样,我们的移植就算完成了,接下来就是生成ROM了,我们用压缩工具将ROM打包成zip格式,注意目录结构,生成的zip根目录就有MATE-INF和system,别搞错了。将打包好的zip文件拷到工具包当中,改成update.zip,再双击sign.bat进行签名,签名后就生成了update_signed.zip了。

把签名后的ROM拷到卡上刷机吧~~

这是Mytouch

4g的,你按照步骤来,可能会有所帮助

怎样移植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

romboot.ing怎么移植

下载完ROM以后,用解压工具解压到一个目录,先将odex合并到apk文件中去,这里要用到工具,odextools.zip,下载详情请见安智论坛。

转换好会放到另一个文件夹里面,把原来的文件删掉,把生成的放回去就可以了。如果

转换过程

中失败了,应该是JAVA的版本低了,升级到最新的JRE试一下。当然,也可以不合并,并不影响ROM的移植。.

替换自己手机专用的文件,一般我们要下载近似机型的ROM,我们下载了以后,要先把自己手机专用的文件替换进去:boot.img和bcm4329.ko分别为内核和

无线驱动

,一般来说换内核必换的system/lib/modules/bcm4329.ko,这个文件是wifi和

蓝牙驱动

,不同内核的驱动不同,如果不换wifi和蓝牙只会提示错误。这个可以从

CyanogenMod

7的ROM中提取。也可以到XDA上面下载新的AOSP核心。bin/目录下的2个文件,awb_camera和lsc_camera这2个是相机相关文件,

etc/firmware这整个文件夹都可以替换掉(注意,是etc下面的firmware)

etc/目录下A1026_CFG.csv、AdieHWCodec_WA.csv、AdieHWCodec.csv、media_profiles.xml、NOTICE.html.gz

音频解码和视频相关配置,替换掉

etc/gps.conf

GPS的配置,可以自己去搜一下,了解如何改后,可以自己动手改一下。lib/hw/目录下,从原来ROM中提取后替换掉。

lib/modules/bcm4329.ko为WIFI驱动,替换掉。lib/目录下的.SO文件,可以去CM对应版本的ROM中拿(

CM7

为2.3,

CM9

为4.0,

CM10

为4.1),注意:千万要看好了,是在用官方ROM和基础ROM对比文件大小,不要拿CM7的对比,替换错了会开机卡在第一屏。usr/目录下的keylayout和keychars2个文件夹是键盘相关文件,可以直接从我的ROM中提取替换。到此为止,简单的工作都做完了。

下面要开始修改文件了。

修改

刷机

脚本

updater-script

这个比较简单,一般只要修改前面几行,把条件改一下,再加一段

欢迎词

,请对照我提供的文件进行修改。

修改build.prop

system/build.prop

这个文件嘛,一般是留名用的:

主要改以下几个地方:

1、ro.product.locale.language=hdpi(或者有的机型是mdpi

ldpi)

ro.product.locale.region=

改成ro.product.locale.language=zh

ro.product.locale.region=CN

这样开机第一次锁屏的时候就是中文2.ro.build.

description

=

后面改成你想要的,也就是你作品的名字

ro.product.versi

on=

这里也可以改成你作品的名字或者版本号,一般我们留为基于制作的官方系统的驱动版本号

3、

ro.sf.lcd_density=

后面一般为240。

4、

ro.ril.def.agps.mode

=

2

听说改成0可以加速gps定位

省流量

请对照我提供的文件进行修改,

这样,我们的移植就算完成了,接下来就是生成ROM了,我们用压缩工具将ROM打包成

zip格式

,注意目录结构,生成的zip根目录就有MATE-INF和system,别搞错了。将打包好的zip文件拷到

工具包

当中,改成update.zip,再双击sign.bat进行签名,签名后就生成了update_signed.zip了。

文章版权声明:除非注明,否则均为教会网原创文章,转载或复制请以超链接形式并注明出处。
相关标签: