首页
社区
课程
招聘
[求助]smali语法求助,关于开启lg原生归属地
发表于: 2014-3-31 04:45 10172

[求助]smali语法求助,关于开启lg原生归属地

2014-3-31 04:45
10172
f200s,只有韩版rom。想开启原生的归属地,反编译phone.apk可以看到已经有相关的代码,但是没有显示。
反编译LGSettings3_1.apk,从代码来看,应该是在设置有归属地相关的菜单,但是没有显示出来。代码中有这么一段:
    .line 617
    :cond_17
    const-string v0, "CN"

    invoke-static {}, Lcom/android/settings/lgesetting/Config/Config;->getCountry()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_18

    const-string v0, "com.android.settings.NumberLocation_DisplaySettings"

    invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_18

    .line 618
    const-string v0, "SETTINGS_FUNCTION_ICON_RRESOURCE_ID"

    const v1, 0x7f02027c

    invoke-virtual {p1, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;

    goto/16 :goto_0


1、0x7f02027c是设置归属地菜单的图标。
2、getCountry是从build.prop文件读取target Country,
代码应该是要求只有cn才显示归属地设置菜单
韩版buildprop里为KR,直接改buildprop会无法开机
3、把代码里cn直接改为kr,设置里依然没有出现。

不懂smali语法,不知道怎么改才会显示出归属地菜单?
附件是这段代码引用的smali文件

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
网上还有一种替换ext.jar开启归属地的方法,但是只有不属于通讯录中的号码来电时才能显示。通话记录无显示
2014-3-31 04:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
原来是settings.smali有两处检查国家代码,之前漏改了一个。
全改为kr后,设置里总算有归属地的菜单了,
但是开了后还是没归属地显示——难道还得改联系人之类的apk?
2014-3-31 07:13
0
雪    币: 177
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
显示归属地菜单应该在phone.apk中,我三星是secphone.apk,机器重启时会检查code,你可以更改system/csc/sales_code.dat内容为CN。也可以通过更改smali来实现
const-string v0, "CN"

    invoke-static {}, Lcom/android/settings/lgesetting/Config/Config;->getCountry()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_18

"if-eqz v0, :cond_18"意思是如果v0为0,则跳转到":cond_18"处。改为"if-nez v0, :cond_18",不为0则跳转。机型不同只提供参考。
2014-3-31 08:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢回复。lg在设置里也集成了菜单。设置里已经弄好可以显示了,但还得改phone.apk和联系人apk。
关于代码,试验了其实红字部分直接删除就可以。原文里还有类似的一段,直接把cn改成和buildprop中一样就可以显示
    .line 617
[COLOR="Red"]    :cond_17
    const-string v0, "CN"

    invoke-static {}, Lcom/android/settings/lgesetting/Config/Config;->getCountry()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_18[/COLOR]

    const-string v0, "com.android.settings.NumberLocation_DisplaySettings"

    invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_18
2014-3-31 13:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
设置里已经有了
上传的附件:
2014-3-31 14:08
0
雪    币: 215
活跃值: (51)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
学习下楼主的了!~
2014-9-3 09:42
0
雪    币: 215
活跃值: (51)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
很好奇这个操作getCountry()Ljava/lang/String是在哪取出的string啊.build.prop?
2014-11-11 15:03
0
雪    币: 184
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享精彩教程
2014-12-12 18:20
0
游客
登录 | 注册 方可回帖
返回
//