[全志A83T][android4.4] 预装APK到系统方法

一,预装到system/preinstall

  1. 这个目录下的apk会在系统第一次启动,在launcher启动之前安装到用户data目录,用户可自行卸载

  2. 将apk放在android/device/softwinner/common/prebuild-common/preinstallapk/目录中,apk的名字不可使用中文,空格或者特殊符号,否则可能安装不成功。
    接着在同目录的Android.mk文件中加入:

    include $(CLEAR_VARS)
    LOCAL_MODULE := APK_MODULE_NAME(apk名)
    LOCAL_MODULE_TAGS := optional
    LOCAL_CERTIFICATE := PRESIGNED
    LOCAL_MODULE_PATH := $(TARGET_OUT)/preinstall
    LOCAL_MODULE_CLASS := APPS
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
    include $(BUILD_PREBUILT)
    
  3. 在方案mk文件android/device/softwinner/octopus-perf/octopus_perf.mk中PRODUCT_PACKAGES项中加入:

     #预装多个apk用"\"分开
     PRODUCT_PACKAGES += APK_MODULE_NAME(apk名)
    

二,预装到system/app

  1. 如果apk有lib,则将其放到android/device/softwinner/common/prebuild-common/apk/apklib目录中,并在同目录的Android.mk文件中加入:

    include $(CLEAR_VARS)
    LOCAL_MODULE_TAGS := optional
    #so库的文件名,建议将同一apk的so库写在一起,用"\"分开;
    LOCAL_PREBUILT_LIBS := libjni1.so \
    					   libjni2.so
    include $(BUILD_MULIT_PREBUILT)
    
  2. 将apk放入android/device/softwinner/common/prebuild-common/apk/目录下,并在同目录的Android.mk文件中加入:

    include $(CLEAR_VARS)
    LOCAL_MODULE := APK_MODULE_NAME(apk名)
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE_CLASS := APPS
    LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    LOCAL_CERTIFICATE := PRESIGNED
    LOCAL_REQUIRED_MODULES := libjni1 \
                              libjni2
    #如果使用上面第一点的的方式添加so库,则不使用这个
    #LOCAL_PREBUILT_JNI_LIBS := @lib/$(TARGET_ARCH)/libjni.so(使用@直接引用apk内部so)
    #如果有两个apk包名相同,而apk名字不同,则可以把不用的那个apk名字加在此处,有意想不到的效果!
    #LOCAL_OVERRIDES_PACKAGES := OVERRIDES_MODULE(要替换的apk)
    include $(BUILD_PREBUILT)
    
  3. 在方案mk文件android/device/softwinner/octopus-perf/octopus_perf.mk中PRODUCT_PACKAGES项中加入:

    #预装多个apk用"\"分开
    PRODUCT_PACKAGES += APK_MODULE_NAME(apk名)	   
    

三,将apk添加到指定目录(system/priv-app)

将apk放在常规目录里,如:android/device/softwinner/octopus-common/apk,然后设置此目录下的Android.mk,基本和其他apk一样的设置,但是要添加一行:

#这个宏如果设置为true,就代表要将apk添加到system/priv-app,不设置或者设置为false,则不添加到此目录;
LOCAL_PRIVILEGED_MODULE := true

注:安装到此目录下的apk不可卸载.

猜你喜欢

转载自blog.csdn.net/weixin_45639314/article/details/131830205