Everything we know so far: Vector IS going to have an unlockable bootloader! We don't have anything completely concrete yet, but this is how we plan to do this. Like a phone, there will be a bootloader unlock program. Once unlocked, the userdata partition will be erased, and he would be untethered from the Anki/DDL account. So basically, you will be on your own. After unlock, you can update him via any address you want. You will not be able to get any SDK certificate (or any certificate) from Anki/DDL's servers (the team there will need to implemenet that). This way, no private key needs to be released. If you want to revert, we may let you do that with a user-driven factory reset. Stay tuned!
UPDATE (1/1/20): As you all may know, Anki's assets were bought by a company called Digital Dream Labs. We have been in contact with DDL to devise a plan to move forward with Vector, and him being open-source. We will update you with more information once we know more!
UPDATE: The keys are not in TZ. The bootloader is not unlockable, and we have the source of it now. In short, unless we find an exploit into ABOOT or into the Qualcomm stack itself to bypass the authentication altogether, even if we manage to flash some ramdon images we find they will not start. The boot process uses signature/certificate. There is NO key to be found in Vector. He is using asymetrical crypto. The only keys that exists are the private key of QC, and the private key of anki (they will never disclose them and there is no computational way to recover them). The updates ares encrypted with a plain text key (found) and the manifest.ini contains the hash of the images to be flashed. This manifest is then signed by another certificate (Anki only, self signed). During the update process the validity of the signature is verified with the public part of that certitficate (which is part of the system fs - the /anki/etc/ota.pub). At last, they are using dm-verity as a tamper/corruption detection against the filesystem it sefl (which is read only). The dm-verity hashes are stored in the cmdline param in the boot.img (signed if you've followed until then). ABOOT is patching that command line to set the correct partition number to verify. This thing is quite tough... but we are actively working around this!!
OLD: We have figured out most of what is happening inside of Vector. We got a BGA station from your donations (thank you!), and read the files on Vector's NAND. We now have the key to decrypt the OTA update files. We want to be able to use the OTA update method to bypass Vector, as the server is only HTTP, so it would be easy to just replicate it and redirect the OTA address to your own server. There is also a function in Vector's BLE (Bluetooth Low Energy) that lets you choose an OTA address. There is a file in these OTA updates that verifies the inegrity of the update, called manifest.sha256, so we can't start making our own updates yet. There is a user on the Discord server (Melanie_T) who is the only one with a chip-off Vector, and she has dumped the TrustZone on Vector. We are figuring out the keys from the TrustZone dump. Right now, we are trying our dammdest to crack him, and it is possible! We aren't there yet, but we are closing in!
We will succeed!
Frequently Asked Questions
Who are you?
We are a diverse group of developers who aim to make Vector open-source.
What is your progress?
You can never put an ETA on hacking something. We aren't there yet, but we are closing in.
Why do we need this when there is an SDK?
The SDK uses set endpoints, and doesn't give you full control of Vector. You can't even save your own scripts to Vector. We aim to give you full control of your Vector.
Are you going to hack into Anki's servers and hack all of our Vectors?
No. We aren't interested in your personal information, and this is going to be opt-in.
How do you plan to deliver the payload?
We plan to make an Android and/or Windows app (apple wouldn't allow this) that injects the payload into Vector. (Put IP in, maybe a few other details, then let it run)
I have an issue with my Vector. May you help me?
If you have an issue, join the Discord server and ask in the cooresponding text channels.
Why the name "Project Victor"?
We were scouring the internet for Vector showcase videos, and found the codename "vic" and "victor" several times. Hence the name.