The software package is signed indeed. If you check the XML file at the root of the package (SWIP_00001E40_110_005_010.xml) you will find a tag inside the header. This tag is an enveloped XML signature (, and it protects the whole XML file from tampering. This same XML file also references all the other bin files with their respectives SHA256 hashes, which basically means that this signature’s protection cascades for the rest of the package.

BMW i3’s system can then verify the package with the correct digital certificate which must be installed on the car already, preferably hardware-protected (e.g. inside a HSM). The security of this scheme now lays on whether an attacker can install a rogue certificate on the car’s trusted certs store or not, which is way harder IMHO, infeasible with an HSM I think. No HTTPS necessary here.

The thumb drive is another story, I guess, but I don’t know enough about this to comment.