V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
s82kd92l
V2EX  ›  Android

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

  •  
  •   s82kd92l · 2023-03-13 21:38:38 +08:00 · 8080 次点击
    这是一个创建于 619 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想对 LineageOS 里面 framework/service 下面的 PackageManagerService.java 和 ActivityManagerService.java 做一些修改,但自己重新编译整个 rom 代价有点高,debug 与迭代速度也太慢,求问有没有比较快速地 override 或者 patch 补丁方案呢?

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

    LSPosed 感觉太麻烦了, 里面也不太容易 import 系统自带的其他 class.
    3 条回复    2023-03-14 11:51:21 +08:00
    bluesky139
        1
    bluesky139  
       2023-03-14 01:58:26 +08:00 via Android
    打 patch 的方式可以参考我这个 https://github.com/bluesky139/LTweaksSystem ,但你至少需要编一次系统,debug 还挺方便,不过还是小修小改比较合适。
    iminto
        2
    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
        3
    Remmina  
       2023-03-14 11:51:21 +08:00
    能想到的最简单的方法就是 Xposed 也就差不多是楼主提到的 LSPosed 。这玩意儿琢磨一遍就够,之后再用到就简单了。

    水平有限,蹲一个大佬的答案。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1259 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:55 · PVG 01:55 · LAX 09:55 · JFK 12:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.