当前位置:   article > 正文

aosp 编译时加入外部模块 external_aosp external

aosp external

原文 https://balalals.cn/archives/aosp%E7%BC%96%E8%AF%91%E6%97%B6%E5%8A%A0%E5%85%A5%E5%A4%96%E9%83%A8%E6%A8%A1%E5%9D%97

aosp 项目本身自带了很多外部模块,所谓的外部模块就是一些命令或者库,一般放在external 目录下有的模块编译时会带上有的默认不带,不带上也可以刷机成功后通过mm编译出来然后adb push 进去,但是这样做会很麻烦。为了除去这种不必要的麻烦,最好在整体编译的时候加进去。
aosp中想要编译东西,修改一些属性其实修改多处都能达到目的,我所讲的可能也是其中的一种,因为aosp的编译体系太大,他会从不同的文件夹中提取编译说明最后合成再编译,修改哪里需要自己斟酌,要多观察多实践才能理解当中的意思。
模块中有的模块下面会有Android.mk 这个是Android的编译描述文件,类似于CMakelist.txt 给编译程序看的,还有的模块下面没有这个文件但是会有一个Android.bp 文件,这个文件其实就是Android.mk 的升级版,两者能完成的功能相同但是bp文件的可读性会好很多,也是官方推崇的方式。
回归正题,关于编译的东西一般都会在build 目录下,没错的确在这下面找到
build/target/product/core_minimal.mk 文件找到PRODUCT_PACKAGES

PRODUCT_PACKAGES += \
    BackupRestoreConfirmation \
    CompanionDeviceManager \
    CtsShimPrebuilt \
    CtsShimPrivPrebuilt \
    DownloadProvider \
    ExtShared \
    ExtServices \
    HTMLViewer \
    MediaProvider \
    PackageInstaller \
    SettingsProvider \
    Shell \
    StatementService \
    WallpaperBackup \
    android.hidl.base-V1.0-java \
    android.hidl.manager-V1.0-java \
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

意思都懒得解释猜都能猜出来,在末尾加上要想加入的模块名, 比如我想要tinyalsa 模块加入进去

    sensorservice \
    telephony-common \
    uiautomator \
    uncrypt \
    voip-common \
    webview \
    webview_zygote \
    tinyalsa \

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

就完成了加入,全量编译刷机,tinymix tinyplay tinycap 等命令就存在了,仔细看这个文件,文件末尾

$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)

  • 1
  • 2
  • 3

这两句话的意思应该是包含目录下这两个文件进来合并,再打开这两个文件同样末尾也会有包含其他文件,其实我们的PRODUCT_PACKAGES 语句写哪里都行只要能包含进来,这就是刚才我说的修改多处地方都会生效的问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/573115
推荐阅读
相关标签
  

闽ICP备14008679号