介绍
因为要经常刷机测试,为了方便测试,不想每次刷完机都adb push文件进手机,这里尝试把可执行文件内置到系统中打包刷入。
下面是用AOSP8来演示。
添加可执行文件和Android.mk
这里以frida14的server为例,我这里重命名成myfs14,便于区分。
我们找到目录AOSP/frameworks/base/cmds/,这里新建了一个文件夹,用于存放我内置的三方可执行文件,可以根据自己喜好来。
继续建立新的文件夹myfs14也是为了便于区分:
把可执行文件frida14的server放进去,并新建一个Android.mk文件,内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CHECK_ELF_FILES := false
LOCAL_MODULE := myfs14
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_SRC_FILES := myfs14
include $(BUILD_PREBUILT)
这里把LOCAL_CHECK_ELF_FILES和LOCAL_SRC_FILES改成你自己的可执行文件的名称即可。
添加进系统环境
接下来把可执行文件添加进系统环境,找到/build/make/target/product/base.mk文件。AOSP10可以放到/build/make/target/product/base_system.mk文件中。
找到PRODUCT_PACKAGES,添加上面的可执行文件名称:
添加执行权限
继续添加可执行文件的ROOT执行权限,找到/system/core/libcutils/fs_config.cpp文件,这里我们之前修改su的时候修改过这个文件,找到改过的地方,在下面添加
刷机测试
修改添加完了,直接make,等一小会就可以了。
编译完后进行测试,可以看到system/bin目录下已经有我们放入的文件了:
命令也直接存在了:
总结
通过添加修改配置文件,将常用的一些可执行文件内置到系统中,简化测试流程。