修改framework.jar中的java代码

时间:2012-12-20 11:28:05

标签: android

我手机上的手机存在与MVNO(移动虚拟网络运营商)的问题。基本上这意味着我的数据连接仅在漫游时有效。这是一个已经在几个roms上修复的已知问题(但不是我的)。

要解决此问题,我想修改framework.jar文件(/system/framework/framework.jar)的来源,更具体的文件:/com/android/internal/telephony/gsm/GsmServiceStateTracker.java

首先,我将列出我已经采取的步骤,向您展示我被困在momoment的位置: 我已完全取消了我的库存rom,包括/ system / framework /和/ system / app中的JAR文件和APK文件

  • 我已经下载了deodexed framework.jar文件并解压缩了 来自它的classes.dex文件
  • 我已经使用baksmali对classes.dex文件进行了反编译 几个* .class文件
  • 我已将这些* .class文件转换为.jar文件 dex2jar
  • 我已解压缩使用jdqui打开此jar文件以结束 几个* .java文件

这就是我被困住的地方,我需要弄清楚如何编辑我想要的java文件,最后再使用一个有效的framework.jar,我可以上传到我的手机。

我这样做是错误的吗?还有其他方法可以解决我的问题吗?我希望从那些有这方面经验的人那里得到一些帮助......

3 个答案:

答案 0 :(得分:1)

我也采用相同的方法来获取网络相关的参数,如: BAND,BCCH等。在解压缩framework.jar之后获得* .class文件后,您可以使用Java DCompiler或JDclipse将.class文件转换为.java文件。现在根据您的要求修改java文件。

我修改了RIL.java,但我仍然坚持重新包装。我无法将RIL.java转换为RIL.class。它有很多依赖/导入框架的隐藏文件。 参考:http://www.mailinglistarchive.com/html/android-platform@googlegroups.com/2010-02/msg00325.html

Android Gents,如果我们处理错误,请抛出一些灯......

答案 1 :(得分:1)

如果您想进行修改,希望在Java级别执行修改。您可以反编译为Java以广泛了解正在发生的事情,但您需要直接修改Smali。

修改完Smali后,您可以使用以下内容重建:

smali -o classes.dex frameworkSmaliDirectory

然后,将更新的classes.dex添加回framework.jar。在Linux上这很简单:

zip framework.jar classes.dex

最后,重新安装/系统读写,并将更新的framework.jar推送到设备:

adb shell mount -o rw,remount /system
adb push framework.jar /system/framework/

现在交叉你的手指,希望你没有破坏任何东西。

答案 2 :(得分:0)

你能试试apktool吗?这是一个example,让我们检查问答“我如何手动制作补丁?”