把apk、so等文件,打包到system.img的方法
来源:互联网 发布:国际机票 知乎 编辑:程序博客网 时间:2024/06/05 11:11
本文说的打包是指在aosp中用make -j8编译后,把自己需要的文件打包到system.img中。
这里又两种情况,第一种是apk、so是第三方提供的,已经编译好了,只要打包到system.img即可;第二种是有apk、so的源码,并且需要放在aosp中编译。
第一种情况,可以修改device.mk中的PRODUCT_COPY_FILES,这里用android4.0中自带的device/ti/panda来修改。
第二种情况,同样需要修改device.mk,把需要打包的文件添加到变量PRODUCT_PACKAGES中:
注意这里的名字要求和模块的Android.mk中,指定生成的文件名称相同,例如
LOCAL_MODULE:= libmy
或者
LOCAL_PACKAGE_NAME := my
同时,还要求模块的Android.mk中变量LOCAL_MODULE_TAGS值为optional
LOCAL_MODULE_TAGS := optional
转载自 http://blog.csdn.net/victoryckl/article/details/8034005
这里又两种情况,第一种是apk、so是第三方提供的,已经编译好了,只要打包到system.img即可;第二种是有apk、so的源码,并且需要放在aosp中编译。
第一种情况,可以修改device.mk中的PRODUCT_COPY_FILES,这里用android4.0中自带的device/ti/panda来修改。
1.在device/ti/panda增加已经自己的文件夹,并且把需要打包的文件,拷贝到文件夹下:
- 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.apkmy/bin:my.shmy/fonts:my/lib:libmy.so这里在device/ti/panda下增加了一个文件夹my,并且在my下面增加了app、bin、fonts、lib,对应out/target/product/panda/system下面的目录,在device.mk的最后增加:
- 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中:
- 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目录下有多处指定打包文件的地方,可以参考下:
- 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 * -rncore/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
0 0
- 把apk、so等文件,打包到system.img的方法
- 把apk、so等文件,打包到system.img的方法
- 把apk、so等文件,打包到system.img的方法
- android 把第三方apk打包到System.img中
- 把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法:
- 把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法
- ndk开发打包.so文件到apk包的方法
- apk文件编译到system.img中的方法
- 第三方或自己开发的apk文件编译到系统文件(system.img)中的方法!!!!!
- android源码中打包so到apk的方法
- android源码中打包so到apk的方法
- 把apk安装包编译到system.img
- android打包so文件到apk
- 如何将.so文件打包到.APK
- android打包so文件到apk
- 如何将.so文件打包到.APK
- android打包so文件到apk
- Android打包so文件到apk
- mac 下的mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock
- Jenkins Ubuntu环境安装启动步骤
- 圆角图片github项目:RoundAngleImageView 【常用】
- 关于UIAlertController 的一些用法
- 关于DP的单调队列优化和斜率优化区别
- 把apk、so等文件,打包到system.img的方法
- cloudstack 创建与删除VM流程
- Android之JSON封装与Javascript解析JSON
- android中图片加载的4种途径和加载方法
- 为什么会文不对题
- alter table新增字段操作究竟有何影响?(下篇)
- mysql 左外连接 右外链接 内连接
- linux进程状态D
- 云安全部分概念解析