I like to know what's the procedure of building a new device? Foe example a hardware designer decides to make a new laptop that can run Windows or Linux, or someone wants to build a new Android device, he choose a proper CPU and other parts like RAM, graphic card, sound card, Wi-Fi, Bluetooth, Storage, LCD, etc.
But what about firmware and drivers?
Totally I like to know what software consideration should a hardware designer has to build a new device?
Simply, in Desktop computer, we buy the parts separately(mother board, graphic card, sound card, LCD, CD/DVD ROM, etc) and do not have huge concern and special consideration to choose(maybe only thinking about they communication protocol SATA, IDE, PCI ports, etc).
But what when we like to make a laptop or Android tablet? Should we write any low-level code for these or we only put the parts beside each other and build a new device?
For example, when DELL company wants to build a new laptop, it chooses the intel HQ6700 processor and Geforce m960 for graphic part and etc. so should DELL write any low level code when doing its laptop?
Or when Samsung wants to build a new tablet or smartphone, and wants to use Qualcomm snapdragon chipset, and other parts like bluetooth and wi-fi IC's, should Samsung write any low level code for building its new device? If yes, in which part and for what reason?
I see many Chinese company they build tablets and smartphone and heard they are little groups at their home! Is it true or lie? If true, how they can do this? amd what exactly they do? are they write low level codes? or even do designing hardware?