¿Cómo editar init.rc en Samsung Galaxy S3 i9300?

Me gustaría editar el init.rc en un i9300. Entiendo que editar el archivo tal como está no funcionará, ya que el archivo se vuelve a cargar desde el ramdisk de la imagen de arranque en cada arranque. Después de buscar en Google, leí que tengo que descomprimir, editar y volver a empaquetar la imagen de arranque. Encontré el siguiente enlace: http://android-dls.com/wiki/index.php?title=HOWTO%3a_Unpack,_Edit,_and_Re-Pack_Boot_Images

Sin embargo, al probar el primer comando "cat /proc/mtd", me doy cuenta de que mi i9300 ni siquiera tiene un /proc/mtd, así que me pregunto si alguna de las instrucciones allí se aplica a este dispositivo.

/dev/block muestra mmcblk0p1 a mmcblk0p12, pero no estoy seguro de cuál es la imagen de arranque. Sin embargo, según mi búsqueda en Google, parece que mmcblk0p6 es la imagen de recuperación.

¿Cómo puedo editar el init.rc en este dispositivo?

¡Gracias!

¿Qué quieres lograr haciendo esto? Si desea montar otra cosa o volver a montar un sistema de archivos, puede usar init.del soporte de secuencias de comandos. Eso es mucho más fácil y le permitirá ejecutar scripts en el arranque.
Deseo iniciar un servicio nativo en el arranque, que es un binario ARM compilado de forma cruzada.

Respuestas (1)

Tu tienes dos opciones aquí:

  1. Edite el kernel de stock (o el kernel que está usando) para habilitar la compatibilidad con init.d o edite el init.rc
  2. Use un kernel personalizado con compatibilidad con init.d ya habilitada.

Sugeriría la segunda opción ya que es mucho más fácil de lograr. Una vez que haya actualizado un kernel con soporte init.d, puede agregar todos los scripts que desee a la carpeta que se ejecutará en el momento del arranque. La carpeta se encuentra en /etc/init.dy todos los scripts dentro de esa carpeta se ejecutarán en orden.

Por ejemplo, si tienes:

  • /etc/init.d/10-startup-daemon
  • /etc/init.d/50-mount-extra-partition

Se ejecutarán en el mismo orden en que los he escrito. Puede cambiar el orden cambiando el número al principio del archivo.

Gracias. Terminé desempaquetando/modificando/reempaquetando el ramdisk para modificar el init.rc para iniciar el servicio que quería.