• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

How to diagnose a device that won't boot

Status
Not open for further replies.

dsmryder

Android Expert
May 28, 2011
2,418
502
NE Florida
I have been looking at this logcat and I have no idea where to start
Code:
daddy:~/80GB/home/daddy/cm9a$ adb logcat
- waiting for device -
--------- beginning of /dev/log/main
I/cm      (  111): Welcome to Android 4.0.4 / CyanogenMod-9-20130626 
I/cm      (  112):                                                 _  
I/cm      (  113):  __ __ _ ___  _ _  __  ___  __ _ _  _  _  __  __)) 
I/cm      (  114): ((_ \(/'((_( ((\( ((_)((_( (('((\( ((`1( ((_)((_(  
I/cm      (  115):      ))                 _)) 
I/cm      (  116):   
I/DEBUG   (  126): debuggerd: Jun 26 2013 19:28:48
E/WPDIAGD (  138): wpdiagd: wp diag daemon starts, WPDIAGD Version: 0.0.1.03 
E/WPDIAGD (  138): wpdiagd: create default setting.dat failed, exit.
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): modem is present in configuration
I/dun_service(  135): The value returned from dun_getusbstate_fromsys is 1 
I/dun_service(  135): Post event 1
I/dun_service(  135): rstate == DUN_RMNETSTATE_ERROR in dun_monitor_kevents
I/dun_service(  135): received event: DUN_EVENT_USB_UNPLUG 
I/dun_service(  135): received event(DUN_EVENT_USB_UNPLUG) in state(DUN_STATE_USB_UNPLUG)
I/dun_service(  135): Ignoring the event DUN_EVENT_USB_UNPLUG in USB_UNPLUG_STATE
I/dun_service(  135): Moved to state(DUN_STATE_USB_UNPLUG)
--------- beginning of /dev/log/system
I/Vold    (  124): Vold 2.1 (the revenge) firing up
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
D/Vold    (  124): Volume sdcard state changing -1 (Initializing) -> 0 (No-Media)
I/Netd    (  125): Netd 1.0 starting
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
D/Vold    (  124): Volume sdcard state changing 0 (No-Media) -> 2 (Pending)
D/DirectVolume(  124): DirectVolume::handlePartitionAdded -> MAJOR 179, MINOR 33, PARTN 1
D/Vold    (  124): Volume sdcard state changing 2 (Pending) -> 1 (Idle-Unmounted)
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): got usb offline event 
I/dun_service(  135):  ustate is DUN_USBSTATE_UNPLUG
I/dun_service(  135): Post event 1
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/dun_service(  135): got usb online event 
I/dun_service(  135):  ustate is DUN_USBSTATE_PLUG
I/dun_service(  135): Post event 2
I/dun_service(  135): received event: DUN_EVENT_USB_UNPLUG 
I/dun_service(  135): received event(DUN_EVENT_USB_UNPLUG) in state(DUN_STATE_USB_UNPLUG)
I/dun_service(  135): Ignoring the event DUN_EVENT_USB_UNPLUG in USB_UNPLUG_STATE
I/dun_service(  135): Moved to state(DUN_STATE_USB_UNPLUG)
I/dun_service(  135): received event: DUN_EVENT_USB_PLUG 
I/dun_service(  135): received event(DUN_EVENT_USB_PLUG) in state(DUN_STATE_USB_UNPLUG)
I/dun_service(  135): Successfully opened SMD port: a, ext port: f
I/dun_service(  135): Configured external host port in RAW mode
I/dun_service(  135): Moved to state(DUN_STATE_IDLE)
I/dun_service(  135): modem_bits0, prev_mdm_bits 0, init = 1,
I/dun_service(  135): smdtoextctrl: ext port bits 320, smdoldstatus 0, init = 1
I/dun_service(  135): portbridge: Turning ON external port bits 140
I/Netd    (  208): Netd 1.0 starting
I/Netd    (  235): Netd 1.0 starting
I/Netd    (  260): Netd 1.0 starting
I/Netd    (  285): Netd 1.0 starting
I/Netd    (  310): Netd 1.0 starting
I/Netd    (  335): Netd 1.0 starting
I/Netd    (  360): Netd 1.0 starting
I/Netd    (  385): Netd 1.0 starting
I/Netd    (  410): Netd 1.0 starting
I/Netd    (  435): Netd 1.0 starting
I/Netd    (  460): Netd 1.0 starting
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/Netd    (  485): Netd 1.0 starting
I/Netd    (  510): Netd 1.0 starting
I/Netd    (  535): Netd 1.0 starting
I/Netd    (  560): Netd 1.0 starting
I/Netd    (  585): Netd 1.0 starting
I/Netd    (  611): Netd 1.0 starting
I/Netd    (  636): Netd 1.0 starting
I/Netd    (  661): Netd 1.0 starting
I/Netd    (  686): Netd 1.0 starting
I/Netd    (  711): Netd 1.0 starting
I/Netd    (  736): Netd 1.0 starting
I/Netd    (  761): Netd 1.0 starting
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/Netd    (  786): Netd 1.0 starting
I/Netd    (  811): Netd 1.0 starting
I/Netd    (  836): Netd 1.0 starting
I/Netd    (  861): Netd 1.0 starting
I/Netd    (  886): Netd 1.0 starting
I/Netd    (  911): Netd 1.0 starting
I/Netd    (  928): Netd 1.0 starting
I/Netd    (  953): Netd 1.0 starting
I/Netd    (  978): Netd 1.0 starting
I/Netd    (  998): Netd 1.0 starting
I/Netd    ( 1023): Netd 1.0 starting
I/Netd    ( 1048): Netd 1.0 starting
I/dun_service(  135): The value returned from dun_getusbmodemstate_fromsys is 2 
I/Netd    ( 1068): Netd 1.0 starting
I/Netd    ( 1093): Netd 1.0 starting
^C
This my first time searching for it and I'll dump this thread if I figure it out.

This seems to be a kernel fault. I figured that, but I saw it in somewhere.

Solved. I found that it was one of the files. If you have a phone that won't boot after a test build, but you have a working ROM that has simmular files (like you did a repo sync) then you could break it down to the files that in the working ROM until you find the group that the culprit is in. From there you can continue to split it until you narrow it down to maybe a few and then go from there.
 
For the MT
That was the logcat from boot to control c.
I have a diagnostic idea. What I'm going to do is make a series of copies and replace the internal /system/ direcotories until I find one that boots. For this to work all I need is to make a change. From there I can dig into that pile and might figure this out..... Maybe. Let's see if I have time:D

Oh, and it's not the boot.img. I already tried that.
 
Upvote 0
From your logcat it seems your error starts here

Code:
E/WPDIAGD (  138): wpdiagd: wp diag daemon starts, WPDIAGD Version: 0.0.1.03 
E/WPDIAGD (  138): wpdiagd: create default setting.dat failed, exit.

and i believe that "wpdiagd" is located in the bin folder. Hopefully this helps if not click here :p

With the "ROM"s I made yesterday I found that it's in the lib folder. I just took a working ROM and replaced the folders one by one and loaded them on to the phone. I got lucky when the first one worked. Now I just have to figure out which lib it is. I think I'll use the same method and maybe try 5 at a time.

I bet the wpdiagd is loading a bad lib and that's why it fails there.
 
Upvote 0
With the "ROM"s I made yesterday I found that it's in the lib folder. I just took a working ROM and replaced the folders one by one and loaded them on to the phone. I got lucky when the first one worked. Now I just have to figure out which lib it is. I think I'll use the same method and maybe try 5 at a time.

I bet the wpdiagd is loading a bad lib and that's why it fails there.

Check with Chairshot on this. Actually we should bring him into the conversation to explain his method he used. I will send him a link on this post.
 
  • Like
Reactions: dsmryder
Upvote 0
Honestly I did about the same. Would be running an active Rom and would push or replace the libs over ADB and would then reboot. Spent allot of time stuck on the M logo after the reboot but kept pushing or replacing the libs I thought were messing things up until the M logo turned into the CM boot animation and the Rom booted. so for example using the Sharp egl libs ended up on the M logo but after pushing the sharp libgsl.so and another I don't remember the Rom would just boot after it had been stuck on the M logo for sometimes hours. Was pre Hex-Ray so did allot of guessing. Had done most of it on Windows using QTADB because it shows the entire phone like it is a file explorer and gives the date and time you pushed or replaced a file so by looking at the screen you could get a good idea of whats going on and what has already been done.
 
  • Like
Reactions: dsmryder
Upvote 0
Honestly I did about the same. Would be running an active Rom and would push or replace the libs over ADB and would then reboot. Spent allot of time stuck on the M logo after the reboot but kept pushing or replacing the libs I thought were messing things up until the M logo turned into the CM boot animation and the Rom booted. so for example using the Sharp egl libs ended up on the M logo but after pushing the sharp libgsl.so and another I don't remember the Rom would just boot after it had been stuck on the M logo for sometimes hours. Was pre Hex-Ray so did allot of guessing. Had done most of it on Windows using QTADB because it shows the entire phone like it is a file explorer and gives the date and time you pushed or replaced a file so by looking at the screen you could get a good idea of whats going on and what has already been done.

That's awesome. I just made some ROMs that have half of the libs to split the isue down the middle. I'll just keep slitting it until I hunt the little bastard down.

Thanks guys, as always you are there to lend a helping hand.
 
Upvote 0
It was cameracm.so. I guess (actually I know) I picked up some incompattable code from a repo sync.

And the killer part is that I did it because someone expressed intrest in working on the code. So I wanted to make sure that it could be built from a fresh start. And the dude never responded. RRRR. Anyway, that's a learning experince that I might be able to use in the furure.

Thank you for your support.
 
Upvote 0
Status
Not open for further replies.

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones