声明:网上的中文教程很多但是不完整(无图无真相嘛。。),所以博主完整地翻译了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包解压。
2、删除Base Rom
的System文件夹里的app
、framework
、media
这几个文件夹。
注意:移植已于Kitkat(4.4)的Rom的时候你还要删除priv-app
这个文件夹。
3、将Port Rom
的System文件夹里的app
、framework
、media
这几个文件夹复制到Base Rom
中。
4、然后在资源管理器中分别打开Base Rom
和Port Rom
的etc
文件夹。
然后将Port Rom
的etc\permissions
中所有文件复制到Base Rom
的相应文件夹中。
接着就是处理etc/init.d
中的文件。将Base Rom
除banner
以外的文件删掉,然后将Port Rom
中除banner
以外的文件复制过去。
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 Rom
的build.prop
的ADDITIONAL BUILD PROPERTIES配置段有类似图中的相关代码(图中高亮),也要复制到Base Rom
的build.prop
中。
6、修改刷机脚本。
将Port Rom
的刷机脚本(位于META-INF/com/google/android/updater-script)中的设置权限set_perm*
的段落复制到Base Rom
中替换Base Rom
中的相应条目。
7、如果Port Rom
的system
目录中还有其他多出来的目录也要一并拷贝到Base Rom
的system
目录当中。
8、接着就是打包成卡刷包。线刷包不在本文的讨论范围。
对于移植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
的相应位置,同事增加一句赋予权限的命令道刷价脚本: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.xx
针对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 name="skip_restoring_worK_selection">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)
记录到手机上
有两种方法将日志记录到手机上
关于如何让PC能记录手机的运行日志/HOW TO MAKE PC READY FOR LOGCAT?
For Windows
1、先下载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+鼠标右键,然后点击在此处打开命令窗口。
For Linux
注意:如果你使用的是64位的Linux系统,你则需要下载相关的32位的库文件。
1、开始之前先更新一下系统(以Ubuntu为例)
sudo apt-get install ia32-libs
2、然后就是确认是否安装了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-adb
3、接着安装fastboot
sudo apt-get install android-tools-fastboot
接下来的指令要看仔细了
4、新建文件夹
cd ~ mkdir android mkdir –p android/sdk
5、解压下载好的JDK
tar -zxvf ~/Downloads/android-sdk_r21.0.1-linux.tgz
6、然后将SDK的文件件移动到刚才新建的文件夹里边
mv android-sdk-linux ~/android/sdk
7、然后通过以下命令运行android sdk manager
android/sdk/tools/android
本文由逗妇乳翻译,盗版必究。
待更新
看下,没用安卓
这些好像看不了,没达到这个知识水平
已经用到Ubuntu了,还不如直接用源码适配。miui的patchrom,深度的deep都有分支,直接下下来用。只要不怕慢,适配比移植稳定多了。
你文章怎么挂了?
移植小白可玩
支持个,移植还是不太会,移植包容易出现BUG,还有屏幕分辨率不同移植会很麻烦
有些rom的确会这样,没有相关分辨率的资源
移植的是不是不稳定?
看移植的人的技术
怎么突然搞起刷机包了?
只是朋友要求我翻译一下
路过,支持了。。
其实就是把ROM的framwork下的apk以及一部分jar和app下的全覆盖底包再调试就好了
armv6和armv7就是低端机和高端机。。。低端的能移植到高端的,高端的不能到低端的。还有不要移植不同分辨率的就好了
yellowpage.db?有点意思 :-P
yellowpage是黄页的意思,请勿想歪(黄页,起源于北美洲,1880年世界上第一本黄页电话号簿在美国问世,至今已有100多年的历史。黄页是国际通用按企业性质和产品类别编排的工商企业电话号码簿,以刊登企业名称、地址、电话号码为主体内容,相当于一个城市或地区的工商企业的户口本,国际惯例用黄色纸张印制,故称黄页。)
我知道黄页,但是不知道黄页的英文是yellowpage
第一幅图中“被”写错了。。。我今天才知道万网域名是www.net.cn而不是net.cn
谢谢提醒,早就知道是www.net.cn了net.cn是cnnic的sld