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

发布时间:2026/6/5 4:15:46

系统内置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编写安装脚本创建脚本文件例如 install_myapk.sh内容如下#!/system/bin/sh# 检查是否已安装过if[$(getprop persist.sys.myapk.installed)1];thenexit0filog-tMyApkInstallerStarting APK installation...# 等待系统服务完全就绪可选但手动执行时不需要# 保留一行 sleep 可避免时机问题但手动执行时其实无影响sleep2# 执行安装pminstall-r/system/preloads/bbbs_9.79.19.92.apkif[$?-eq0];thensetprop persist.sys.myapk.installed1log-tMyApkInstallerInstallation succeededelselog-tMyApkInstallerInstallation failed (exit code:$?)fi如果你更我一样系统再win下去创建脚本 需要去掉install_myapk.sh中的win换行符号 不然脚本容易执行不了sed -i ‘s/\r$//’ install_myapk.sh添加启动服务在系统的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_completed1start myapk_installer放置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)添加编译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#可重新设值反复验证

相关新闻