[Droid Eris Q&A, Help & Troubleshooting] bftb0:
OK, I did a little more digging, and here is what I found.

Before I get too far in to this, note that the stack trace from the segfault looks something like this:

#00 pc 000149fe /system/lib/libc.so (fclose)
#01 pc 00029ae4 /system/lib/libhtc_ril.so (at_notify_cdma_g23_data_entry)
#02 pc 00011bb6 /system/lib/libhtc_ril.so (at_parse_notification)
#03 pc 00055204 /system/lib/libhtc_ril.so (at_read_thread)
#04 pc 000114c0 /system/lib/libc.so (__thread_entry)
#05 pc 00010fa4 /system/lib/libc.so (pthread_create)

This strongly implicates the shared library libhtc_ril.so as the cause of the trouble. (The chance that there is a programming error in the fclose() implementation in libc is essentially zero).

I'll also note that the Hero uses the MSM 7525, whereas the Eris uses the MSM7600 processor - there is some chance that the radios have slightly different behaviors (even if they share the same radio firmware).

The vendor-specific RIL (Radio Interface Layer) library at

/system/lib/libhtc_ril.so

that is shipped in the CyanogenMod 6.0.0-RC1 for the Sprint Hero CDMA phone contains a copy of this file which is identical to the Sprint/HTC "MR2" release for the Sprint Hero (htc_sprint_hero_mr_2.27.651.6.exe).

This (Sprint Hero) shared lib appears to be identical to the "libhtc_ril.so" file shipped in Tazz 2.0. I will presume - but have not verified - that all of the Eris Froyo devs are currently using this (Sprint Hero) shared library, rather than the Eris 17 July 2010 OTA version of libhtc_ril.so.

Here is how you can tell them apart:

Eris 17 July 2010 OTA (which happens to also be identical to the Leak-V3/Official RUU version of the same library) :

/system/lib/libhtc_ril.so 458,608 bytes; md5 2857bca5b51163004d2254a1b13ab0cd

Sprint Hero MR2 2.27.651.6 version:

/system/lib/libhtc_ril.so 462,676 bytes; md5 e921186c8e5342fdf8c2fccac9f9f632

Note that these libraries contain version/build timestamps in them internally, and may also be differentiated by the following process:

# strings /system/lib/libhtc_ril.so | grep -i 'htc-ril [0-9]'

Which produce the following for each version:

Verizon Eris 17 July 2010 OTA: HTC-RIL 2.0.0029H (Jan 8 2010,22:41:37)

Sprint Hero MR2 2.27.651.6: HTC-RIL 2.0.0056H (Feb 26 2010,10:19:11)

I've attached the Eris version of the library to this post, and I am currently running Tazz 2.0 + CFS4 with the Eris (2.1) libhtc_ril.so. No apparent problems so far - but since we are looking for the disappearance of an infrequent problem, it might take some time to determine if this will fix the problem or not.

I could use your help testing this out to see if it solves the problem.. If you are using a Froyo ROM and have been experiencing this problem - and especially if you have been experiencing this problem frequently - your help testing will be very valuable.

Here are the steps to install the Eris version of libhtc_ril.so:

1) download and unzip the Eris_2010-01-08_libhtc_ril.zip file (attached)

2) move the "libhtc_ril.so" file to the root of your SD card.

3) Shut your phone down and boot into Amon_RA

4) Using adb, perform the following commands:

adb shell md5sum /sdcard/libhtc_ril.so [COLOR=grey]( Do not continue if MD5 is not 2857bca5b51163004d2254a1b13ab0cd )[/COLOR]
adb shell mount /system
adb shell mv /system/lib/libhtc_ril.so /system/lib/libhtc_ril.so.Sprint
adb shell cp /sdcard/libhtc_ril.so /system/lib/
adb shell sync
adb shell umount /system

(obviously, if you want to do this in a single interactive adb shell, then just omit the "adb shell" prefixing each command).

5) Reboot.

Note that the same operation can be performed by a root-aware file manager (Root Explorer or EStrongs File Manager) with the "live" OS running (and obviously, making sure to mount /system in rw mode first) - but if you do things this way, you should either reboot the phone afterwards, or kill the rild process (it will auto-restart, iirc).

bftb0