Avisos

ROMs y desarrollo Samsung Galaxy S II ROMs y desarrollo Samsung Galaxy S II


 
Herramientas
  #1  
Viejo 17/06/13, 00:11:46
Avatar de klurosu
klurosu klurosu no está en línea
Cocinero a la antigua
Mensajes: 5,753
 
Fecha de registro: ago 2008
Localización: Phu Tho
Mensajes: 5,753
Modelo de smartphone: Pixel 6
Versión de ROM: KlurosuROM (Android 13 based)
Tu operador: Lowi
Mencionado: 35 comentarios
Tagged: 0 hilos
Post Galaxy SII +/+ NFC [I9105/I9105P] Vol+ y Vol- para pasar canciones

Gracias a:
majdinj
xpeiacle
grilleld

Yo solo he modificado el codigo para que cuadre en nuestro i9105 o i9105P.


Al turron!

Necesitaras:
Android.policy.jar
HoloxTool_v1.0.1
"boton.vol.pasa.pistas"


1. Abre “Android.policy.jar” con “WinRAR” y saca el archivo “classes.dex” a la carpeta “dex” que hay dentro de “HoloxTool_v1.0.1” y selecciona la opción “2” cuando ejecutes “HoloxTool.bat”
2. Entra en “HoloxTool_v1.0.1\database\dex\classout\com/android/internal/policy/impl y abre el archivo “PhoneWindowManager.smali
3. Busca la línea:".field static final LONG_PRESS_POWER_SHUT_OFF:I = 0x2" y añade lo que esta en azul justo debajo:

Código:
.field static final LONG_PRESS_POWER_SHUT_OFF:I = 0x2

.field private static final LONG_PRESS_TIMEOUT:I = 0x190

.field static final MINI_APP_DIALOG_LAYER:I = 0x5
- Busca ".field private mIsVisibleSPenGestureView:Z" y añade estas lineas en azul:

Código:
.field private mIsVisibleSPenGestureView:Z

.field mIsVolumeAction:Z

.field mIsVolumeBlocking:Z

.field mKeyboardTapVibePattern:[J
- Busca ".field private mVolumeDownKeyTriggered:Z" y añade esta linea azul::

Código:
.field private mVolumeDownKeyTriggered:Z

.field mVolumeDownLongPress:Ljava/lang/Runnable;

.field private final mVolumeKeyLongPressforOneTouchReport:Ljava/lang/Runnable;
- Busca ".field private mVolumeUpKeyTriggered:Z" y añade esta linea azul:

Código:
.field private mVolumeUpKeyTriggered:Z

.field mVolumeUpLongPress:Ljava/lang/Runnable;

.field mWindowManager:Landroid/view/IWindowManager;
- Busca el metodo ".method public constructor <init>()V" y vete al final del mismo para poder añadir estas lineas azulesantes del "return-void":

Código:
.line 7554
    new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$35;

    invoke-direct {v0, p0},  Lcom/android/internal/policy/impl/PhoneWindowManager$35;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;V

    iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mScreenLockTimeout:Ljava/lang/Runnable;
    
new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$Skip1;

    invoke-direct {v0, p0},  Lcom/android/internal/policy/impl/PhoneWindowManager$Skip1;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;V

    iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;

    new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$Skip2;

    invoke-direct {v0, p0},  Lcom/android/internal/policy/impl/PhoneWindowManager$Skip2;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;V

    iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;

    .line 8501
    return-void
.end method
- Busca el metodo ".method handleVolumeKey(II)V" y añade estas lineas encima del "invoke-static" y sustituye la condicion:

[code]. method handleVolumeKey(II)V
.registers 8
.parameter "stream"
.parameter "keycode"

.prologue
.line 5673
move-object/from16 v0, p0

iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeBlocking:Z

if-nez v0, :cond_c


invoke-static {}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getAudioService()Landroid/media/IAudioService;

move-result-object v0

.line 5674
.local v0, audioService:Landroid/media/IAudioService;
if-nez v0, :cond_7

.line 5705
:cond_c
:goto_c
return-void;[code]

- Aun en el metodo de arriba, busca "Landroid/os/PowerManager$WakeLock;->release()V" y cambia el valor del ":goto" por el de antes:

Código:
.line 5703 
iget-object v2, p0,  Lcom/android/internal/policy/impl/PhoneWindowManager;->mBroadcastWakeLock:Landroid/os/PowerManager$WakeLock;

    invoke-virtual {v2}, Landroid/os/PowerManager$WakeLock;->release()V

    goto :goto_c
- Hay otro, asi que...haz lo mismo:

Código:
.line 5703 
iget-object v2, p0,  Lcom/android/internal/policy/impl/PhoneWindowManager;->mBroadcastWakeLock:Landroid/os/PowerManager$WakeLock;

    invoke-virtual {v2}, Landroid/os/PowerManager$WakeLock;->release()V

    goto :goto_c
- Ahora al final del metodo ".method handleVolumeKey(II)V" y antes del metodo ".method public hasNavigationBar()Z", añade estos dos:

Código:
.method handleVolumeLongPress(I)V
    .registers 6

    const/4 v1, 0x1

    move-object/from16 v0, p0

    iput-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeBlocking:Z

    const/4 v1, 0x0

    iput-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeAction:Z

    const/16 v1, 0x18

    if-ne p1, v1, :cond_majdi

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;

    :goto_nj
    iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;

    sget v2, Lcom/android/internal/policy/impl/PhoneWindowManager;->LONG_PRESS_TIMEOUT:I

    int-to-long v2, v2

    invoke-virtual {v1, v0, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    return-void

    :cond_majdi
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;

    goto :goto_nj
.end method

.method handleVolumeLongPressAbort()V
    .registers 3

    const/4 v1, 0x0

    move-object/from16 v0, p0

    iput-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeBlocking:Z

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;

    iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;V

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;

    iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;V

    return-void
.end method
- Busca el metodo ".method public interceptKeyBeforeQueueing(Landroid/view/KeyEvent;IZ)I", y busca abajo la linea "Lcom/android/internal/policy/impl/PhoneWindowManager;->mSamsungVolumeControlThread:Lcom/android/internal/policy/impl/PhoneWindowManager$SamsungVolumeControlThread;" para añadir estas lineas:

Código:
. line 6234
    .end local v7           #ex:Landroid/os/RemoteException;
    :cond_4d3
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mScreenOnEarly:Z

    if-nez v0, :cond_dinj

    invoke-virtual/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z

    move-result v29

    if-eqz p0, :cond_dinj

    move-object/from16 v0, p0

    move/from16 v15, v19

    invoke-virtual {v0, v15}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPress(I)V

    :cond_dinj
    move-object/from16 v0, p0

    iget-object v0, v0,  Lcom/android/internal/policy/impl/PhoneWindowManager;->mSamsungVolumeControlThread:Lcom/android/internal/policy/impl/PhoneWindowManager$SamsungVolumeControlThread;

    move-object/from16 v29, v0

    if-nez v29, :cond_68
- Aun en este metodo, mas abajo deberas modificar una condicion:

Código:
invoke-virtual/range {v29 .. v29},  Lcom/android/internal/policy/impl/PhoneWindowManager$SamsungVolumeControlThread;->start()V

    oto/16 :goto_68

    .line 6242
    .end local v27           #telephonyService:Lcom/android/internal/telephony/ITelephony;
    .end local v28           #voipInterfaceService:Landroid/os/IVoIPInterface;
    :cond_506
    if-nez v5, :cond_newa

    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeBlocking:Z

    if-eqz v0, :cond_newa

    invoke-virtual/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPressAbort()V

    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeAction:Z

    if-nez v0, :cond_newa

    move-object/from16 v0, p0

    const/4 v3, 0x0

    move/from16 v15, v19

    invoke-virtual {v0, v3, v15}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V

    :cond_newa
    move-object/from16 v0, p0

    iget-object v0, v0,  Lcom/android/internal/policy/impl/PhoneWindowManager;->mSamsungVolumeControlThread:Lcom/android/internal/policy/impl/PhoneWindowManager$SamsungVolumeControlThread;

    move-object/from16 v29, v0
- Nos vamos al final del metodo ".method sendCloseSystemWindows(Ljava/lang/String;V" y encima del metodo ".method setAttachedWindowFrames(Landroid/view/WindowManagerPolicy$WindowState;IILandroid/view/WindowManagerPolicy$WindowState;ZLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;I)V" añade esto:

Código:
.method protected sendMediaButtonEvent(I)V
    .registers 15

    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v1

    new-instance v11, Landroid/content/Intent;

    const-string v4, "android.intent.action.MEDIA_BUTTON"

    const/4 v5, 0x0

    invoke-direct {v11, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;V

    new-instance v0, Landroid/view/KeyEvent;

    const/4 v5, 0x0

    const/4 v7, 0x0

    move-wide v3, v1

    move v6, p1

    invoke-direct/range {v0 .. v7}, Landroid/view/KeyEvent;-><init>(JJIII)V

    const-string v4, "android.intent.extra.KEY_EVENT"

    invoke-virtual {v11, v4, v0},  Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;Landroid/content/Intent;

    iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;

    const/4 v5, 0x0

    invoke-virtual {v4, v11, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;V

    new-instance v12, Landroid/content/Intent;

    const-string v4, "android.intent.action.MEDIA_BUTTON"

    const/4 v5, 0x0

    invoke-direct {v12, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;V

    new-instance v3, Landroid/view/KeyEvent;

    const/4 v8, 0x1

    const/4 v10, 0x0

    move-wide v4, v1

    move-wide v6, v1

    move v9, p1

    invoke-direct/range {v3 .. v10}, Landroid/view/KeyEvent;-><init>(JJIII)V

    const-string v4, "android.intent.extra.KEY_EVENT"

    invoke-virtual {v12, v4, v3},  Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;Landroid/content/Intent;

    iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;

    const/4 v5, 0x0

    invoke-virtual {v4, v12, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;V

    const/4 v8, 0x1

    move-object/from16 v9, p0

    iput-boolean v8, v9, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeAction:Z

    return-void
.end method
Cierra el documento guardando los cambios.

4. Añade los dos archivos que hay dentro de "boton.vol.pasa.pistas" a la ruta: "com/android/internal/policy/impl" y recompila mediante la opción “3” del menú de “HoloxTool_v1.0.1”.
5. copia el archivo “new-classes.dex” que hay dentro de “HoloxTool_v1.0.1\database\dex” al escritorio y renómbralo a “classes.dex”
6. Abre “Android.policy.jar” con “WinRAR” y mete el archivo “classes.dex” que tienes en tu escritorio (machacará el que hay dentro)


Ya está.

Ahora cada vez que estes escuchando tu musica favorita y el movil este en modo bloqueo, podras pasar a la siguiente cancion o a la anterior... pulsando Vol+ o Vol-

Responder Con Cita


Respuesta

Estás aquí
Regresar   HTCMania > Foros Samsung > Otros smartphones de Samsung antiguos > Samsung Galaxy S II > ROMs y desarrollo Samsung Galaxy S II


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 07:20:40 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007