ARTist:Android 运行时指令级插桩框架
基于 Android Runtime 编译器的插桩框架,在设备编译时修改代码,保留应用原签名并工作于指令级。
ARTist(Android Runtime instrumentation and security toolkit)是一个面向 Android 应用与 Java 中间件的开源插桩框架。它基于 Android Runtime(ART)的编译器,在设备端编译(on-device compilation)过程中修改代码;与既有插桩框架不同,它保留应用的原始签名,并在指令级别进行操作。本仓库是 ARTist 生态的核心实现,需集成进 AOSP 的 Android Runtime 项目,以生成包含该框架的定制版 dex2oat。README 引用了 2017 IEEE EuroS&P 论文《ARTist: The Android runtime instrumentation and security toolkit》,并提到一篇后续工作:利用 ARTist 将第三方应用中的广告库裁出、迁移到独立应用(拥有自己的安全主体),再通过自定义 Binder IPC 协议重新连接,同时以浮动视图方式保持广告显示效果,该论文为 CCS'17 的《The ART of App Compartmentalization》。