level 9
ycl7216
楼主
ICS的归属地很简单,ext.jar 数据库 phone.apk 用于显示归属地
现在自己动手修改配置你的phone.apk
用于显示归属地
先提取ROM中phone.apk,再提取里面的classes.dex
使用到工具baksmali及smali
DOS命令
java -jar baksmali-1.3.jar -o abc classes.dex abc为目录
在abc目录下得到smail文件
找到com\android\phone\CallCard.smali用Notepad++打开(或你喜欢的文本编辑类软件)
在最后添加代码 用于修改来电去电归属地显示
.method private setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V
.locals 3
.parameter "info"
.prologue
const/16 v2, 0x8
.line 36
if-nez p1, :cond_1
.line 51
:cond_0
:goto_0
return-void
.line 38
:cond_1
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
invoke-virtual {v0}, Landroid/widget/TextView;->getVisibility()I
move-result v0
if-ne v0, v2, :cond_0
.line 39
iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_2
.line 40
invoke-virtual {p0}, Lcom/android/phone/CallCard;->getContext()Landroid/content/Context;
move-result-object v0
iget-object v1, p1, Lcom/android/internal/telephony/CallerInfo;->phoneNumber:Ljava/lang/String;
invoke-virtual {p1, v0, v1}, Lcom/android/internal/telephony/CallerInfo;->updateGeoDescription(Landroid/content/Context;Ljava/lang/String;)V
.line 42
:cond_2
iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_0
.line 43
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V
.line 44
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
iget-object v1, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 45
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
iget v1, p0, Lcom/android/phone/CallCard;->mTextColorCallTypeSip:I
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V
.line 46
iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
iget-object v1, p0, Lcom/android/phone/CallCard;->mPhoneNumber:Landroid/widget/TextView;
invoke-virtual {v1}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
.line 47
iget-object v0, p0, Lcom/android/phone/CallCard;->mPhoneNumber:Landroid/widget/TextView;
invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)V
goto :goto_0
.end method复制代码
再用Notepad++搜索功能找到下面的一行代码
invoke-direct {p0, v14, v13, v0}, Lcom/android/phone/CallCard;->updateSocialStatus(Ljava/lang/String;Landroid/graphics/drawable/Drawable;Lcom/android/internal/telephony/Call;)V
在下面添加
move-object/from16 v0, p1
invoke-direct {p0, v0}, Lcom/android/phone/CallCard;->setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V
2013年03月06日 01点03分
1
现在自己动手修改配置你的phone.apk
用于显示归属地
先提取ROM中phone.apk,再提取里面的classes.dex
使用到工具baksmali及smali
DOS命令
java -jar baksmali-1.3.jar -o abc classes.dex abc为目录
在abc目录下得到smail文件
找到com\android\phone\CallCard.smali用Notepad++打开(或你喜欢的文本编辑类软件)
在最后添加代码 用于修改来电去电归属地显示
.method private setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V
.locals 3
.parameter "info"
.prologue
const/16 v2, 0x8
.line 36
if-nez p1, :cond_1
.line 51
:cond_0
:goto_0
return-void
.line 38
:cond_1
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
invoke-virtual {v0}, Landroid/widget/TextView;->getVisibility()I
move-result v0
if-ne v0, v2, :cond_0
.line 39
iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_2
.line 40
invoke-virtual {p0}, Lcom/android/phone/CallCard;->getContext()Landroid/content/Context;
move-result-object v0
iget-object v1, p1, Lcom/android/internal/telephony/CallerInfo;->phoneNumber:Ljava/lang/String;
invoke-virtual {p1, v0, v1}, Lcom/android/internal/telephony/CallerInfo;->updateGeoDescription(Landroid/content/Context;Ljava/lang/String;)V
.line 42
:cond_2
iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_0
.line 43
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V
.line 44
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
iget-object v1, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 45
iget-object v0, p0, Lcom/android/phone/CallCard;->mCallTypeLabel:Landroid/widget/TextView;
iget v1, p0, Lcom/android/phone/CallCard;->mTextColorCallTypeSip:I
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V
.line 46
iget-object v0, p1, Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
iget-object v1, p0, Lcom/android/phone/CallCard;->mPhoneNumber:Landroid/widget/TextView;
invoke-virtual {v1}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
.line 47
iget-object v0, p0, Lcom/android/phone/CallCard;->mPhoneNumber:Landroid/widget/TextView;
invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)V
goto :goto_0
.end method复制代码
再用Notepad++搜索功能找到下面的一行代码
invoke-direct {p0, v14, v13, v0}, Lcom/android/phone/CallCard;->updateSocialStatus(Ljava/lang/String;Landroid/graphics/drawable/Drawable;Lcom/android/internal/telephony/Call;)V
在下面添加
move-object/from16 v0, p1
invoke-direct {p0, v0}, Lcom/android/phone/CallCard;->setGeoDescription(Lcom/android/internal/telephony/CallerInfo;)V