请选择 进入手机版 | 继续访问电脑版

机锋论坛

  • 关注机锋
  • 关注机锋
 找回密码
 注册
查看: 163897|回复: 745

[原生] android

  [复制链接]

27

主题

9

好友

2340

积分

硕士

Rank: 9Rank: 9Rank: 9

G币
832
最后登录
2019-2-16
注册时间
2011-2-13
发表于 2012-1-17 23:25 |显示全部楼层

马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。

立即注册 已有帐号?点击登录   下载游戏和软件,请【猛击这里】进入机锋市场!

×
本帖最后由 aws2003 于 2012-8-7 09:58 编辑

  1. 8月7日更新:jb 4.1的更新方法(我以为现在的ROM都带了,不需要自己动手改了,但还有许多机油联系我这个问题)
  2. 6月17日更新:回编译提示 All register args must fit in 4 bits解决办法
  3. 6月8日更新:2012同步最新归属地数据库
  4. 3月11日更新:2012最新归属地数据库,ota-cm-aokp-gummy更新在对应的ext.jar中,需要的请重新对应下载!
  5. 3月10日更新:2012最新归属地数据库<---这天的数据有点乱,虽然不影响使用,我重新做了调整。
  6. 3月4日更新:aokp b27 Phone.apk
  7. 2月8日更新:小米 Phone.apk (未测试,能担风险的机油帮忙测试后留言下,没有问题除此字样)
  8. 2月8日更新:aosp+2.2  Phone.apk
  9. 2月7日更新:CyberGR-MODv.7 ext.jar Phone.apk
  10. 2月7日更新:CM9 v2 Phone.apk
  11. 2月6日更新:GummyNexs0.7.3 的ext.jar和Phone.apk
  12. 2月3日更新:FOR “AOKP M3 ROM” 的ext.jar和Phone.apk(未测试,能担风险的机油帮忙测试后留言下,没有问题除此字样)
  13. 2月1日更新:添加4.04rom 的Phone.apk (ext.jar 请使用cm类的)
  14. 大年初五更新:归属地数据显示:吉林省吉林省市显示为吉林省市的问题(更新在ext.jar中,需要的请重新下载)
复制代码
更新分两步:
1、更新对应的ext.jar,是为了补充手机归属地的数据库(如果你还是喜欢google仅陌生来电显示归属地,就不需要更新第二步了)
2、更新对应的Phone.apk,是调整了来去电(包括已有联系人)手机归属地显示)

注:通话记录中仅对更新后的来去电(陌生电话)有效,原来的记录还显示“中国”,Phone.apk仅调整了拨号界面显示归属(没有对其它作修改)


此次仅放上数据库文件,请各们自行替换。
方法:
1、用工具(RootExploer付费版或adb等)提取/system/framework/ext.jar 至电脑
2、用户winrar等软件打开ext.jar,将86_zh拖入替换\com\android\i18n\phonenumbers\geocoding\data\86_zh
3、用工具(RootExploer付费版或adb等)放回/system/framework/ext.jar 修改权限

---->原生格式(无运营商版)(需要解压)
86_zh.zip (580.25 KB)

adb 命令参考:
  1. adb remount
  2. adb pull /system/framework/ext.jar
  3. ----替换 ext.jar的86_zh
  4. adb remount
  5. adb push ext.jar  /system/framework/ext.jar
  6. adb shell chmod 644  /system/framework/ext.jar
  7. adb reboot
复制代码
4.0.4 OTA 的由 disney0103 共享在这里:http://bbs.gfan.com/android-3962001-1-1.html

andriod 4.0原生就支持来电归属地。细心点的都发现了。

只不过数据仅支持到固话,手机的来电都显示中国,很是蛋痛。

有人在帖子也希望改进:http://bbs.gfan.com/viewthread.p ... ertype=0&page=1

另外,对的归属地的显示,google在思维逻辑可能和我们的习惯不一样,他觉得去电或已有本地联系人的,已没有必要显示归属地了。不过想想这也对。

所以我仅研究了一下,数据归属地的数据结构。并使用这里的数据

http://bbs.gfan.com/android-1745343-1-1.html

重新生成一份适用于ics归属地文件,较久了,归属地肯定有遗漏不少,我统计了一下约23万多条数据,包括400多个城市。

关一上个帖子我说了一个数据格式,不好意思,那错了,那个是google 的 libphonenumber  (http://code.google.com/p/libphonenumber/)项目的结构

在android,google还针对手机这种环境做了优化,提供了两种格式:

第一种默认格式:用于归属地与号码段一一对应的。

所以做了针对第二种的数据文件:测试一下,似乎在通话记录中比原来的出现慢了点,估计原来300多的数据,添加至23万的原因吧。


Screenshot_2012-01-17-21-29-53.png





官方OTA4.0.3的版本,系统system/framework下有ext.odex的,无ext.odex请不要使用这个,会卡机
ext.zip (736.6 KB)

CM类,4.04
cm_extjar.zip (1.24 MB)

aokp未测试
aokp_ext.zip (1.24 MB)

gummy
gummyExtjar.zip (1.21 MB)

没有做刷机包,大家用re替换哈,解压后的ext.jar 替换 /system/framework/ext.jar 并修改权限,重启手机即可。
cm替换之前,最好用recovery备份一下啊,因为第三方的怕有签名的改变,而引起无法开机的情况,

adb 替换参考命令

  1. adb devices
  2. adb root
  3. adb remount
  4. adb push ext.jar /system/framework
  5. adb shell chmod 644 /system/framework/ext.jar
  6. adb reboot
复制代码
如果你的替换后无法开机,可以用户winrar或7-zip把jar里的 \com\android\i18n\phonenumbers\geocoding\data\86_zh文件,替换你机器中ext.jar的对应文件,再用你的ext.jar来替换,保证签名一致。


我没有对代码作任何修改,仅作了数据文件的补充,如果要修改,可能改为能范围来查询归属地,可能会更快一些,但这对使用上感觉不明显,所以也没有动代码的了。

===========================================================
    以下是更新来去电拨号界面的修改,各ROM的Phone.apk可能会FC,请对应下载
===========================================================
更新方法和上面的一样(system/app下)
第一次开机,如第一次连接服务商较久,这是正常现象,下次启动就正常了。(如果长时无法连接移动网络的,开关一次飞行模式马上就连接上了,不知怎么回事,但到现在我暂时未发现有断网的现象,不影响正常使用。能忍受这些问题的机油,可以更新一下)



使用SIP标签显示,所有来去电显示归属地(包括已有联系人的)
Screenshot_2012-01-22-18-49-46.png

Screenshot_2012-01-22-23-27-36.png

Screenshot_2012-01-22-23-32-24.png



for 原生ota 4.0.3版本的修改
---------------------------------
绿色: Phone.apk (1.92 MB)
蓝色: Phone蓝色.apk (1.92 MB)


=======================
for aokp rom未测试
-----------------------------------------
绿色: Phone_apkp_绿色.apk (1.01 MB)
蓝色: Phone_aokp_蓝色.apk (1.01 MB)


========================
for gummy 0.7.2 ROM
-----------------------------
绿色: PhoneGummyNew.apk (1 MB)

========================
for aokp b27
-----------------------------------------
绿色: Phone.apk (2.35 MB)

=======================
for CyberGR-MODv.7
--------------------------------------------------
ext.jar CyberGRext.zip (1.21 MB)
绿色Phone.apk Phone_CyberG.apk (1 MB)

========================
for 小米 未测试
--------------------------------------------
绿色: Phone_xiaomi.apk (651.89 KB)

========================

以下由 平生无趣  提供,谢谢!

for kang rom
---------------------------------------------------
绿色版本 Phone_kang.apk (1 MB)
蓝色版本 Phone_kang蓝色.apk (1 MB)

============================
for 4.04 rom  请至
-------------------------------
绿色: 201楼
蓝色: 206楼

==================
以下由 landyking  提供,谢谢!

for cm9【update-cm-9.0.0-RC0-NS-signed.no.v2.p1】
------------------------------------------------------------------
绿色:请至 237楼

========================
以下由fgprodigal 提供,谢谢!

for aosp+2.2
--------------------------
请至: 279楼 fgprodigal


====================================
附修改方法,动手好一点的,可以修改自己的ROM
使用到工具baksmali及smali(查自行下载这两个工具)
classes.dex 为 Phone.apk提取

java -jar baksmali-1.3.jar -o Phone classes.dex

java -jar baksmali-1.3.jar -o Phone  -x Phone.odex
在Phone目录下得到smail文件
找com\android\phone\CallCard.smali

添加一个方法,用于显示及修改原有联系人去电不查询归属地逻辑
有人问放在哪里?随便找一个 .method private  ...前插入吧。
  1. .method private setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V
  2.     .locals 3
  3.     .parameter "info"

  4.     .prologue
  5.     const/16 v2, 0x8

  6.     .line 36
  7.     if-nez p1, :cond_1

  8.     .line 51
  9.     :cond_0
  10.     :goto_0
  11.     return-void

  12.     .line 38
  13.     :cond_1
  14.     iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;

  15.     invoke-virtual {v0}, Landroid/widget/TextView;->getVisibility()I

  16.     move-result v0

  17.     if-ne v0, v2, :cond_0

  18.     .line 39
  19.     iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;

  20.     invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

  21.     move-result v0

  22.     if-eqz v0, :cond_2

  23.     .line 40
  24.     invoke-virtual {p0}, Lcom/android/phone/CallCard;->getContext()Landroid/content/Context;

  25.     move-result-object v0

  26.     iget-object v1, p1, Lcom/android/internal/telephony/CallerInfo;->phoneNumber:Ljava/lang/String;

  27.     invoke-virtual {p1, v0, v1}, Lcom/android/internal/telephony/CallerInfo;->updateGeoDescription(Landroid/content/Context;Ljava/lang/String;)V

  28.     .line 42
  29.     :cond_2
  30.     iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;

  31.     invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

  32.     move-result v0

  33.     if-nez v0, :cond_0

  34.     .line 43
  35.     iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;

  36.     const/4 v1, 0x0

  37.     invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V

  38.     .line 44
  39.     iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;

  40.     iget-object v1, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;

  41.     invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

  42.     .line 45
  43.     iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;

  44.     iget v1, p0, Lcom/android/phone/CallCard;->mTextColorCallTypeSip:I

  45.     invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V

  46.     .line 46
  47.     iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;

  48.     iget-object v1, p0, Lcom/android/phone/CallCard;->mPhoneNumber:Landroid/widget/TextView;

  49.     invoke-virtual {v1}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;

  50.     move-result-object v1

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

  52.     move-result v0

  53.     if-eqz v0, :cond_0

  54.     .line 47
  55.     iget-object v0, p0, Lcom/android/phone/CallCard;->mPhoneNumber:Landroid/widget/TextView;

  56.     invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)V

  57.     goto :goto_0
  58. .end method
复制代码
在updateDisplayForPerson中添加调用 (可能各自反编译的smali变量名不一样)
------ics 4.0 的情况----
查找类似(关键字updateSocialStatus):
  1. invoke-direct {p0, v14, v13, v0}, Lcom/android/phone/CallCard;->updateSocialStatus(Ljava/lang/String;Landroid/graphics/drawable/Drawable;Lcom/android/internal/telephony/Call;)V
复制代码
后添加两句
  1.        
  2.         move-object/from16 v0, p1
  3.        
  4.         invoke-direct {p0, v0}, Lcom/android/phone/CallCard;->setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V
复制代码
如果你的手机找到是类似或提示All register args must fit in 4 bits:
  1. invoke-direct {v0, v1, v2, v3}, Lcom/android/phone/CallCard;->updateSocialStatus(Ljava/lang/String;Landroid/graphics/drawable/Drawable;Lcom/android/internal/telephony/Call;)V
复制代码
将上面两句改成:
  1. invoke-direct/range {p0 .. p1}, Lcom/android/phone/CallCard;->setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V
复制代码
-------ics 4.0结束---------
-----jb 4.1的情况------
查找类似(关键字updateCallTypeLabel):
  1.     .line 1372
  2.     :goto_a3
  3.     invoke-direct {p0, p4}, Lcom/android/phone/CallCard;->updateCallTypeLabel(Lcom/android/internal/telephony/Call;)V

复制代码
后添加一句:
  1. invoke-direct {p0, p1}, Lcom/android/phone/CallCard;->setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V
复制代码
---jb 4.1结束

祝好运!!


再java -jar smali-1.3.jar Phone -o classes.dex

用zip软件拖回原来的Phone.apk ,替换手机的Phone.apk 修改权限,重启即可

=============以下是没有用的附件,机锋里删除了,不管用===================
Screenshot_2012-01-22-23-32-38.png

Phone.apk

1.92 MB, 下载次数: 474, 下载积分: G币 -1

SystemUI_ota.apk

791.39 KB, 下载次数: 90, 下载积分: G币 -1

90

查看全部评分

23

主题

0

好友

1056

积分

学士

Rank: 7Rank: 7Rank: 7

G币
1371
最后登录
2019-1-21
注册时间
2010-5-12
发表于 2012-1-17 23:27 |显示全部楼层
安装个360安全软件,就什么都有了。
朝闻道,夕死可矣!

27

主题

9

好友

2340

积分

硕士

Rank: 9Rank: 9Rank: 9

G币
832
最后登录
2019-2-16
注册时间
2011-2-13
发表于 2012-1-17 23:30 |显示全部楼层
本帖最后由 aws2003 于 2012-1-17 23:38 编辑

说实话,我不太喜欢安装大多软件,现在的国内软件,都是商业第一,我知道他要赚钱,但商业味道也太浓了。

所以,这个日历的农历更改,也吃自己
http://bbs.gfan.com/android-3337865-1-1.html
1

查看全部评分

8

主题

0

好友

998

积分

等待验证会员

G币
372
最后登录
2016-8-30
注册时间
2011-6-6
发表于 2012-1-17 23:53 |显示全部楼层
这个不错哟。我也不喜欢装一堆软件,特别数字的,一大把功能用不到。

2

主题

1

好友

526

积分

大学本科

Rank: 6Rank: 6

G币
216
最后登录
2018-3-2
注册时间
2011-12-19
发表于 2012-1-18 00:00 |显示全部楼层
强烈关注

11

主题

1

好友

744

积分

等待验证会员

G币
338
最后登录
2016-8-2
注册时间
2011-5-5
发表于 2012-1-18 00:02 |显示全部楼层
楼主能做个原生T9拨号不?

61

主题

14

好友

2335

积分

等待验证会员

G币
725
最后登录
2016-8-2
注册时间
2011-3-6
发表于 2012-1-18 00:03 |显示全部楼层
很好!!
禅修

6

主题

20

好友

2236

积分

等待验证会员

G币
617
最后登录
2017-2-8
注册时间
2010-8-18
发表于 2012-1-18 00:22 |显示全部楼层
支持你了
签名怎么设置图片  微博之类的啊

29

主题

0

好友

785

积分

等待验证会员

G币
180
最后登录
2017-10-19
注册时间
2011-8-18
发表于 2012-1-18 00:40 |显示全部楼层
支持  坐等附件和方法
手机 nexus S手机 nexus手机 nexus手机 nexus

1

主题

0

好友

162

积分

等待验证会员

G币
318
最后登录
2017-1-31
注册时间
2009-11-30
发表于 2012-1-18 00:47 |显示全部楼层
必须得沙发。
谢谢楼主做贡献
轻松玩机拒绝强迫症
您需要登录后才可以回帖 登录 | 注册

网上有害信息举报中心|手机版|机锋网 ( 京ICP备15063876号-5 ) 京公网安备 11010202008075

GMT+8, 2019-4-23 07:05

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部