android-source – 预先安装一些应用程序,以便用户无需root即可卸载它们

我可以(作为AOSP构建器)预先安装一些应用程序,因此在设备上刻录后,可以轻松卸载它们(如常规下载的应用程序)吗?

我已经熟悉系统应用程序和priv-apps,但由于它们位于系统分区中,因此无法将其删除! (仅在设置菜单中禁用)

附:我知道huawei例如使用/ system / delapp来安装这样的应用程序.但我正在寻找一种通用方式或专门针对我正在研究的AMLogic平台!

最佳答案 您可以通过配置构建来生成包含应用程序的userdata.img文件,然后使用fastboot flash userdata进行闪存.

用于userdata.img的这些应用程序的Android.mk文件大致如下所示:

include $(CLEAR_VARS)
LOCAL_MODULE := myapp1
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/app
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

并将应用程序添加到device.mk中的产品包:

PRODUCT_PACKAGES += myapp1 myapp2 ...

你应该能够在GitHub上找到很多例子,例如https://github.com/search?l=Makefile&q=TARGET_OUT_DATA+BUILD_PREBUILT&type=Code

由于您是从头开始构建映像,因此可以将应用程序放在自定义目录下并打包脚本,以便在启动时安装它们(如果尚未安装).您可以通过编辑init.rc文件来调用该脚本,如下所示:

on property:dev.bootcomplete=1
    exec - system system -- /system/bin/sh /path/to/installer/script.sh

安装程序脚本可以简单如下:

for apkfile in /path/to/custom/apps/*.apk; do
   /system/bin/pm install "$apkfile"
done
点赞