您的位置:首页 > 其它

把apk、so等文件,打包到system.img的方法

2015-10-16 18:27 387 查看
本文说的打包是指在aosp中用make -j8编译后,把自己需要的文件打包到system.img中。
这里又两种情况,第一种是apk、so是第三方提供的,已经编译好了,只要打包到system.img即可;第二种是有apk、so的源码,并且需要放在aosp中编译。

第一种情况,可以修改device.mk中的PRODUCT_COPY_FILES,这里用android4.0中自带的device/ti/panda来修改。
1.在device/ti/panda增加已经自己的文件夹,并且把需要打包的文件,拷贝到文件夹下:

[html]
view plaincopyprint?

root@xxx:/mnt/ics-android/ics-src/device/ti/panda# ls my/*  
my/app:  
my.apk  
  
my/bin:  
my.sh  
  
my/fonts:  
  
my/lib:  
libmy.so  

root@xxx:/mnt/ics-android/ics-src/device/ti/panda# ls my/*
my/app:
my.apk

my/bin:
my.sh

my/fonts:

my/lib:
libmy.so
这里在device/ti/panda下增加了一个文件夹my,并且在my下面增加了app、bin、fonts、lib,对应out/target/product/panda/system下面的目录,在device.mk的最后增加:

[java]
view plaincopyprint?

PRODUCT_COPY_FILES += \  
    device/ti/panda/my/app/my.apk:system/app/my.apk \  
    device/ti/panda/my/bin/my.sh:system/bin/my.sh \  
    device/ti/panda/my/lib/libmy.so:system/lib/libmy.so  

PRODUCT_COPY_FILES += \
device/ti/panda/my/app/my.apk:system/app/my.apk \
device/ti/panda/my/bin/my.sh:system/bin/my.sh \
device/ti/panda/my/lib/libmy.so:system/lib/libmy.so


第二种情况,同样需要修改device.mk,把需要打包的文件添加到变量PRODUCT_PACKAGES中:

[java]
view plaincopyprint?

PRODUCT_PACKAGES += \  
    libmy \  
    my  

PRODUCT_PACKAGES += \
libmy \
my

注意这里的名字要求和模块的Android.mk中,指定生成的文件名称相同,例如
LOCAL_MODULE:= libmy
或者
LOCAL_PACKAGE_NAME := my

同时,还要求模块的Android.mk中变量LOCAL_MODULE_TAGS值为optional
LOCAL_MODULE_TAGS := optional

在aosp的build目录下有多处指定打包文件的地方,可以参考下:

[java]
view plaincopyprint?

root@xxx:/ics-android/ics-src/build# grep PRODUCT_PACKAGES * -rn  
core/main.mk:614:                       $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES))  
core/Makefile:315:      $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) \  
core/product.mk:68:    PRODUCT_PACKAGES \  
core/base_rules.mk:93:    $(warning *    into the PRODUCT_PACKAGES section of product)  
core/base_rules.mk:99:    $(warning * PRODUCT_PACKAGES section of)  
target/product/large_emu_hw.mk:22:PRODUCT_PACKAGES := \  
target/product/sdk.mk:20:PRODUCT_PACKAGES := \  
target/product/sdk.mk:71:PRODUCT_PACKAGES += \  
target/product/sdk.mk:91:PRODUCT_PACKAGES += \  
target/product/sdk.mk:132:PRODUCT_PACKAGES += \  
target/product/core.mk:25:PRODUCT_PACKAGES := \  
target/product/core.mk:111:    PRODUCT_PACKAGES += \  
target/product/full_x86.mk:29:PRODUCT_PACKAGES := \  
target/product/full_x86.mk:36:PRODUCT_PACKAGES += \  
target/product/full.mk:22:PRODUCT_PACKAGES := \  
target/product/generic_no_telephony.mk:22:PRODUCT_PACKAGES := \  
target/product/generic_no_telephony.mk:48:PRODUCT_PACKAGES += \  
target/product/generic_no_telephony.mk:51:PRODUCT_PACKAGES += \  
target/product/generic_no_telephony.mk:57:PRODUCT_PACKAGES += \  
target/product/telephony.mk:20:PRODUCT_PACKAGES := \  
target/product/full_base_telephony.mk:22:PRODUCT_PACKAGES := \  
target/product/full_base.mk:22:PRODUCT_PACKAGES := \  
target/board/generic/device.mk:29:PRODUCT_PACKAGES := \  

root@xxx:/ics-android/ics-src/build# grep PRODUCT_PACKAGES * -rn
core/main.mk:614:                       $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES))
core/Makefile:315:      $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) \
core/product.mk:68:    PRODUCT_PACKAGES \
core/base_rules.mk:93:    $(warning *    into the PRODUCT_PACKAGES section of product)
core/base_rules.mk:99:    $(warning * PRODUCT_PACKAGES section of)
target/product/large_emu_hw.mk:22:PRODUCT_PACKAGES := \
target/product/sdk.mk:20:PRODUCT_PACKAGES := \
target/product/sdk.mk:71:PRODUCT_PACKAGES += \
target/product/sdk.mk:91:PRODUCT_PACKAGES += \
target/product/sdk.mk:132:PRODUCT_PACKAGES += \
target/product/core.mk:25:PRODUCT_PACKAGES := \
target/product/core.mk:111:    PRODUCT_PACKAGES += \
target/product/full_x86.mk:29:PRODUCT_PACKAGES := \
target/product/full_x86.mk:36:PRODUCT_PACKAGES += \
target/product/full.mk:22:PRODUCT_PACKAGES := \
target/product/generic_no_telephony.mk:22:PRODUCT_PACKAGES := \
target/product/generic_no_telephony.mk:48:PRODUCT_PACKAGES += \
target/product/generic_no_telephony.mk:51:PRODUCT_PACKAGES += \
target/product/generic_no_telephony.mk:57:PRODUCT_PACKAGES += \
target/product/telephony.mk:20:PRODUCT_PACKAGES := \
target/product/full_base_telephony.mk:22:PRODUCT_PACKAGES := \
target/product/full_base.mk:22:PRODUCT_PACKAGES := \
target/board/generic/device.mk:29:PRODUCT_PACKAGES := \


转载自 http://blog.csdn.net/victoryckl/article/details/8034005 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: