CM9&CM10&各官方android4.0系统4.1系统添加农历教程

来源:互联网 发布:linux 文件夹写权限 编辑:程序博客网 时间:2024/06/16 22:40
      不会反编译的不建议操作,我也没办法,反编译是基础,这个不会谁也帮不了你。

       废话少说,我喜欢直接……

    声明:此教程原理及代码来源与网上,参考了好多帖子才尝试出来的。十分拜谢。暂时4.0以上系统基本通用,我说的的是基本通用,没说一定通用。后果自负哦
    android就是需要折腾,开不了机神马的都是正常而且必经之路。胆小你就洗洗睡吧……

    有图才有真相:这是谁定的破规矩:
     


      系统deodex与否不重要,重要的是你得知道:如果未deodex的在替换的时候需要注意什么。

      提取framework.jar(和framework.odex)、android.policy.jar(和android.policy.odex)如果已经deodex的直接下一步就行,未deodex的先将odex文件反编译成dex。

      好多人可能会不成功,推荐使用xultimate工具,如果这一步你被挡住了,那……那……你后面的直接可以忽略了……洗洗睡吧

      反编译framework和android.policy
      搜索android.policy\smail\com\android\internal\policy\impl\KeyguardStatusViewManager.smali
      找到
  1. .method refreshDate()
  2. ……
  3. ……
  4. ……
  5. ……
  6. ……
  7. .end method
复制代码
方法(千万不要tell我你找不到),整个方法替换成如下代码:
  1. .method refreshDate()V
  2. .registers 6

  3. .prologue
  4. .line 889
  5. iget-object v1, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateView:Landroid/widget/TextView;

  6. if-eqz v1, :cond_42

  7. .line 890
  8. new-instance v0, Ljava/util/Date;

  9. invoke-direct {v0}, Ljava/util/Date;-><init>()V

  10. .line 891
  11. .local v0, now:Ljava/util/Date;
  12. invoke-virtual {v0}, Ljava/util/Date;->getYear()I

  13. move-result v1

  14. add-int/lit16 v1, v1, 0x76c

  15. invoke-virtual {v0}, Ljava/util/Date;->getMonth()I

  16. move-result v2

  17. invoke-virtual {v0}, Ljava/util/Date;->getDate()I

  18. move-result v3

  19. invoke-static {v1, v2, v3}, Landroid/util/Lunar;->setLunar(III)V

  20. .line 892
  21. iget-object v1, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateView:Landroid/widget/TextView;

  22. new-instance v2, Ljava/lang/StringBuilder;

  23. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

  24. iget-object v3, p0, Lcom/android/internal/policy/impl/KeyguardStatusViewManager;->mDateFormatString:Ljava/lang/String;

  25. invoke-static {v3, v0}, Landroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;

  26. move-result-object v3

  27. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

  28. move-result-object v2

  29. const-string v3, " "

  30. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  31. move-result-object v2

  32. const/4 v3, 0x5

  33. const/4 v4, 0x0

  34. invoke-static {v3, v4}, Landroid/util/Lunar;->getLunar(IZ)Ljava/lang/String;

  35. move-result-object v3

  36. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  37. move-result-object v2

  38. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

  39. move-result-object v2

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

  41. .line 894
  42. .end local v0 #now:Ljava/util/Date;,
  43. :cond_42
  44. return-void
  45. .end method
复制代码
打包替换
修改framework 将如下代码保存成Lunar.smali文件放到\android\util文件夹下面:
好吧 代码有点长,下载下面那个也行

下载这个

点击打开链接




原创粉丝点击