|
||
|
|
|
|||||||
| ROMs y desarrollo Samsung Galaxy S II ROMs y desarrollo Samsung Galaxy S II |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Antes de ir a dormir, me apetecia compartir esto.
Vamos a añadirle al boton de power 4 tipos de reinicio: Necesitaremos: framework-res.apk y android.policy.jar Estas 3 imágenes Archivos.policy Apk.Manager y HoloxTool_v1.0.1 Al Turron!!! NOTA: Las líneas azules son las del menú Screenshot Las lineas verdes son las del menú Recovery. Las líneas naranjas son las del menú Download Al Turron!!! A) framework-res.apk 1. Decompila framework-res.apk con Apk.Manager (pon “framework-res.apk” dentro de la carpeta “place-apk-here-for-modding” y ejecuta “Script.bat”. Selecciona la opción “9”) 2. Añade las 3 imágenes a la ruta res\ drawable-xhdpi (esta dentro de la carpeta “projects”) 3. Ve a res\values y abre strings.xml (añade lo siguiente antes de la linea </resources>) __________________________________________________ __________ <string name="global_action_screenshot_txt">Capturar Pantalla </string> <string name="global_action_recovery_txt">Modo Recovery</string> <string name="global_action_download_txt">Modo Download</string> __________________________________________________ __________ 4. Compila framework-res.apk (mediante la opción “11” del menú de Apk.Manager y descompila de nuevo el archivo. (solo asi se regeneran las ID’s de public.xml en res\values folder para aceptar las nuevas rutas) 5. Ahora que has descompilado de nuevo, ve a la ruta res\values y abre public.xml, localiza las siguientes líneas y apúntatelas (estas ID’s son ejemplos) __________________________________________________ __________ <public type="drawable" name="tw_ic_lock_screenshot" id="0x0??????1) " /> <public type="drawable" name="tw_ic_lock_recovery" id="0x0??????2" /> <public type="drawable" name="tw_ic_lock_download" id="0x0??????3" /> __________________________________________________ __________ Y las siguientes también (estas ID’s son ejemplos) __________________________________________________ __________ <public type="string" name="global_action_screenshot_txt" id="0x0?????11" /> <public type="string" name="global_action_recovery_txt" id="0x0?????22" /> <public type="string" name="global_action_download_txt" id="0x0?????33" /> __________________________________________________ __________ 6. Deja abierto el archivo… lo necesitaras B) android.policy.jar 1. Abre “android.policy.jar” con “WinRAR” y saca el archivo “clases.dex” para meterlo dentro de la carpeta “HoloxTool”…”dex” y ejecuta el archivo “HoloxTool.bat” (selecciona la opción “2”) 2. Ve a la ruta HoloxTool_v1.0.1\database\dex\classout\com\android \internal\policy\impl y abre GlobalActions.smali. (dentro de “\database\dex”) 3. Busca la linea ".field private mDialog:Landroid/app/AlertDialog;" y añade esto: __________________________________________________ __________ .field private mDialog:Landroid/app/AlertDialog; .field private mScreenCapture:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; .field private mRecovery:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; .field private mDownload:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; .field private mHandler:Landroid/os/Handler; __________________________________________________ __________ 4. Busca "[Lcom/android/internal/policy/impl/GlobalActions$Action;" e incrementa el numero de arrays para que puedan caber todas las opciones en el menú Power. __________________________________________________ __________ .line 418 const/4 v1, 0x5 <!--- Aquí debes cambiar el numero new-array v1, v1, [Lcom/android/internal/policy/impl/GlobalActions$Action; __________________________________________________ __________ Nota: Recuerda que el numero máximo permitido es 7 (empezando de 0x0 a 0x6), seguramente tengas que eliminar alguna si tu menú power original tiene demasiadas arrays… por ejemplo el Modo Avion. Asi debe quedar: __________________________________________________ __________ .line 418 const/4 v1, 0x8 new-array v1, v1, [Lcom/android/internal/policy/impl/GlobalActions$Action; __________________________________________________ __________ 5. Añadiremos una nueva instancia para poder albergar ese numero de mas (si no, el sistema no lo aceptara) __________________________________________________ __________ .line 416 invoke-direct/range {p0 .. p0}, Lcom/android/internal/policy/impl/GlobalActions;->onAirplaneModeChanged()V new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$ScreenCap; const v2, 0x??????1 const v3, 0x?????11 move-object/from16 v0, p0 invoke-direct {v1, v0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$ScreenCap;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V move-object/from16 v0, p0 iput-object v1, v0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenCapture:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$Recovery; const v2, 0x??????2 const v3, 0x?????22 move-object/from16 v0, p0 invoke-direct {v1, v0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$Recovery;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V move-object/from16 v0, p0 iput-object v1, v0, Lcom/android/internal/policy/impl/GlobalActions;->mRecovery:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$Download; const v2, 0x??????3 const v3, 0x?????33 move-object/from16 v0, p0 invoke-direct {v1, v0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$Download;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V move-object/from16 v0, p0 iput-object v1, v0, Lcom/android/internal/policy/impl/GlobalActions;->mDownload:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; .line 418 const/4 v1, 0x8 __________________________________________________ __________ Como veras, las ID’s que se muestran son las que tenemos en el archivo public.xml de nuestra framework-res.apk. La primera ID de cada acción representa a los iconos nuevos. La segunda ID de cada acción representa el origen en el sistema Echale un ojo al archivo public.xml y asegúrate de que concuerden No olvides que para linkear las ID’s de la framework-res.apk, debemos omitir el primer cero después de la x. (Por ejemplo…0x01080a98 seria 0x1080a98) 6. Ya tenemos añadidos los nuevos arrays para mostrarlos en el menú Power… ahora modificaremos los archivos para hacerlos consecutivos en el menú (el que veremos en el teléfono) __________________________________________________ __________ .line 418 const/4 v1, 0x8 new-array v1, v1, [Lcom/android/internal/policy/impl/GlobalActions$Action; const/4 v2, 0x0 move-object/from16 v0, p0 iget-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mAccessiblityShortcut:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; aput-object v3, v1, v2 ... ... ... const/4 v2, 0x4 move-object/from16 v0, p0 iget-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; aput-object v3, v1, v2 const/4 v2, 0x5 move-object/from16 v0, p0 iget-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenCapture:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; aput-object v3, v1, v2 const/4 v2, 0x6 move-object/from16 v0, p0 iget-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mRecovery:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; aput-object v3, v1, v2 const/4 v2, 0x7 move-object/from16 v0, p0 iget-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mDownload:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; aput-object v3, v1, v2 __________________________________________________ __________ 7. Guarda los cambios y sal. 8. Copia los 4 archivos que hay dentro de “archivos.policy.rar” a: classout\com\android\internal\policy\impl 9. Recompila android.policy.jar mediante la opción “3” del menú de “HoloxTool_v1.0.1”. 10. copia el archivo “new-classes.dex” que hay dentro de “HoloxTool_v1.0.1\database\dex” al escritorio y renómbralo a “classes.dex” 11. Abre “android.policy.jar” con “WinRAR” y mete el archivo “classes.dex” que tienes en tu escritorio (machacará el que hay dentro) Ahora pasa los archivos framework-res.apk y android.policy.jar que has modificado… al teléfono peeero no funcionaran las capturas de pantalla hasta que pases el archivo “screenshot” al bin de tu sistema (en el móvil , mediante RootExplorer)
__________________
Última edición por klurosu Día 18/05/13 a las 16:08:54. Razón: Revisado...ok |
| Los siguientes 6 usuarios han agradecido a klurosu su comentario: | ||
|
|
|
#3
|
||||
|
||||
|
Muchas gracias, es muy bueno para empezar a aprender.
![]() Un par de dudas de novato: ![]() ¿Lo del NFC es un error en el título o es que va aparejado? Necesitaremos:
1. El archivo "android.policy.jar", "framework-res.apk" y "framework.jar" de tu ROM 2. ApkTools 3. Estos tres archivos: 1, 2 y 3. ![]() Además, el aapt.exe da "not found". Y una cosita mas, ¿me puedes indicar algún enlace a un tuto como este, pero con linux? ![]() Saludos
__________________
---------------8<----------------8<--------------------->8------------->8---------
Lo que me faltaba para terminar de confundirme
|
|
#4
|
||||
|
||||
|
El que tiene NFC y el que no lo lleva. Todos los tutoriales llevaran uindicaciones sobre a que modelo van dirigidos ![]() )Me `pondre con ello Un saludeteeeeeeeeeee
__________________
|
|
#5
|
||||
|
||||
|
Gracias por el tutorial, me preguntaba si vale para el modelo GT-I9100? y si se podría añadir a ese menú (al principal) la opcion de "Screenshot Function" y si se puede haber si nos podrías decir como para poder hacerlo. Muchas gracias.
PD. Esto vale para roms Stock como la XWLPG, etc ... ? Saludos |
|
#6
|
||||
|
||||
|
Gracias por el tutorial, me preguntaba si vale para el modelo GT-I9100? y si se podría añadir a ese menú (al principal) la opcion de "Screenshot Function" y si se puede haber si nos podrías decir como para poder hacerlo. Muchas gracias.
PD. Esto vale para roms Stock como la XWLPG, etc ... ? Saludos ![]()
__________________
|
|
#7
|
||||
|
||||
|
Klurosu en el punto 3 no has puesto las imágenes (supongo que las querías poner) Si puede súbelas por favor sino ya googleo yo y las pongo, muchas gracias!
|
|
#8
|
||||
|
||||
|
__________________
|
|
#9
|
||||
|
||||
|
Hola, y digo yo!!! y en vez de quitar opciones del menu dado que solo cojen 7, por que no se hace un submenu en "Reiniciar" que tenga en dicho subenu Normal, Download y Recovery, la opción Screenshot quedaria en le menu principal. Eso se podria hacer?
|
|
#10
|
||||
|
||||
|
Quitar opciones?... hola? Si, se puede hacer un submenu para eso (es basicamente igual) pero lo puse asi por gusto personal. Un saludoo
__________________
|
|
#11
|
||||
|
||||
|
Hola klurosu, gracias por responder pero llegado a este punto me surje una duda y una petición si es posible.
La duda es si yo modifico el archivo "framework-res.apk y android.policy.jar" u otros, cuando aha otro mod tengo que partir de esos modificados o desde los originales? otra duda es que si yo creo este mod para el movil y luego quiero añadirle otro mod que hizo otra persona que modifique alguno de los archivos que necesite yo para crear mi mod yo perderé mi mod al sobre inscribir los archivos de otro mod.? La petición es, si buenamente me podrias decir como crear el submenu que dandole a "Reiniciar" apareciera otra menú con "Normal, Recovery y Download" dado que "Screenshot" quedase en el menu principal. Ante todo muchas gracias y perdona las molestias que te puedan causar mis absurdas dudas o peticiones. Saludos |
|
#12
|
||||
|
||||
|
Siempre desde los modificados
__________________
|
![]() |
Estás aquí
|
||||||
|
||||||