参考 ubuntu 20.04编译Android 11源代码&模拟器 完成Android 11源代码的编译工作,保证能编译通过。
想自己手工编译Frida
源代码的话,请参照下面:
如果想直接下载对应版本的Frida
库并存放到已经编译过的库位置,由于64
位系统需要兼容32
位应用,因此需要安装两个版本的动态库:
创建Frida Gadget
库的配置文件
里面的配置内容如下:
观察Frida
源代码,发现在 frida-core/lib/gadget/gadget-glue.c
中配置了lib
库的入口函数
这就意味着只要使用dlopen
加载frida-gadget
,我们就能实现对于指定应用的Hook
。
我们只需要监听子进程,不需要在Zygote
中加载,因此只需要在源代码 frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
的com_android_internal_os_Zygote_nativeForkAndSpecialize
函数中增加加载代码:
具体添加位置如下:
编译并重新生成系统镜像:
运行镜像
选择system-qemu.img和vendor-qemu.img,这两个镜像是专门为qemu运行制作的,如果选择system.img 和vendor.img,则avd运行失败。
上面运行起来的镜像是从~/AndSrc/aosp/out/debug/target/product/generic/hardware-qemu.ini
即可读取配置信息的,但是这个文件直接修改无效,我们如果需要修改参数,只能从启动参数中设置。
比如我们如果需要增大内存,开启GPU
的支持,则执行如下命令:
参考链接
- xposed源码编译与集成
- ubuntu 20.04编译Android 11源代码&模拟器
- Magisk与EdXposed框架安装实践(Android P及以上)
- YAHFA
- YAHFA--ART环境下的Hook框架
- YAHFA--ART环境下的Hook框架
- android N : UnsatisfiedLinkError 只能访问设置为公用库的so库
- linux下SO中INIT函数中添加自己的代码
- Framework基础:Android N 公共so库怎么定义呢?
- 在Android N上对Java方法做hook遇到的坑
- EdXposed & ART Hook 细节分享
- linkedin / dexmaker
- Android动态类生成预加载-dexmaker使用
- Android Frida 框架
- Frida源码分析
- hook工具frida原理及使用
- Global hook for customized AOSP
- Frida官方文档-Gadget
- Android ART VM的启动流程(五)
- Frida 安装和使用
- Frida releases
- Frida's Gadget Injection on Android: No Root, 2 Methods
- Android8.0 系统启动之孵化
- Android runtime机制(二)zygote进程的启动流程
- Gadget
- build python-macos on Apple M1 failed #1565
- Understanding Android: Zygote and DalvikVM
- 这恐怕是学习Frida最详细的笔记了(3)
大佬 看了你的文章我也尝试改了下 但是有些问题想请教 不知道如何联系你
留言即可
有个疑问,怎么加载我们平时写的js脚本,对app进行hook呢
这个需要增加JS的解析引擎来处理的,底层注册JS扩展方法到引擎层,常见的就是V8、quickjs,如果曾经开发过 React Native 的话,Facebook也开发了一套JS解析引擎,这一块还是挺多的。
大佬你好 我想请问下如何将第三方库的aar文件集成在aosp framwork层 我遇到了一些问题 想向您请教下
集成AAR的话,暂时没有处理过,不过,一般情况下都是直接改 framwork 代码,如果需要集成 AAR,完全可以在 framwork 的代码中调用 AAR的初始化,除非这个AAR依赖了一堆其他的AAR ,那就比较难办了。
如果是这种情况,那还不如自己写个系统服务/系统进程来的方便。