Atascado en el arranque después de cambiar dpi - Lenovo a7000

Usé Texdroider DPI para cambiar el dpi de 320a 300y después del reinicio se atasca en el logotipo de lenovo. Podría flashearlo de nuevo, pero no tengo la rom en esta PC, y tardará 10 horas en descargarlo.

¿Hay alguna forma más rápida de restablecer los dpi? Tengo TWRP instalado. Con android 5.0.1.

Editar: la salida de cat /system/build.prop | grep densityse ro.sf.lcd_density=300intentó editar build.prop de nuevo a 320 con Sublime Text. Ahora el comando regresa ro.sf.lcd_density=320pero aún se atasca.

¿Tu versión y dispositivo de Android? ¿Está habilitada la depuración USB? ¿Qué aplicación usaste? Vincularlo. Arranque en TWRP, monte la partición de datos, vaya a /data/propertyy confirme si persist.sys.lcd_densityexiste. Si existe, ¿qué contiene?
No está ahí.
De acuerdo, pero eso no nos dice la versión de Android que estás usando. Ahora, cuando arranque en TWRP, monte la partición del sistema, abra la línea de comando de TWRP y haga cat /system/build.prop | grep density. Cuéntanos el resultado.
# Lenovo-sw wuzb1 2014-10-08 set default density ro.sf.lcd_dencity=300
Cambie la densidad de nuevo a 320 en ese archivo. En una nota al margen, ¿puede usar el cuerpo de la pregunta para mostrar el resultado? Solo debería obtener la línea ro.sf.lcd_densityen la salida del comando.
Introduzca el archivo build.prop en la PC y publíquelo aquí. Utilice un servicio de pegado como pastebin o gist.github. Solo quiero asegurarme de que mi comando solo cambie la densidad y nada más.
La descripción de la aplicación dice " reemplace /system/build.prop con /data/data/com.texdroider.texdroider_dpi/files/backup/build.prop usando adb, o restaure una copia de seguridad de rom ". ¿Lo ha probado? ¿Está seguro de que, al editar el archivo, no agregó ningún carácter nuevo junto a 320, ya sea de forma deliberada o inadvertida? También podría ser un espacio en blanco.
Estoy seguro, sí. Lo acabo de hacer cp /data/data/com.texdroider.texdroider_dpi/files/backup/build.prop /system/build.propy el archivo no existe. El directorio com.texdroider.texdroider_dpiaparece como un archivo en el explorador.
Veo. La aplicación no hizo ninguna copia de seguridad, pero esperaba que el usuario hiciera una copia de seguridad, por eso no tienes una. Lo último que le pediría que hiciera: ¿puede ejecutar el comando adb shell sed -i -e 's/.*ro.sf.lcd_density.*/ro.sf.lcd_density=320/g' /system/build.prop? Si no está utilizando un sistema * nix, necesitará el editor sed instalado en el sistema.
Estoy en Windows y no tengo idea de cómo ejecutar esto... Lo probé en twrp y dice cannot link executable: could not load library libc.so needed by adb [...] is 32-bit instead of 64-bit.
Si desea ejecutar el comando en TWRP, hágalo sed -i -e 's/.*ro.sf.lcd_density.*/ro.sf.lcd_density=320/g' /system/build.propo simplemente elimínelo adb shelldel comando anterior. Asegúrese de que la partición del sistema ya esté montada.
Aún nada..
Hay una cosa más que puedes probar. Inicie en TWRP, monte la partición de datos, use la PC para ejecutar adb shell busybox printf "320" > /data/property/persist.sys.lcd_densityy luego adb shell chmod 600 /data/property/persist.sys.lcd_density. Desmonte la partición de datos, reinicie en Android y díganos el resultado.
Muchas gracias por intentar ayudar, pero terminé flasheándolo.

Respuestas (2)

Nota:

  • Partes de esta respuesta no funcionaron para OP, pero sin embargo, funcionaron en todos mis casos de prueba con diferentes ROM, por lo tanto, la respuesta sin duda resultaría útil para algunos usuarios.
  • El dispositivo debe tener instalada una recuperación personalizada.
  • debe configurarse en la PC y la depuración USB debe estar habilitada y autorizada en el dispositivo.
  • Todo lo que se menciona junto a #cualquier parte de una línea es un comentario.

Más o menos, el valor de DPI cambiado estaría en settings.db, /data/property/persist.sys.lcd_densityo /system/build.propsolo en la memoria. He cubierto las instrucciones para todos estos casos y deberían resultar útiles cuando el dispositivo se atasca en la animación de arranque.

  • Si es un módulo Xposed que cambió el DPI y causó un problema de arranque, intente deshabilitar el módulo o el marco, o elimine el primero o ambos. Vea mi respuesta aquí para obtener más información al respecto.

  • Si usó la línea de comandos para cambiar DPI ( am/ wm), cuando el dispositivo se atasque en la animación de arranque (más allá del logotipo OEM), ejecute

    adb shell am display-density reset    # For Android 4.2.x
    adb shell wm density reset            # For Android 4.3.x and above
    adb reboot
    
  • En mi Android 4.2.1, la densidad de visualización personalizada se guarda como un valor para la clave display_density_forceden la tabla globalde /data/data/com.android.providers.settings/databases/settings.db. Si usó la línea de comandos (am) o una aplicación usó esta tecla, siga estos pasos:

    • Cuando inicie la recuperación, monte la partición de datos, extraiga dicho archivo en la PC y use un editor sqlite para eliminar la clave o cambiar el valor a un DPI mejor o predeterminado. Después de eso, vuelva a colocar el archivo en su lugar.

      adb pull /data/data/com.android.providers.settings/databases/settings.db LOCAL_PATH     # to pull the file into PC
      adb push LOCAL_PATH/settings.db /data/data/com.android.providers.settings/databases/    # to push the file into Android
      adb reboot 
      

      Reemplace LOCAL_PATHcon el directorio bajo el cual settings.dbse guardará y se guardará, respectivamente.

    En Android 4.3 y superior, la densidad de visualización personalizada se puede encontrar en /data/property/persist.sys.lcd_densityo ejecutando adb shell "getprop | grep density". Si usó la línea de comando (wm) o una aplicación usó esa propiedad para cambiar DPI, siga estos pasos:

    • Cuando inicie la recuperación, monte la partición de datos y haga

      adb shell rm /data/property/persist.sys.lcd_density                      # this will cause Android to fall back to default DPI
      adb shell busybox printf "DPI" > /data/property/persist.sys.lcd_density  # change DPI with your custom DPI value
      adb reboot
      
  • Finalmente, el enfoque más fácil pero peligroso y extremo que usted o una aplicación tomarían es cambiar el DPI de la clave ro.sf.lcd_densityinterna /system/build.prop. El DPI en dicho archivo se considera el DPI estándar de esa ROM.

    Cuando se inicia la recuperación con la partición de datos montada,

    • Puede optar por anular el DPI de stock haciendo

      # replace DPI with your custom DPI
      adb shell am display-density DPI   # For Android 4.2.x only 
      adb shell wm density DPI           # For Android 4.3.x and above only 
      adb reboot
      
    • Si eso no funciona por alguna razón, haz

      adb shell sed -i 's/.*ro.sf.lcd_density.*/ro.sf.lcd_density=DPI/g' /system/build.prop      # sed is replacing the DPI with your custom DPI value
      adb reboot
      
    • Si ninguna de las soluciones funciona, su única opción es reemplazar build.prop. Si tiene una copia de seguridad limpia de la partición del sistema o build.propluego la usa para reemplazar el archivo original, de lo contrario, actualice la ROM como lo hizo OP.

Nota: personalmente no probé, pero me ha llegado la noticia de no editar ningún archivo de Android usando ningún editor de texto nativo del sistema operativo Microsoft Windows. En su lugar, use Notepad ++ o haga toda la edición usando la línea de comando en la recuperación.

Esta es una pequeña respuesta actualizada ya que Android ya no almacena una sola base de datos de configuración y la edición de build.props no parece funcionar en varios teléfonos más nuevos. Además, los comandos "shell wm" no funcionan en la recuperación de twrp.

Al menos en mi caso (xiaomi Redmi9 con android10) la configuración se almacena en:

/data/system/users/0 

Estos son los 2 valores que necesitan ser editados:

"display_size_forced" in settings_global.xml
"display_density_forced" in settings_secure.xml

Necesita una recuperación personalizada instalada y una forma de editar los archivos, ya sea en su PC o directamente en la recuperación usando Nano Editor. Una vez hecho esto, simplemente reinicie y ¡listo!

No necesita los valores exactos para la resolución o la densidad, solo algo lo suficientemente cerca como para poder arrancar, luego restablecer los valores predeterminados de los dispositivos usando ADB.

Espero que esto ayude a cualquier persona atascada en el arranque de recuperación después de editar dpi o resolución.