Closed MrR0990 closed 1 year ago
感谢你的回复,这个类 android31的源码我已经下载到了,但是没明白“将附件解压出来放到android.jar的对应位置去”是把这个放到 jar 里面去??还是说先解压 Android.jar,放进去之后再生成 Android.jar
用rar或者任何其他的压缩工具打开你想要修改的android.jar,你的也就是 sdk\platforms\android-31\android.jar
,和附件中的文件,将附件中的class拖拽到android.jar的对应路径下
你理解的先解压android.jar,再生成android.jar也是没问题的,只不过拖拽是一步进行了这个操作。
还没有明白的话可以参考这个视频以及查看对应issue上下文 https://github.com/Reginer/aosp-android-jar/issues/5#issuecomment-1245035344
好的,还有一个疑问,.class 文件是怎么生成的呢?我用 javac命令会报错,另外还想批量把一个包里面所有的 java 文件生产 class,这个可以吗?发自我的 iPhone在 2023年5月8日,12:00,鼎鼎鼎 @.***> 写道: 还没有明白的话可以参考这个视频以及查看对应issue上下文 #5 (comment)
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>
我是编译的源码 。 你用javac直接生成肯定报错,因为代码里面有很多导入,你需要依赖完全才能编译通过。
如果只是一个类,你可以用as创建同名类,只要保持方法信息一致,方法体可以全部删除,如果有返回值类型的报错,也是同样创建对应的同名类。
这样就可以使用AS或者javac来生成class文件了 。
好的,谢谢,我再想想办法
再麻烦问一下,我按照“编译的源码”等到了一个固件,但是怎么才能得到对应文件都是 class 文件的 framework 文件夹的呢?
我没有很理解,对应的frameworks文件夹在哪要问你们系统。
但是对于android.jar来说,它不需要知道frameworks文件夹,只需要知道class的包名。
这里我说的 “编译的源码” 指的是编译的AOSP
是的,我现在已经在一个 AOSP 源码服务器上,并且可以正常编译整个源码
我是可以直接在源码环境的某个地方可以直接找到 PhoneFactory 的 .class 文件吗?
还是说需要在 AOSP 的源码环境执行什么命令才能得到PhoneFactory的.class文件,而不是.java
在out目录下,执行 find -name PhoneFactory.class
就会搜到对应的class文件 , 前提是AOSP你已经编译成功了
好的,可以了
PhoneFactory.zip 将附件解压出来放到
android.jar
的对应位置去,用压缩包打开jar直接拖进去就可以,路径对上。 如果sync或者重启之后报错了,再给我反馈,我没有验证过这个类,是否能够mock过。 由于Android31的源码我已经删除了,这是使用Android33的源码编译的,类的源码在 https://cs.android.com/android/platform/superproject/+/android-13.0.0_r3:frameworks/opt/telephony/src/java/com/android/internal/telephony/PhoneFactory.java