如何从 android 平台构建中删除大量模块?
How to remove numerous modules from android platform build?
我们的芯片组供应商提供了带有数百个无用模块的 Android 平台。有些是使用 LOCAL_MODULE_TAGS := optional debug
包含的,但我根本不希望这个模块出现在任何构建中。有些是通过执行 PRODUCT_PACKAGES += junk-app
包含的。我可以一次一个地浏览所有 Android.mk 文件来清理这些东西,但是如果供应商给我们一个新的 drop,这对于合并来说是很麻烦和有问题的。
我可以使用 LOCAL_OVERRIDES_PACKAGES
删除 PRODUCT_PACKAGES
但这不适用于保存到 /system/vendor/bin
的共享库或复制到 [=16= 中的预建文件].
将 LOCAL_MODULE_TAGS
设置为包含 eng
或 debug
的值的那些最烦人。
所以似乎没有任何灵丹妙药,这是我的策略:
- 从一堆 makefile 中的
LOCAL_MODULE_TAGS
中删除 debug
和 eng
标签(乏味但没有其他明显的选择)
- 使用
ifneq ($(TARGET_VENDOR), mycompany)
删除添加到 PRODUCT_PACKAGES
的内容
我们的芯片组供应商提供了带有数百个无用模块的 Android 平台。有些是使用 LOCAL_MODULE_TAGS := optional debug
包含的,但我根本不希望这个模块出现在任何构建中。有些是通过执行 PRODUCT_PACKAGES += junk-app
包含的。我可以一次一个地浏览所有 Android.mk 文件来清理这些东西,但是如果供应商给我们一个新的 drop,这对于合并来说是很麻烦和有问题的。
我可以使用 LOCAL_OVERRIDES_PACKAGES
删除 PRODUCT_PACKAGES
但这不适用于保存到 /system/vendor/bin
的共享库或复制到 [=16= 中的预建文件].
将 LOCAL_MODULE_TAGS
设置为包含 eng
或 debug
的值的那些最烦人。
所以似乎没有任何灵丹妙药,这是我的策略:
- 从一堆 makefile 中的
LOCAL_MODULE_TAGS
中删除debug
和eng
标签(乏味但没有其他明显的选择) - 使用
ifneq ($(TARGET_VENDOR), mycompany)
删除添加到PRODUCT_PACKAGES
的内容