Question

Just seen that they've ported Ice Cream Sandwich to the Nexus One.

'They've' done this using the SDK to create a ROM.

Could someone give an overview of how this works? (How you use the SDK to create a ROM)

Why it allows some parts to work but then other bits (like wifi) don't work?

Was it helpful?

Solution

The SDK includes a system.img which contains the bulk of the phone's firmware. Beyond that, the important parts of firmware are the boot loader (which is hardware specific, and not Android-release specific), and the kernel (which is configured for the hardware, though there could be some Android version specifics in it).

Most likely, they just took pieces from the system.img and were able to get an acceptable boot. This generally results in some parts (like wifi, as you mentioned) not working, due to differences in the requirements between the older kernel and the newer system image.

OTHER TIPS

A probable workflow is:

  1. Get the SDK and install it and make sure that it is able to compile programs
  2. Porting means "rewriting system-specific modules to get the whole system working in the new plataform". In a well-designed system, there is a clear separation of what is a system-dependent module (like, e.g., writing bytes to mass storage) and what is a higher-level module (like, e.g., writing to a file). The level of separation and abstraction the underlying system must provide is decided by needs of the operating system (in this case, Android)
  3. The ROM itself is probably a binary image which gets loaded in RAM by the bootloader (and this is why the bootloader is hardware specific). The bootloader then transfers the control to the RAM image which is compiled and built by the SDK in such a way that it contains binary code that the particular processor of Nexus One understands.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top