Android APK内置(经验积累)

来源:互联网 发布:手机修改mac的软件 编辑:程序博客网 时间:2024/05/16 06:09

由于项目需求,需要将百度输入法内置到MTK平台手机中,因此看到这一块,本人很菜,如有错误,希望各位大神帮助改正。非常感谢。

1.预装apk的目录可以选择如下两个目录:

Alps/mediatek/binary/3rd-party/free/ 或者 Alps/operator/OP0x/prebuilt/

2.预装已经编译好的apk时,比如BaiduIput.apk,在Alps/mediatek/binary/3rd-party/free/  或者 Alps/operator/OP0x/prebuilt/ 下面创建目录,命名为BaiduIput

3.将已经编译好的BaiduInput.apk拷贝到BaiduInput目录下面来。

4.在BaiduInput目录下面,新建Android.mk文件,内容如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# Module name should match apk name to be installed
LOCAL_MODULE := BaiduInput
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
include $(BUILD_PREBUILT)

      这里需要注意:a).LOCAL_CERTIFICATE := PRESIGNED 表示APK签名使用原来签名,即第三方签名,若要使用系统签名,则可以改为LOCAL_CERTIFICATE := platform 系统前面,可以使apk获得系统权限。

                             b).LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app表示编译后apk放在/system/vendor/operator/app目录下面,用户可以卸载,否则不加这句,会放在/system/app/下面,用户不可以卸载。

特殊要求:

      今天需要在发布CTA版本时内置Bypass.apk,在其他版本中不用内置次apk.做法如下:

    1.  同样需要在Alps/mediatek/binary/3rd-party/free/ 中添加Bypass.apk文件和Android.mk文件。

    2. 由于MTK在mediatek/config/project/ProjectConfig.mk 文件中定义了一个宏,在需要编译为CTA版本时候,设为yes。

    # Enable CTA requirements
    MTK_CTA_SUPPORT=yes,

   因此,需要在Alps/build/target/prodect/common.mk文件中添加判断,若MTK_CTA_SUPPORT=yes,则为编译编译CTA版本,添加编译Bypass;

   # Added by niexu for Bypass begin
ifeq ($(strip $(MTK_CTA_SUPPORT)), yes)
    PRODUCT_PACKAGES += Bypass
endif
# Added by niexu for Bypass end

0 0
原创粉丝点击