The OSes that are running on many hardware wallets are open sourced and anyone can check it.
You don't get the problem. And you didn't read my post well.
YOU DON'T KNOW WHAT IS FLASHED ON A HARDWARE WALLET WHEN YOU BUY IT, NOR YOU DO KNOW WHAT CODE HAS BEEN COMPILED INTO AN APP WHEN YOU DOWNLOAD IT.
I hope this is clear now.
Neither you can ask the mainstream users to learn coding, flashing hardware, etc.
This is a main point of failure in the Bitcoin system.
Same goes for apps on Google Play: I developed few things for Android in the past.
I could just compile and upload. Voilá: downloadable.
I guess this goes for ANY app. Google can't check thousands of apps submitted every day.
So my scenario is perfectly possible, and again, this is a point of failure that should be looked into... before it's going to happen, I guess.
Now, of course there's no way to be 100% sure about the software or hardware one is using, unless he checks and compiles it himself.
But on the other side, I think there SHOULD be a way to make things more transparent in this regard, or sooner or later some huge amount of value will be stolen this way.
I didn't think deeply into it, but probably wallet developers, starting with the Bitcoin Wallet developers, should put in the works a system to allow people from all the world to check the code RIGHT BEFORE it gets compiled and uploaded to Google Play.
Having the code available is not enough, imo, for the reasons I explained before.
What people must be sure of, is that the Wallet hitting Google Play is safe. The availability of the code as open source doesn't grant anything, apart the option to start a new wallet from that code for free.