解决方法如下:
方法一:通过shell拷贝,在用到的xxx.mk中添加如下内容,如preinstall.mk
$(shell mkdir -p $(OUT)/system/etc/)
$(shell cp -rf $(LOCAL_PATH)/app_no_sign/xxx.apk $(OUT)/system/etc/)
方法二:注释掉编译系统对于apk的限制
platform/build / core/Makefile 注释调下面几行
#define check-product-copy-files
#$(if $(filter %.apk, $(1)),$(error \
# Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))
#endef
init.rc中启动该脚本(假设脚本名字为utility.sh):
也可以在init.rc中判断开机完成再起脚本:
init.rc
service utility/system/bin/utility.sh
class main
disabled
oneshot
on property:sys.boot_completed=1
start utility
脚本也顺便优化一下:
#!/system/bin/sh
xxx_path="/system/etc/xxx.apk"
pm list package | grep com.xxxx.xxxx.xxx
if [ $? -eq 1 ]
then
pm install $xxx_path
fi