One of the hardest problems that embedded Linux companies have to solve is updating devices. Given the changing nature of software, and the desire to include new features on existing products, being able to update devices in the field can be a critical feature. While Linux has some great tools (dpkg with apt, rpms, etc) for updating systems, the standard desktop features do not apply very well to embedded systems.
The Android platform is distributed with some great tools to update devices in the field. These tools range from package updates to full system updates. Generally this is called Over The Air (OTA) updates. There isn't a lot of information available on this topic. One of the clearest presentations I have seen on this topic was at the Android Builders Summit. Andrew Boie from Intel gave the presentation and the video and slides are now available. I highly recommend them.
One of the problems I noticed as I attended this session though was that it appears the update process has at least some dependency on a user interface. Obviously, with headless Android systems that poses a problem. One of the things that needs to be answered from an OTA perspective is what would need to be modified for an OTA process to complete without a user interface.