您的位置:網站首頁 > 電器維修資料網 > 正文 >
修改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控制手機耗電