您的位置:网站首页 > 电器维修资料网 > 正文 >
修改HTC Sense框架,让HTC One功能全面升级
来源: 日期:2013-11-2 20:36:27 人气:标签:
每每提到HTC的Android智能手机,大家首先会想到的一定是其具有代表性的Sense系统。HTC作为全球 早接触Android系统的手机厂商,Sense系统理所当然地得到了Google的官方技术支持,成为目前唯一一个由Google协助开发的第三方Android系统。虽然HTC Sense依然属于Android,但是Sense含有太多独立定制代码,所以它和原生的Android系统相比有很多差别。
HTC Sense现在已经发展到了5.0版本,它的功能也越来越丰富。从Sense 3.0开始,系统就可以根据内置的代码,自动识别所适配机型的型号,所处的地区和网络制式,同时根据这些信息自动开启不同的功能。比如当Sense检测到国行手机,那它就会自动开启来去电归属地、通话录音、中国气象中心天气源、IP拨号、甚至新浪微博等国行特有的功能。如果Sense检测到自己适配的是海外版机型,那它就会自动开启与其相地区所对应的特色功能。简单的理解就是Sense其实从出厂时就内置了非常多的隐藏功能,目地是可以根据不同的机型和网络制式,自动开启不同的功能,这样利用一套Sense系统就可以适配全球,无需针对不同的地区专门开发系统。
了解了HTC的Sense系统控制原理,我们就可以对Sense系统做一些本地化处理,这样做的好处就是稳定安全不用修改系统代码,就能使不同版本的HTC One用上本地化功能,同时还不会影响现有的系统,甚至可以用过修改Sense代码,让只支持TD-CDMA网络的移动版HTC One,用上联通WCDMA 3G网络。同理我们还可以在国行的机型上,通过修改代码打开诸如Google服务等只有国际版One才有的功能。
要修改Sense代码,首先要知道这些代码存放在哪里。首先将从网上获取的ROM包用解压缩软件直接解压,然后在ROM根目录中找到system文件夹。HTC将Sense代码放到了system\framework\ext.jar文件夹里,随着Sense版本的升级,部分功能代码也被放到了system\framework\framework2.jar里;我们分别反编译这两个文件,就可以找到com\htc\htcjavaflag\HtcBuildFlag.smali文件,打开这个文件我们可以看到里面有众多参数的设定,通过修改不同的参数就可以让One实现不同的功能,而反编译操作我们在上期已经做了详细介绍,大家在操作时可以进行参考。修改完成后用上期提到的“厨房”工具将ROM重新打包即可重新刷入手机。
一:通过修改Sense代码重新定义识别机型
重新定义Sense识别的机型代码,可以让系统开启一些隐藏功能,比如在相机功能中,当Sense识别机型为HTC One时会自动开启ZOE功能,否则这个ZOE功能会自动隐藏。你可以搜索并找到以下代码(比如 新的国际版HTC One代码就为0x67):
.method publIC static final getHtc_DEVICE_flag()S
.registers 1
const/16 v0, 0x67
return v0
.end method
下面给出一些机型的代码作为参考:
联通版 HTC One :0x20a
移动版HTC One:0x205
电信版HTC One:0x209
OneX : 0x26
OneS: 0xe1
通过定义“const/16 v0,”后的值,就可以重新定义Sense识别机型,开启一些隐藏功能。
二:修改Sense语言标识代码,让国际版One开启国行版本地化功能
上期@溜达会儿为我们介绍过如何通过反编译系统APK,实现国际版One本地化的具体方法。其实除了反编译系统APK,也可以用过修改Sense代码,让国际版One用上国行版的本地化功能。
HTC One的语言识别代码比较简单,仅分为国际版和国行版两个版本。我们只要通过反编译,将国际版的Sense语言识别代码改为国行版,即可开启归属地显示、IP拨号、通话录音等国行版特有功能,具体的修改方法也非常简单,只需要将“const/4 v0,”后的值修改即可。
.method public static final getHtc_LANGUAGE_flag()S
.registers 1
const/4 v0, 0x0
return v0
.end method
国际版语言识别码为0x0
国行版语言识别码为0x2。
三:修改Sense项目代码,让定制版HTC One用上不同网络
HTC One作为一款在全球都非常火热的手机,拥有支持不同网络制式的机型,分为WCDMA版、TD-CDMA版、CDMA/GSM版等,而系统在区分这些版本时,是通过项目代码进行判断的。
我们可以通过修改项目代码,让手机支持各种网络制式,比如我们可以让移动版HTC One用上联通制式网络,具体方法就是修改“const/16 v0,”后的值来实现。我们可以找到以下代码:
.method public static final getHtc_PROJECT_flag()S
.registers 1
const/16 v0, 0x34
return v0
.end method
国际版项目代码:0x34
国行版项目代码:0x1
国行联通版项目代码:0x17
国行移动版项目代码:0xda
C网(含电信、sprint、Verizon)项目代码:0xd8
【看看这篇文章在百度的收录情况】
相关文章
- 上一篇: 手机ROM即将翻倍 三星V-NAND技术详解
- 下一篇: 修改HTC Soc控制手机耗电