[教程]中文运营商和去漫游(去R)教程
本帖最后由 xchpower 于 2012-11-17 11:36 编辑最近在我的韩版167上有两个“亮点”功能,一个是中文运营商,另一个是去漫游,有很多机友向我咨询修改方法,本着Google开源精神,现公开修改方法.
1.中文运营商(可定制)
修改包文件:framework.jar(或framework.odex),反编译步骤略
修改文件:GsmServiceStateTracker.smali
修改:
找 updateSpnDisplay 方法
.method protected updateSpnDisplay()V
......
找下面关键点
.local v5, spn: Ljava/lang/String;
iget-object v8, p0, Lcom/android/internal/telephony/ServiceStateTracker;->ss: Landroid/telephony/ServiceState;
invoke-virtual {v8}, Landroid/telephony/ServiceState;->getOperatorAlphaLong()Ljava/lang/String;
move-result-object v1
.line 1484
.local v1, plmn: Ljava/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.X,其它的版本自己摸索
4.欢迎转载到其它网站,注明出处及作者即可
我写得很累,你顶一下即可:lol
沙发,我的,文字中咋有有图标呢? 学习学习 学习了谢谢分享 18大才开啊 本帖最后由 542555930 于 2012-11-17 08:59 编辑
谢谢楼主分享
本帖最后由 542555930 于 2012-11-17 08:59 编辑
呵呵,看懂了 顶一顶!!!!!! 高手呀。。支持 顶一下楼主,感谢分享!