For anyone experiencing constant Force Close errors, this may be caused by a filled /datadata partition.
Symptoms: Constant Force Closes
Verification: Access a command line (Terminal Emulator, ConnectBot, SSHd, etc) and run the following commands:
- Gain root, if you don't have it already:
- Run the following command to check the /data/data path.
Code:
ls -lha /data/data | grep data
- If the above line has a d instead of an l for the first character, and/or the end of the line doesn't indicate a link pointing to /datadata, STOP! This means you don't have this problem, and you've probably run some other script or app that fixes this.
Code:
lrwxrwx--x 118 system system 4.0K Feb 3 15:28 data --> /datadata
- Check the disk utilization of the /datadata partition:
If Usage is at or near 100%, this is your problem.
Reason: For a reason I've not been able to find CyanogenMod partitions your device such that application data is stored on a 150MB partition....not very big. If you have a ton of apps, it's very easy to fill this up.
Thankfully the data is accessed through
/data/data, which is just a symlink to
/datadata. Since
/data has plenty of space, we can just remove that symlink and replace it with the actual data.
Solution: Access a command line (Terminal Emulator, ConnectBot, SSHd, etc) and run the following:
- Remove the symlink.
- Replace with a new directory.
- Copy the data.
Code:
cp -pR /datadata/* /data/data/
Reboot the phone, and your problem should be resolved. Since this applies to any device rurning CyanogenMod or CM-derivative (like MIUI), I may create a separate post to document this.