Tuve que hacer un cambio de batería en una tablet Android 4.x Denver TAC-97032.
La batería había sido obtenida del fabricante como pieza de recambio; sin embargo, no es del mismo tamaño que la original.
Aun así, abrí el tablado, desoldé la batería vieja y soldé la nueva; el comportamiento a partir de entonces es:
- Si sólo conecto el cargador, me aparece la animación de Android "la batería se llena" durante un rato, la animación muestra la carga y luego desaparece, como siempre. Bien - significa que la batería se detecta y se monta correctamente.
- Si arranco con Power + Vol Up, entro en el recovery, que aquí sólo muestra la imagen de "Android muerto"; no hay menús extra para ADB sideload o similares, así que básicamente se queda ahí;
adb
también puede ver un dispositivo de "recuperación", yadb reboot
también es reconocido y trabaja - Si arranco sólo con Power: primero aparece el splash de DENVER, luego se muestra una pantalla de inicio de Android, luego la pantalla se pone en negro (pero parece que todavía hay luz de fondo); el dispositivo parece muerto, pero si mantengo pulsado Power para forzar el apagado, al final se oye un clic del altavoz y se ve el flash de la pantalla - lo que significa que el dispositivo funcionó también bajo la pantalla negra.
En la pantalla negra, intenté adb
- y por suerte, funcionó:
$ ./adb.exe logcat
--------- beginning of /dev/log/main
I//system/bin/e2fsck( 67): e2fsck 1.41.11 (14-Mar-2010)
I//system/bin/e2fsck( 67): /dev/block/nande: clean, 5183/76800 files, 205676/307200 blocks
I/logwrapper( 67): /system/bin/e2fsck terminated by exit(0)
I//system/bin/e2fsck( 72): e2fsck 1.41.11 (14-Mar-2010)
I//system/bin/e2fsck( 72): /dev/block/nandh: clean, 15/20496 files, 2623/81920 blocks
I/logwrapper( 72): /system/bin/e2fsck terminated by exit(0)
--------- beginning of /dev/log/system
I/USB3G ( 85): usb 3g monitor v0.1 start
I/USB3G ( 85): event { 'add', '/devices/platform/sw_hcd_host0/usb1', 'usb', '', 189, 0 }
I/USB3G ( 85): event { 'add', '/devices/platform/sw-ehci.1/usb2', 'usb', '', 189, 128 }
I/USB3G ( 85): event { 'add', '/devices/platform/sw-ohci.1/usb3', 'usb', '', 189, 256 }
I/Netd ( 80): Netd 1.0 starting
I/Vold ( 79): Vold 2.1 (the revenge) firing up
D/Vold ( 79): Volume sdcard state changing -1 (Initializing) -> 0 (No-Media)
D/Vold ( 79): Volume extsd state changing -1 (Initializing) -> 0 (No-Media)
D/Vold ( 79): Volume usbhost1 state changing -1 (Initializing) -> 0 (No-Media)
D/Vold ( 79): Volume sdcard state changing 0 (No-Media) -> 1 (Idle-Unmounted)
I/SurfaceFlinger( 81): SurfaceFlinger is starting
I/SurfaceFlinger( 81): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
E/[Gralloc-ERROR]( 81): int alloc_device_open(const hw_module_t*, const char*, hw_device_t**):436 UMP open failed with 1
E/FramebufferNativeWindow( 81): couldn't open framebuffer HAL (Operation not permitted)
E/[Gralloc-ERROR]( 81): int alloc_device_open(const hw_module_t*, const char*, hw_device_t**):436 UMP open failed with 1
E/FramebufferNativeWindow( 81): couldn't open gralloc HAL (Operation not permitted)
E/SurfaceFlinger( 81): Display subsystem failed to initialize. check logs. exiting...
I/ ( 82): ServiceManager: 0xf958
I/AudioFlinger( 82): Loaded primary audio interface from sunxi audio HW HAL (audio)
I/AudioFlinger( 82): Using 'sunxi audio HW HAL' (audio.primary) as the primary audio interface
I/CameraService( 82): CameraService started (pid=82)
I/AudioFlinger( 82): AudioFlinger's thread 0x1c7b0 ready to run
W/AudioFlinger( 82): Thread AudioOut_1 cannot connect to the power manager service
I/AudioPolicyService( 82): Loaded audio policy from LEGACY Audio Policy HAL (audio_policy)
I/SurfaceFlinger( 129): SurfaceFlinger is starting
I/SurfaceFlinger( 129): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
I/[Gralloc]( 129): using (fd=10)
I/[Gralloc]( 129): id =
I/[Gralloc]( 129): xres = 1024 px
I/[Gralloc]( 129): yres = 768 px
I/[Gralloc]( 129): xres_virtual = 1024 px
I/[Gralloc]( 129): yres_virtual = 1536 px
I/[Gralloc]( 129): bpp = 32
I/[Gralloc]( 129): r = 16:8
I/[Gralloc]( 129): g = 8:8
I/[Gralloc]( 129): b = 0:8
I/[Gralloc]( 129): width = 163 mm (159.568100 dpi)
I/[Gralloc]( 129): height = 122 mm (159.895081 dpi)
I/[Gralloc]( 129): refresh rate = 60.12 Hz
D/libEGL ( 129): loaded /system/lib/egl/libEGL_mali.so
D/libEGL ( 129): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL ( 129): loaded /system/lib/egl/libGLESv2_mali.so
E/SurfaceFlinger( 129): couldn't find an EGLConfig matching the screen format
W/SurfaceFlinger( 129): ro.sf.lcd_density not defined, using 160 dpi by default.
I/SurfaceFlinger( 129): EGL informations:
I/SurfaceFlinger( 129): # of configs : 21
I/SurfaceFlinger( 129): vendor : Android
I/SurfaceFlinger( 129): version : 1.4 Android META-EGL
I/SurfaceFlinger( 129): extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer
I/SurfaceFlinger( 129): Client API: OpenGL ES
I/SurfaceFlinger( 129): EGLSurface: 5-6-5-0, config=0x0
I/SurfaceFlinger( 129): OpenGL informations:
I/SurfaceFlinger( 129): vendor : ARM
I/SurfaceFlinger( 129): renderer : Mali-400 MP
I/SurfaceFlinger( 129): version : OpenGL ES-CM 1.1
I/SurfaceFlinger( 129): extensions: GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_point_size_array GL_OES_point_sprite GL_OES_texture_npot GL_OES_query_matrix GL_OES_matrix_palette GL_OES_extended_matrix_palette GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image GL_OES_draw_texture GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_OES_framebuffer_object GL_OES_stencil8 GL_OES_depth24 GL_ARM_rgba8 GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_rgb8_rgba8 GL_EXT_multisampled_render_to_texture GL_OES_texture_cube_map GL_EXT_discard_framebuffer GL_EXT_robustness
I/SurfaceFlinger( 129): GL_MAX_TEXTURE_SIZE = 4096
I/SurfaceFlinger( 129): GL_MAX_VIEWPORT_DIMS = 4096 x 4096
I/SurfaceFlinger( 129): flags = 00000000
D/display ( 129): ####disp_init, mode:0,out_type:1,tv_mode:0,app_width:1024,app_height:768
D/DisplayDispatcher( 129): display dispatcher enabled
... y aquí se detiene logcat - no hay más mensajes.
Así, el error principal parece ser "El subsistema de pantalla no se ha podido inicializar", y explica la pantalla negra; sin embargo, no puedo decirlo realmente:
- ¿Es una causa de hardware: tal vez durante la sustitución de la batería, desconecté accidentalmente algún pin de la pantalla, por lo que aunque se muestren las pantallas de inicio, hay un error más tarde cuando se inicializa el funcionamiento normal?
- Hay muy pocos recursos en línea que mencionan este error, y creo que llegué a un registro de chat de IRC, donde se recomendó un restablecimiento de fábrica para un error como este. Me imagino, que tal vez hay un ID en la batería de los tipos, y ya que ahora se cambia de la original, el sistema operativo ve que como un error, y se niega a continuar. Obviamente, NO quiero hacer un restablecimiento de fábrica - porque entonces, pierdo todos los datos del dispositivo (haría un
adb
pero eso suele generar un aviso en el dispositivo, y como la pantalla no funciona, no podría haberlo permitido aunque el sistema arrancara en un estado en el que hubiera mostrado el aviso)
Así que mis preguntas son:
- ¿Alguien sabe qué es más probable como causa de
ump_open
error: ¿desconexión de cables de hardware, o tal vez diferente ID de la batería? - ¿Es realista esperar que el restablecimiento de fábrica resuelva este problema?
- Si tengo que hacer un restablecimiento de fábrica, ¿hay alguna manera de hacer una copia de seguridad de este dispositivo puramente desde adb (pero sin utilizar ningún elemento de la interfaz gráfica de usuario en el dispositivo de destino)?
- Logcat dice: "El subsistema de visualización no se ha podido inicializar. compruebe los registros". - ¿hay otros registros además de logcat que pueda comprobar; y si es así, cuáles son?
- ¿Hay algo más que pueda probar para que esta tablet arranque completamente?
1 votos
¿Funcionaba completamente la tablet antes de la sustitución de la batería? En cuanto a la
check logs
entrada Yo asumiría que esto es una salida genérica de un controlador desarrollado para Linux. Podría no ser aplicable en Android en absoluto.0 votos
Muchas gracias @Robert - la tablet funcionaba antes a pleno rendimiento; sin embargo, había estado apagada durante varios meses antes del intento de sustitución de la batería de hoy. Gracias por el
check logs
comentario, eso tiene sentido.