1.首先将这个apk拷贝到系统的某个目录,如/system/etc,但是安卓系统的makefile限制了对后缀为apk文件的拷贝导致编译报错
解决方法如下:
方法一:通过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
#define check-product-copy-files
#$(if $(filter %.apk, $(1)),$(error \
#endef
2.写一个shell脚本,预置到system/bin下,开机时在init.rc中启动
脚本内容:
#!/system/bin/sh
xxx_path="/system/bin/xxx.apk"
while [ 1 ]
do
done &
init.rc中启动该脚本(假设脚本名字为utility.sh):
service utility /system/bin/utility.sh
也可以在init.rc中判断开机完成再起脚本:
init.rc
service utility/system/bin/utility.sh
on property:sys.boot_completed=1
utility
脚本也顺便优化一下:
#!/system/bin/sh
xxx_path="/system/etc/xxx.apk"
pm list package | grep com.xxxx.xxxx.xxx
文章来源: 如何将一个apk以第三方安装的形式预置到rom中