Android预装应用的方法


Android预装应用有很多种方法:

推荐第三种

一、在Vender文件夹内预装不可卸载应用

另一种预装应用存放方式,存放目录为W:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps在该文件夹下存放所需APP文件夹,在文件夹内存放APK文件和MK文件,其Android.mk形式为:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TESTAPP
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#LOCAL_PRIVILEGED_MODULE :=
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
#LOCAL_REQUIRED_MODULES :=
#LOCAL_PREBUILT_JNI_LIBS :=
include $(BUILD_PREBUILT)

另外还需在W:\Code\RK3399PRO_HDMI_ANDROID8\vendor\rockchip\common\apps\apps.mk中增加如此描述

PRODUCT_PACKAGES += TESTAPP

二、在Package文件夹内预装不可卸载应用

另一种预装应用存放方式,存放目录为W:\Code\px30-jd4_android8\AIO-PX30-JD4\packages\apps在该文件夹下存放所需APP文件夹,在文件夹内存放APK文件和MK文件,其Android.mk形式为:

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

# Module name should match apk name to be installed
LOCAL_MODULE := BILIBILI
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PRIVILEGED_MODULE := false
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

另外还需在W:\Code\px30-jd4_android8\AIO-PX30-JD4\device\rockchip\common\device.mk中增加如此描述

PRODUCT_PACKAGES += BILIBILI

三、在Device下预装应用

该方法可预装:

  • 不可卸载应用
  • 可卸载应用,重置后恢复
  • 可卸载应用,重置后不可恢复

先讲下流程,在W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\common\device.mk文件内有如下代码:

# Prebuild apps
ifneq ($(strip $(TARGET_PRODUCT)), )
    TARGET_DEVICE_DIR=$(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_PRODUCT)/BoardConfig.mk')
    TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(TARGET_DEVICE_DIR)))
#    $(info device-rockchip-common TARGET_DEVICE_DIR: $(TARGET_DEVICE_DIR))
    $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_DEVICE_DIR) preinstall bundled_persist-app)
    $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_DEVICE_DIR) preinstall_del bundled_uninstall_back-app)
    $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_DEVICE_DIR) preinstall_del_forever bundled_uninstall_gone-app)
    -include $(TARGET_DEVICE_DIR)/preinstall/preinstall.mk
    -include $(TARGET_DEVICE_DIR)/preinstall_del/preinstall.mk
    -include $(TARGET_DEVICE_DIR)/preinstall_del_forever/preinstall.mk
endif

其主要内容为,根据预装APP文件,生成相应的文件。

1、不可卸载应用

将应用放入该文件夹内

W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\preinstall

2、可卸载应用,重置后可恢复

将应用放入该文件夹内

W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\preinstall_del

3、可卸载应用,重置后不可恢复

将应用放入该文件夹内

W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\preinstall_del_forever

最后在W:\Code\RK3399PRO_HDMI_ANDROID8\device\rockchip\rk3399pro\device.mk文件内添加所要增加的应用名,如下所示:

PRODUCT_PACKAGES += \
	BILIBILI \
	NeteaseCloudMusi \
	Quark_Browser_unins \
	tim

在make工程后,会发现之前放进去的APK文件会,会被生成一个文件夹,文件夹内有Android.mk文件和apk文件,有些应用还会有lib文件

END

预装应用的默认权限,请参考该文章《Android 默认打开应用权限》


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM