android - 如何卸载 ANDROID CAR EMULATOR 默认应用
问题描述
我正在尝试卸载默认的 android 汽车模拟器应用程序,如音乐、收音机、时钟和日历。我能够构建和午餐 ANDROID CAR EMULATOR。(参考 - http://www.embien.com/blog/building-安卓汽车模拟器/)
我的问题是如何从安卓汽车模拟器中卸载上述默认应用程序。
解决方案
我看到汽车模拟器是作为常规目标构建的,因此应该适用相同的规则。
如果您需要从目标中删除系统应用程序,则需要从.mk
文件中删除其包名,这些文件是 AOSP 的一种 make 文件。例如https://android.googlesource.com/device/generic/car/+/refs/tags/android-8.1.0_r65添加连击aosp_car_emu_x86-userdebug
等(见vendorsetup.sh
那里)
aosp_car_x86.mk
包括其他文件:
$(call inherit-product, device/generic/car/common/car.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_x86.mk)
common/car.mk
是添加/启用特定于汽车的东西的主要文件。这些应用程序很可能是在 .mk 文件中指定的PRODUCT_PACKAGES
,而不是在car.mk
其中包含的其他一些 .mk 文件中product/aosp_x86.mk
- 那里包含许多级别的内容,请耐心等待。
据我所知,AOSP 中没有排除包的特殊功能(仅包含。有一个功能(我不记得确切)在模块中指定它覆盖其他一些模块(您想要删除),但通常它可能会导致一些其他冲突)。
因此,您还需要找到应用程序所属的包名称,并将其从 .mk 文件中删除(或使用一些包含您自己的应用程序的裸/简约目标)。使用mgrep
命令查找包的位置。
要找到一个应用程序的包名,你需要找到它的.mk 文件,这也不容易。resgrep
或者mangrep
可能会有所帮助。请参阅https://elinux.org/Android_Build_System
推荐阅读
- javascript - 需要在我的成功函数中正确映射数据
- cloudkit - UICloudSharingController 在 iOS 15.x 中不显示具有现有共享的“添加人员”,但在 iOS 14.x 中显示
- java - Java中的两级深拷贝
- nginx - 多语言 Angular 应用程序的浏览器缓存 nginx 配置
- typescript - 基于条件参数的函数的条件返回
- vue.js - 如何配置 PrimeVue 多选以添加“换行符”而不是切断重叠的?
- css - 如何让 flex-grow 在 Angular 10 中与 *ngFor 一起工作
- r - 在循环中动态创建变量并添加到数据框
- r - 使用官员包;是否可以从您的 ppt 模板中的占位符应用“溢出时收缩文本”功能?
- typescript - react-router v6 删除了 useHistory,但 useNavigate 错过了实现