006.添加配置文件与删除已有模块
2023/7/5大约 2 分钟
1. 添加配置文件
PRODUCT_COPY_FILES 常用于产品的配置文件中,在本文中就是 Rice14.mk 文件,用于将源码的文件拷贝到 Android 文件系统中。
这里看一个源码中的示例:
aosp/build/target/product/core_64_bit.mk 中有如下内容:
PRODUCT_COPY_FILES += system/core/rootdir/init.zygote64_32.rc:system/etc/init/hw/init.zygote64_32.rc这一行表示将源码中的 system/core/rootdir/init.zygote64_32.rc 拷贝到 Android 文件系统的 system/etc/init/hw/init.zygote64_32.rc 文件中。
init.zygote64_32.rc 是 init 程序使用的一个配置文件,当我们的程序需要配置文件时,也可以参考以上的方式来完成。
2. 删除已有模块
有的时候,我们需要删除系统中已有的模块,比如我们系统的应用场景是广告牌、电视,那我们就需要删除电话,通信录等应用。下面以删除通信录(Contacts)为例,演示如何操作:
# 在源码的 build 目录下
grep -r "Contacts" .
./make/target/product/handheld_product.mk: Contacts \
./make/target/product/mainline_arm64.mk: system/priv-app/Contacts/Contacts.apk \
./make/target/product/base_system.mk: ContactsProvider \
./make/core/build-system.html:Dialer, Contacts, etc. This will probably change or go away when we switch在源码的 build 目录下的 ./make/target/product/handheld_product.mk 中删除 PRODUCT_PACKAGES 变量的 Contacts
接着重新编译启动模拟器:
source build/envsetup.sh
lunch Rice14-eng
make clean
make -j16
emulator可以看到,Contacts 应用已经没有了:

参考资料
- How to include prebuilt library in Android.bp file?
- Android系统开发入门-5.添加预编译模块
- Android系统开发入门-6.删除Android原生内置APK
- Android.bp 文件中引入aar、jar、so库正确编译方法(值得收藏)
- 在AOSP中添加jar包和aar包依赖

觉得有用?关注公众号「阿豪讲Framework」
Android 系统开发,新文章第一时间推送。