Remix.run Logo
avianlyric 6 days ago

Mostly this is a consequence of laziness rather than a proper attempt at serialisation. The “calibration data” for most small sensors in Apple devices is stored in a centrally in a crypto blob to provide guarantees around component combinations, with sensor serial numbers used as lookup keys. It not usual for the sensor calibration data to computed on a component-by-component basis with calibration blob being computed _before_ the machine is assembled, based on the serial numbers the machine should contain.

So adding a new sensor means new serial number, which means the data lookup now fails. Resulting in the new sensor not working at all.

The pre-computed calibration blobs are neat little manufacturing trick to provide an end-of-line QA check, proving that a specific machine only contains the specific components it’s supposed to have. But it means the setup has no proper fallback mechanism for generating new blobs outside of the manufacturing process.

I personally think it’s a travesty that Apple hasn’t properly addressed this issue and enabled proper 3rd party repairs. But I think it worth recognising that the serialisation mechanism doesn’t exist primarily to prevent repairs, it exists to provide a form of cryptographic integrity check of the manufacturing process. Preventing repairs is just a “happy accident”.

maxdamantus 6 days ago | parent [-]

> But I think it worth recognising that the serialisation mechanism doesn’t exist primarily to prevent repairs, it exists to provide a form of cryptographic integrity check of the manufacturing process.

What, you mean in case the parts of two machines accidentally fall out and fall back in to the other machine on the production line or during shipping?

Of course it's to prevent unauthorised repairs. There's no feasible way for the parts to be physically swapped other than someone intentionally doing a repair.

It doesn't even seem like a very good form of QA, since someone without repair experience can always try to take something apart and put it back together. Whether the serials match has little to do with whether the machine is currently assembled correctly.

avianlyric 6 days ago | parent [-]

> What, you mean in case the parts of two machines accidentally fall out and fall back in to the other machine on the production line or during shipping?

No, in case the wrong parts end up in the final machine during assembly. A machines exact components are determined ahead of time, possibly before the individual parts even arrive at the assembly line. Cryptographically binding them together makes it impossible for tampering or mistakes during assembly process to result in unexpected parts ending up in a machine.

How do think a company like Apple protects their supply chain against malicious external actors, or just suppliers taking shortcuts to make a quick buck hoping nobody will notice that what they provided and what they promised they would provide don’t actually line up?

> Of course it's to prevent unauthorised repairs. There's no feasible way for the parts to be physically swapped other than someone intentionally doing a repair.

You don’t honestly think that a company like Apple simply trusts their suppliers and assembly contractors, and doesn’t take steps to make sure every individual component in their devices is exactly the component they specified, and absolutely nothing else?