![]() |
|
ROMs y desarrollo HTC Desire ROMs y desarrollo HTC Desire |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Mejorar el autobrillo de nuestras Desire
Hola a todos,
Supongo que todos estamos de acuerdo en que el autobrillo que trae la Desire deja mucho que desear. En plena oscuridad te deslumbra completamente. Eso es un gasto de batería completamente estúpido, que podemos evitar. Por otro lado, me picó mucho que el IPhone 4 de mi mujer gestionara el autobrillo tan y tan bien. Prácticamente deja la pantalla sin luz en ambientes oscuros. Estos de Apple se lo curran. ![]() He estado echando un ojo a diferentes foros en XDA, y he encontrado varios hilos en los que se explica detalladamente como tocar esos settings. Lo que ya no he encontrado es a nadie que haya perdido el tiempo suficiente con su Desire para encontrar unos settings correctos, que ahorren batería sin luz, y que pongan la pantalla al máximo al sol. El objeto de este hilo es compartir con vosotros los settings que me han quedado, después de varias pruebas con diferentes luces de ambiente. El fichero a editar es el arrays.xml, que se encuentra dentro del framework-res.apk de vuestra ROM. No está disponible descomprimiendo directamente el fichero (los apks no dejan de ser ficheros comprimidos con al app dentro). Has de descompilar el fichero resources.arsc. Yo lo edito con Apk Manager, descompilando, editando, y volviendo a compilar... pero bueno, que hay varias formas, descritas en muchos hilos. Volviendo al tema, en el arrays.xml podemos encontrar varios settings del sistema, pero los que nos interesan están en esta sección: Código:
<integer-array name="config_autoBrightnessLevels"> <item>11</item> <item>41</item> <item>91</item> <item>161</item> <item>226</item> <item>321</item> <item>641</item> <item>1281</item> <item>2601</item> </integer-array> <integer-array name="config_autoBrightnessLcdBacklightValues"> <item>81</item> <item>81</item> <item>81</item> <item>112</item> <item>143</item> <item>163</item> <item>186</item> <item>208</item> <item>231</item> <item>255</item> </integer-array> <integer-array name="config_autoBrightnessLcdBacklightValuesUp"> <item>81</item> <item>81</item> <item>128</item> <item>163</item> <item>163</item> <item>163</item> <item>186</item> <item>208</item> <item>231</item> <item>255</item> </integer-array> <integer-array name="config_autoBrightnessLcdBacklightValuesDown"> <item>81</item> <item>128</item> <item>163</item> <item>163</item> <item>163</item> <item>186</item> <item>208</item> <item>231</item> <item>255</item> <item>255</item> </integer-array> La lista que he puesto es la que viene por defecto en nuestras Desires... Supongo que empezáis a entender por qué en ambientes oscuros el brillo no baja... El mínimo es 81... En cuanto a los valores por arriba, yo los veo correctos, y de momento no los he tocado. Otra cosa que he visto es que ni encerrándote en una habitación oscura el sensor detecta menos de 11 de luz... por lo que he tenido que tocar tanto los propios valores de brillo, como los valores de luz asociados. (23/09/11 - mejorado a partir del kernel 110917 de snq-) En cuanto al objetivo de las otras dos listas de items, "config_autoBrightnessLcdBacklightValuesUp" y "config_autoBrightnessLcdBacklightValuesDown", diría que cumplen una función de histéresis, de manera que se puede evitar que en casos de luz justo en un límite, el brillo vaya cambiando cada pocos segundos. Como esto todavía no lo tengo claro, lo dejo para una segunda revisión de este hilo. En foros extranjeros configuran los mismos valores en las tres variables. Yo, una vez tenga clara y cerrada mi lista de valores correcta, ya le meteré mano a eso. Después de este pequeño rollo, os dejo como lo tengo ahora mismo: Código:
23/09/11 - obsoletos, mirad más abajo los que estoy usando ahora Me gustaría que jugarais vosotros también con esos valores. Quizás sólo son válidos para mi Desire. Recordad que los sensores de luz se van gastando con el paso del tiempo, y quizás los valores que me den a mí no son los más usuales. Nota 1: Todo esto se aplicable tanto a ROMs Froyo como Gingerbread. Todas tienen su arrays.xml. ---23/09/11------------Editar el arrays.xml---------------------------------------------------------------- Bueno, parece que la gente se anima, por lo que voy a explicar de forma muy breve y sencilla cómo tocar vuestro arrays.xml. Como bien ha apuntado ironjon en el hilo, con un mínimo de inglés se puede seguir por ejemplo esta guía, entre otras que encontraréis en XDA. Los pasos que voy a dar son ligeramente diferentes a los de esa guía, al final. Para el que ande un poco perdido, las aplicaciones en Android vienen empaquetadas con extensión apk, que no es más que un fichero comprimido en formato zip. Basta con añadir extensión zip al nombre, y podréis extraer sus contenidos. Hablando de nuestro querido framework-res.apk, con eso basta para personalizar el aspecto de vuestro Android (la mayoría de imágenes que véis en vuestro terminal las encontraréis en \res\drawable-hdpi-v4\). El problema en nuestro caso es que el fichero arrays.xml no se encuentra en claro dentro del framework-res.apk, si no dentro del archivo resources.arsc, que está compilado. Para descompilarlo hace falta la herramienta apktool (y su GUI en msdos apkmanager), que hace ese trabajo, y después de editar el arrays.xml, volver a compilar. Sin más rollos, os detallo los pasos a seguir: - Descargamos APK Manager (url directa de descarga), y lo descomprimimos, preferiblemente en un path sin espacios (en C:\apkmanager\ por ejemplo). - Metemos nuestro framework-res.apk en la carpeta "\place-apk-here-for-modding\". - Ejecutamos el fichero Script.bat. Aparecerá un menú con opciones accesibles mediante su número de orden. - Seleccionamos nuestro framework-res.apk. Para ello, opción 22, opción 1. - Lo descomprimimos/descompilamos. Opción 9 (tardará unos segunditos... sobre los 20). - Cuando acabe, tendremos nuestro framework-res descompilado en la carpeta "\projects\". Si accedemos a ella (no cerréis APK Manager, minimizadlo), veremos que el fichero resources.arsc no está, pero en su lugar ha aparecido la carpeta "\res\values\". Dentro encontraréis el fichero arrays.xml, en cuyo interior se encuentran las correspondencias entre luz ambiente y luminosidad de la pantalla, tal y como hemos hablado en el hilo. - Editadlo cuidando de conservar el formato, y sólo tocar los valores que hemos comentado en este hilo. Os pongo mis valores actuales. Todo mi reconocimiento para anderl78, de XDA. Estoy usando los valores de su patch "dark+", aquí. Código:
<integer-array name="config_autoBrightnessLevels"> <item>11</item> <item>41</item> <item>91</item> <item>161</item> <item>226</item> <item>321</item> <item>641</item> <item>1281</item> <item>2601</item> </integer-array> <integer-array name="config_autoBrightnessLcdBacklightValues"> <item>35</item> <item>47</item> <item>65</item> <item>85</item> <item>117</item> <item>142</item> <item>168</item> <item>200</item> <item>231</item> <item>255</item> </integer-array> <integer-array name="config_autoBrightnessLcdBacklightValuesUp"> <item>35</item> <item>47</item> <item>65</item> <item>85</item> <item>117</item> <item>142</item> <item>168</item> <item>200</item> <item>231</item> <item>255</item> </integer-array> <integer-array name="config_autoBrightnessLcdBacklightValuesDown"> <item>47</item> <item>65</item> <item>85</item> <item>117</item> <item>142</item> <item>168</item> <item>200</item> <item>231</item> <item>255</item> <item>255</item> </integer-array> RECOMENDADO: Para aprovechar del todo estos valores, deberéis tener instalado un kernel que tenga el rango total de valores de luz disponibles (10). En este momento, el único que lo tiene es el kernel de snq-, a partir de su versión 110917. Sin él, por ejemplo, nunca tendréis valor 35 (el más bajo), en total oscuridad. He solicitado a bananacakes y a sibere que le echen un ojo al patch de tobi, por si pueden añadirlo ellos también a sus kernels. - Una vez hayáis editado el arrays.xml, cerrad el editor, volved a APK Manager. Ahora toca volver a compilar con los cambios. Opción 11. Esto tardará algo más que el proceso de descompilación... Sobre el minutito. - A la pregunta "Is this a system apk (y/n)", respondéis "y". - A la pregunta "Aside from the signatures [...]", respondéis "n". - En este paso tendremos nuestro nuevo framework-res.apk en la carpeta "\place-apk-here-for-modding\", con el nombre "unsignedframework-res.apk". Lo dejamos ahí todavía. - Seleccionaremos el nuevo framework-res mediante la opción 22, opción 2. - Deberemos aplicarle el proceso de zipalign, opción 5. - Ya hemos acabado. Salimos de APK Manager con la opción 24 (hay un pequeño bug, y la primera vez da error... hay que introducirlo dos veces). - Sólo nos quedará renombrar el "unsignedframework-res.apk" a "framework-res.apk", y flashear vuestro móvil con él, de la manera que más os guste: vía ADB, vía recovery mediante un flasheable (tendréis que desactivar la comprobación de firma en ese caso), etc... Creo que eso es todo. ![]() Un saludo, y ya me contaréis. Última edición por PeQuEsan Día 23/09/11 a las 14:44:08 |
Los siguientes 11 usuarios han agradecido a PeQuEsan su comentario: | ||
|
#2
|
Muy interesante.
Se podria hacer un flasheable con los archivos modificados. Sent from my rooted and s-offed HTC Desire. |
#4
|
||||
|
||||
No he querido hacer un flasheable por qué los framework-res.apk varían entre ROMs, e incluso varían cuando aplicas modificaciones con UOT Kitchen por ejemplo. Creo que es más funcional que cada uno sepa como modificar su propio framework-res.apk...
Sería interesante por ejemplo hablar con los de la UOT Kitchen, y que lo añadieran como una opción extra... Sería la bomba... ![]() Un saludo. |
#5
|
||||
|
||||
Habrá que investigar cómo se edita el framework-res. Porque he intentado poner el kernel de snq y se me queda la Desi en la imagen del splash y reinicia todo el rato.
|
#6
|
con que rom??? el autobrillo me ha mejorado bastante con ese kernel, ya viene cn algo de esto modificado...
|
#7
|
||||
|
||||
La rom, reflexs 2.1.7 de neo. He probado el kernel de snq 110918 y el 110919 y en los dos se me queda reiniciando
|
#8
|
en las cyanogen viene una opcion para calibrar el autobrillo de la pantalla desde las opciones del propio movil. en el post de la cyanogen (no se si la estable o la nightly) viene un pekeño tutorial de como hacerlo. me imagino ke sera lo mismo lo ke se hace ke modificando el archivo este pero creo ke la unica rom ke tiene esa opcion es cyanogen...
|
#9
|
Tengo la Official Gingerbread 2.3.3 y no encuentro lo que dices, ni frameworks.res ni el arrays ni nada. Seguro que funciona con todas las ROMS? lo pregunto porque a mi también es un tema que me interesa. Y ya puestos no sé dónde va esto, pero cómo puedo ponerme el bloqueo de pantalla del anillo? he buscado por aquí pero no ha habido forma de encontrar gran cosa.
|
#10
|
||||
|
||||
Por partes...
![]() Con la publicación de las fuentes del kernel, tobi, de XDA, ha podido ver como está programada la función de autobrillo en nuestras Desire, y ha visto que de 10 posibles valores que puede devolver el sensor de luz, sólo estaban programados 8, y uno de ellos, el cero, no era "usable" por cómo estaba programado el proceso, por lo que se quedaba en 7. Ha propuesto a snq- un fix, y éste lo ha implementado de serie a partir de su kernel 110918... El problema tanto de este kernel como del siguiente, que es el último público, el 110919, es que por lo que leo en el hilo oficial, está causando congelaciones aleatorias a varias personas... Estoy esperando a que se solucionen para poder meter este fix de tobi y probar qué tal va. Yo sinceramente, sin tocar el framework-res.apk, diría que no debe notarse demasiada mejora solamente instalando el nuevo kernel. @sr.coco, quizás la cyanogenmod tenga ya un framework-res.apk modificado, y por eso lo hayas notado. @celsior, quizás el kernel no es compatible con la reflex... aunque me extrañaría mucho. ¿Has leído de alguien que lo haya metido sin problemas? En caso positivo, sólo te queda volver a intentarlo, o volver a descargar el kernel, comprobando que no ha sufrido daños de ningún tipo. @SuBSiDaL, ¿Puedes poner algún pantallazo de esas opciones? No he usado nunca una cyanogenmod. @HIGHLANDER666, si no has rooteado tu terminal no podrás hacer nada. Entiendo que esa Ginger oficial la has instalado por los cauces "oficiales". Un saludo a todos. Volveré a este hilo cuando haya probado bien un kernel con el fix de tobi. |
Gracias de parte de: | ||
#11
|
Acabo de modificar el framework-res con los valores que has puesto en el primer post
Lo que mas me ha costado ha sido subirlo a la Desi una vez modificado, con adb me daba error. Voy a ver que tal va, de momento la noto un poco oscura. |
Gracias de parte de: | ||
#12
|
|
Cita:
![]() Última edición por SuBSiDaL Día 22/09/11 a las 14:34:48 |
#13
|
||||
|
||||
Ah, pues por los valores parece un interface para editar directamente el arrays.xml... Curioso. Primera noticia, pero desde luego es mucho más cómodo.
![]() @ironjon, sí. Mi primer objetivo con todo esto es el ahorro de batería, y quizás en ese afán me haya extralimitado. Ahora mismo estoy probando los valores de un amigo de XDA que ha hecho varias pruebas. Son algo más altos, y seguramente me toque personalizarlos un poco. Cuando lo tenga los pondré por aquí. Un saludo. |
#14
|
|
Cita:
|
#15
|
||||
|
||||
Me interesa, todo lo que sea ahorrar batería bienve3nido sea.
Tengo la ROM Reflex 2.1.9 de Neo, ¿cómo edito el archivo? |
#16
|
|
Cita:
Echale un ojo y comentas a ver: http://forum.xda-developers.com/show....php?t=1270046 |
#17
|
||||
|
||||
Me interesa mucho este hilo, yo siempre que estoy en la cama quito el brillo automático para ponerlo al mínimo, así que más tarde si tengo tiempo, lo miro con más detenimiento que me voy a dormir la siesta
|
#18
|
||||
|
||||
Bueno... ya he añadido al hilo el proceso de edición del arrays.xml. Supongo que si estamos en este foro, no hará falta explicar como flashearlo después!
![]() Un saludo. |
Gracias de parte de: | ||
#19
|
||||
|
||||
Cita:
|
|
#20
|
||||
|
||||
Como digo, editar el arrays.xml es un paso importante para mejorar el autobrillo... Si además, se quiere mejorar el funcionamiento del sensor (de forma que devuelva 10 valores de luz, y no 7, tal y como está programado el driver por defecto), entonces es necesario el kernel modificado de snq-, como digo, a partir dela versión 110917 (que es una subrelease del v06).
|
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
Herramientas | |
|
|
Hora actual: 00:44:38 (GMT +2)
HTCMania: líderes desde el 2007