全志平台不打包data分区,但是有些应用必须放在data分区才能正常使用,放system/app下面安装后运行会因为缺少lib库而退出,system/app和data/app(pm) 安装方式不一样。网上找了些资料,最终使用preinstall的方式实现。

1 首先,修改初始化脚本init.rc, 启动preinstall.sh脚本,判断及拷贝相应的文件。一般厂商可以配置额外的初始化设置置,例如init.sun7i.rc。

service preinstall /sbin/busybox sh /system/bin/preinstall.sh

user root

group root

disabled

oneshot

on property:sys.boot_completed=1

start preinstall

2 preinstall.sh会被拷贝到system/bin/下面,修改如下:

MARK=/data/app/*

PKGS=/system/preinstall/

#判断文件是否存在

if [! -e $MARK ];then

echo "cp daohang to data"apk_list=$(busybox find $PKGS -name"*\.apk")

fi

3 预置文件到system/preinstall/, 修改prebuild/preinstall/android.mk

LOCAL_PATH := $(call my-dir)

########################################

include $(CLEAR_VARS)

LOCAL_MODULE := flashplayer

LOCAL_MODULE_TAGS := optional

LOCAL_CERTIFICATE := PRESIGNED

LOCAL_MODULE_PATH := $(TARGET_OUT)/preinstall

LOCAL_MODULE_CLASS := APPS

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

include $(BUILD_PREBUILT)

#######################################

这样基本上就可以了。

参考:http://www.2cto.com/kf/201505/402769.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐