Firefly开源社区

打印 上一主题 下一主题

Fireprime Android5.1预置系统apk

51

积分

0

威望

0

贡献

技术小白

积分
51

Fireprime Android5.1预置系统apk

发表于 2017-11-21 09:26:02      浏览:6914 | 回复:0        打印      只看该作者   [复制链接] 楼主
最近由于项目需要,要把apk预置到Android系统里,折腾了几天,终于搞定了,整理了下过程,欢迎指正错误

1.使用ADB安装测试:
adb root
adb remount
adb push xxx/xxx/my.apk /system/app/xxx/my.apk
adb shell
adb reboot

注意:debug版本可以直接安装,release版本必须签名


使用ADB安装测试没问题后,可以预置到Android源码里:
2.预置无源码apk到Android5.1:
创建vendor/custom/Preinstall/my/目录
创建vendor/custom/custom.mk
内容如下:
CUR_PATH := vendor/custom
include $(CUR_PATH)/Preinstall/Preinstall.mk

创建vendor/custom/Preinstall/Preinstall.mk
内容如下:
CUR_PATH := vendor/custom/Preinstall
include $(CUR_PATH)/my/my.mk

创建vendor/custom/Preinstall/my/my.mk
内容如下:
PRODUCT_PACKAGES += \
    my

如果apk里有lib(.so文件),要把apk里的lib目录复制到vendor/custom/Preinstall/my/目录下
比如.so文件在my.apk的lib/armeabi/目录下,则vendor/custom/Preinstall/my/my.mk增加如下代码:
libs := $(shell ls $(CUR_PATH)/my/lib/armeabi/)
PRODUCT_COPY_FILES += $(foreach file, $(libs), \
        $(CUR_PATH)/my/lib/armeabi/$(file):system/lib/$(file))

创建vendor/custom/Preinstall/my/Android.mk
内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := my
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#LOCAL_PRIVILEGED_MODULE := true
LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_OVERRIDES_PACKAGES :=
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
#LOCAL_REQUIRED_MODULES :=
#LOCAL_PREBUILT_JNI_LIBS :=
include $(BUILD_PREBUILT)

把my.apk放到vendor/custom/Preinstall/my/
重新编译,发现 out/target/product/rk312x/system/app/my目录下已经复制了my.apk
                         out/target/product/rk312x/system/lib目录下已经复制了.so文件
打包烧写,apk预置成功


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表