我正在尝试卸载默认的Android汽车模拟器应用程序,例如音乐,收音机,时钟和日历。我能够构建ANDROID CAR EMULATOR并为其提供午餐。(reference-{http://www.embien.com/blog/building-android-car-emulator/)
我的问题是如何从android汽车模拟器中卸载上述默认应用。
答案 0 :(得分:0)
我看到汽车模拟器是作为常规目标构建的,因此应遵循相同的规则。
如果需要从目标中删除系统应用程序,则需要从.mk
文件中删除其程序包名称,这些文件是AOSP的生成文件。例如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
是添加/启用汽车特定功能的主要文件。应用很可能是在PRODUCT_PACKAGES
中指定的,而不是在car.mk
中指定的,而是在通过product/aosp_x86.mk
包含的其他.mk文件中指定的-在其中包含许多级别的内容,请耐心等待。
据我所知,AOSP中没有排除包的特殊功能(仅包括在内)。有一个功能(我不记得确切)可以在模块中指定它覆盖某些其他模块(您想要删除),但通常可能会导致其他一些冲突。
因此,您还需要找到该应用程序所属的程序包名称,并将其从.mk文件中删除(或使用一些裸露/简约的目标(包括自己的应用程序))。使用mgrep
命令查找包含软件包的位置。
要找到应用程序的软件包名称,您需要找到其.mk文件,这也不容易。 resgrep
或mangrep
可能会有所帮助。参见https://elinux.org/Android_Build_System