加入收藏 | 设为首页 | 交流中心 | 我要投稿 | RSS
您当前的位置:首页 > 技术中心 > 高谈阔论

好像是reddit的一个前tesla软件开发工程师发的帖子

时间:2021-05-20 22:40:16  来源:  作者:

以下转自网络,不代表本站意见,如有侵权请及时与本站联系立即删除 !hj9快充网络

作者:林荣彬hj9快充网络

链接:https://www.zhihu.com/question/449804331/answer/1853818309hj9快充网络
来源:知乎hj9快充网络
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。hj9快充网络
hj9快充网络

好像是reddit的一个前tesla软件开发工程师发的帖子:hj9快充网络

https://www.reddit.com/r/EnoughMuskSpam/comments/99sbwa/former_tesla_programmers_anecdotes_about_problems/ www.reddit.com

这里帮大家搬运一下原文:hj9快充网络

Former Tesla Programmer's anecdotes about problems

**** I've added some more ****hj9快充网络

I have no way of proving any of this to be true, but I thought it was worth sharing. Enjoy.hj9快充网络

i used to work for tesla writing infotainment firmware and backend services - all of which runs in a single bottom tier Datacenter in a single location on the worst VMware deployment known to man.hj9快充网络

fun fact: a jenkins pipeline once caused almost the entire fleet to reboot loop for about an hourhj9快充网络

model s and x use openvpn to talk to their backend. inside that backend there are metadata services that feed info to the system, one of those things being a ~20MB+ (generated by the worst erp system) json payload that describes supercharger shit for the map in the touchscreen. somebody was smart enough to do automated linting but forgot to validate against the custom parser the car runs which caused a segfault in the qt app that runs the ui, which in turn for a variety of reasons forces a reboot of that component. I think we clocked about 15 seconds before it read the file and faulted after boot. it was doing that for an hour before everyone panicked and got me and qa on the phone to fix it. i wrote a quick python/fabric script that ssh’d to as many cars as possible at a time to rm the filehj9快充网络

why do the cars run a cluster of ubuntu vms? used to be centos 6 and Ruby on Rails. I haven’t worked there in 3 years, but last I heard it hadn’t changed much for s and x. model 3 uses newer tech, but still based out of a single Datacenter

some of what I wrote runs on the factory line - at the time we started the model s program, which has not changed to this day, we fake the backend to install and validate firmware as the car moves down the line. a tech runs over to the car, plugs an eth cable in diag and dumps an image on the car using curl and a tui app I wrote using python. as the car moves down the line it is installing firmware for about an hour. if that station for any reason can’t talk to the PKI system, erp, or a ruby webapp it halts the linehj9快充网络

can't you flash the storage before its installed in a car?

yes and no. the firmware update process in a car is complicated because you have a bunch of dumb components hanging off of CAN or LIN and they have to updated in very specific order and sometimes you have to retry 10s of times to get it to take. ( fuck you Bosch). Tesla never bothered to flash those things ahead of time before assembly so that gets done the first time as it rolls down the line. the infotainment system and gateway arbitrate that stuff. typically any update that tuned voltages becomes a one way - no downgrade is possible without frying somethinghj9快充网络

this is the thing, like i work with boards that have many devices on them that have firmware and they're all flashed well before the >board is installed in anything if not before even being soldered down they got smart eventually - model 3 does do this now, but doing that at scale with all the components for a car is a challenge when you have it being done with stations running yocto images and perlhj9快充网络
like, for all the lols @ tesla, have they literally never heard of a process engineer?

like everyone else who was smart they either quit or were fired through no fault of their own so what you’re left with are people fearing for their job who desperately don’t want to change status quo for fear it will break somethinghj9快充网络

they forgot that the unspoken part of "move fast and break things" is that you're supposed to fix what's broken

exactly this. we never really had time to address critical issues and were constantly short on staff because people were quitting or they just wouldn't give candidates competitive offers. this is why you hear about people burning out - they've managed to chase everyone awayhj9快充网络

more fun facts:hj9快充网络

the infotainment system and gateway don't have a battery-backed rtc. when the system reboots (sleep, deep sleep, reboot, whatever) the car is at tyool 1970 until it gets ntp again. the logs themselves are written in a binary ring buffer format and when they come in they used to end up in a giant 700TB single mysql database after they were expanded. all of production after-sales service and engineering relies on that single log interpretation system which ran on centos 5 and python 2.4 until hbase/hadoop and friends were brought in.hj9快充网络

the supercharger system uses ssh dss keys to "vpn" back to the datacenter to a single server over 2G wireless with very limited resources. the connection is essentially simplex for various reasons so getting data to and from the supercharger is usually a 1KB/s operation unless that site has had connection aggregation done. at one point i looked at the system and to pull data out for analysis, somebody had written a bash script that was printf'ing in a for loop across ~5k devices. it would usually take about 3 days to do a successful firmware update on any single supercharger.hj9快充网络

we once patched openssl to ignore client cert expiry because somebody forgot to create a process to update keys in the field and all the customer cars started falling offline because their certs had expired. the quick and dirty was to just patch openssl quickly and make openvpn on the server side use that one while we created those processes for about 2 weeks.hj9快充网络

most of the time me and the other firmware folks were chasing elon's whims about what to do with firmware. where i should have been fixing critical issues in the system i was pulled off to do shit like add farting unicornshj9快充网络

uh we literally do the same thing; well, yocto images and pythonhj9快充网络
tesla isn't the first to solder down SOMs running embedded linux and a bunch of MCUs hanging off an i2c/canbus/whatever line

they aren't the first - for what we were doing at the time it made sense and helped us get the program off the ground quickly. lots of room for improvement and in 8 years, they should have done so.hj9快充网络

my issue was the fact that the systems doing the flashing were running the yocto images and perl and the guy writing the perl was also responsible for writing the thing that actually updates the car. that thing (the car-side updater) is about ~100k lines of C in a single file. code reviews were always a laugh riothj9快充网络

i am SO GLAD your nda expired

99% of what i'm talking about is "public" anyway. tesla isn't encrypting their firmware and it's really easy to glean information from the vpn with a packet cap because nothing inside the vpn (was) encrypted. dumping tegra 3 model s and x is trivial and tesla's cars are nowhere near as secure as they'd have you believe.hj9快充网络

for example, at one time you were able to root a model s with a usb stick and a gstreamer exploit.hj9快充网络

while tesla should be given credit for updating the car over the air to fix issues, that's also any connected car's biggest weakness - you're one exploit away (or malicious employee with access) from remote root.hj9快充网络

more fun stuff: there's limited space on the emmc in the touchscreen system so updating maps can't be done using an image or a binary diff. so the thing rsync's map updates (all 2GB of them) from various places. they may have fixed that in the newer intel-based boards, but who knows.hj9快充网络

autopilot had really high turnover at one point before release because some guy from space x came in and gave the entire dept a C pointer/memory test because Elon said they were "late" to ship.hj9快充网络

There's the story online of that hacker who was pulling software images off through the door Ethernet port and found that his car's >firmware was remotely downgraded after he uncovered and posted the first references to the P100 models.hj9快充网络
Does that sound plausible to you?

yup, i'm the guy that installed the older versions. this was a marketing mistake really. if i recall correctly, he ended up getting a marketing car or his car got tagged in the update system as a trusted car and he ended up getting pre-release stuff. this happened from time to time - sometimes marketing would sell off a car and the shit erp system wouldn't record the change. that car would then get prerelease and sometimes very broken firmware. i seem to recall another case where we just forgot to remove the prerelease materials from the official build, so all you had to do was look around.hj9快充网络

the early days of tesla, post-roadster, early model s and the start of model x were good times - everyone was trying to prove the technology worked, we were innovating and making something that hadn't been done before. things really started to shit the bed around the time we pivoted from model 3 plans to shipping model x first. the falcon wing doors were such a shitshow. they ended up delaying the program almost a year, hence why model 3 basically skipped all the usual phases a car goes through for validation. i mean, come on - you have bumpers falling off in the rain, the interior is a disaster, there's no instrument cluster which takes your eyes off the road - this list just goes on.hj9快充网络

tesla basically runs their entire business like a just in time compiler only they don't treat warnings or errors as failures. most groups in the company don't cross-communicate so there's a lot of duplication of effort.hj9快充网络

i once got pulled into a meeting because a car burned down when it was attached to a supercharger and we didn't get a log out of the car. normally under some emergency circumstances the car will try to upload a log when it thinks shit has gone really badly, but in this particular case it was far enough away from a tower it had half 3G connection and had to upload a 30MB log via HTTPS POST. the car burned down before it even got to 10MB and the system was only designed for exponential backoff retries, not resumption of in-progress. elon was calm about it, but we had to justify why we never had time to address it - maybe it was because we were all busy making unsafe features work?hj9快充网络

also on the supercharger note - you can get blacklisted from using them if you charge on them all the time. that's because the supercharger bypasses the charging regulator boards and dumps directly into the pack at 300A/450v which creates a ton of wear on the battery. want to keep your range high? don't supercharge often.hj9快充网络

do they define “too often”?

algorithm-based now - the ai shit i was working on took into account a lot of factors to determine if you were abusing it before i left. the criteria takes into account the state of many components in the car, your driving patterns and other details. or it did anyway. not even sure that stuff is running still - they rotated projects in and out of existence pretty rapidly.hj9快充网络

what is elon like when stuff goes wrong due to his idiotic micromanagement and big stupid ideas?

he's never wrong. his "open door policy" was an invitation to catch you breaking rank.hj9快充网络

tesla was also in the news because they were doing cute shit like spinning up k8s clusters which had AWS IAM access to sensitive S3 buckets but wasn't ssl'd and the k8s mgmt api was available publicly. there were other teams running industrial control equipment with centos 7 an no hardening at all.hj9快充网络

there was one time where a canadian kid stole the domain and redirected emails and managed to take over slack and a bunch of other shit because the idiot IT team didn't hide the registrar information or use something like markmonitor. the car-side stuff at least did full mtls at the time so it was ok, but lol did that kid get a lot of info.hj9快充网络

**** the new stuff:hj9快充网络


Some more:hj9快充网络

thats just what i want, the car manufacturer monitoring how i drive the car i own and deciding that features should be turned off after i >have purchased it, that's a good feature. you have no idea. any connected car is ripe for data harvesting and you (the consumer) should expect it going forward. on that note, china has a law in place that mandates all electric cars send real time telemetry to their government servers - model s/x/3, NIO cars and any other electric car if they're driving already complies with that law to be road certified. don't be surprised if that becomes a mandate in other countries

for all the shit that went down at tesla, there were some positive aspects. everyone i worked with really cared about physical safety and we put a lot of effort into making sure the engineering was sound so nobody got hurt. if you subtract autopilot, and that's a big if, the car is generally well designed minus the fit and finish issues + interior, but i'd argue that's never been tesla's strong point anyway. the cars are fast, the 2013-2014 model s lines were really good, solid, basic cars. my last straw was the summon feature - i strongly believe a car you are not in, backing out on its own from a parking space with the current sensors is super dangerous.hj9快充网络

i was making jokes with the tesla expats when ol' musky launched his roadster into space that you could see the gaps in the fit and finish without a telescopehj9快充网络

just remembered some bits of triviahj9快充网络

  • they took away our free snacks in deer creek and replaced them with shitty vendors
  • said vendors food poisoned people often enough osha or whatever the body is shut them down
  • people were so mad about the free cereal being gone they'd intra-office snail mail bowls of cereal from the factory and post pictures in slack
  • deer creek's parking got so bad (too many people, not enough space) they hired permanent valets
  • they were cited for the shitshow parking for fire safety violations (unconfirmed, but i believe it)
  • elon publicly being a shitbag to trans people
  • the first time we turned on real time telemetry for the dev fleet we caught somebody going 130mph over the san mateo bridge
  • it networking so bad the company had permanent 5~8% consistent packet loss between various places (like, next rack)
  • firmware git repo so large they had to mirror it (something like 2TB)

depending on when and what features you got (and if you got a marketing used car) they could go as low at $40k after incentives - but totally agree with you. fit/finish issues have been a thorn in their side foreverhj9快充网络

the touchscreen is kind of a safety issue in that you have to look at it to touch it, stealing focus. tactile buttons for some functions would have been betterhj9快充网络

the firmware repo was that size if you take into account a huge company, many devices in the car at play and incremental updates to firmware across all those devices + branches for people to do work in. i contributed to that mess by policy, not by choice, but whatever. i'd imagine they'd be smart enough to move to something like git lfs so it isn't as much of a painhj9快充网络

scale stuff:hj9快充网络

tesla has a real thundering herd problem at this point. if you factor in common peak drive times for any region (bay area CA being the largest by pop) they have to weather something like 100k+ cars slamming servers all at once during rush hours. i saw this play out on some of the cj dashboards, it was fun to watch the production shit come to a grinding halt before they figured out they couldn't just-in-time the autoscale and had to provision ahead of time for peakshj9快充网络

i had to deal with marketing people sincerely asking me why we weren't going to run containers on the car in firmware. no, marketing, i don't care that the car would "update faster" or "features would release faster"hj9快充网络

a web front-end (we'll say it's a cms that's php-based) that needed $500k in WAF bullshit just so we didn't get pwned every 5 minuteshj9快充网络

fragmented installs of splunk. i think i counted well over 20 installs for various departments before they finally hired a decent data scientist that cleaned it uphj9快充网络

so many random java, django, .net services from various places, more than i could count and i had to touch a lot of them with firmware. ActiveRecord controlling way way way too much. i consider this probably one of tesla's biggest scale problems - i don't think they actually know or can track exactly what they're running server side at all - so you end up with teams running vmware, nsx, k8s, openstack, hyper-v.hj9快充网络

a car that has a json parser implemented in bash 3 because <interpreted language> is dangerous in the car. there are some seriously magic shell scripts on that thing that probably 3 people in the company understand in fullhj9快充网络

nodejs was a thing for a while but quickly broke down once we reached the 20k car mark - ended up replacing a bunch of that stuff with a Go varianthj9快充网络

bets on whether the fire was due to incompetence, act of nature, or deliberately set?

never attribute to malice what can more easily be explained by incompetencehj9快充网络

not surprised at all. earlier in Falcon 9 lifecycle at SpaceX, they kept having helium problems because the QC team kept signing off on >defective bottles and valves. do you think that attitude might have scared them into not saying anything?

absolutely. taking advantage of the "open door policy" was the fastest way to lose your job at tesla and from what i'm told, spacex, being run by the same guy was no different. there is so much pressure to ship on time they push people to work 14 hour days, 7 days a week - i did that for a while before i just couldn't take it anymore and just accepted being marked down in employee review for being latehj9快充网络

the openvpn problem is easy to get around thundering herd/scale issues if you design it correctly and know how to run a network. in theory, you could get around a lot openvpn scale issues if you use bridged networking, ipv6 on the inside, and some redundant dhcp servers to hand out leases - that kind of shit won't work in most cloud providers though so you stuck at running that crap in a datacenter.hj9快充网络

tesla's issues around the services were many fold - the specifics would give away too much, but i'll say this: when you make all of your services depend on a single rdbms while simultaneously using the world's worst ORM, you get what's coming to you.hj9快充网络

i poked around on a 3 a friend has and after looking at a packet cap it looks like they're doing ssl'd amqp - i didn't see any openvpn packets so i suspect they got wise to how shitty it can be, but lol at running connected car stuff directly over the internet outside a private apn or a tunnelhj9快充网络

The staggering level of internal fragmentation reminds me of how PayPal was when I worked there in '09-15. They experimented for a few months with an "agile product solutions" team that basically >took "we need a widget that does this" orders and cranked out custom Java shit that never worked.

that's basically tesla in a nutshell only, i guess it kinda works. every different team has some kind of different service where you can get data but none of it published anywhere, there are no standards, and everyone just loves to write their own client implementations because they don't trust you to do it right (sorry that we don't have a client in C++ which is mandated by policy for the car)hj9快充网络

poking holes in the firewall was always super fun - i would describe, in full detail all ports, sources, destinations, have security assessments done, etc and somehow, still, the firewall cj's would fuck up the ports. i once spent, and this is not a joke, 3 weeks chasing a single port down - i think that email thread had 100 reply-all's, two video confs and me visiting the firewall cj in fremont before it was finally fixedhj9快充网络

was there any sort of accountability for the devs there, or was it if you knew how to talk the talk you could bs your way through the ranks while producing nothing of value? was there any noticeable increase in the absurdity of musk's requests as time went on? anything particularly absurd he called for that was flat out shot down?

no, if you didn't do work it was really really obvious and they purged you quickly. that didn't mean it was any good but if you produced you were generally left to your own devices as long as you weren't breaking builds - this seemed to be true of most engineering teams.hj9快充网络

ol' musky did increasingly weird shit, but i wouldn't necessarily call it out of the ordinary for silicon valley - many folks, me included, for a time, viewed him as a bit of a Jobs-type. his behavior became really erratic around the time we wrapped up X and headed for 3 full steam - the more stuff piling on about autopilot, the more issues with the factory, the ongoing issues with X and then with 3 mfg, his ongoing spacex work - the dude really needs a nap and to just walk away from tesla at this point. its arguable he isn't running it successfully considering all the issueshj9快充网络

  • edit - running it successfully by silicon valley standards. too many issues to reach profitability because of really poor strategy and execution. too many people get wrapped up in his celebrity without really asking 'can he pull this off' which is the difference between him and Jobs - Jobs actually did shit
yeah, i get that, it's just they make a product that will probably shit itself when the back end goes dark, and that product costs $65k-$120k so it's an outlier by sv standards.

the product shouldn't shit itself when the backend eventually goes dark - autopilot won't work, updates won't, remote phone shit won't but otherwise the driving and infotainment part of the car should still function if you pull the sim and put your own in. given how shit the firmware security is it'd be pretty easy to dump the firmware, compile up some statically linked tools for shits and just patch in your own services. there's been a few clever people on twitter who figured out you can run Go arm bins on the thing - after that it's just figuring out what crap you care about on CAN (if anything).hj9快充网络

all that said, tesla did sell cars explicitly with the sim pulled and no network ever - service was always complaining to us because the ring logs on those cars would take hours to parse.hj9快充网络

speaking of the ring logs - because there was no battery backed rtc, we had to stitch and best-guess times based on the intervals when the car did have valid time and patch that into the logs serially before they could be imported. inaccuracies in the signal data could and did lead to all kinds of bullshit when somebody needed to be debug issueshj9快充网络

 hj9快充网络

------分割线------hj9快充网络

下面是机翻+我的翻译(我翻译的部分放在括号里,只是把一些不通顺的词句或者外行人难以理解的东西按照我自己的理解描述了一下):hj9快充网络

前特斯拉程序员关于问题的轶事

****我添加了更多****hj9快充网络

我无法证明其中任何一个都是真实的,但我认为值得分享。(希望你们)享受它。hj9快充网络

我曾经在特斯拉工作,编写信息娱乐固件和后端服务-所有这些都在已知的最坏(最差)的VMware部署中的单个位置的单个底层数据中心中运行(作为程序员说一句:一般靠谱的软件服务都有多个数据中心,如果一个宕机的话,还能迁移到另一个)。hj9快充网络

  • 有趣的事实:jenkins pipeline曾经使几乎整个fleet重新启动循环(花费)了大约一个小时

model s和x使用openvpn与后端通信。在后端内部,有元数据服务向系统提供信息,其中之一就是一个大约20MB+(由最差的ERP系统生成)的json数据,它描述了触摸屏中地图的超级增压器。有人(有个同事)很聪明,对这个json数据做了自动检查,但忘记了对车子运行的自定义json解析器返回的内容做验证,这会导致运行ui的QT应用程序出现Segment Fault(作为程序员说一句:这是一种C/C++语言的错误,一般C/C++语言的错误都很严重,会直接导致整个系统不可用,类似电脑蓝屏,所以我们现在都用java ^_^),(又因为一些其他的原因)这会迫使该组件重新启动。我们算了一下从读(这个json数据)文件到启动后出现故障大概花了15秒,它(这些车子上的软件)持续了一个小时,然后每个人都惊慌失措,让我和QA(软件测试人员)打着电话进行修复。我写了一个快速的python / fabric脚本,一次性的通过ssh尽可能登陆到尽可能多的车子上,来删除(这个json数据)文件hj9快充网络

  • 为什么这些车子运行ubuntu虚拟机集群?- 它们曾经运行在centos 6和Ruby on Rails上。我已经三年没有在那里工作了,但是最后我听说model s和model x并没有太大变化。model 3使用更新的技术,但仍基于单个数据中心

我写的一些程序运行在工厂生产线上-在我们启动model s车子的程序时(直到今天仍是如此),我们在汽车下生产线时用伪造的后端来安装和验证固件。一名技术人员会到车子上,将eth电缆插入diag(诊断器?),并使用curl和我用python编写的TUI APP将图像传到车子上。当汽车下生产线时,需要花大约一个小时安装固件。如果该station(可能指下生产线的车子上的某个电子器件)出于某些原因无法与PKI系统,erp或ruby webapp进行通讯,它就会断线hj9快充网络

  • 在将存储设备安装到汽车中之前,您不能把它先格式化一下吗?

是的,不能。汽车的固件更新过程很复杂,因为你有一堆笨拙的组件挂在CAN或LIN上,它们必须按照非常特定的顺序进行更新,有时您必须重试10次才能把固件更新上去。(操你的博世)。特斯拉在组装汽车之前从来不会费心去提前格式化这些东西,所以它在下线时才第一次完成。信息娱乐系统和网关对这些东西进行仲裁。通常,任何会调整电压的更新都是这样的 - 不油炸(油炸是啥意思?)就无法降级hj9快充网络

  • 这就是事实,就像我使用的板子(电路板)上装有很多设备以及固件,它们在安装>板卡之前就已经全部刷新好了,即使没有被焊接,它们最终也变得很聪明-model 3确实可以现在,但是要在汽车的所有组件上进行大规模操作是一个挑战,当您使用运行yocto图像和perl的工作站完成此操作时
  • 就像,对于所有@tesla的家伙,他们真的没有听说过过程工程师吗?

就像所有的聪明人(员工)一样,他们要么辞职要么被无故解雇,所以剩下的只是一堆担心自己工作的人,他们拼命地不想改变现状,因为担心会破坏某些东西(软件行业经常遇到这种情况:一旦修改代码就会出bug,只要自己不修改代码就不会犯错,也就没有任何负面的工作评价 )hj9快充网络

  • 他们忘记了“快速开发迭代并破坏性(指整个推倒重做、跳跃的)的升级系统”的潜台词是您应该先修复已破坏的东西(作为程序员说一句:互联网行业内目前的共识是敏捷开发,比如我想做一个类似支付宝这样复杂的电子交易系统,那我不应该招几百个工程师和设计师闭门开发一年然后拿出一个完美的产品,而应该招三五个工程师用三天搭建一个功能最简陋的系统先推向市场,吸引用户先用起来,哪怕这个系统到处都是bug、测都没测过,只要有人用,我就可以持续升级系统,直到一年后迭代成一个真正堪比支付宝的系统。这样做的好处主要是为企业节约了大量成本。传统企业按照传统的方式进行软件开发,很可能做了一年花费几百万上千万,最后根本没有用户去用。这么做的最大缺点就是不稳定,尤其是在汽车这样非常需要稳定的场景下。)

正是这样。 我们从来没有真正的时间来解决关键(技术)问题,而且由于(不断的)有人离职或者公司给应聘者提供的薪酬缺乏竞争力,我们一直紧缺人手。 这就是为什么你听到人们精疲力尽的原因 - 他们设法将所有人赶走了(这不是国内互联网行业常态么? -_-)hj9快充网络

更多有趣的事实:hj9快充网络

信息娱乐系统和网关没有备用电池供电的RTC系统。 当系统重新启动(也可能是睡眠、深度睡眠等等)时,汽车的时间将处在1970年,直到再次与NTP时间同步服务同步。 日志本身使用一种二进制环形缓冲区格式编写,当它们写入一个单机mysql数据库并扩充后,通常会占据巨大的700TB存储空间。 所有生产环境的售后服务和工程都依赖于单个日志解释系统,该系统在centos 5和python 2.4(非常老旧的系统)上运行,直到引入了hbase / hadoop和相应的技术架构。hj9快充网络

增压器系统使用ssh dss密钥通过资源非常有限的2G网络连接“vpn”回到(连接到)数据中心,再回到(连接到)单个服务器。 由于各种原因,该连接实质上是单工的,因此,除非该站点已完成连接聚合,否则增压器获取数据的速度通常是1KB / s(意思是网络速度很慢)。 有一次我查看了系统并提取数据进行分析,有人写了一个bash脚本,该脚本在大约5千个设备上用for循环正在进行了printf(格式化输出,一种很慢的写操作)。(这会让)任何单个增压器成功更新固件通常花费3天左右的时间。hj9快充网络

我们曾经给openssl证书打过补丁,以忽略客户端证书的到期时间。因为有人忘记创建一个专门的流程来为所有用户的汽车更新密钥中的过期时间。并且这导致所有客户的汽车都因为其证书过期而开始脱机。 快速而肮脏的(解决问题方式)是只快速给openssl证书打补丁,并使服务器端的openvpn暂时使用这些打了补丁的openssl证书,同时我们大约花费了两周时间创建了一个专门的流程(从工程技术角度上讲,来优雅而合理的解决openssl证书过期的问题)。hj9快充网络

大多数时候,我和其他固件人员都在追赶(着实现那些)马一龙关于如何处理固件的异想天开(的想法)。 (但我认为)我(其实)应该(优先去)解决系统中最严重的系统问题,而不是去做添加放屁的独角兽这样的垃圾功能(原话是shit)。hj9快充网络

  • 嗯,(跟其他MCU公司相比)我们实际上在做同样的事情:(emmm,就是)yocto图和python。特斯拉不是第一个做运行嵌入式linux的焊接式SOM,和一批挂在i2c / canbus /任何线路上的MCU的公司

他们(特斯拉确实)不是第一个 - 当时我们正在做的事情很有意义,可以帮助我们迅速落地项目。(虽然技术上仍)有很大的改进空间,在8年内,他们应该这样做。hj9快充网络

(但)我的问题是,执行flashing系统的运行基于yocto图像和perl,而事实上编写perl的人还负责编写更新汽车(系统)的东西。 这个东西(汽车侧更新器)在一个文件中大约有10万行C。 代码审查(code review,作为程序员说一句:基本大公司都有代码审查流程,就是让其他同事阅读你的代码,试图指出需要修改的地方,或者让别人明白你的代码逻辑,假如你离职了,别人也可以轻易的接收你的工作继续下去。一般一次code review少则几十行,多则几千行,10万行c代码简直就是一场灾难,可能没有任何其他同事能搞明白这个同事到底写了些什么东西,一旦交给别人改动就会出bug)始终是一场暴动。hj9快充网络

  • 我真高兴你的NDA(Non-Disclosure Agreement, 保密协议,不披露合约,感谢评论)过期了

无论如何,我(现在)所说的99%是“公开”的(并非商业机密)。特斯拉没有对固件进行加密,并且很容易通过抓包工具从携带数据包的vpn中收集信息,因为VPN内部(的数据)没有进行任何加密。 获取tegra 3(tegra 3是什么?tesla model 3么?)的model s和model x(数据的方法)非常简单,特斯拉汽车的安全性跟他们对你们宣传的那样还差得很远。hj9快充网络

例如,你可以利用u盘和gstreamer漏洞来获取model s的root权限。但特斯拉(Tesla本)应该通过OTA更新来解决这些问题。这也是任何能够联网的汽车的最大弱点 - 你(任何汽车终端都可能)是远程root账户的(潜在)漏洞利用者(或具有访问权限的恶意对象)(作为程序员说一句:root权限是计算机系统的最高权限账户,一般不允许远程登录root账户,只能本地登录)。hj9快充网络

更有趣的东西:触摸屏系统中emmc的空间有限,因此无法使用图像或二进制差异法来更新地图。 因此rsync的地图会从不同的地方更新(共2GB)。 他们可能已经在较新的Intel主板上修复了这个问题,但谁知道呢。hj9快充网络

Autopilot确实转速很高(high turnover,高运转效率?高转速?),这是因为来自space x(造火箭的那家公司)的一个家伙进了公司,并给整个部门进行了C指针/内存测试,因为马一龙说他们出货“要晚啦”(要赶紧交付车子啦)。hj9快充网络

  • 网上有一个故事说,一个黑客通过以太网端口提取软件图像,发现他自己的特斯拉车子的固件版本被降级了。因为在这之前他发现并且公布了特斯拉P100车型的第一手资料。 - 你觉得这听上去靠谱么?

对(靠谱),(因为)我就是那个(给黑客的车子)安装旧版本固件的人。这真的是一个销售(商业,原文是marketing)错误。如果我没记错的话,他(那个黑客)最终得到了一台展台车(或试驾车,原文是marketing car,我猜是这个意思),又或者他的车被更新系统标记成了受信车辆(可以获取测试版固件)然后他最终获取到了测试版本固件。这种事时有发生。有时销售会卖掉展台车/试驾车,然后稀烂的ERP系统没有进行记录(,从而导致了这种事情),因此那个(展台)车就会获取到测试版本固件甚至无法使用(破损)的固件。我还记得另一个案例里,我们甚至忘记了从正式版固件中删除测试版的一些内容,所以你所需要做的就是多检查检查。hj9快充网络

未完待续hj9快充网络

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门