当前位置: 首页 > news >正文

系统内置apk无法使用 手动安装却可以

rk平台上遇到bbbs_9.79.19.92.apk系统内置无法使用(切换各种安装目录 加签名也不行) 手动安装却可以

编写RC开机自启脚本

此方案通过编写一个Shell脚本,并将它配置为一个系统服务,在开机完成时触发执行安装指定apk。

目录结构
device/rockchip/rk3576/bbbs_9.79.19.92/ myapk_installer.rc , Android.mk , bbbs_9.79.19.92.apk , install_myapk.sh

  1. 编写安装脚本
    创建脚本文件,例如 install_myapk.sh,内容如下:
#!/system/bin/sh# 检查是否已安装过if["$(getprop persist.sys.myapk.installed)"="1"];thenexit0filog-tMyApkInstaller"Starting APK installation..."# 等待系统服务完全就绪(可选,但手动执行时不需要)# 保留一行 sleep 可避免时机问题,但手动执行时其实无影响sleep2# 执行安装pminstall-r/system/preloads/bbbs_9.79.19.92.apkif[$?-eq0];thensetprop persist.sys.myapk.installed1log-tMyApkInstaller"Installation succeeded"elselog-tMyApkInstaller"Installation failed (exit code:$?)"fi

如果你更我一样系统再win下去创建脚本 需要去掉install_myapk.sh中的win换行符号 不然脚本容易执行不了
sed -i ‘s/\r$//’ install_myapk.sh

  1. 添加启动服务
    在系统的init.rc或特定产品的init.xxx.rc文件中,添加服务定义:
    编写myapk_installer.rc 内容如下
servicemyapk_installer /system/bin/sh /system/bin/install_myapk.sh class main user root group root shell disabled oneshot seclabel u:r:shell:s0 on property:sys.boot_completed=1start myapk_installer
  1. 放置APK和脚本到指定分区
    编写Android.mk文件 内容如下
LOCAL_PATH :=$(call my-dir)# APK 预置到 /system/preloadsinclude$(CLEAR_VARS)LOCAL_MODULE :=bbbs_9.79.19.92.apk LOCAL_MODULE_CLASS :=ETC LOCAL_SRC_FILES :=bbbs_9.79.19.92.apk LOCAL_MODULE_PATH :=$(TARGET_OUT)/preloads LOCAL_MODULE_TAGS :=optional include$(BUILD_PREBUILT)# 安装脚本预置到 /system/bininclude$(CLEAR_VARS)LOCAL_MODULE :=install_myapk.sh LOCAL_MODULE_CLASS :=EXECUTABLES LOCAL_SRC_FILES :=install_myapk.sh LOCAL_MODULE_PATH :=$(TARGET_OUT_EXECUTABLES)LOCAL_MODULE_TAGS :=optional include$(BUILD_PREBUILT)
  1. 添加编译
    b/device.mk中加入
PRODUCT_PACKAGES+=\install_myapk.sh\bbbs_9.79.19.92.apk PRODUCT_COPY_FILES+=\device/rockchip/rk3576/bbbs_9.79.19.92/myapk_installer.rc:/system/etc/init/myapk_installer.rc

测试与验证

adb shellsh/system/bin/install_myapk.sh#验证内置后的脚本是否可以正常运行adb shell getprop persist.sys.myapk.installed#查看是否执行安装adb shell setprop persist.sys.myapk.installed0#可重新设值反复验证
http://www.jsqmd.com/news/952904/

相关文章:

  • 2026年知名的哈尔滨系统集成/哈尔滨电子签热选公司推荐 - 行业平台推荐
  • 单卡RTX 4090微调20B多语言大模型做推理训练实战
  • 从充电场站到干线物流:千方 ESG 报告里的多场景节能探索
  • 百度网盘全速下载终极指南:告别限速,轻松获取文件
  • Java 开发者,不必在 AI 时代感到焦虑
  • Moltbot:本地化自动化代理的系统级实践与可信执行设计
  • 2026年热门的太阳伞/岗亭遮阳伞长期合作厂家推荐 - 品牌宣传支持者
  • 从PHM 2012挑战赛看工业预测性维护:如何用轴承振动数据训练你的第一个RUL模型
  • Adobe Photoshop Lightroom Classic
  • Unity 滚动球游戏(二)
  • 快速验证物联网想法:用快马一键生成esp8266 wifi连接原型代码
  • Navicat连Oracle 11g报错ORA-28547?别慌,手把手教你替换oci.dll文件搞定
  • 实战派数据库解决方案,快马ai一键生成企业级管理应用,替代navicat
  • PPS文件怎么改内容?两种实用实操方法
  • TradingAgents 新手快速上手指南
  • Git开发必备技能:从单机笔记到多人协作的版本控制实战
  • SIMULINK仿真结果导出与绘图避坑指南:To Workspace设置、时间轴对齐与双坐标轴处理
  • JiYuTrainer技术实现:Windows教学管理系统行为调整工具的技术架构与应用指南
  • 抖音开放平台获取用户手机号,Java解密实战(附完整代码与避坑点)
  • AI Agent 全栈落地精讲:从技术演进到金融企业级实战,零基础程序员转行必看
  • 重要任务-----制作30个介绍APP主要功能的视频
  • PaLM-E:具身智能的端到端多模态统一认知架构
  • 论文创新点怎么“创”?五大方法助你突破创新难关(附提示词)
  • 产教融合视域下 MITCON 网络安全培训项目实践与反钓鱼防御落地研究
  • 稀土功能高分子在涂层涂料领域的应用浅析
  • 别再只写界面了!用Qt6+Modbus快速打造一个工业上位机监控软件(实战篇)
  • iOS 开发面试 50 个高频易混淆知识点详解
  • 2026年热门的电商产业园区/宁波电商产业园区推荐榜单 - 品牌宣传支持者
  • 从游戏地形到有限元分析:深入理解Delaunay三角剖分的‘空圆’特性为什么这么重要
  • 用快马平台快速生成交互式广告原型,十分钟搞定创意验证