您的位置:網(wǎng)站首頁(yè) > 電器維修資料網(wǎng) > 正文 >
修改HTC Sense框架,讓HTC One功能全面升級(jí)
來(lái)源: 日期:2013-11-2 20:36:27 人氣:標(biāo)簽:
每每提到HTC的Android智能手機(jī),大家首先會(huì)想到的一定是其具有代表性的Sense系統(tǒng)。HTC作為全球 早接觸Android系統(tǒng)的手機(jī)廠商,Sense系統(tǒng)理所當(dāng)然地得到了Google的官方技術(shù)支持,成為目前唯一一個(gè)由Google協(xié)助開(kāi)發(fā)的第三方Android系統(tǒng)。雖然HTC Sense依然屬于Android,但是Sense含有太多獨(dú)立定制代碼,所以它和原生的Android系統(tǒng)相比有很多差別。
HTC Sense現(xiàn)在已經(jīng)發(fā)展到了5.0版本,它的功能也越來(lái)越豐富。從Sense 3.0開(kāi)始,系統(tǒng)就可以根據(jù)內(nèi)置的代碼,自動(dòng)識(shí)別所適配機(jī)型的型號(hào),所處的地區(qū)和網(wǎng)絡(luò)制式,同時(shí)根據(jù)這些信息自動(dòng)開(kāi)啟不同的功能。比如當(dāng)Sense檢測(cè)到國(guó)行手機(jī),那它就會(huì)自動(dòng)開(kāi)啟來(lái)去電歸屬地、通話錄音、中國(guó)氣象中心天氣源、IP撥號(hào)、甚至新浪微博等國(guó)行特有的功能。如果Sense檢測(cè)到自己適配的是海外版機(jī)型,那它就會(huì)自動(dòng)開(kāi)啟與其相地區(qū)所對(duì)應(yīng)的特色功能。簡(jiǎn)單的理解就是Sense其實(shí)從出廠時(shí)就內(nèi)置了非常多的隱藏功能,目地是可以根據(jù)不同的機(jī)型和網(wǎng)絡(luò)制式,自動(dòng)開(kāi)啟不同的功能,這樣利用一套Sense系統(tǒng)就可以適配全球,無(wú)需針對(duì)不同的地區(qū)專門(mén)開(kāi)發(fā)系統(tǒng)。
了解了HTC的Sense系統(tǒng)控制原理,我們就可以對(duì)Sense系統(tǒng)做一些本地化處理,這樣做的好處就是穩(wěn)定安全不用修改系統(tǒng)代碼,就能使不同版本的HTC One用上本地化功能,同時(shí)還不會(huì)影響現(xiàn)有的系統(tǒng),甚至可以用過(guò)修改Sense代碼,讓只支持TD-CDMA網(wǎng)絡(luò)的移動(dòng)版HTC One,用上聯(lián)通WCDMA 3G網(wǎng)絡(luò)。同理我們還可以在國(guó)行的機(jī)型上,通過(guò)修改代碼打開(kāi)諸如Google服務(wù)等只有國(guó)際版One才有的功能。
要修改Sense代碼,首先要知道這些代碼存放在哪里。首先將從網(wǎng)上獲取的ROM包用解壓縮軟件直接解壓,然后在ROM根目錄中找到system文件夾。HTC將Sense代碼放到了system\framework\ext.jar文件夾里,隨著Sense版本的升級(jí),部分功能代碼也被放到了system\framework\framework2.jar里;我們分別反編譯這兩個(gè)文件,就可以找到com\htc\htcjavaflag\HtcBuildFlag.smali文件,打開(kāi)這個(gè)文件我們可以看到里面有眾多參數(shù)的設(shè)定,通過(guò)修改不同的參數(shù)就可以讓One實(shí)現(xiàn)不同的功能,而反編譯操作我們?cè)谏掀谝呀?jīng)做了詳細(xì)介紹,大家在操作時(shí)可以進(jìn)行參考。修改完成后用上期提到的“廚房”工具將ROM重新打包即可重新刷入手機(jī)。
一:通過(guò)修改Sense代碼重新定義識(shí)別機(jī)型
重新定義Sense識(shí)別的機(jī)型代碼,可以讓系統(tǒng)開(kāi)啟一些隱藏功能,比如在相機(jī)功能中,當(dāng)Sense識(shí)別機(jī)型為HTC One時(shí)會(huì)自動(dòng)開(kāi)啟ZOE功能,否則這個(gè)ZOE功能會(huì)自動(dòng)隱藏。你可以搜索并找到以下代碼(比如 新的國(guó)際版HTC One代碼就為0x67):
.method publIC static final getHtc_DEVICE_flag()S
.registers 1
const/16 v0, 0x67
return v0
.end method
下面給出一些機(jī)型的代碼作為參考:
聯(lián)通版 HTC One :0x20a
移動(dòng)版HTC One:0x205
電信版HTC One:0x209
OneX : 0x26
OneS: 0xe1
通過(guò)定義“const/16 v0,”后的值,就可以重新定義Sense識(shí)別機(jī)型,開(kāi)啟一些隱藏功能。
二:修改Sense語(yǔ)言標(biāo)識(shí)代碼,讓國(guó)際版One開(kāi)啟國(guó)行版本地化功能
上期@溜達(dá)會(huì)兒為我們介紹過(guò)如何通過(guò)反編譯系統(tǒng)APK,實(shí)現(xiàn)國(guó)際版One本地化的具體方法。其實(shí)除了反編譯系統(tǒng)APK,也可以用過(guò)修改Sense代碼,讓國(guó)際版One用上國(guó)行版的本地化功能。
HTC One的語(yǔ)言識(shí)別代碼比較簡(jiǎn)單,僅分為國(guó)際版和國(guó)行版兩個(gè)版本。我們只要通過(guò)反編譯,將國(guó)際版的Sense語(yǔ)言識(shí)別代碼改為國(guó)行版,即可開(kāi)啟歸屬地顯示、IP撥號(hào)、通話錄音等國(guó)行版特有功能,具體的修改方法也非常簡(jiǎn)單,只需要將“const/4 v0,”后的值修改即可。
.method public static final getHtc_LANGUAGE_flag()S
.registers 1
const/4 v0, 0x0
return v0
.end method
國(guó)際版語(yǔ)言識(shí)別碼為0x0
國(guó)行版語(yǔ)言識(shí)別碼為0x2。
三:修改Sense項(xiàng)目代碼,讓定制版HTC One用上不同網(wǎng)絡(luò)
HTC One作為一款在全球都非常火熱的手機(jī),擁有支持不同網(wǎng)絡(luò)制式的機(jī)型,分為WCDMA版、TD-CDMA版、CDMA/GSM版等,而系統(tǒng)在區(qū)分這些版本時(shí),是通過(guò)項(xiàng)目代碼進(jìn)行判斷的。
我們可以通過(guò)修改項(xiàng)目代碼,讓手機(jī)支持各種網(wǎng)絡(luò)制式,比如我們可以讓移動(dòng)版HTC One用上聯(lián)通制式網(wǎng)絡(luò),具體方法就是修改“const/16 v0,”后的值來(lái)實(shí)現(xiàn)。我們可以找到以下代碼:
.method public static final getHtc_PROJECT_flag()S
.registers 1
const/16 v0, 0x34
return v0
.end method
國(guó)際版項(xiàng)目代碼:0x34
國(guó)行版項(xiàng)目代碼:0x1
國(guó)行聯(lián)通版項(xiàng)目代碼:0x17
國(guó)行移動(dòng)版項(xiàng)目代碼:0xda
C網(wǎng)(含電信、sprint、Verizon)項(xiàng)目代碼:0xd8
【看看這篇文章在百度的收錄情況】