ROMs y desarrollo Samsung Galaxy Nexus ROMs y desarrollo Samsung Galaxy Nexus

Respuesta
 
Herramientas
  #1  
Viejo 29/10/12, 08:34:47
Array

[xs_avatar]
Veloz46 Veloz46 no está en línea
Cocinero veterano
· Votos compra/venta: (16)
 
Fecha de registro: feb 2011
Mensajes: 11,964
Tu operador: Tuenti Movil

4-way reboot Galaxy Nexus 4.1.2 Jelly bean.



Bueno pues aquí os voy a enseñar a los que quieren aprender y a los que les pueda interesar, meter el 4-Way reboot. (Reinicio normal, rápido, bootloader, recovery)

Necesitaremos tiempo, el Notepad++ o en caso de Linux Gedit, Pluma o similat, 7zip y una serie de paquetes que os dejo a continuación.

DESCARGA-1 (Pass: dev-puremod)

Tenemos que localizar el "android.policy.jar" de "system/framework"

Lo descompilamos de la siguiente manera:

1.Descomprimimos el .rar llamado "Herramientas"
2.Metemos el andoid.policy.jar dentro de dicha carpeta.
3.Ejecutamos el "cmd" (Terminal en Linux) del interior.
4.Escribimos lo siguiente:
Código:
apktool d android.policy.jar
Esto nos a descompilado el Jar en una careta llamada "android.policy.jar.out"

Ahora nos vamos asta "android.policy.jar.out/smali/com/android/internal/policy/impl"

Una vez hay, copiamos los archivos del rar llamado "Archivos adicionales"
Son 3 archivos que se llaman:
(las extesiones .smali es muy posible que no las veáis)

GlobalActions$10$1.smali
GlobalActions$10$2.smali
GlobalActions$10.smali

Una vez copiados estos archivos vamos en busca de los 2 que tenemos que modificar añadiendo lineas.

Los 2 archivos a modificar son llamados:
(las extesiones .smali es muy posible que no las veáis)

GlobalActions$SinglePressAction.smali
GlobalActions.smali

Vamos a por el primer archivo, en este caso empezamos por el GlobalActions (el mas fácil):

Buscamos la linea:

Código:
    invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$2;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 228
    move-object/from16 v0, p0
La realmente importante es la:

Código:
 invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
Por que debajo de esta vamos a poner lo siguente:

Código:
    new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$10;

    const v3, 0x10802c0

    const v4, 0x104033a

    move-object/from16 v0, p0

    invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$10;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
Quedando de la siguiente manera:

Código:
    invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$2;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$10;

    const v3, 0x10802c0

    const v4, 0x104033a

    move-object/from16 v0, p0

    invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$10;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 228
    move-object/from16 v0, p0
Ahora echo esto ya puedes guardar y vamos a por el otro archivo, llamado "GlobalActions$SinglePressAction"

Ahora buscamos el siguiente fragmento:

Código:
.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x40a
    name = "SinglePressAction"
.end annotation


# instance fields
.field private final mIconResId:I

.field private final mMessage:Ljava/lang/CharSequence;

.field private final mMessageResId:I
Ahora atentos, entre la linea ".end annotation" y la "# instance fields" vamos a introducir el siguiente texto:

Código:
# static fields
.field protected static rebootMode:I

.field protected static final rebootOptions:[Ljava/lang/String;
Quedando así:

Código:
.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x40a
    name = "SinglePressAction"
.end annotation


# static fields
.field protected static rebootMode:I

.field protected static final rebootOptions:[Ljava/lang/String;


# instance fields
.field private final mIconResId:I

.field private final mMessage:Ljava/lang/CharSequence;

.field private final mMessageResId:I
Y ahora después de hacer esto nos interesa justo este ultimo.

Que vendría a ser así:

Código:
# instance fields
.field private final mIconResId:I

.field private final mMessage:Ljava/lang/CharSequence;

.field private final mMessageResId:I


# direct methods
.method protected constructor <init>(II)V
    .locals 1
    .parameter "iconResId"
    .parameter "messageResId"
Pues atentos por que dentro de ese fragmento de texto entre la linea "# direct methods" y la linea ".method protected constructor <init>(II)V" va a ir lo siguiente

Código:
.method static constructor <clinit>()V
    .registers 3

    const/4 v0, 0x4

    new-array v0, v0, [Ljava/lang/String;

    const/4 v1, 0x0

    const-string v2, "Reiniciar"

    aput-object v2, v0, v1

    const/4 v1, 0x1

    const-string v2, "R\u00e1pido"

    aput-object v2, v0, v1

    const/4 v1, 0x2

    const-string v2, "Bootloader"

    aput-object v2, v0, v1

    const/4 v1, 0x3

    const-string v2, "Recovery"

    aput-object v2, v0, v1

    sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;

    return-void
.end method
Quedando de la siguiente manera:

Código:
# instance fields
.field private final mIconResId:I

.field private final mMessage:Ljava/lang/CharSequence;

.field private final mMessageResId:I


# direct methods
.method static constructor <clinit>()V
    .registers 3

    const/4 v0, 0x4

    new-array v0, v0, [Ljava/lang/String;

    const/4 v1, 0x0

    const-string v2, "Reiniciar"

    aput-object v2, v0, v1

    const/4 v1, 0x1

    const-string v2, "R\u00e1pido"

    aput-object v2, v0, v1

    const/4 v1, 0x2

    const-string v2, "Bootloader"

    aput-object v2, v0, v1

    const/4 v1, 0x3

    const-string v2, "Recovery"

    aput-object v2, v0, v1

    sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;

    return-void
.end method

.method protected constructor <init>(II)V
    .locals 1
    .parameter "iconResId"
    .parameter "messageResId"
Y listos ya puedes guardar, volver al "cmd" (terminal en Linux) y escribir lo siguiente:

Código:
apktool b android.policy.jar.out android.policy.jar
Esto nos va a compilar un archivo llamado classes.dex dentro de "android.policy.jar.out/build/apk/classes.dex"

Ese classes.dex, tenemos que cambiarlo por el original dentro del "android.policy.jar"

Abrimos el "android.policy.jar" con el 7zip, y arrastramos el nuevo "classes.dex" dentro del "android.policy.jar"

Ahora ya tienes tu archivo preparado para meterlo en la Rom y disfrutar del 4-way reboot. ;)

http://www.foro-nexus.com/showthread...d=2642#pid2642

Ir al link original: http://www.foro-nexus.com/showthread.php?tid=289&pid=2642#pid2642



Archivos Adjuntos
Tipo de Archivo: rar Archivos adicionales.rar (2.7 KB, 20 visitas)
Tipo de Archivo: rar Notepad++.rar (5.42 MB, 4 visitas)
Tipo de Archivo: rar Herramientas.rar (6.04 MB, 15 visitas)

Última edición por Veloz46 Día 13/10/13 a las 07:21:36.
Responder Con Cita
Los siguientes 8 usuarios han agradecido a Veloz46 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 29/10/12, 09:02:15
Array

[xs_avatar]
Veloz46 Veloz46 no está en línea
Cocinero veterano
· Votos compra/venta: (16)
 
Fecha de registro: feb 2011
Mensajes: 11,964
Tu operador: Tuenti Movil

Cabe decir que hay que mantener los espacios entre líneas, o sea hay que respetarlos o no funcionara.

Luego lo apunte en el post, desde Tapatalk me da un palo enorme buscar la línea donde decirlo.

Enviado desde un lugar llamado mundo... Si quieres ver mis trabajos pincha AQUÍ
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 29/10/12, 13:32:33
Array

[xs_avatar]
motes motes no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: ene 2010
Mensajes: 1,229

Una vez modificado el archivo android.policy.jar podemos cambiarlo en qualquier Nexus stock?
si es asi seria un detalle que compartieras el android.policy.jar modificado...
Gracias por el Tuto!!!!
Responder Con Cita
  #4  
Viejo 29/10/12, 17:11:48
Array

[xs_avatar]
Veloz46 Veloz46 no está en línea
Cocinero veterano
· Votos compra/venta: (16)
 
Fecha de registro: feb 2011
Mensajes: 11,964
Tu operador: Tuenti Movil

 Cita: Originalmente Escrito por motes Ver Mensaje
Una vez modificado el archivo android.policy.jar podemos cambiarlo en qualquier Nexus stock?
si es asi seria un detalle que compartieras el android.policy.jar modificado...
Gracias por el Tuto!!!!
Si el archivo es de la Stock Deodexed si, pero solo para las stock, puesto que yo, AOKP, CM... Tiene diferentes cambios en ese archivo.

Si la rom Stock no está Deodexed, este tutorial no vale. (otro detalle que debería aclarar)

Enviado desde un lugar llamado mundo... Si quieres ver mis trabajos pincha AQUÍ
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 31/10/12, 23:02:33
Array

[xs_avatar]
lauri19david lauri19david no está en línea
Cocinero veterano
· Votos compra/venta: (30)
 
Fecha de registro: feb 2011
Localización: Cartagena-Murcia
Mensajes: 6,206
Modelo de smartphone: Samsung Galaxy S23 Ultra
Tu operador: O2
 Cita: Originalmente Escrito por Veloz46 Ver Mensaje
Si el archivo es de la Stock Deodexed si, pero solo para las stock, puesto que yo, AOKP, CM... Tiene diferentes cambios en ese archivo.

Si la rom Stock no está Deodexed, este tutorial no vale. (otro detalle que debería aclarar)

Enviado desde un lugar llamado mundo... Si quieres ver mis trabajos pincha AQUÍ
Eres un máquina tío.
Mañana cuando encienda el pc me pongo a ello.
Gracias.

Enviado desde mi Nexus 7 usando Tapatalk 2
__________________
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 24/03/13, 14:01:35
Array

[xs_avatar]
chujalt chujalt no está en línea
Usuario muy activo
 
Fecha de registro: ene 2010
Localización: Alicante
Mensajes: 577
Modelo de smartphone: Teclast P20HD
Tu operador: Yoigo
Probado en ROM Po_ROM_Pompero_JB para Tablet POV Protab2 XXL y funciona de maravilla....
Gracias por el tuto maquina
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Samsung > Otros smartphones de Samsung antiguos > Samsung Galaxy Nexus > ROMs y desarrollo Samsung Galaxy Nexus



Hora actual: 11:37:05 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /