我(作为AOSP构建者)可以预先安装一些应用程序,以便在设备上刻录后轻松卸载(例如常规下载的应用程序)吗?
我已经熟悉系统应用程序和priv-apps,但是由于它们位于系统分区中,因此无法将其删除! (仅在设置菜单中禁用)
P.S。我知道华为例如使用/ system / delapp安装此类应用程序。但是我正在寻找一种通用的方法或我正在研究的AMLogic平台!
答案 0 :(得分:1)
您可以通过将构建配置为生成一个包含您的应用程序的userdata.img
文件,然后使用fastboot flash userdata
进行闪烁来实现。
这些Android.mk
中使用的应用程序的userdata.img
文件大致如下:
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