Alex 19 16v | ||||
ferlagod | ||||
PlatinoxX | ||||
akiro-E | ||||
eduhtc | ||||
JuniorJCM | ||||
Wilbert Armando | ||||
nakol21 | ||||
quetemeto | ||||
Albzam |
No hay usuarios |
No hay usuarios |
El último usuario registrado es Conscurchondkir
Nuestros miembros han publicado un total de 2222 mensajes en 405 argumentos.
Sáb Jun 15, 2013 11:00 pm por lrc1
Ya veo que …
[ Lectura completa ]
Comentarios: 1
Vie Nov 08, 2013 11:06 am por samurai77
Alguien sabe como resolver este problemilla? Será de software o se habrá jodido el altavoz?
saludos y gracias por anticipado
Comentarios: 2
Sáb Mayo 09, 2015 7:05 am por huawei y 320
[ Lectura completa ]
Comentarios: 0
Jue Ene 29, 2015 3:02 am por LautaroLuna
Hola a todos, tengo un Huawei Y300 pero no me reconoce la memoria SD. Lo unico que me aperece es 'Instalando SD' pero nunca la instala... ya probe con varias memorias SD y ninguna las reconoce, todas las memorias funcionan.
¿Alguien sabe como solucionar este problema? estoy desesperado.... Muchas gracias!!
Comentarios: 0
Mar Jul 22, 2014 8:59 am por Pedro Blanco
Comentarios: 0
Mar Mayo 27, 2014 11:29 am por Henavia
Gracias
Comentarios: 0
Miér Sep 25, 2013 6:50 am por guillermo crusharo
Comentarios: 0
Vie Ago 30, 2013 11:08 am por draghonm
ya e actualizado la rom oficial y e probado varias cocinadas pero sigue igual ,
hay parte de la pantalla que no responde.
si alguien tiene alguna idea me podría ayudar . saludos.
Comentarios: 0
Jue Sep 27, 2012 8:08 pm por sanchez40000
[ Lectura completa ]
Comentarios: 4
Ninguno
El record de usuarios en línea fue de 104 durante el Lun Jul 31, 2017 5:13 pm
Como crear un update.zip
huawei :: Principal :: Tutoriales
Como crear un update.zip
Contenido
[ocultar]
1 Introducción
2 Qué necesito
3 Previo
4 Procedimiento
4.1 Paso 1: Preparar carpeta de proyecto
4.2 Paso 2: Descargar archivos necesarios
4.3 Paso 3: Entendiendo el update-script
4.4 Paso 4: Copiando archivos a nuestro proyecto
4.5 Paso 5: Comprimiendo nuestro proyecto
4.6 Paso 6: Firmando paquete
5 Conclusión
6 Aportaciones
Introducción
Este tutorial forma parte de una serie de artículos destinados a facilitar el acercamiento al mundo de Cocina para Android. En este artículo nos centraremos en la fase de creación de un update.zip, necesario para poder instalar una ROM o parche desde el modo Recovery del dispositivo. Una vez más he de agradecer a Ridli la información suministrada, usaré su post para esta wiki.
Qué necesito
Para este tutorial no es necesario haber seguido los anteriores, en cualquier caso, es preciso disponer de la herramienta de firmado que se compila con el código fuente de Android. De todos modos, esta herramienta, las firmas y todos los archivos necesarios se pueden obtener de éste paquete: http://rapidshare.com/files/166164961/AndroidMod.zip cortesía de JF.
Previo
Los archivos que vamos a necesitar son:
Testkeys: este certificado es con el que se firma el source de Android cuando lo compilamos por lo tanto podemos encontrarlo en el mismo source
build/target/product/security/testkey.pk8
build/target/product/security/testkey.x509.pem
signapk.jar: esta pequeña aplicación también esta en el source de Android y se usa para realizar el firmado y aplicar los certificados.
build/tools/signapk/signapk.jar
update-script: Es el script de actualización con el que se generaran los enlaces simbólicos y se flasheará boot, system o lo que nosotros queramos, este script esta dentro de una serie de subdirectorios dentro de META-INF. /META-INF/com/google/android/update-script
Antes de seguir vamos a ver la estructura de un update genérico, estos paquetes por norma general contienen una imagen boot.img así como un directorio SYSTEM y META-INF.
boot.img : Imagen de arranque con la que se va a flashear nuestro teléfono al actualizar. (opcional)
SYSTEM: nuestra directorio de system modificado con el que actualizaremos nuestro teléfono.
META-INF: lugar donde se guardaran las firmas y el script de actualización.
Procedimiento
Paso 1: Preparar carpeta de proyecto
Primero creamos una carpeta para nuestro proyecto y copiamos todo lo necesario, en este caso vamos a trabajar con un source compilado por nosotros y un update-script ya creado para ahorrarnos tiempo.
mkdir /
cd /
cp /
cp /
cp /
cp -r /
cp /
mkdir -p META-INF/com/google/android
Paso 2: Descargar archivos necesarios
Ahora hay que descargar este update-script para ahorrarnos algo de tiempo y un binario de busybox en el mismo paquete: http://www.megaupload.com/?d=XC5AWXXD . descomprimimos el archivo y copiamos el contenido en su lugar correspondiente ya que vamos a añadir BUSYBOX a nuestra build.
cp /
cp /
Paso 3: Entendiendo el update-script
El contenido del update-script muy simple pero no hay que despistarse ya que es necesario que este correctamente creado ya que un fallo de sintaxis puede dar al traste todo nuestro trabajo. Dentro de este script nos podemos encontrar con lo siguiente:
Leyenda:
Comandos: negrita
Funciones: azul
Strings: rojo
Enteros/Numeros y booleanos: naranja
Variables: azul-negrita
Directorios Raiz o "ROOTs": verde-negrita
ruta: verde
Signos(igual, etc): rosa
Parentesis: purpura
assert compatible_with("0.2") == "true"
show_progress 0.1 0
format SYSTEM:
copy_dir PACKAGE:system SYSTEM:
symlink dumpstate SYSTEM:bin/dumpcrash
symlink toolbox SYSTEM:bin/newfs_msdos
symlink toolbox SYSTEM:bin/renice
symlink toolbox SYSTEM:bin/notify
[----------corte----------]
symlink busybox SYSTEM:xbin/zcip
symlink busybox SYSTEM:xbin/zcat
symlink busybox SYSTEM:xbin/yes
symlink busybox SYSTEM:xbin/xargs
[----------corte----------]
set_perm_recursive 0 0 0755 0644 SYSTEM:
set_perm_recursive 0 2000 0755 0755 SYSTEM:bin
set_perm_recursive 0 2000 0755 0755 SYSTEM:xbin
set_perm 0 3004 02755 SYSTEM:bin/ping
set_perm 0 0 04755 SYSTEM:bin/su
set_perm 0 0 04755 SYSTEM:xbin/busybox
set_perm 0 0 04755 SYSTEM:xbin/iptables
set_perm 0 0 04755 SYSTEM:xbin/dnsmasq
set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez
set_perm 0 0 0755 SYSTEM:etc/bluez
set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf
set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks
set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh
set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp
format DATA:
copy_dir PACKAGE:data DATA:
symlink /data/app_s SYSTEM:app
symlink /data/system-framework SYSTEM:framework
set_perm 1000 1000 0771 DATA:app
show_progress 0.2 0
format BOOT:
write_raw_image PACKAGE:boot.img BOOT:
show_progress 0.2 10
format CACHE:
Esto al principio puede parecer extremadamente complicado pero lo cierto es que es bastante simple y la mayoría de las veces se puede copiar y pegar, al menos para realizar una plantilla del script.
Vamos a analizar las diferentes partes del script:
assert compatible_with("0.2") == "true"
show_progress 0.1 0
La primera línea es el comando assert, que responde bajo una operación booleana. Básicamente, si el argumento que sigue a assert (función, comando o la condición de una variable) es cierta, el script continúa, en cualquier otro caso la ejecución se detendrá dando un error.
La función compatible_with() devuelve "true" si le pasamos "0.2" o "0.1" en un Recovery v0.2-Spec (post-Cupcake).
Nota: Si se está escribiendo un update-script para un Recovery post-Cupcake (con especificación v0.2), se debe escribir esta línea.
La segunda línea cambia el llenado de la barra de progreso. Se le pasan dos argumentos, una fracción y una duración. La mitad de la barra de progreso es cogida para la verificación antes de este punto, así que la parte restante se coge de estas instrucciones (1.0 sería la mitad restante, 0.5 sería un cuarto de la barra, etc). De este modo la fracción es relativa a 1.0, es decir, lo que queda después de la verificación. La duración es en segundo e indica cómo de lento la fracción se llena.
format SYSTEM:
copy_dir PACKAGE:system SYSTEM:
Bueno, aquí simplemente el comando format toma como argumento el nombre de una partición y, por supuesto, elimina todos su contenido. El comando copy_dir copia la carpeta system del update.zip (es decir, de la "partición" del paquete de actualización) a la partición SYSTEM: que hemos formateado previamente.Hay que tener en cuenta que la orden copy_dir creará las carpetas si éstas no existen.
symlink dumpstate SYSTEM:bin/dumpcrash
symlink toolbox SYSTEM:bin/newfs_msdos
symlink toolbox SYSTEM:bin/renice
symlink toolbox SYSTEM:bin/notify
[----------corte----------]
symlink busybox SYSTEM:xbin/zcip
symlink busybox SYSTEM:xbin/zcat
symlink busybox SYSTEM:xbin/yes
symlink busybox SYSTEM:xbin/xargs
[----------corte----------]
Éstas ordenes son importantes especialmente para una ROM "cocinada". El comando symlink toma dos argumentos:
Un ejecutable de Linux que se encuentra dentro de las variables de entorno, es decir del $PATH (como SYSTEM:/bin,/sbin, /xbin).
Un fichero en alguna parte.
El comando, en el código fuente, hace lo siguiente:
Cuenta los argumentos, si no hay dos exactamente el script se detiene y da error.
Traduce la ruta ROOT: en "algo" POSIX compatible, si no es capaz se detiene y da error.
Chequea nuevamente que el directorio ROOT: está montado, si no lo está lo realiza, si no es capaz se detiene y da error.
Se ejecuta la orden en C Standar symlink(argv[0], path). Coge el primer argumento, la ruta traducida de ROOT: y "linka" los dos elementos. Si falla (como no) el script se detiene y da error.
De esta manera, y para que nos entendamos, el primer argumento sería el objetivo, es decir, ¿qué linkear a?, mientras que el segundo argumento es el link en si mismo.
set_perm_recursive 0 0 0755 0644 SYSTEM:
set_perm_recursive 0 2000 0755 0755 SYSTEM:bin
set_perm_recursive 0 2000 0755 0755 SYSTEM:xbin
set_perm 0 3004 02755 SYSTEM:bin/ping
set_perm 0 0 04755 SYSTEM:bin/su
Bien, ¿qué es esto?, pues no es más que la asignación de determinados permisos a los distintos directorios de nuestra rom. Tenemos aquí dos comandos set_perm y set_perm_recursive. El primero actúa sobre un fichero o carpeta (pero no en su contenido) y el segundo actúa sobre todo el contenido de una carpeta. La sintaxis de las dos ordenes será la siguiente:
set_perm
set_perm_recursive
Donde
Cómo se asignan los permisos en Android, pues exactamente igual que en Linux. Si alguno no los conoce, los tiene perfectamente explicados aquí.
De todos modos, hay todavía cosas que se me escapan ya que hay veces que aparecen números en los permisos de 4 números o incluso 5.
En cuanto a los
AID_ROOT 0 /* traditional unix root user */
AID_SYSTEM 1000 /* system server */
AID_RADIO 1001 /* telephony subsystem, RIL */
AID_BLUETOOTH 1002 /* bluetooth subsystem */
AID_GRAPHICS 1003 /* graphics devices */
AID_INPUT 1004 /* input devices */
AID_AUDIO 1005 /* audio devices */
AID_CAMERA 1006 /* camera devices */
AID_LOG 1007 /* log devices */
AID_COMPASS 1008 /* compass device */
AID_MOUNT 1009 /* mountd socket */
AID_WIFI 1010 /* wifi subsystem */
AID_ADB 1011 /* android debug bridge (adbd) */
AID_INSTALL 1012 /* group for installing packages */
AID_MEDIA 1013 /* mediaserver process */
AID_DHCP 1014 /* dhcp client */
AID_SHELL 2000 /* adb and debug shell user */
AID_CACHE 2001 /* cache access */
AID_DIAG 2002 /* access to diagnostic resources */
/* The 3000 series are intended for use as supplemental group id's only. */
/* They indicate special Android capabilities that the kernel is aware of. */
AID_NET_BT_ADMIN 3001 /* bluetooth: create any socket */
AID_NET_BT 3002 /* bluetooth: create sco, rfcomm or l2cap sockets */
AID_INET 3003 /* can create AF_INET and AF_INET6 sockets */
AID_NET_RAW 3004 /* can create raw INET sockets */
AID_MISC 9998 /* access to misc storage */
AID_NOBODY 9999
AID_APP 10000 /* first app user */
"root", AID_ROOT
"system", AID_SYSTEM
"radio", AID_RADIO
"bluetooth", AID_BLUETOOTH
"graphics", AID_GRAPHICS
"input", AID_INPUT
"audio", AID_AUDIO
"camera", AID_CAMERA
"log", AID_LOG
"compass", AID_COMPASS
"mount", AID_MOUNT
"wifi", AID_WIFI
"dhcp", AID_DHCP
"adb", AID_ADB
"install", AID_INSTALL
"media", AID_MEDIA
"shell", AID_SHELL
"cache", AID_CACHE
"diag", AID_DIAG
"net_bt_admin", AID_NET_BT_ADMIN
"net_bt", AID_NET_BT
"inet", AID_INET
"net_raw", AID_NET_RAW
"misc", AID_MISC
"nobody", AID_NOBODY
Esto es una relación de los códigos de UID/GID y a qué hacen referencia.
Paso 4: Copiando archivos a nuestro proyecto
Bien, una vez que ya sabemos de que estamos hablando copiamos los archivos necesarios a nuestro proyecto (recuerdo que vamos a añadir busybox):
cp /
cp /
Paso 5: Comprimiendo nuestro proyecto
Ahora procederemos a comprimir META-INF, SYSTEM y BOOT.IMG dentro de un mismo archivo (ojo todo esto ha de estar en la raíz del archivo comprimido, no en una carpeta)
zip -r update_prueba1.zip META-INF system boot.img
Paso 6: Firmando paquete
Hay que firmar el paquete para que podamos instalarlo en cualquier teléfono que acepte paquetes que no tengan una firma oficial.
java -jar signapk.jar testkey.x509.pem testkey.pk8 update_prueba1.zip update_prueba1_signed.zip
Solo hemos añadido BUSYBOX así como los enlaces simbólicos de este y del toolbox, siempre que se añada algún binario en bin o xbin es recomendable añadirlo en el update-script para que se generen los permisos que nosotros queramos, también podemos añadir aplicaciones en e directorio de APP de system, scripts y todo lo que nosotros queramos a nuestro update.
Conclusión
Ya sólo nos quedaría flashear nuestro teléfono con la nueva ROM, y probar los cambios.
» Crear una aplicacion android de tu blog
» CREAR CARPETAS EN HUAWEI G300
» CREAR CARPETAS EN HUAWEI ASCEND G300
» Firmware update step 1/2 Unpacking o pantalla rosa
huawei :: Principal :: Tutoriales
Sáb Mar 26, 2016 5:02 am por aldo
» rootear huawei u 8650
Dom Mar 20, 2016 1:27 pm por dchacon
» Huawei ascend P1
Jue Jul 23, 2015 8:09 am por LESLIE MEDINA
» No funciona el auricular
Mar Jul 07, 2015 4:24 pm por sirenm
» AYUDA para instalar el IDIOMA ESPAÑOL
Jue Jul 02, 2015 10:11 am por Gerardo Nava
» Cambiar idioma
Vie Jun 19, 2015 10:33 am por jose sanchez
» problemas huawei p6
Mar Jun 16, 2015 9:34 pm por jorgesg
» Problemas con la camara, el calendario y la linterna
Dom Jun 07, 2015 6:40 pm por betblas
» Huawei y220-u00
Miér Jun 03, 2015 11:23 pm por yeider