9

苹果Carplay上车特斯拉?树莓派又立功了,DIY教程已开源

 2 years ago
source link: https://www.eefocus.com/automobile-electronics/518767
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
贾浩楠 发自 副驾寺
智能车参考 | 公众号 AI4Auto

智能、动力、操控,特斯拉车主要啥拿不出手?但就有一样,其他车主都有,唯独特斯拉车主们求之不得。

Carplay,不用多说,有多不方便车主感受最深。

而且看马斯克的意思,等特斯拉开放Carplay,是不太可能了。

不过,来自波兰的一位程序员,给出了一套稳定且成本不算太高的DIY解决方案。只要2340元,Carplay版特斯拉马上拥有。

特斯拉上用Carplay,成本多少钱?

越狱破解,你永远可以相信东欧程序猿。

波兰老哥Michał Gapiński(米哈伊尔·加平斯基),给出的这套DIY方案一举两得,既解决Carplay,也支持车载安卓。

更准确的说,是以车载安卓为基础,通过特定应用实现苹果手机的Carplay链接。

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY954fraqvtZ3fibCfVpx670trNviafAvvQUpYJpu9byvZn5aqcLV10ZahQ%2F640%3Fwx_fmt%3Djpeg&s=284757

所以,硬件准备上,是以安卓支持为主。

首先是两块树莓派单板计算机,一台树莓派 4,用来运行安卓主程序,不用8G版本,4G内存就够。

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9q8Zic9rgmGc2p2Riaicicsic906SLSJzoMcaaPPvMvViaj6Utic1niafyP1z9A%2F640%3Fwx_fmt%3Dpng&s=e043b5

另外一台树莓派 3,负责运行Linux以及处理视频、网络通信任务。

另外,由于树莓派上采用HDMI视频接口,而特斯拉车机上则是CSI-2接口,所以需要一块转换板。

不同三方厂家都很多类似产品,不过这套方案推荐使用东芝生产的视频转换处理芯片TC358743XBG为核心。

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9wt6G7yHpbRfCMP5qxicvoOf0uegcGTWibiaMiccA6WXP7anlb6gITibtAhQ%2F640%3Fwx_fmt%3Dpng&s=733b7f

另外,还需要一台WiFi终端设备,作为网络信号的调制解调器,华为的E3372就可以。

最后就是必要的线缆了,一条microHDMI转HDMI线,一条普通网线。

这一套设备的成本,投入最高的是两台树莓派单板电脑,树莓派4的4G版单板国内零售价约950块左右,树莓派3主板也差不多。

另外,视频转换板你可以选择DIY,教程很多,不过转换芯片一般不零售,都是几千颗起批发…如果买成品转换板,一般售价在170-190左右。

华为E3372无线终端,其实就是随身WiFi,200块左右。线缆成本,50以内可以搞定。所以按照最贵的总成本来计算,一共是950+950+190+200+50=2340元。

说实话,真不多,还没Model 3贴一次改色膜贵。

而且,波兰老哥已经把代码开源,还制作了手把手教程,稍微有点安卓刷机经验就能上手。

手把手教程

安装安卓系统

安装指南很简单,直接下方链接点击下载最新的Tesla Android版本:

https://github.com/tesla-android/android-manifest/releases/download/2022.18.1/tesla-android-2022.18.1.zip

这里要检查一下电脑是安装了fastboot和adb这两个安卓常用的刷机工具,如果没有,可以从下面链接安装最新版:

https://developer.android.com/studio/releases/platform-tools

之后,使用Balena Etcher或Raspberry Pi Imager工具将名为“deploy-sd.img”的图像闪存到SD卡。

然后将SD卡插入树莓派 4,别忘了连接鼠标和显示器

此时将树莓派4连接到计算机,应该会在显示屏上看到引导加载程序:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9CJt9sux9mialCVw35f3Ek8j6Ez3ZpIOheSWvejZl1Ect86up0Uf3TYA%2F640%3Fwx_fmt%3Dpng&s=b10ce2

然后直接执行安装安卓的命令,不用担心,直接复制粘贴就行:

fastboot flash gpt deploy-gpt.img fastboot flash bootloader bootloader-sd.img fastboot flash uboot-env  env.img fastboot reboot
 # Wait for board to power up in bootloader
 fastboot oem format fastboot flash bootloader      bootloader-sd.img fastboot flash uboot-env       env.img fastboot flash recovery_boot   boot.img fastboot flash dtbo_a          boot_dtbo.img fastboot erase misc fastboot reboot-fastboot
 # Wait for board to power up in fastboot
 fastboot flash boot   boot.img fastboot flash super  super.img fastboot format:ext4 userdata fastboot format:ext4 metadata fastboot reboot

行了,到这里你的大部分工作已经完成,等系统装好就行:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9Kn2tlB9EsjtQDys2Wacxianm5gyIiaQZsq73qBuSFFNPnFNrSZU1icoSA%2F640%3Fwx_fmt%3Dpng&s=91fb02

在设置完成之前,树莓派会重新启动几次。脚本执行完成后,屏幕会黑屏一段时间。

之后,应该会看到一个 Android 设置屏幕:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9bDVByKsZeFeERWnQKAPlBOsPZQibTcQiaN68LktW01CByl0NMmYsuGxQ%2F640%3Fwx_fmt%3Dpng&s=9f2ac3

接下来就是注册这台树莓派4 上的谷歌账户,用键盘输入:

adb rootadb shell ‘sqlite3 /data/data/com.google.android.gsf/databases/gservices.db “select * from main where name = \”android_id\”;”‘

将出现的结果复制到注册网页上,点击注册。

接着再输入:

adb shell ‘ifconfig | grep eth0’

系统会返回一串设备物理地址,要把它记下来,等会分配静态IP时要用。

重启树莓派4,此时你应该已经成功安装了安卓系统,并且可以浏览谷歌应用商店了。

安装Linux

实际上,另用一台树莓派安装Linux的目的,是使用Linux系统相关指令直接与特斯拉车机交互,利用树莓派 4上安装的安卓系统在特斯拉上安装相应软件。

Linux安装步骤和前面差不多,下载Tesla Android OS项目最新版:

https://github.com/tesla-android/tesla-android-os/releases/download/2022.18.1/tesla-android-os-2022.18.1.zip

然后将名为“tesla-android-os-{version}.img”的图像闪存到SD 卡,再插入树莓派3。

这时拿出我们自己的计算机,配置一下华为随身WiFi,不用做复杂设置,记下密码就行。

接下来,将HDMI采集接口连接到树莓派的摄像头接口,同时把显示器、键盘和电源连接,树莓派启动后,需要先扩展文件系统。此时应该能看到一个键盘选择屏幕:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9DT1hezCtPENibtW2CkbkKXH7kzOWPRr17GtDLJTj86Q6KlKaoic9BcSw%2F640%3Fwx_fmt%3Dpng&s=04675e

接下来就是设置Linux系统,包括键盘选择、用户名、密码这些。

完成以后,输入指令:

sudo nano /etc/hostapd/hostapd.conf

再返回中选择:

wpa_passphrase=changeit

这一步是重置WiFi密码,今后特斯拉车机每次新装应用都需要这个密码。

退出保存后,在输入如下指令:

sudo brctl addif br0 eth0sudo reboot

系统执行完成后,把刚才装好的安卓树莓派,和Linux树莓派用网线相连,然后用HDMI转换线将安卓树莓派和电脑的视频采集接口链接。

用计算机连接 Tesla-Android Wi-Fi ,打开 Chrome 并导航到http://3.3.3.1/admin/ Pi-hole 管理面板:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9kEOYaeVgQScuxawYyW1UkHbcOvibtI3Kib9B972JwMKeAfc9NHbpyGuA%2F640%3Fwx_fmt%3Dpng&s=93b532

在设置菜单中选择 DHCP 选项,在“静态 DHCP 配置”下,输入之前记下安卓树莓派的物理地址:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9sbaKHZTaj97yYbAwrHAV6Mto0vUJViawibVAnnLCcjI5SvHHfibarZdKQ%2F640%3Fwx_fmt%3Dpng&s=05582d

重新启动两台树莓派,使用特斯拉车机连接到Tesla-Android Wi-Fi,并登录http://3.3.3.1/ ,直接安装Tesla Android 系统。

行了,全部完成。

安装完成后,其实你的特斯拉车机已经具备了车载安卓的功能,而通过一款名为AutoKit的安卓应用程序,能直接使用Carpaly:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7fokiaaibkadIlpyOgbGQ60uJ6fSmPianY9NyaZL3d8M2uWHpLggtGzts2hE0Ov9Jlib9HticjNTcjrvqTrib62AJ9YA%2F640%3Fwx_fmt%3Dpng&s=7bd43b

这套方案其实是通过树莓派建立一个可供特斯拉车机访问谷歌生态的无线网,要用什么应用直接安装就行。

不过,这套系统的限制在于想要安装任何应用或者使用需要联网的app,必须保证DIY设备离车内中控屏足够近,车机能连上无线网,另外还要考虑供电问题。

但是安装完以后,就可以撤掉了。

“越狱”后的特斯拉,还安全吗?

特斯拉越狱,2014年刚上市就已经有了,小到应用生态的兼容,大到Autopilot的免费破解无所不包。

只不过在国内,给汽车“越狱”还在起步发展阶段。特斯拉官方并没有对“越狱”行为有过任何处罚,只是明确表态不鼓励用户这么做。

因为越狱行为,不知会埋下什么样的安全隐患,尤其是对于自动驾驶功能的破解。

而一旦你给你的特斯拉越了狱,那么将失去一切质保权益,出任何问题只能自己负责。

不过不知你发现没有,这套DIY Carplay的方案,全程没有破拆任何特斯拉的车机或接口,对特斯拉本来的系统程序也没做任何修改。

相当于在原有车机基础上“外挂”了一套车载安卓或Carplay。

这也与之前那种通过破解特斯拉底层系统代码的“越狱”不同。

但这也不能代表这样的方法就是绝对安全的,毕竟个人开发者也没有条件对安装了新系统的车机做全方位测试。

所以,方便酷炫和安全保障,还是要各位车主自己权衡。

最后,附上项目详细教程传送门:https://tesla-android.gapinski.eu/install-guide


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK