RK3288 android 6.0 内置系统应用
安卓系统的内置应用可分为以下两大类:
- 可卸载的普通应用
- 不可卸载的系统应用,可以在首次烧录后自启动
可卸载应用
对于可卸载应用,其内置很简单,只需要将apk文件放置在指定目录即可。
cp My_application.apk device/rockchip/rk3288/preinstall_del/
不可卸载应用
针对不可卸载的系统应用,复杂一些,需要放置在 packages/apps
目录,具体操作如下:
apk_file=My_application.apk
install_dir=packages/apps/${apk_file}
mkdir ${install_dir}
cp ${apk_file} ${install_dir}
# 解压出lib文件
cd ${install_dir}
unzip ${apk_file} -d tmp
mv tmp/lib .
rm -rf tmp
cd -
# vi Android.mk
新建 Android.mk
注意修改以下 Android.mk
文件中的 LOCAL_MODULE
文件 apk
文件名前缀。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := My_application
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
$(shell mkdir -p $(PRODUCT_OUT)/system/lib)
$(shell cp -rf $(LOCAL_PATH)/lib/armeabi/* $(PRODUCT_OUT)/system/lib)
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PRIVILEGED_MODULE := false
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
更新 device.mk
在文件 device/rockchip/common/device.mk
中添加以下内容,这样才能将应用编译至系统固件。
PRODUCT_PACKAGES += My_application
最后重新编译系统固件即可。
说明
- 普通应用将安装在
/data/
目录 - 系统应用分以下两种情况
Android.mk
中LOCAL_PRIVILEGED_MODULE
为false,则安装在/system/app
目录Android.mk
中LOCAL_PRIVILEGED_MODULE
为true,则安装在/system/priv-app
目录
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 litreily的博客!