Not to mention that one can tether via Bluetooth or USB in addition to WiFi hotspot. How are they to distinguish between someone using their hotspot via either of those two transports? I don't see them having a technical means that could distinguish someone USB tethered to cell phone using its data plan from just a cell phone using LTE data.
As an aside, one of the really interesting ideas that's bubbling up from Rust is that it's not mutable state that's a problem, it's shared mutable state, and that you can make it safe by removing the sharing, rather than removing the mutability:
Don't worry, each vendor will have an opportunity to screw up SE for Android policy. Additionally, many kernel flaws will be possible to use for disabling these mechanisms to once again get privilege sufficient to write to /system if needed.
Banging on file descriptors looks pretty much the same no matter what language you do it in. I expect that a Python equivalent would be pretty much the same length.
Can you tell the difference between a secure hardware token and a fake secure hardware token?
I suppose if you try to extract the secret key and the token destroys it, it's pretty secure. Of course, you just lost all your money. I can't think of a non-destructive test.
For example Trezor hardware wallet ( http://www.bitcointrezor.com/ ) generates its private key when it is first initialized. This way, the key never exists outside of the wallet.
Not sure that solves he upthread probem. If I give you a Treznor hardware wallet containing a private key to $150million worth of bitcoins - would you trust me not to have anther copy of that key? Or would you transfer them immediately to a wallet with a private key I could never possibly have known?