如何最快地对 LineageOS 系统框架打补丁?

2023-03-13 21:38:38 +08:00
 s82kd92l
我想对 LineageOS 里面 framework/service 下面的 PackageManagerService.java 和 ActivityManagerService.java 做一些修改,但自己重新编译整个 rom 代价有点高,debug 与迭代速度也太慢,求问有没有比较快速地 override 或者 patch 补丁方案呢?

比如只编译这两个 class ,然后放到一个 jar 里面,再把这个 jar 放到 classpath 里更优先的位置?但我不知道如何操作。

LSPosed 感觉太麻烦了, 里面也不太容易 import 系统自带的其他 class.
3987 次点击
所在节点    Android
3 条回复
bluesky139
2023-03-14 01:58:26 +08:00
打 patch 的方式可以参考我这个 https://github.com/bluesky139/LTweaksSystem ,但你至少需要编一次系统,debug 还挺方便,不过还是小修小改比较合适。
iminto
2023-03-14 08:48:36 +08:00
从 Java 角度来讲,只编译这两个 class 当然很容易,会 Java 命令行的基础用法就好,把 PackageManagerService 所 import 的文件放到对应的目录下,javac 执行下即可。

总共也就准备十几个文件而已,A 依赖 B ,B 依赖 C ,但是对于编译 A 来说,只需要 classpath 路径下有 B 就够了。这种方式,我以前玩破解经常用,只重新编译一个文件,而不需要搭建整个项目。A 依赖 B ,甚至都不需要有真实的 B 文件,只需要 B 这个 namespace ,也就是个空壳子 B 就够了。

但是这个是安卓,怎么从 class 到 dex 再到 rom 镜像我就不清楚了
Remmina
2023-03-14 11:51:21 +08:00
能想到的最简单的方法就是 Xposed 也就差不多是楼主提到的 LSPosed 。这玩意儿琢磨一遍就够,之后再用到就简单了。

水平有限,蹲一个大佬的答案。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/923709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX