精华 | |
金钱 | BA |
威望 | 点 |
贡献值 | 点 |
爱心 | 点 |
经验 | 点 |
注册时间 | 2011-6-6 |
最后登录 | 1970-1-1 |
在线时间 | 小时 |
| |
| |
| |
|
立即注册,加入爱黑武论坛的大家庭!爱黑武,爱上搞机生活!
您需要 登录 才可以下载或查看,没有账号?注册
x
不会反编译的不建议操作,我也没办法,反编译是基础,这个不会谁也帮不了你。
废话少说,我喜欢直接……
声明:此教程原理及代码来源与网上,参考了好多帖子才尝试出来的。十分拜谢。暂时4.0以上系统基本通用,我说的的是基本通用,没说一定通用。后果自负哦{:soso_e100:}
android就是需要折腾,开不了机神马的都是正常而且必经之路。胆小你就洗洗睡吧……
有图才有真相:这是谁定的破规矩:
系统deodex与否不重要,重要的是你得知道:如果未deodex的在替换的时候需要注意什么。
提取framework.jar(和framework.odex)、android.policy.jar(和android.policy.odex)如果已经deodex的直接下一步就行,未deodex的先将odex文件反编译成dex。
好多人可能会不成功,推荐使用xultimate工具,如果这一步你被挡住了,那……那……你后面的直接可以忽略了……洗洗睡吧{:soso_e100:}
反编译framework和android.policy
搜索android.policy\smail\com\android\internal\policy\impl\KeyguardStatusViewManager.smali
找到- .method refreshDate()
- ……
- ……
- ……
- ……
- ……
- .end method
复制代码 方法(千万不要tell我你找不到),整个方法替换成如下代码:- .method refreshDate()V
- .registers 6
- .prologue
- .line 889
- iget-object v1, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateView:Landroid/widget/TextView;
- if-eqz v1, :cond_42
- .line 890
- new-instance v0, Ljava/util/Date;
- invoke-direct {v0}, Ljava/util/Date;-><init>()V
- .line 891
- .local v0, now:Ljava/util/Date;
- invoke-virtual {v0}, Ljava/util/Date;->getYear()I
- move-result v1
- add-int/lit16 v1, v1, 0x76c
- invoke-virtual {v0}, Ljava/util/Date;->getMonth()I
- move-result v2
- invoke-virtual {v0}, Ljava/util/Date;->getDate()I
- move-result v3
- invoke-static {v1, v2, v3}, Landroid/util/Lunar;->setLunar(III)V
- .line 892
- iget-object v1, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateView:Landroid/widget/TextView;
- new-instance v2, Ljava/lang/StringBuilder;
- invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
- iget-object v3, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateFormatString:Ljava/lang/String;
- invoke-static {v3, v0}, Landroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;
- move-result-object v3
- invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
- move-result-object v2
- const-string v3, " "
- invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v2
- const/4 v3, 0x5
- const/4 v4, 0x0
- invoke-static {v3, v4}, Landroid/util/Lunar;->getLunar(IZ)Ljava/lang/String;
- move-result-object v3
- invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v2
- invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v2
- invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
- .line 894
- .end local v0 #now:Ljava/util/Date;,
- :cond_42
- return-void
- .end method
复制代码 打包替换
修改framework 将如下代码保存成Lunar.smali文件放到\android\util文件夹下面:
好吧 代码有点长,下载下面那个也行
下载这个打包替换
至于怎么放到系统里面 那就是你自己的事情啦……祝你们都能成功。 |
|