ColorOS适配教程.pdf
《ColorOS适配教程.pdf》由会员分享,可在线阅读,更多相关《ColorOS适配教程.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1 ColorOS 适配教程适配教程 更改记录更改记录 版本版本 更改日期更改日期 更改内容更改内容 修订人修订人 V V0 0.1 1 2 20 01 14 4-0 03 3-1 13 3 创创建建 C Ci ir rc cl le e L Le ee e 2 目 录 1 PatchRom 使用介绍.3 1.1 选择合适的 ROM 包.3 1.2 使用 PatchRom.3 1.3 修改 boot.img.4 1.4 修改 build.prop.6 1.5 刷机.6 2 移植介绍.7 2.1 移植详解.7 2.2 工具介绍.9 2.3 移植 ColorOS Framework.9 2.4
2、移植 ColorOS App.10 2.5 相机、相册问题.12 3 注意事项.12 3 1 PatchRom 使用介绍使用介绍 1.1 选择合适的选择合适的 ROM 包包 市面上的手机都有着众多的 ROM,我们应该如何选择一个合适的 ROM 包作为基础包呢?目前提供的两套 ColorOS 分别基于 4.2 Google 源码和 MTK6589 平台开发,第三方机型 4.2 的原厂 ROM 版本都是合适的。原厂 ROM 版本虽然稳定性高,但是通常情况下原厂都会对自己的 ROM 进行大规模的修改。对于开发者而言,适配难度较大。因此开发者可以选择更接近 Google 源码的 CM 或者 AOKP
3、的包作为底包。当然,所选择的 ROM 包功能要尽量完善,稳定性尽量的高。1.2 使用使用 PatchRom ColorOS 基于不同平台发布两款不同的 PatchRom 脚本:color_2.0_patchrom_for_ 4.2_版本号.zip 和 color_2.0_patchrom_for_mtk4.2_版本号.zip。color_2.0_patchrom_for_4.2_版本号.zip 基于 AOSP 开发,适用于非 MTK 平台。color_2.0_patchrom_for_mtk4.2_版本号.zip 基于 MTK 6589 平台开发,适用于 MTK 6589、6572、6582
4、平台。MTK 6592 平台代码差异较大,用该 PatchRom 适配难度大,目前暂不支持。build:该目录存放 ColorOS 特色 APK,资源文件,库文件,smali 代码以及使用到的工具。tools:该目录存放一些工具和脚本,在订制 ROM 和编译过程中需要使用这些工具和脚本。device:第三方 ROM 包放在该目录下。执行完脚本会打包生成一个第三方订制的ColorOS ROM 包。PatchRom 使用步骤:1将升级包命名为 update.zip 放在 device 目录下;2在当前目录执行.build/envsetup.sh;4 3 cd device;make firstpa
5、tch,根据 device 目录下的 temp/reject 文件,在 device/smali路径下修改插桩失败文件;4对于非 MTK 平台机器,如果 smali/framework.jar.out 文件夹太大会导致打包失败,需要进行手动分包;5在 device 目录下执行make fullota,在 device 目录下生成 color-update.zip 就是生成的 color 升级包。注意事项:1修改 boot.img,默认打开 USB 调试,加载 oppo-framework.jar。2 对于非 MTK 平台机器,当第三方 ROM 包包含两个 framework.jar 时(例如
6、ROM包包含 framework.jar 和 framework2.jar 情况),需要修改 device/makefile 里的两个变量:ORGIN_SECOND_FRAMEWORK_NAME:填入欲编译机器第二个 framework文件名;COLOR_FRAMEWORK_JARS:填入欲编译机器的 framework 文件,主要看是否有第二个 framework。3对于非 MTK 平台机器,如果需要分包,请在 smali 文件夹下新建 XX.jar.out 格式的文件夹(例如:second-framweork.jar.out),并手动进行分包;4device/custom-update:定
7、制的文件夹,make fullota 时会直接覆盖过去,所以文件夹结构需要和升级包的保持一致,里面放一些原版不可删除的 system/app/下面的 apk或者自己新增或修改的一些文件;5 如果获取到的升级包是odex的,需要先使用deodex工具合并,默认使用apilevel15 合并命令如下:deodex.sh update.zip 如果执行出错,请尝试指定 apilevel 值,如下:deodex.sh-a 17 update.zip 1.3 修改修改 boot.img 内核 root 的关键是根文件系统中 default.prop 文件的两个属性 ro.secure 和ro.debug
8、gable 的值。根文件系统和内核一起放在 boot 分区中,如果我们能够修改 boot分区中的这个文件,那么我们就可以自己 root 内核了。5 一般来说某个机型的完整刷机包下有一个 boot.img 文件,该文件就是 boot 分区的镜像文件,安装刷机包时,会使用该文件刷写 boot 分区。Google 给 boot.img 文件定义了一个标准的格式,如果遵从这个标准格式,我们可以用下面的办法来修改它,但是如果不遵从,需要逛论坛详细的了解如何修改 boot 分区。我们在patchrom 目录下,给定一个boot.img,输入命令解压boot.img:tools/bootimgtools/s
9、plit_bootimg.pl boot.img 解压后会看到一个 boot.img-ramdisk.gz 文件,该文件即是根文件系统的压缩包。还有一个 boot.img-kernel 文件,该文件即是 Linux 内核。创建一个新的名叫 ramdisk 的目录,用于存放 ramdisk 盘中的文件。然后,提取出ramdisk 文件。命令如下:mkdir ramdisk cd ramdisk gzip-dc./boot.img-ramdisk.gz|cpio i ramdisk 目录即为手机启动后的根文件系统目录,用任何编辑器修改 default.prop 文件和 init.rc 文件。def
10、ault.prop 修改 ro.secure 和 ro.debuggable 的值为:ro.secure=0 ro.debuggable=1 init.rc 修改导入 oppo-framework.jar。如果对 framework.jar 进行了手动分包,此处也需要导入。export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/fra
11、mework.jar:/system/framework/oppo-framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar 修改完成后开始打包 tools/bootimgtools/mkbootfs ramdisk|gzip ramdisk-new.gz tools/bootimg
12、tools/mkbootimg-kernel boot.img-kernel-ramdisk ramdisk-new.gz-o oppo-boot.img 6 然后,复制到刷机目录中,替换原来的 boot.img。oppo-boot.img 需要重命名为boot.img。1.4 修改修改 build.prop 必须在 build.prop 文件中按照要求进行相应的修改。修改版本号,添加作者名和渠道。为了 OPPO 能够进行统计,以更好的帮助开发者解决问题。在任意位置添加:ro.build.author=输入开发者名 ro.build.channel=输入渠道名,个人开发者统一填“OPPO”修改
13、版本号:ro.build.display.id=ColorOS_机型_开发者_日期(例如:ColorOS_I9500_CircleLee_140312)1.5 刷机刷机 不同机器刷机步骤略有不同,这里以三星为例:1、将制作好的 zip 升级包 push 到 SD 卡,通过 adb shell 命令到 sd 卡中查看 update.zip包的大小是否一致保证 zip 包完整。如果确认无误后关机,进入下一步操作。2、手机先完全的关机,然后同时按住下音量下键+HOME 键+电源键,等待出现英文界面 3、然后再按音量上键,进入界面为绿色机器人,此为刷机模式 4、用 odin 刷机工具刷入第三方 rec
14、overy 5、关机后,同时按住音量上键+HOME 键+电源键进入 recovery 模式 6、选择wipe data/factory reset 和wipe cache partition恢复一下出厂 7、选择install zip 8、再选choose zip from sdcard 9、选择刚下载的 zip 刷机包,点确认后,选择 Yes 10、刷完后,返回首菜单,选择reboot system now重启手机。7 2 移植移植介绍介绍 2.1 移植详解移植详解 移植 ColorOS 过程大致分为五步确定需要注入的 Samli 代码,确定注入位置,注入 Smali 代码,编译 Smali
15、 代码,调试 Smali 代码。总体流程如下图:Google 4.2原始apk或jar包修改源码重新编译Color apk或jar包通过反编译工具和比较工具确定修改的Smali代码待注入的Smali代码第三方目标机原始apk或jar包反编译apk或jar包待注入Smali上下文通过比较工具确定注入区域待注入的Smali区域注入后的Smali代码根据dalvik虚拟机指令 进行smali代码注入编译、打包注入后的apk或jar包push到第三方手机进行调试完成 1、确定需要注入的 Smali 代码 首先,确定基线文件Google 源码的 apk 包或 jar 包,使用 apktool 反汇编,生
16、 8 成原始的 Smali 文件。其次,修改对应 Color 的 apk 包或 jar 包的 java 源代码,使用编译系统重新生成新的 apk 包或 jar 包,并用 apktool 反汇编,生成包含修改后的 Smali 文件。最后,使用比较工具(例如 BeyondCompare)比较两次 Smali 文件,即可提取出需要注入的 Smali 代码。2、确定注入位置 首先,使用 apktool 反汇编第三方目标机的 apk 包或 jar 包,生成 Smali 文件。其次,使用比较工具(例如 BeyondCompare)与基线文件进行对比,比较两次Smali 文件,确定需要注入 Smali 位置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ColorOS 教程
限制150内