阅读前确认下你是Android12车机版auto源码,默认显示的背景是上图,否则大概率文章内容不适合你的情况。
命令上,先使用adb命令查看。我的输出如下:
adb shell dumpsys wallpaper
可以看到在没有手动设置的前提下,我的输出中mName参数并没有和网上那样看到背景默认文件位置。
Android12车机编译后壁纸位置
它和手机版镜像不一样,不是一个图片,而是打包放到了framework-res.apk的资源文件中。使用as的文件浏览器如下图。
路径:/system/framework/framework-res.apk
替换方法
本来asop的手机壁纸是在路径:android12/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png (如果你是手机镜像直接替换它就行)。
车机版系统在编译时候google在(android12/packages/services/Car/car_product/overlay-visual/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png)中进行了资源覆盖。所以车机需要替换以下两个。
车机版本背景图片源文件路径:
Android12/packages/services/Car/car_product/overlay-visual/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png
android12/packages/services/Car/car_product/overlay-visual/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png
注意你的硬件分辨率,具体drawable文件夹可能有差距,另外如果有用到深色模式,还需要替换同路径下的ngiht文件夹。
编译验证
重新编译后,可以在不刷机的前提下直接查看out目录对应镜像framwor-res.apk资源文件即可。当然最后稳妥起见,一切ok了,还是要刷机验证下。
总结
aosp车机定制开发都需要替换掉默认系统的壁纸。车机版的壁纸官方默认在car模块中使用overly的方式替换掉了手机版的壁纸(代码Android.mk见下图)。所以我们直接修改framwork中图片编译时无效的。需要在car模块代码中进行修改才能生效。另外如果你是手机开发,推荐也建议你在device中使用overly方式替换背景图片,减少对系统资源的侵入。版本管理也更加方便。