Cómo modificar y firmar una ROM

De HTCMania Wiki

Contenido

Antes de empezar


Este artículo pretende, de una forma sencilla, explicar cómo modificar una ROM para que ésta sólo instale aquellas aplicaciones que nos interese tener, además de hacer alguna otra puntualización.

Con este método, además de modificar el contenido de la ROM, conseguiremos tenerla firmada para así no tener problemas a la hora de flashearla con ningún recovery.


Dos cosas importantes antes de empezar:

  • Cuando saquéis o pongáis archivos del zip no lo descomprimáis. Abridlo con el winrar o el winzip y trabajad en la misma ventana. Así os ahorraréis problemas con la compresión.
  • Ahora los recovery suelen llevar la opción de desactivar el reconocimiento de firmas, pero como hay bastante gente que ha tenido problemas con esto, firmando nos aseguraremos de que ese problema desaparezca. En todo caso, firmar el archivo zip al finalizar el proceso nunca está de más.


Java Runtime Environtment

Bueno, vamos a empezar. Para poder usar Auto-sign necesitaréis tener instalado Java Runtime Environment (JRE). Lo podéis descargar de aquí

  • Nota por si a alguien le da algún tipo de error relacionado con JAVA en Windows al final del proceso -intentando firmar la ROM-:

Abrir el Panel de Control. Dentro de Panel de Control clicar en Sistema. Cuando se abra, clicar a la izquierda en la opción que hay en cuarto lugar Configuracion avanzada del sistema, y llegaremos a una ventana que dice Propiedades del sistema con varias pestañas. Una vez en ella, la primera de las pestañas dice Opciones avanzadas que es donde en la parte inferior del todo pone Variables del entorno. Clicar en el boton y se abrirá una nueva ventana. En la parte de abajo, donde pone Variables del sistema buscamos Path para después editarlo y añadirle al final del todo ";C:\Program Files (x86)\Java\jre6\bin" (sin las comillas). Cuidado de no borrar nada y añadirlo al final de todo.

Este método me ha funcionado en Windows 7 y a otro usuario en Windows XP, pero no hay seguridad de que funcione en otros entornos,
puede haber leves diferencias.

Preparándose para modificar la ROM

Una vez lo hemos instalado, también descargamos y descomprimimos este archivo (que es el que nos va a servir para firmar la ROM una vez esté a nuestro gusto). Lo mejor, por comodidad, es hacerlo en algún lugar donde nos quede a mano (raíz de C:\, escritorio…).

Suponiendo que ya tengamos descargada la ROM a modificar (si no es así, habrá que hacerlo), la copiamos dentro de la carpeta Auto-sign, es decir, la que acabamos de descomprimir.

Renombramos el archivo zip de la ROM a Update.zip


Añadiendo y quitando aplicaciones

Ahora ya estamos listos para empezar a añadir o quitar aplicaciones. Abrimos la ROM con WinZip o WinRAR y observaremos que dentro hay estas carpetas y archivos:

estructurarom.jpg

Tenemos dos directorios distintos donde están las aplicaciones:

  1. system/app
  2. data/app


A continuación ya podemos proceder a borrar las aplicaciones (archivos *.apk) que no queramos entrando en esas carpetas (si están odexadas, no debemos olvidar también borrar los archivos *.odex, además de que si borramos una aplicación, deberíamos borrar también el widget si lo tiene) e incluir las aplicaciones que queramos instalar con la ROM. Recordad trabajar dentro del zip, sin descomprimirlo.

La diferencia entre una carpeta app y otra es que las aplicaciones que incluyamos en /system/app ocuparán menos memoria, pero no las
podremos desinstalar.

Lo contrario ocurre con las que incluyamos en /data/app, que ocuparán el espacio "convencional" pero serán desinstalables.

Otra cosa a tener en cuenta si ponemos algo en /system/app, es que si actualizamos dicha aplicación desde el Market, se moverá de
nuevo a /data/app ya que el Market sólo instala en esa ubicación, con lo cual perdemos el espacio ganado.

Las aplicaciones ideales para instalar en /system/app son aquellas cuyo archivo apk de instalación ocupa bastante (por encima de 3 o
4MB) y que no vamos a actualizar (o al menos no hasta dentro de un tiempo), y podrían ser algunos juegos, navegadores GPS, etc.

* En caso de tener algún problema añadiendo alguna aplicación a system/app, probar cambiándola a data/app.

Así es como se vería la carpeta /system/app dentro de WinRAR:

systemapp.jpg

Firmando la ROM

Cuando hayamos terminado, cerraremos el WinRAR o WinZip y procederemos a firmar el archivo update.zip (simplemente ejecutando Sign.bat en la misma carpeta).

cmdxb.jpg

Al final del proceso, tendremos otro archivo zip (la ROM ya firmada) llamado update_signed.zip. Ya podemos copiarlo en la raíz de la SD y flashearlo normalmente como cualquier ROM.

  • Nota (Por si a alguien le da algún tipo de error relacionado con JAVA en Windows):

Abrir el Panel de Control. Dentro de panel de control clicar en sistema. Cuando se abra, clicar a la izquierda en la opción que hay en cuarto lugar Configuración avanzada del sistema, y llegaremos a una ventana que dice Propiedades del sistema con varias pestañas. Una vez en ella, la primera de las pestañas dice Opciones avanzadas que es donde en la parte inferior del todo pone Variables del entorno. Clicar en el botón y se abrirá una nueva ventana. En la parte de abajo, donde pone Variables del sistema buscamos Path para después editarlo y añadirle al final del todo ";C:\Program Files (x86)\Java\jre6\bin" (sin las comillas). Cuidado de no borrar nada y añadirlo al final de todo.

Linux

  • Consola:

Auto-sign también funciona con Linux. Solo hay que abrir una consola en el directorio de Auto-sign y ejecutar:

java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update_signed.zip


  • Scripts:

Podemos automatizar un poco todo esto usando TestSign en vez de Auto-Sign

  • Descargamos TestSign y ponemos la ruta a TestSign en vez de a Auto-Sign.
  • Descargamos los scripts de Wuala
  • Los descomprimimos en/home/tu_nombre_de_usuario/.gnome2/nautilus-scripts

Y haciendo clic derecho -> Scripts aparecen. Básicamente hay que editarlos para cambiar las rutas a adb por si los tenéis en otras.


pantallazou.jpg

Lista de aplicaciones

Bueno, y como guía para no borrar nada importante por accidente, aquí hay una lista con las aplicaciones que son seguras para borrar (con los archivos de cada aplicación agrupados) y las que podrían causarnos problemas. Ante la duda sobre si podemos borrar algo o no, la respuesta siempre es no, ya que podemos terminar con una ROM inestable o en un bucle de carga.

También hay que tener en cuenta que, según la ROM sobre la que trabajemos, no todas las aplicaciones de esta lista tienen por qué estar presentes, o que puede haber aplicaciones que no aparezcan en ella. 


Aplicaciones que se pueden borrar

Para usar el auto-sign de este tutorial basta con eliminar las .apk y .odex como está explicado arriba. Debajo los comandos para hacerlo desde adb por si alguien lo necesitase eliminar de alguna ROM cocinada, estos comandos deben ejecutarse con el terminal en modo Recovery, ya que no tenemos otro modo de escribir en /system.

  • Widget del reproductor de HTC

Eliminar com.htc.MusicWidget.apk y com.htc.MusicWidget.odex o

adb shell mount /system
adb shell rm /system/app/com.htc.MusicWidget*
  • Widget de Stock (aplicación de información bursátil de HTC)

Eliminar com.htc.StockWidget.apk y com.htc.StockWidget.odex o

adb shell mount /system
adb shell rm /system/app/com.htc.StockWidget*
  • Widget de Twitter

Eliminar com.htc.TwitterWidget.apk, com.htc.TwitterWidgt.odex, Twitter.apk, Twitter.odex, HtcTwitter.apk y HtcTwitter.odex o

adb shell mount /system
adb shell rm /system/app/com.htc.TwitterWidget*
adb shell rm /system/app/Twitter*
adb shell rm /system/app/HtcTwitter*
  • Widget de información climática de HTC

Eliminar com.htc.WeatherWidget.apk y com.htc.WeatherWidget.odex o

adb shell mount /system
adb shell rm /system/app/com.htc.WeatherWidget*
  • Aplicación de información bursátil

Eliminar DCSStock.apk y DCSStock.odex o

adb shell mount /system
adb shell rm /system/app/DCSStock*
  • Widget de marcadores de HTC

Eliminar htcbookmarkwidget.apk y htcbookmarkwidget.odex o

adb shell mount /system
adb shell rm /system/app/htcbookmarkwidget*
  • Widget del calendario de HTC

Eliminar htccalendarwidgets.apk y htccalendarwidgets.odex o

adb shell mount /system
adb shell rm /system/app/htccalendarwidgets*
  • Widget de contactos de HTC

Eliminar htccontactwidgets.apk y htccontactwidgets.odex o

adb shell mount /system
adb shell rm /system/app/htccontactwidgets*
  • Widget de Footprints de HTC

Eliminar HtcFootprintsWidget.apk y HtcFootprintsWidget.odex o

adb shell mount /system
adb shell rm /system/app/HtcFootprintsWidget
  • Widget de correo electrónico de HTC

Eliminar htcmailwidgets.apk y htcmailwidgets.odex o

adb shell mount /system
adb shell rm /system/app/htcmailwidgets*
  • Widget de mensajes de HTC

Eliminar htcmsgwidgets.apk y htcmsgwidgets.odex o

adb shell mount /system
adb shell rm /system/app/htcmsgwidgets*
  • Widget de fotografías de HTC

Eliminar HtcPhotoWidget.apk y HtcPhotoWidget.odex o

adb shell mount /system
adb shell rm /system/app/HtcPhotoWidget*
  • Widget de búsqueda de HTC

Eliminar htcsearchwidgets.apk y htcsearchwidgets.odex o

adb shell mount /system
adb shell rm /system/app/htcsearchwidgets*
  • Launcher de HTC Sense

Eliminar Launcher.apk y Launcher.odex o

adb shell mount /system
adb shell rm /system/app/Launcher*
  • Aplicación para sincronización con PC

Eliminar PCSCII.apk y PCSCII.odex o

adb shell mount /system
adb shell rm /system/app/PCSCII*
  • Aplicación QuickOffice

Eliminar Quickoffice_HTC_1.0.1.apk o

adb shell mount /system
adb shell rm /system/app/Quickoffice_HTC_1.0.1.apk
  • SIM Toolkit

Eliminar Stk.apk y Stk.odex SIM o

adb shell mount /system
adb shell rm /system/app/*
  • Aplicación de información bursátil

Eliminar Stock.apk y Stock.odex o

adb shell mount /system
adb shell rm /system/app/Stock*
  • Aplicación Google Talk

Eliminar Talk.apk o

adb shell mount /system
adb shell rm /system/app/Talk.apk
  • Juego Teeter

Eliminar teeter.apk y teeter.odex o

adb shell mount /system
adb shell rm /system/app/teeter*
  • Asistente de configuración HTC

Eliminar HTCSetupWizard.apk o

adb shell mount /system
adb shell rm /system/app/HTCSetupWizard.apk
  • Aplicación de correo electrónico

Eliminar Mail.apk o

adb shell mount /system
adb shell rm /system/app/Mail.apk
  • Aplicación para subir multimedia

Nota: necesaria para por ejemplo, subir vídeos a YouTube Eliminar MediaUploader.apk o

adb shell mount /system
adb shell rm /system/app/MediaUploader.apk
  • Asistente de configuración

Eliminar SetupWizard.apk o

adb shell mount /system
adb shell rm /system/app/SetupWizard.apk
  • Aplicación de marcación por voz

Eliminar VoiceDialer.apk y VoiceDialer.odex o

adb shell mount /system
adb shell rm /system/app/VoiceDialer*
  • Aplicación de YouTube

Eliminar YouTube.apk y YouTube.odex o

adb shell mount /system
adb shell rm /system/app/YouTube*
  • Aplicación de sincronización

Eliminar Sync.apk y Sync.odex o

adb shell mount /system
adb shell rm /system/app/Sync*
  • Aplicación StreetView

Eliminar Street.apk y Street.odex o

adb shell mount /system
adb shell rm /system/app/Street*
  • Aplicación Amazon

Eliminar com.amazon.mp3.apk o

adb shell mount /system
adb shell rm /system/app/com.amazon*

Aplicaciones que NO se pueden borrar

  • Despertador: AlarmClock.apk y AlarmClock.odex
  • Navegador: Browser.apk y Browser.odex
  • Reporte de fallos: Bugreport.apk y Bugreport.odex
  • Calculadora: Calculator.apk y Calculator.odex
  • Calendario: Calendar.apk, Calendar.odex, CalendarProvider.apk y CalendarProvider.odex
  • Camara: Camera.apk y Camera.odex
  • Contactos: Contacts.apk y Contacts.odex
  • DownloadProvider.apk y DownloadProvider.odex
  • DRM: DrmProvider.apk y DrmProvider.odex
  • FieldTest.apk y FieldTest.odex
  • GDataFeedsProvider.apk y GDataFeedsProvider.odex
  • GMail: Gmail.apk, Gmail.odex, GmailProvider.apk y GmailProvider.odex
  • GoogleApps.apk y GoogleApps.odex
  • Búsqueda con Google: GoogleSearch.apk y GoogleSearch.odex
  • HTMLViewer.apk y HTMLViewer.odex
  • IM.apk, ImCredentialProvider.apk, ImProvider.apk y ImProvider.odex
  • Google Maps: Maps.apk y Maps.odex
  • MediaProvider.apk y MediaProvider.odex
  • MMS: Mms.apk y Mms.odex
  • Música: Music.apk y Music.odex
  • MyFaves.apk y MyFaves.odex
  • Instalador de aplicaciones: PackageInstaller.apk y PackageInstaller.odex
  • Teléfono: Phone.apk y Phone.odex
  • Ajustes: Settings.apk, Settings.odex, SettingsProvider.apk y SettingsProvider.odex
  • Grabadora de sonidos: SoundRecorder.apk y SoundRecorder.odex
  • TelephonyProvider.apk y TelephonyProvider.odex
  • Actualizador de aplicaciones: Updater.apk y Updater.odex
  • Market: Vending.apk y Vending.odex
Herramientas personales