ARTICLE · 1007496
魔改版比亚迪APP:蓝牙靠近解锁,它到底怎么开的?
手机端的比亚迪 APP,相信各位车友都不陌生。远程控车、看续航、开空调,手指点一点就完事,谁还没装一个?
可近两天,我在车友群里看到车友甩出来一个安卓手机端比亚迪 APP,说这是"魔改版"——把蓝牙"靠近解锁"之类的功能给跑起来了。
正版比亚迪 APP 可是上了梆梆企业版加固的,壳包得严严实实。那这魔改版……莫非是把加固壳给"脱"了?不然是怎么做到的魔改?话不多说,开整。
🔍 第一章:究竟改了啥?
既然是"魔改",总得在文件上动过手脚。
掏出手机里常备的MT 管理器,把两份 APK 往里一丢,开始比对文件差异。一边是车友给的BYD-Android_9.16.1_20260914.apk(魔改版),另一边是比亚迪官网下载的superApp.apk(官方版)。
两边往里一拆,差别立刻现原形:
1.1 魔改版"多"出来的东西
1.2 被"动过"的东西
AndroidManifest.xml改了、签名也重新签了——说明这补丁得申请额外权限、注册服务,再重新打包才能装上。
结论:这不是官方升级,而是有人把一套增强补丁,硬"贴"在了官方 APK 之上。
🧩 第二章:扒开 classes2.dex 的皮!
方便快速看懂的代码都藏在classes2.dex里。
祭出老熟人jadx——这玩意儿就跟幼儿园老师教的用勺子吃饭一样基础——把它转成 Java 并导出,再扒一眼包结构,顶层非常干净:
com
└─ alamri.proximity ← 名字就很直白:近场
└─ alamri.localization ← localization,本地化
└─ alamri.tr ← tr,看着像注入中枢
光看名字就知道,这位作者搞了不止一个功能。其中proximity(近场)显然就是车友说的"靠近解锁"。
🤖 第三章:到底干了啥?
jadx 导出来的 Java,类多、方法绕,咱一个普通玩家直接看肯定头大。
但自己看不懂,还能不会摇人吗?火速摇来一个Agent,把导出的代码往它面前一摊:"来,帮哥分析分析。"
3.1 proximity:手机变车钥匙(也就是车友说的"靠近解锁")
ProximityService是个常驻前台服务:屏幕关了它还在后台"站岗",靠动作传感器感知手机移动,再用低功耗蓝牙(BLE)扫本车的信号强度(dBm)。
解锁不是"连上就开",而是靠信号 + 时间窗:
关键是它的实现原理:它并没有自己重写一套控车协议,而是通过BydBridge用反射去调用原版比亚迪 APP 里处理蓝牙车钥匙的相关类与指令(BtKeyService、IBleChannel、BydBleChannelManager、BtKeyUtils),取出 VIN、MAC,再下发解锁 / 上锁指令。甚至用KeyAddress.normalize()规范化蓝牙地址,即使车机蓝牙地址轮换了,也能认出是本车。
一句话:它不造车钥匙,而是"借"原版 APP 现成的蓝牙车钥匙能力来用。
3.2 localization:全世界都在翻译中国话
localization是一个本地化翻译引擎:
它能把中文界面翻成 en/ar/ru/es 等语言,还适配桌面 Widget、快捷方式。对于外籍车主或阿拉伯语(从右到左)用户,这算是个实打实的贴心功能。
3.3 tr:运行时注入"胶水层"
tr是整层的"胶水中枢":负责把翻译能力注入到比亚迪原生界面里,并在运行时做一些稳定性兜底。具体细节较多,就不展开了,有兴趣的可以具体研究。
🛡️ 第四章:简单归个纳!
把魔改版和国内原版 APK一对比,实现思路就清晰了:
原版比亚迪 APP:APK 里本身就带着蓝牙车钥匙相关的实现(那些私有类就编译在里面);
魔改版:不重新造轮子,而是用libhdex.so+classes2.dex在运行时注入 / 反射,直接复用原版 APP 现成的蓝牙车钥匙指令,把流程跑起来。
所以它能成,靠的是"借原版 APP 的锅,煮自己的饭"——工程上也有几点亮点值得说:
零第三方依赖:JSON、验签、原子存储全自研,少踩供应链坑;
更新链路安全:ECDSA + HTTPS 钉扎 + 包体积 / 超时限制;
处处降级:翻译失败给原文、签名失败用旧包、蓝牙异常不崩溃——增强功能可以没有,主流程不能挂。
🌍 第五章:这玩意儿从哪来的?
翻到魔改版 APK 里的assets/byd-localization/trust.properties,里面赫然写着项目的地址——原来这套增强补丁出自一位海外开发者shihabal3amri的公开项目:
📱 项目主页(Android):https://shihabal3amri.github.io/BYD-Android/zh-Hans/
🍎 项目主页(iOS):https://shihabal3amri.github.io/BYD-iOS/zh-Hans/
💻 代码仓库:https://github.com/shihabal3amri
也就是说,车友群里流传的这个魔改版,源头是这位开发者公开的增强项目。
📝 第六章:它为什么存在?
我个人猜,大概是两个方向:
其一,给功能更全的中国版 APP 做多语言适配。中国版 APP 功能本就丰富,这套增强层顺手把界面翻译成多国语言,让更多语种的用户也能用得上。
其二,平行出口车辆带来的现实需求。近些年比亚迪出口量一路走高,海外不少市场跑着"中国版平行出口"的车辆——这些车只能用中国版 APP,可车主母语不是中文,界面看不懂、用着别扭。一个本地化增强层,正好补上这块短板。
作为车主,我其实挺乐见这种民间折腾的:它从一个侧面说明,比亚迪的车机生态有足够的底子,才值得大家去研究、去扩展。一个活跃的用户 / 开发者社区,本身就是产品生命力的体现。希望比亚迪越做越强,车机体验越来越好,官方也能多听听这些"用脚投票"的真实需求。
💬 投一票再走
聊聊你最真实的想法👇
欢迎在评论区留言,也欢迎转发给身边玩车机、搞逆向的朋友一起"考古"!
⚠️ 合规声明:本文基于公开 APK 对比与代码反编译整理,仅供技术学习交流。请勿用于非法破解、篡改或传播未授权软件;自行修改 / 安装非官方 APK 可能存在安全风险与保修影响,请自行评估。