In reality there are probably only a dozen or so configurations. I expect this is similar (or less) effort than creating the interface for programming a harmony remote. A simple version wouldn't be too hard to put together. The actual software is just a wrapper around some database. Common cars could be added in house during development. Getting the data for the rest of the entries could be outsourced.
Note that I'm not including the 'retraining' idea. That does sound like a lot of work, though even it might only require a few concepts to be covered.
Every time I hear anyone say anything about software that more or less sounds like "should be easy, all you need to do is these three extremely high level bullet points," I am reminded that this should be required reading:
https://www.quora.com/Why-are-softw...y-off-by-a-factor-of-2-3/answer/Michael-Wolfe
The reason software is hard, and the reason people who don't write software are
awful at understanding why it's so hard to make accurate time estimates, is because it is almost always entering the land of the unknown. It starts out obvious, and then you find some bug in some library, forcing you to rewrite a whole thing, which takes an unexpected couple days, and then you realize you have some version mismatches, only to find out that your idea for how the algorithm was going to work will
never work, because of this fatal flaw your colleague found, so now you're back to square one, only this time you have more knowledge. You've made tons of progress, but to anyone looking on externally,
you haven't moved an inch.
Everything is easy. Until you try to do it, and discover that most things are hard.
For example, I can pretty much
guarantee you that building Android Auto is "easy" at a high level. All you do is integrate with Google's libraries, and maybe we can even be smart about it and build out some abstraction so that we don't have to write code twice between CarPlay and AA; seems trivial. But wait, they use totally different languages and totally different data structures, so nix that. Crap, what do you mean Google just changed everything out from under me
again? You're telling me the last two months of work is trash because of some external factor I had zero control over? Ugh, and now there's an urgent Linux vulnerability that requires us to patch all our servers immediately and drop what we're doing? Okay, we'll fix it tomorrow - crap, isn't tomorrow that investor meeting I have to whip up that presentation on that thing for? GOOGLE CHANGED THAT API AGAIN?! Ugh, fine, let's just get it going, we'll work really hard and crunch this week and next week and bang it out. Crap, I have to code up this referral program thing that Steve wanted, maybe I'll do AA next week. Maybe Google won't change things by then. Maybe nobody gets hit by a bus, either.
Stuff's hard. Software is, at it's core, a creative exercise, not an implementation exercise. The implementation takes relatively no time, compared to figuring out
how to build a thing. That's the hard part.
[edit] Sorry for the rant. It's not you. I've just had it with the 'ugh software people should just do more, better, faster' rhetoric lol