脚本强制预置apk | adb install 方式

发布时间 2023-11-06 16:43:38作者: 安妍

 

使用场景:Android 系统预置apk无法打开

简单总结:脚本预置进android设备指定目录,预置方式还是通过device.mk ; 目标apk存放至代码随意目录下;执行脚本(此部分由init.r获取对脚本的读写权限)

  1. 目标apk存放

     

     

    以上Android.mk 中的mkdir指令,作用是为了编译系统能够找到源代码中微信apk的存放路径

  2. 脚本预置 //将预置apk的脚本预置进android设备指定目录

 

 

 

  1. init.rc 开启脚本执行开机即执行权限/同时可能会涉及Selinux权限,对应添加即可

 

注意事项:

(1.)编译前删除out下所以微信apk对应的目录

(2.)确认设备上指定路径下已经存在微信apk和安装apk的脚本文件

(3.)确认脚本文件的格式是否正确,可执行脚本(最好绝对路径执行);若脚本存在但无法执行,大概率是脚本格式的问题

(4.) 确认脚本可以执行后,设备上目标apk的图标稍等会儿即出现,若一直未安装成功,则使用指令,抓取se权限,并根据规则添加权限;指令:adb shell "cat /proc/kmsg |grep avc" >D:/log/avc_llog.txt //此调试指令需root权限

备注:安装apk脚本文件:

pre_install.sh:

#!system/bin/sh
if [ -f /data/etc/preinstall ]; then
echo "preinstall already set"
else
mkdir /data/etc
chmod 0777 /data/etc
touch /data/etc/preinstall
chmod 0777 /data/etc/preinstall
pm install /vendor/app/WeiXin.apk
echo "install ok"
fi