1.建立aoa通道
可以通过libusb直接打开手机端的aoa模式,发送Android Auto描述信息。此后会重新枚举aoa设备,手机端会提示是否需要下载Android Auto。
也可以通过内核来建立一个aoa驱动节点,通过节点来读写数据。
节点侦测程序参考linux设备节点侦测
注意接口的独立性封装,这样在其它方案如CarLife、Android 手机镜像时复用。
2.准备开发环境
需要连接google的网络环境,需要Android Auto开通地区的谷歌账号,需要拥有谷歌服务的Android 手机,安装Android Auto应用并更新到最新版。
3.交叉编译google protobuf
protobuf编译需要分为两步,先使用主机编译器,生成电脑端的proto程序,再通过proto程序交叉编译目标机的protobuf库。
4.移植Android Auto包
通过google protobuf移植编译Android Auto包,之后可以和手机建立Android Auto层通信。
与苹果CarPlay使用CP加密不同,谷歌使用软件加密认证。
注意最初的证书和秘钥设置,否则会连接失败。
注意时间设置,否则会连接失败。
注意各个音视频sink的实现,否则会连接失败。
5.接入音视频
根据Android Auto接口带入音视频解码和录音接口,将Android Auto的音视频数据进行解码。
6.控制接口引出
定义UI级的封装,引出UI输入接口,音视频控制接口等。