最近有位读者私信,说能不能推荐一些大厂使用的安卓类开源项目,想了下,读者中也有不少搞安卓开发的,所以今天给大家推荐一个大厂出品的安卓开源项目。
这个项目是「ByteHook」,目前在 GitHub 收获了 670 Star,是一个针对 Android App 的 PLT hook 框架。
这个框架也是最近才开源,字节跳动团队大多数 Android App 开发在线上使用了这个项目作为方案,对于创业公司或者安卓开发者是一个学习参考,它提供了一个 Android 应用程序使用 PLT 钩子的整体方案,而可选择替换地址。
我们平常玩的抖音、今日头条、西瓜视频 APP ,字节跳动在在线上环境中使用了ByteHook作为PLT钩子方案。
这个框架主要有以下特征:
支持 Android 4.1 - 12 (API 级别 16 - 31)。
支持 armeabi-v7a、arm64-v8a、x86 和 x86_64。
对同一个函数的多个hook和unhook相互不冲突。
可以勾上进程中的个别、部分或全部的动态库。
自动钩子新加载的动态库。
自动避免代理函数之间的循环调用和循环调用。
代理功能中支持回溯调用栈。
使用 MIT 许可授权。
如何上手使用?
- 在build.gradle中增加依赖
所有项目{
存储库{
MavenCentral()
}
}
安卓{
构建功能{
预制真
}
}