gpt4 book ai didi

android - 剥离 AOSP 的预安装包的最优雅方式是什么?

转载 作者:行者123 更新时间:2023-12-03 19:25:50 24 4
gpt4 key购买 nike

我正在尝试逐渐将 AOSP 从其默认应用程序中剔除。但是我想知道我要应用的方法是否是正确 并且是最有效 .

在查看了这样做的方法后,我来到了以下 方法: (示例应用程序 - “package_name”)

1. Pick particular app and find out its "LOCAL_PACKAGE_NAME"
2. Use "envsetup.sh" provided command "mgrep package_name"
3. Look at the output to determine where package_name is mentioned
4. Remove lines of code containing package_name from makefiles

我也偶然发现了这个解决方案:

Instead of modifying bunch of .mk files in AOSP in many folders, you can add a new module, a stub, and disable modules in its Android.mk using LOCAL_OVERRIDES_PACKAGES. If a module still appear in target, you'll probably need to add to LOCAL_OVERRIDES_PACKAGES another modules which added undesired packages via LOCAL_REQUIRED_MODULES.



但遗憾的是,我还不知道如何构建一个新的“模块,一个 stub ”,所以我现在不能应用这种方法。

我可以采取任何步骤来确保特定应用程序是 已删除 从我的构建完全没有 伤害 任何事物。你觉得 最优雅如果有这个特定任务的解决方案?什么(文学/文档/网站)对我熟悉像上述案例一样对 AOSP 代码进行“临时”更改会有用?

如果这很重要,我现在要删除的是:计算器;日历;相机;钟;联系人;文件;画廊;消息传递;音乐;电话;搜索; WebView

提前感谢您的回复!

最佳答案

您可以使用假模块覆盖不需要的模块。

1、定义一个假模块并覆盖不需要的模块

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

UNWANTED_OVERRIDE_PACKAGES := \
watchhome \
all_your_unwanted_pacakge \
each_pacakge_one_line
LOCAL_MODULE := override_packages
LOCAL_MODULE_TAGS := optional
PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(UNWANTED_OVERRIDE_PACKAGES))
include $(BUILD_PHONY_PACKAGE)

https://gist.github.com/auxor/6e363e56eb1af430bfee8fe01916e4df

2、在你的 device.mk 中包含 phony 模块
PRODUCT_PACKAGES += override_packages

这是在不修改 build/target/的情况下覆盖模块的最干净的方法

关于android - 剥离 AOSP 的预安装包的最优雅方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57313826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com