CM9&CM10&各官方android4.0系统4.1系统添加农历教程
不会反编译的不建议操作,我也没办法,反编译是基础,这个不会谁也帮不了你。废话少说,我喜欢直接……
声明:此教程原理及代码来源与网上,参考了好多帖子才尝试出来的。十分拜谢。暂时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文件夹下面:
好吧 代码有点长,下载下面那个也行
下载这个**** Hidden Message *****打包替换
至于怎么放到系统里面 那就是你自己的事情啦……祝你们都能成功。 学技术
看看这个 很好啊
看看学学要要要 太好了,,谢谢
本帖最后由 xhw1128 于 2012-11-21 00:55 编辑
感谢楼主的教程
我的小米1S原生系统已修改成功
日历如何添加农历,非订阅
我也来试试,先谢过了 顶顶顶顶顶~技术贴啊 {:soso_e113:}kk 看看!!!!!!!!!!