永心无亦 发表于 2012-11-9 17:18

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 *****打包替换

至于怎么放到系统里面 那就是你自己的事情啦……祝你们都能成功。

zyy757 发表于 2012-11-9 20:38

学技术

chisongzi 发表于 2012-11-9 22:15

看看这个 很好啊

渔夫 发表于 2012-11-17 00:38

看看学学要要要

︶ㄣ流绽若火 发表于 2012-11-20 15:57

太好了,,谢谢

xhw1128 发表于 2012-11-21 00:22

本帖最后由 xhw1128 于 2012-11-21 00:55 编辑

感谢楼主的教程
我的小米1S原生系统已修改成功
日历如何添加农历,非订阅

roamr 发表于 2012-11-23 17:16

我也来试试,先谢过了

fromnowon 发表于 2012-11-27 00:43

顶顶顶顶顶~技术贴啊

kkkqwe 发表于 2012-11-29 19:38

{:soso_e113:}kk

Anglo123 发表于 2012-11-30 14:04

看看!!!!!!!!!!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: CM9&CM10&各官方android4.0系统4.1系统添加农历教程