声明:网上的中文教程很多但是不完整(无图无真相嘛。。),欧博注册所以博主完整地翻译了XDA上的一篇文章。 谢绝搬运,谢谢。 博主是这方面初学者,若有什么地方翻译不正确请指正。 原文指出只适用于移植armv6设备的rom到armv7设备上边,不能反过来移植armv7设备的rom到armv6设备上。但是博主的理解是同cpu的可以不用太在意这句话。准备工作1、你需要一个底包(以下简称Base Rom,欧博代理你手机刷了能正常运行的Rom),国内的脑残搬运教程都说要系统版本对应(和将要移植到你手机(设备)上的rom包的系统版本要一样),这个不一定的,当然,欧博官网你什么都不会的话最好系统版本对应,而且选择纯净CM作为底包移植成功的几率比较大。 2、光有底包课不够,还需要一个将要移植到你手机(设备)上的rom包(被移植包,以下简称Port Rom) 3、修改工具。 Winrar, Notepad++(或者你喜欢的文本编辑工具,欧博娱乐不要用Windows系统默认记事本)移植教程1、先用Winrar将两个Rom包解压。 port_a_rom_simpliest_01 2、删除Base Rom的System文件夹里的app、framework、media这几个文件夹。 注意:移植已于Kitkat(4.4)的Rom的时候你还要删除priv-app这个文件夹。 port_a_rom_simpliest_02 3、将Port Rom的System文件夹里的app、framework、media这几个文件夹复制到Base Rom中。 port_a_rom_simpliest_03 4、然后在资源管理器中分别打开Base Rom和Port Rom的etc文件夹。 port_a_rom_simpliest_04 然后将Port Rom的etc\permissions中所有文件复制到Base Rom的相应文件夹中。 port_a_rom_simpliest_05 接着就是处理etc/init.d中的文件。将Base Rom除banner以外的文件删掉,然后将Port Rom中除banner以外的文件复制过去。 port_a_rom_simpliest_06 5、接着要改造build.prop。 打开Base Rom中的build.prop,将以下参数修改成你喜欢的。这个就不截图了。 ro.build.id=ro.build.display.id= ro.build.date= ro.modversion= 接着将以下参数改成和Port Rom的build.prop中的一样 ro.config.ringtone=ro.config.notification_sound= ro.config.alarm_alert= port_a_rom_simpliest_07 如果Port Rom的build.prop的ADDITIONAL BUILD PROPERTIES配置段有类似图中的相关代码(图中高亮),也要复制到Base Rom的build.prop中。 port_a_rom_simpliest_08 6、修改刷机脚本。 将Port Rom的刷机脚本(位于META-INF/com/google/android/updater-script)中的设置权限set_perm*的段落复制到Base Rom中替换Base Rom中的相应条目。 port_a_rom_simpliest_09 7、如果Port Rom的system目录中还有其他多出来的目录也要一并拷贝到Base Rom的system目录当中。 8、接着就是打包成卡刷包。线刷包不在本文的讨论范围。 port_a_rom_simpliest_10 对于移植MIUI附言(翻译可能有误)1、将Port Rom中的telocation.db和yellowpage.db(都位于/system/etc)复制到Base Rom的相应位置。 2、将Port Rom中的content-types.properties(位于/system/lib)复制到Base Rom的相应位置。 3、将Port Rom中的invoke-as(位于/system/xbin)复制到Base Rom的相应位置,欧博allbet同事增加一句赋予权限的命令道刷价脚本:set_perm(0, 0, 06755, "/system/xbin/invoke-as");(针对MIUI4)。 4、将Port Rom中的liblbesec.so(位于/system/lib,有了这个才能正常开启Root)然后在updater-script添加一句设定权限的 set_perm(0, 0, 0755, "/system/lib/liblbesec.so");5、修改build.prop的相关选项 ro.build.id=MIUI ro.build.display.id=MIUI ro.build.version.incremental=2.x.x (version number) ro.config.ringtone=MI.ogg ro.config.notification_sound=FadeIn.ogg ro.config.alarm_alert=GoodMorning.ogg ro.config.sms_received_sound=FadeIn.ogg ro.config.sms_delivered_sound=MessageComplete.ogg对于移植ParanoidAndroid和PAC的附言1、将Port Rom中的paranoid文件夹(位于/system/etc)复制到Base Rom的相应位置。 2、然后修改刷机脚本,增加一句用于配制权限的命令。 set_perm(1000, 1000, 0644, "/system/etc/paranoid/properties.conf");针对PA的修改用Notepad++打开Port Rom的build.prop,将ADDITIONAL BUILD PROPERTIES配置段的相关配置行复制到Base Rom的build.prop的相应位置。 #Depends on Resolution Of your device can be pa_hdpi/pa_mdpi/pa_xhdpi. Change it according to your device. ro.pa.family=pa_mdpi #Depend on pa version. Replace x.xx with the version of PA you are porting. ro.pa.version=x.xxport_a_rom_simpliest_11 针对PAC Rom的特定修改和上面一样,相关配置段如下。 #Replace the x.x.x with your PAC Rom version ro.pac.version=x.x.x #Customize these lines according to your wish. ro.pacrom.version=mesona_PAC_jb-alpha-v19.0.0 ro.modversion=mesona_PAC_jb-alpha-v19.0.0 #Depends on Resolution Of your device can be pa_hdpi/pa_mdpi/pa_xhdpi. Change it according to your device. ro.pa.family=pa_mdpi #Depend on pa version. Replace x.xx with the version of PA you are porting. ro.pa.version=x.xx #Modify this line according to your AOKP version ro.aokp.version=mesona_jb-Milestone-1 #Modify it according to your base ROM's build.prop ro.cm.version=xxxxxxxxxxxx针对HTC手机的特殊修改1、修复自动搜索网络。 反汇编framework-res.apk 打开\framework-res\res\values\books.xml,将<bool>true</bool>中的true修改成false 2、修复显示问题 反汇编framework.jar 将以下文件替换成原生(不是Base Rom,是官方包)的framework.jar中的相应文件。 smali\smali\android\os Environment SystemProperties smali\smali\android\view HardwareCanvas HardwareRenderer$Gl20Renderer HardwareRenderer$GlRenderer HardwareRenderer 处理BOOTLOOP(无限重启?)将以下文件从Port Rom复制到Base Rom的相应位置 libandroid_runtime.so libandroid_servers.so libmedia_jni.so 原文有这么一句话: IF YOUR BASE ROM HAS ISSUES LIKE CAMERA ISSUE THAN YOUR PORTED ROM TOO WILL HAVE ISSUES.意思是移植的Rom会继承Base Rom的Bug 如果你需要一键移植,请查看[TOOL] Rom Porter 或者[Tool] ROM Porter 本文由逗妇乳翻译,盗版必究。 Rom调试之日志记录(LOGCAT)有两种记录日志的方法记录到手机上(例如你手机正在booting,即启动虚拟机的时候) 通过adb(处理bootloop) 记录到手机上有两种方法将日志记录到手机上 通过app: 或者 通过终端模拟器(参考通过adb记录日志) 关于如何让PC能记录手机的运行日志/HOW TO MAKE PC READY FOR LOGCAT?For Windows1、先下载ANDROID SDK(传送通道)直接安装或者解压到你喜欢的目录。 2、同时还要安装配置Java JDK 本教程中假设根目录为C:,ANDROID SDK的主要目录为Android 在资源管理器中打开Android SDK的安装目录,并且双击打开SDK Manager.exe 勾上Android SDK Tools和Android SDK Platform-tools 然后将你的手机连接到电脑(必须确保启用了USB调试模式) 接着在资源管理器中打开C:/Android/android-sdk/ 对着文件夹platform-tools按下shift+鼠标右键,然后点击在此处打开命令窗口。 port_a_rom_simpliest_14 For Linux注意:如果你使用的是64位的Linux系统,你则需要下载相关的32位的库文件。 1、开始之前先更新一下系统(以Ubuntu为例) sudo apt-get install ia32-libs2、然后就是确认是否安装了Android SDK(传送门)和Java JDK 安装Java JDK的命令如下: sudo add-apt-repository ppa:ferramroberto/java sudo apt-get update sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-plugin OR $ sudo add-apt-repository ppa:sun-java-community-team/sun-java6 $ sudo apt-get update $ sudo apt-get install sun-java6-jre sun-java6-bin sun-java6-jdk或者你可以很简单地装上这两个东西(感谢@Androguide.fr) sudo add-apt-repository ppa:phablet-team/tools sudo apt-get install android-tools-adb3、接着安装fastboot sudo apt-get install android-tools-fastboot接下来的指令要看仔细了 4、新建文件夹 cd ~ mkdir android mkdir –p android/sdk5、解压下载好的JDK tar -zxvf ~/Downloads/android-sdk_r21.0.1-linux.tgz6、然后将SDK的文件件移动到刚才新建的文件夹里边 mv android-sdk-linux ~/android/sdk7、然后通过以下命令运行android sdk manager (责任编辑:) |