Software update over the air: Demands and challenges