![]() |
|
ROMs y desarrollo Samsung Galaxy Nexus ROMs y desarrollo Samsung Galaxy Nexus |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
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 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 Código:
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z 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 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 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 Código:
# static fields .field protected static rebootMode:I .field protected static final rebootOptions:[Ljava/lang/String; 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 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" 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 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" Código:
apktool b android.policy.jar.out android.policy.jar 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 Última edición por Veloz46 Día 13/10/13 a las 07:21:36 |
Los siguientes 8 usuarios han agradecido a Veloz46 su comentario: | ||
|
#2
|
||||
|
||||
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Í |
Gracias de parte de: | ||
#3
|
||||
|
||||
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!!!! |
#4
|
||||
|
||||
Cita:
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Í |
Gracias de parte de: | ||
#5
|
||||
|
||||
Cita:
Mañana cuando encienda el pc me pongo a ello. Gracias. Enviado desde mi Nexus 7 usando Tapatalk 2 |
Gracias de parte de: | ||
#6
|
Probado en ROM Po_ROM_Pompero_JB para Tablet POV Protab2 XXL y funciona de maravilla....
Gracias por el tuto maquina ![]() |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 22:42:29 (GMT +2)
HTCMania: líderes desde el 2007