【开发者教程】HTC Sense4.0移植Sense4.1教程 By Sun Dream

前言:

    无论是从前还是现在xda-developers的大婶都会比国内的小婶移植快那么一点点,其中的原因应该各位制作者也心知肚明。甚至于不少制作者也只是一贯的引用他人并进行局部无伤大雅的替换。因为相关的移植教程实在是没有,因为大家都希望自己能掌握比别人更多的知识,即使是这样,本文还是诞生,在此抛砖引玉… …(By Sun Dream)


马上开始主题:


    解码HTC Sense的Graphics module为lib驱动库内libmodexxx开头的so文件,出于Sense版本的不同,其模块文件数量与内容都有所区别,其模块主干为libmode10fx.so,我们在突然提高”瞬间智商”的前提之下想到它是对应framework内的com.htc.fusion.fx.jar



从上文更新libmodexxx与com.htc.fusion.fx.jar文件到HTC Sense4.1即可完美的驱动原版的Rosie Sense4.1

    其他的注意分辨率就可以了,目前来看WVGA启动器代表机型One ST/SU,QHD启动器代表机型HTC J/One S。HD屏:HTC One X/XL。

“注:每一个启动器需要对应Widget分辨率才能完美显示”

如果只是移植Sense4.1启动器以上更新就可以解决兼容。

部分组件[例如锁屏与Sensever的显示]读取关系到ext.jar,如果是同系列构架可以直接更新为目标版本,跨度较大的,则需要同时更新目标版本的framework2.jar与core.jar(通常情况是如此,复杂机型需要具体分析)

HTC SDK API的文本在system\etc\sdk的sdkinfo.xml内。

其中framework.jar则是涉及了当前机型的绝大多数的驱动库,包括网络连接的支持,media控制等等,如果你的移植篇幅不是很大,或者没有足够的了解程度,请不要动这个构架。


在移植的过程中必然会遇到一些非主流机型,某些组件更新难度又比较大【例如三网支持等等】,导致最终完整移植了sense4.1 却无法使用新版的Sense4.1或者Sense4.5的皮肤问题。对此也给出一个解决方案:

反编译当前sense4rom中的任意老皮肤包与目标新皮肤并查看其AndroidManifest.xml当中的versionCode数值,并将老的versionCode替换到新的versionCode当中。再重编译新皮肤,即可生成完全被当前移植rom所加载的apk.

注1:androidSdkVersion定义,如果是JB4.1的Sense皮肤,它可能定义为Api16即必须JB系统能加载,将其改成Api15即可正常加载。因为Skin的安装包没有smali,直接改sdk版本通常是有效的。

注2:部分皮肤路径在system/app还是data/app是fusion.apk中的内容决定的,查看其assets内容是否包括m10文件即可识别它们所属类型,例如皮肤当做没有m10而
fusion.apk中assets有对应内容,则属于system/app,反之则属于data/app

以上仅涉及了一点皮毛,主要面向快速解决当前移植问题绕过Device相关的内容。framework-res与lib的移植相关以后有空再写吧,目前的情况来说S4的部分驱动移植S3是ok的。

时间有限,本文Sense4移植Sense4.1简易教程先到为止~

原文章链接:http://user.qzone.qq.com/416500150/blog/1355638846?ptlang=2052#!app=2&via=QZ.HashRefresh&pos=1355638846



By Sun Dream(感谢sun dream)
2012-12-16

原文链接:,转发请注明来源!