J'ai dû effectuer un remplacement de batterie sur une tablette Android 4.x Denver TAC-97032.
La batterie a été obtenue du fabricant en tant que pièce de rechange, mais elle n'est pas de la même taille que la batterie d'origine.
Pourtant, j'ai ouvert la table, dessoudé l'ancienne pile et soudé la nouvelle ; le comportement est ensuite le même :
- Si je branche simplement le chargeur, j'obtiens l'animation Android "la batterie se remplit" pendant un moment, l'animation montre la charge, puis elle disparaît, comme d'habitude. Bon - signifie que la batterie est détectée et qu'elle est montée correctement.
- Si je démarre avec Power + Vol Up, j'arrive à la récupération, qui ici montre juste l'image "Android mort" ; il n'y a pas de menus supplémentaires pour le sideload ADB ou similaire, donc en fait il reste juste là ;
adb
peut également voir un dispositif de "récupération", etadb reboot
est également reconnu et travaille - Si je démarre avec seulement Power : d'abord le splash DENVER s'affiche, puis un écran splash Android s'affiche, puis l'écran devient noir (mais il y a encore du rétro-éclairage il semble) ; l'appareil semble mort, mais si je maintiens Power pour forcer l'arrêt, à la fin un clic du haut-parleur est entendu et un flash de l'écran est vu - ce qui signifie que l'appareil a également fonctionné sous l'écran noir.
Sur l'écran noir, j'ai essayé adb
- et heureusement, ça a marché :
$ ./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
... et ici logcat s'arrête - il n'y a pas d'autres messages.
Donc, l'erreur principale semble être "Display subsystem failed to initialize", et cela explique l'écran noir ; cependant je ne peux pas vraiment dire :
- Est-ce une cause matérielle : peut-être que pendant le remplacement de la batterie, j'ai accidentellement déconnecté une broche de l'écran, de sorte que même si j'obtiens des écrans d'accueil affichés au démarrage, il y a une erreur plus tard lorsque le fonctionnement normal est initialisé ?
- Il y a très peu de ressources en ligne mentionnant cette erreur, et je pense que je suis arrivé à un journal de chat IRC, où une réinitialisation d'usine était recommandée pour une erreur comme celle-ci. J'imagine qu'il y a peut-être une sorte d'ID sur la batterie, et comme il a été modifié par rapport à l'original, le système d'exploitation voit cela comme une erreur et refuse de continuer. Évidemment, je ne veux PAS faire une réinitialisation d'usine - parce qu'alors, je perds toutes les données de l'appareil (je ferais une réinitialisation d'usine).
adb
mais cela déclenche généralement une invite sur le périphérique, et comme l'écran ne fonctionne pas, je n'aurais pas pu l'autoriser même si le système avait démarré dans un état où il aurait affiché l'invite).
Donc, mes questions sont :
- Est-ce que quelqu'un sait ce qui est le plus probable comme cause de
ump_open
erreur : mauvaise connexion des fils du matériel, ou peut-être une identification différente de la batterie ? - Est-il réaliste d'espérer qu'une réinitialisation d'usine puisse résoudre ce problème ?
- Si j'ai besoin de faire une réinitialisation d'usine, y a-t-il un moyen de sauvegarder ce dispositif uniquement à partir d'adb (mais sans utiliser d'éléments de l'interface graphique sur le dispositif cible) ?
- Logcat dit : "Le sous-système d'affichage n'a pas réussi à s'initialiser. Vérifiez les journaux". - Y a-t-il d'autres journaux que Logcat que je pourrais vérifier et si oui, lesquels ?
- Y a-t-il autre chose que je puisse essayer pour que cette tablette démarre complètement ?
1 votes
La tablette fonctionnait-elle parfaitement avant le remplacement de la batterie ? En ce qui concerne la
check logs
Je suppose qu'il s'agit d'une sortie générique d'un pilote développé pour Linux. Il est possible qu'il ne soit pas du tout applicable sur Android.0 votes
Merci @Robert - la tablette fonctionnait en effet parfaitement avant, mais elle était éteinte depuis plusieurs mois avant la tentative de remplacement de la batterie d'aujourd'hui. Merci pour le
check logs
commentaire, c'est logique.