内置frida-gadget so文件和frida-server可执行文件到系统(Android10)

一、内置方法

    在Android系统中 ,预编译so或者可执行程序可以使用Android.mk配置模块方式或者使用源码中提供的RODUCT_COPY_FILES复制拷贝。

  Android.mk中预编译脚本可以参考上一章中的说明。

  PRODUCT_COPY_FILES:

  在Android源码中可以使用使用PRODUCT_COPY_FILES 预拷贝文件和目录。以下列举了一个使用的方式:

RODUCT_COPY_FILES += \    vendor/lineage/prebuilt/common/bin/backuptool.sh:install/bin/backuptool.sh \    vendor/lineage/prebuilt/common/bin/backuptool.functions:install/bin/backuptool.functions \    vendor/lineage/prebuilt/common/bin/50-lineage.sh:$(TARGET_COPY_OUT_SYSTEM)/addon.d/50-lineage.sh

    本文中准备使用Android.mk文件"include $(BUILD_PREBUILT)"方式内置frida-server,使用PRODUCT_COPY_FILES内置frida-gadget  arm和arm64平台动态库到系统中。 

二、开始内置

       2.1 准备素材以及源码存放目录

       分别官网下载frida-server可执行程序(由于我的是64位系统,只考虑arm64)和frida-gadget动态库(arm arm64)。在源码中创建保存文件的路径framework/base/cmds/mycmds,并将文件拷贝到该目录。如下所示:

qiang@ubuntu:~/lineageOs$ mkdir -p frameworks/base/cmds/mycmdsqiang@ubuntu:~/lineageOs$ cd frameworks/base/cmds/mycmds/qiang@ubuntu:~/lineageOs/frameworks/base/cmds/mycmds$ ls -latotal 74412drwxrwxr-x  2 qiang qiang     4096 1月   3 03:03 .drwxrwxr-x 36 qiang qiang     4096 1月   2 05:59 ..-rwxrw-rw-  1 qiang qiang 20162208 1月   2 05:56 libmyfridagadgetarm64.so-rwxrw-rw-  1 qiang qiang 14677128 1月   2 05:56 libmyfridagadgetarm.so-rwxrw-rw-  1 qiang qiang 41338528 1月   2 05:38 myfridaserverarm64

   

    2.2 内置frida-gadget动态库

            在源码中搜索PRODUCT_COPY_FILES使用的地方,找一个最好和具体设备无关的使用的地方。此处我选择build/make/target/product/handheld_system.mk文件中添加。在该文件中添加如下内容完成frida-gadget 动态库的复制工作。

# ///ADD STARTPRODUCT_COPY_FILES += \    frameworks/base/cmds/mycmds/libmyfridagadgetarm.so:$(TARGET_COPY_OUT_SYSTEM)/lib/libmygadget.so \    frameworks/base/cmds/mycmds/libmyfridagadgetarm64.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/libmygadget.so
# ///ADD END

    

2.3 内置frida-server可执行文件

        在上面的framework/base/cmds/mycmds文件夹中,添加Android.mk实现frida-server的内置工作。Android.mk内容如下:

#///ADD START#///ADD ENDLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := myfridaserverarm64LOCAL_MODULE_CLASS := EXECUTABLESLOCAL_SRC_FILES := myfridaserverarm64include $(BUILD_PREBUILT)

            在frida-server编译模块Android.mk文件创建好之后,将myfridaserverarm64模块加入build/make/target/product/base_system.mk中的PRODUCT_PACKAGES 

编译文件链中。加入之后PRODUCT_PACKAGES如下:

#///ADD START# add frida server to system#///ADD END# Base modules and settings for the system partition.PRODUCT_PACKAGES += \    myfridaserverarm64 \    abb \    adbd \    am \    ...(此处省略)

三、编译刷机测试    

source build/envsetup.shbreakfast oneplus3brunch oneplus3

关注微信公众号,及时获取更新内容图片图片图片图片图片图片图片图片图片图片图片:

图片

猜你喜欢

转载自blog.csdn.net/u011426115/article/details/113306697
今日推荐