Android Tablets Forum banner

como se hace un firmware?

11K views 10 replies 11 participants last post by  javier3034 
#1 ·
Pues me gustaria saber como hacen los firmware, como para pelotear un rato.
 
#7 ·
hola,

pues para hacer un rom necesitas varias cosas, no se los detalles pero la historia es más o menos así:

Los dispositivos según la página de Android de Google corren Linux ( el kernel linux ), esta parte del software
del dispositivo es lo que contiene los "drivers" para los diferentes "chips de funciones" que hay en las tarjeta electrónica
la tableta.

Esto permite que la tableta pueda responder a su pantalla táctil, presentar gráficos, sonidos, sacar video por el hdmi
reconocer dispositivos que se conectan a su usb, activar su tarjeta de red inalámbrica, bluetooth, etc.. todos y cada uno
de los componentes que traiga el dispositivo en cuestión.

asi que como primer paso necesitas poder ejecutar el kernel linux en ese dispositivo, esto nos dice que necesitamos

1.- El código fuente de linux ( que se obtiene fácilmente )
2.- un entorno de compilación ( librerías y demás ) para poder compilar el código fuente de linux
3.- adecuaciones (parches) y código fuente de los drivers de los diferentes chips ( el driver del wifi, el driver del lector
de tarjetas, etc )

en fin, todos los pequeños componentes de software necesarios para hacer que el kernel corra en el aparato, esto no es una
tarea sencilla... y el reto está en conseguir esos códigos fuentes, pues un misma tableta puede variar los chips,
por ejemplo una tableta vendida bajo el mismo modelo, mismo frabricante, etc, puede venir con chips diferentes para sus tarjetas de red
inalámbrica.. y eso complica un poco más el asunto, razón por lo que es deseable contar con los números y modelos de revisión
de las tarjetas en los dispositivos porque cada cambio requiere un ajuste en la configuración de nuestro entorno de compilación..

todo esto para generar una parte del firmware ( que por lo general viene en un archivo llamado boot.img ) ese archivo ya contiene
un cargador de arranque ( bootloader, el kernel ya compilado con todos los módulos para el soporte de su hardware y otros módulos importantes
como controladores para memorias flash y otras cosas que pudieras conectar a los usbs, módulos para que la tableta pueda leer
diferentes sistemas de archivos, NTFS, FAT, ext2, ext3, ext4, eeetc... y un ramdisk eso es la parte de linux ).

una segunda parte del firmeware ( al menos de los que he checado cada fabricante puede hacer lo que quiera con su tableta y estructurar
el firmware como él quiera ) es el system.img, que básicamente al abrir uno y revisar que tiene adentro es una imagen de una partición
ext4, en donde está el android en sí, con las librerías para soportar la ejecución de las apps, configuraciones del android con respecto
al dispositivo ( por ejemplo, el boot.img tiene el driver de gráficos del kernel, pero en system.img contiene las configuraciones específicas
para el modelo del dispositivo con lo cual echar a andar el driver del kernel, el tamaño de la pantalla, modo gráfico, la orientación de
la imagen (ya saben si empieza en 0 o 90°), cosas por el estilo ).

y en resumen, todo esto se encuentra en el "disco duro" de la tablet (generalmente una memoria microsd)

... como ven? suena divertido?
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top