Internal storage partially lost or corrupted?

erizzo

Member
Apr 26, 2010
5
0
0
Over the weekend, my Inc's battery ran out when I forgot to plug it in overnight. No big deal, that's happened before. But when I finally plugged it in and re-started, things are way messed up.
On boot-up, many apps and services report an immediate force-close (Swype, for example); other apps only run partially before a fc. I was using LauncherPro (the paid version), but it doesn't load now and isn't even presented as an option (although it's still listed as installed in the Manage Applications settings screen).
The apps that do run, they seem to have lost all of their internal settings; they all act as if they are being run for the first time. Market app runs, but crashes as soon as I try to go to My Apps or do an install or update of anything.

Overall, it seems that some part of the phone's internal storage got erased or corrupted somehow. The SD card contents seem to be fine; apps that are installed there seem to run fine (unless they try to do something that accesses internal storage). But I'm in a bad place, because I can't even update via Market. Is there anything I should try before just doing "Format phone storage" or "Factory data reset?"

If it helps any, I am a developer so I have the SDK available; so I can do some things that your average user might not be interested in attempting.

Any ideas, advice, or whatever, are appreciated.
 
Try clearing cache from everything you can, especially System apps.

In adb if you can clear /system/cache that should do it in one fell swoop. Then reboot.
 
This was my first foray into adb, but I couldn't get it to work. Couldn't find a /system/cache directory (at least, it wouldn't let me cd into it). Seems like the file system is read-only. I don't have my phone rooted, is that perhaps the reason?

On another note, it looks like file system permissions might generally be messed up. Here's the stack trace I get when Market app crashes, for example:

ERROR/DatabaseUtils(375): Writing exception to parcel
ERROR/DatabaseUtils(375): java.lang.SecurityException: Permission Denial: writing com.android.providers.downloads.DownloadProvider uri content://downloads/download from pid=18841, uid=10081 requires android.permission.ACCESS_DOWNLOAD_MANAGER
ERROR/DatabaseUtils(375): at android.content.ContentProvider$Transport.enforceWritePermission(ContentProvider.java:331)
ERROR/DatabaseUtils(375): at android.content.ContentProvider$Transport.insert(ContentProvider.java:179)
ERROR/DatabaseUtils(375): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:175)
ERROR/DatabaseUtils(375): at android.os.Binder.execTransact(Binder.java:288)
ERROR/DatabaseUtils(375): at dalvik.system.NativeStart.run(Native Method)
WARN/dalvikvm(18841): threadid=13: thread exiting with uncaught exception (group=0x400259f8)
ERROR/AndroidRuntime(18841): FATAL EXCEPTION: work-service-handler-thread
ERROR/AndroidRuntime(18841): java.lang.SecurityException: Permission Denial: writing com.android.providers.downloads.DownloadProvider uri content://downloads/download from pid=18841, uid=10081 requires android.permission.ACCESS_DOWNLOAD_MANAGER
ERROR/AndroidRuntime(18841): at android.os.Parcel.readException(Parcel.java:1247)
ERROR/AndroidRuntime(18841): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
ERROR/AndroidRuntime(18841): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
ERROR/AndroidRuntime(18841): at android.content.ContentProviderProxy.insert(ContentProviderNative.java:450)
ERROR/AndroidRuntime(18841): at android.content.ContentResolver.insert(ContentResolver.java:587)
ERROR/AndroidRuntime(18841): at com.android.vending.util.DownloadManagerUtil.enqueueDownload(DownloadManagerUtil.java:25)
ERROR/AndroidRuntime(18841): at com.android.vending.AssetDownloader.startDownload(AssetDownloader.java:158)
ERROR/AndroidRuntime(18841): at com.android.vending.AssetDownloader.downloadAndInstall(AssetDownloader.java:132)
ERROR/AndroidRuntime(18841): at com.android.vending.InstallAssetReceiver.handleIntent(InstallAssetReceiver.java:70)
ERROR/AndroidRuntime(18841): at com.android.vending.util.ServiceBroadcastReceiver$1.run(ServiceBroadcastReceiver.java:45)
ERROR/AndroidRuntime(18841): at com.android.vending.util.WakelockedRunnable.run(WakelockedRunnable.java:34)
ERROR/AndroidRuntime(18841): at com.android.vending.util.WorkService$1.run(WorkService.java:80)
ERROR/AndroidRuntime(18841): at android.os.Handler.handleCallback(Handler.java:587)
ERROR/AndroidRuntime(18841): at android.os.Handler.dispatchMessage(Handler.java:92)
ERROR/AndroidRuntime(18841): at android.os.Looper.loop(Looper.java:144)
ERROR/AndroidRuntime(18841): at android.os.HandlerThread.run(HandlerThread.java:60)
 
You would need root at get access to System Cache. Sorry, I assumed you were rooted.

You best bet at this point is a restore unfortunately. The down side is it's a PITA, the up side is it will work.

Copy everything from the internal user memory to the SD card first and if you're not using Gmail for contacts export a backup to the SD Card in the People app. Mounting to your PC as a disk drive should load your SD Card and the internal memory. That's the easiest way to copy the stuff off.
 

Forum statistics

Threads
954,089
Messages
6,960,561
Members
3,162,922
Latest member
Elenasun