android编译 预装apk,Android系统使用Shell脚本预装apk

本文介绍了如何在Android系统中通过shell脚本来预装apk,并确保只在首次启动时运行。通过修改init.rc文件启动服务,并在shell脚本中检查apk是否已安装,实现批量安装和权限设置。此外,还展示了在编译时如何使用mk文件批量拷贝apk到指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户需求:需要在Android系统预安装一个或者若干个apk,客户可以选择自行卸载并且卸载后系统再次启动并不会再次自动安装。

考虑到需要批量安装应用,我这里考虑到使用灵活的shell脚本。shell脚本可以通过修改init.rc令其可以在开机时运行启动,同时可以加入限制相应的判断条件让其在首次只run一次,这里命名shell脚本为install_apk.sh。以下是init.rc的配置启动服务,通过添加如下声明可以让Android系统在启动时运行install_apk.sh#install apk

service install_apk /system/bin/install_apk.sh

class main

oneshot

接下来我们来看install_apk.sh的实现,这里设计shell脚本的功能主要是实现安装指定目录下的apk,并且只运行一次,我们直接看脚本代码。#!/system/bin/sh

installed_mode=`/system/bin/getprop "persist.sys.apk.installed"`

if [ "$installed_mode" != "DONE" ]; then

DIR="/system/usr/app"

DATA_DIR="/data/app"

cd $DIR

for apk in $(ls $DIR)

do

busybox cp $DIR/$apk $DATA_DIR

chmod 777 $DATA_DIR/$apk

done

fi

/system/bin/setprop persist.sy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值