Such boxes are customly provisioned over whatever contracts the Co has with the respective OEMs. One thing is for sure, there will be delays in the fw updates.
Curious, do these return exactly the same info in roDeviceInfo? e.g. what do you get here:
BrightScript Debugger> di = CreateObject("roDeviceInfo"): ? di.getModel(), di.getModelDetails()
4200X <Component: roAssociativeArray> =
{
ModelNumber: 4200X
VendorName: Roku
VendorUSBName: Roku
}