Got the Motorola Droid last week and I'm already a little tired of the tiny droid dude that takes the place of contacts without images. I searched around online a lot and couldn't find any other solutions. Here's how I went about changing it.
* Used Root, ADB, and BusyBox to accomplish this *
Grab the .apk's to edit
Add .zip extension to pulled filenames then unzip them
adb pull /system/app/Contacts.apk .
adb pull /system/app/Phone.apk .
The default image file is "res\drawable-hdpi-finger\ic_contact_list_picture.png" There's also ic_contact_picture.png, ic_contact_picture_2.png, and ic_contact_picture_3.png, but I couldn't find where they're used.
Edit the png and save it.
The default image file is "res\drawable-hdpi\picture_unknown.png" Edit the png and save it.
Recreate the zips and remove .zip extension
* Note: The pulled .apk's are compressed, but when I rezip them, the newly created file is smaller than the original. I'm using 7zip (fastest compression). For example:
Phone.apk Original: 535,262 bytes
Phone.apk Unzipped: 784,165 bytes
Phone.apk Rezipped: 516,249 bytes
Everything works fine, but I'm new to this and unsure if this is an issue.
Install files onto phone
I prefer to leave a backup in the folder, hence the "mv .apk .apk.bak"
adb push Contacts.apk /data/local
adb push Phone.apk /data/local
mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
mv /system/app/Contacts.apk /system/app/Contacts.apk.bak
mv /system/app/Phone.apk /system/app/Phone.apk.bak
./BusyBox mv /data/local/Contacts.apk /system/app/Contacts.apk
./BusyBox mv /data/local/Phone.apk /system/app/Phone.apk
mount -o ro,remount -t yaffs2 /dev/block/mtdblock4 /system
I was getting errors trying to move the files without BusyBox. YMMV
Worked for me. Hope this helps one of you.