网友.md
--------------------------------
开飞行模式录屏,华为智驾里程数字还在涨——"造假实锤"
Tesla和我一样在涨——"那能一样吗"
--------------------------------
01
前两天,有人发了条视频,标题大概意思是"华为智驾里程数据造假实锤"。他打开华为官网那个智驾安全数据页面,上面三个大数字在滚动:累计辅助驾驶里程、累计行驶总里程、累计避免碰撞次数。然后他打开飞行模式,断网了——数字还在涨。
原视频已经找不到了,上面这个都是OTA之后的结果,因为我真的当场去测试过。视频最后那语气,透着一种"又让我逮着一个"的兴奋。我虽然不喜欢这家的宣传方式,但是也不也能做到无脑黑,所以还是得跟大家从技术的角度看看这是个什么事。

02
有点前端经验的大家,知道验证一个计数器是真是假,最直接的办法就是打开F12看Network面板。
页面加载后会有一个接口规律地轮询:`auto.huawei.com/external/uiapi/ads/v1/query`,每3秒请求一次。返回的数据结构干干净净,三个字段对应三个计数器。每次请求返回的数值都不一样,而且增速不是恒定的——早晚高峰涨得快,凌晨涨得慢,波动幅度大约26%。
一个前端定时器,不可能产生这种波动。只有真实车辆实时上传、云端聚合的数据,才会有这种特征。

那断网还在涨是怎么回事?
继续扒代码。断网后AJAX请求失败,页面的动画引擎会以当前数字为起点,向最后一次成功获取的值做一个4秒的平滑缓出动画。每次重试失败,动画幅度都会衰减,大约12秒后完全停止。
翻译成人话:不是数据在涨,是动画在"刹车"。就像你松开油门,车不会立刻停,会滑一段。这个设计是为了避免断网瞬间数字突然卡死——那反而会让用户以为页面崩溃了。在开发的时候是比较常见的一种规避操作。
03
在Sources面板里翻到了一个文件,叫`safety_kilometer.js`。打开一看,好家伙——里面躺着一组硬编码数字:初始值72亿多公里,基准时间2026年5月21日,固定增速每秒224.86公里。纯前端定时器,跟后端没有任何关系。

如果你只看这个文件,你会觉得——实锤了,华为就是拿定时器在页面上跑假数据。
但这个JS操作的目标DOM元素是`#ias-gongli`和`#ias-pengz`。在当前页面上,这两个ID的元素根本不存在。搜索了整个DOM,没有。这个文件加载后找不到目标元素,就安安静静地躺着,什么都不做。
我推测,这不是给官网用的。是给华为乾崑APP里内嵌的H5页面准备的——APP内嵌页需要秒开,不能等jQuery加载完再等API返回,所以用纯原生JS加一组硬编码初始值,跑一个离线可用的计数器。等网络就绪后,再通过APP的JS Bridge拿到真实数据修正。官网和APP内嵌页共用同一套CDN静态资源,这个文件就跟着部署到了官网服务器上。

也就是说:华为不是造假,是提前设计了一套"断网也能跑"的离线方案。结果这套方案被误部署到官网,被人抓住当成了造假证据。
偷偷说个秘密:Tesla的官方统计里程,也是断网继续跑的。
04
那能一样吗
还有更加恶意对比的视频,把这事跟蔚来放在一起比,对比蔚来的换电统计次数。
蔚来上个月出了个事。6月29号晚上,蔚来APP iOS版大面积闪退,蓝牙钥匙同步失效,几十万车主被锁在车外。上海那些天几乎都是下雨,有车主在暴雨下站了快一个小时,后来蔚来才确认是运营商网络故障。

这事当时上了热搜,词条叫"蔚来车主罚站"。当然这是题外话:蔚来那个"实时累计换电次数"的展示页面,服务器一挂,数据就停了。断网了?没了。服务器宕机了?没了。你连自己换过多少次电都看不到。

而华为这边呢?被人骂造假的原因,恰恰是——它断网了还能跑。
"说真的,我宁愿要一个'断网还能继续数数'的智驾系统,也不想要一个'服务器挂了连车门都打不开'的智能车。前者最多是数据好看,后者是真能把你晾在路上。"但有一说一一般的智驾系统设计的时候就是有预防断电的,也就是决策都在端侧,跟网络不搭噶,所以说这话还是不懂但就为了黑。
蔚来ES8车主发了长帖:"我开了三年蔚来,换电体验确实好,APP崩了那次确实恶心,但也就那一次。你们拿一个前端数据展示的小细节来黑整个品牌,至于吗?华为那个智驾里程,就算数据是真的,也不代表智驾体验一定好。数据好看跟实际好用,是两码事。"
真的没有必要去恶意对比,恶意拉踩,我自己就是经常带物理钥匙,就怕有个什么意外,自己永远是最后一层保障。
05
一辆智能汽车,到底应该把"智能"建立在什么基础上?我觉得要建立在自己有独立思考上!