|
|
最近在我的韩版167上有两个“亮点”功能,一个是中文运营商,另一个是去漫游,有很多机友向我咨询修改方法,本着Google开源精神,现公开修改方法.
1.中文运营商(可定制)
修改包文件:framework.jar(或framework.odex),反编译步骤略
修改文件:GsmServiceStateTracker.smali
修改:
找 updateSpnDisplay 方法
.method protected updateSpnDisplay()V
......
找下面关键点
.local v5, spnundefinedjava/lang/String;
iget-object v8, p0, Lcom/android/internal/telephony/ServiceStateTracker;->ssundefinedandroid/telephony/ServiceState;
invoke-virtual {v8}, Landroid/telephony/ServiceState;->getOperatorAlphaLong()Ljava/lang/String;
move-result-object v1
.line 1484
.local v1, plmnundefinedjava/lang/String;
在这里增加一句即可
move-object v1, v5
原理:强制将plmn用spn替换,spn是可在配置文件中配置的
2.去漫游
修改包文件:framework.jar(或framework.odex),反编译步骤略
修改文件:GsmServiceStateTracker.smali
修改:
找 regCodeIsRoaming 方法
.method private regCodeIsRoaming(I)Z
.registers 3
.parameter "code"
.prologue
.line 3165
# const/4 v0, 0x5
# if-ne v0, p1, :cond_5
# const/4 v0, 0x1
# :goto_4
# return v0
# :cond_5
const/4 v0, 0x0
return v0
# goto :goto_4
.end method
上面代码是改好的,对照一下源码修改
java代码:
private boolean regCodeIsRoaming(int code)
{
return (code == 5)
}
改为
private boolean regCodeIsRoaming(int code)
{
return false;//强制不漫游
}
注:
1.索马里语法(smali,真象海盗一样,让人恐惧)看得头晕,虽然只改一句,要看懂修改哪儿,如何修改等,是要花很长时间的
2.修改风险很高,建议非制作ROM人员,不要试着改,这是核心文件,改不好就启不来
3.上面修改基于 Android 4.0,其它的版本自己摸索
|
|