WOW That was annoying! From the moment I started using a custom ROM on my Samsung Galaxy S2 (Cognition S2, to be exact), I started having issues with some apps.
Sometimes they won't appear in search results, other times it will just say it's not compatible. It drove me nuts!
Naturally I started with the forums – All the solutions there were about LCD DPI change. Funny, I never thought of that, but it did make sense. The only problem was that I never touched my DPI settings (Heck, I didn't know I could).
(On a side note – tampering with the density is pretty cool… if you want to try it, you can download apps from the Market like LCD Density)
Back to my problem…
At that point, I knew for sure it was a ROM issue. My friend, who bought the same phone in Thailand, was able to install all the 'problematic' apps, up until the point that I installed the same ROM on his machine. So, when in doubt – Check what the guys at the awesome CyanogenMod ROM did!
My experience showed me that a lot can happen by changing build.prop file (Guys.. Do it only if you have to! I am not responsible for any damage and ALWAYS BACKUP!).
Ok now that I got that out of my system, I pulled CyanogenMod's build.prop file, and compared it to my device's build.prop.
My hunch told me that it was the fingerprint section. It just made sense that if the device is sending an incorrect fingerprint to the Market, it will think some apps are not incompatible.
So… My hunch was right!
The original build.prop had those lines in:
ro.build.description=GT-I9100-user 2.3.4 GINGERBREAD XXKH3 release-keys ro.build.fingerprint=samsung/GT-I9100/GT-I9100:2.3.4/GINGERBREAD/XXKH3:user/release-keys
The changed buildprop had this data instead:
ro.build.description=GT-I9100-user 2.3.4 GINGERBREAD XXKG2 release-keys ro.build.fingerprint=samsung/GT-I9100/GT-I9100:2.3.4/GINGERBREAD/XXKG2:user/release-keys
I really don't know what causes the original data to be invalid to some apps, but it did! It appears XXKH3 is for some reason incompatible… It might be a bug on Google's side, or there is some logic I don't understand (feel free to enlighten me in the comments)
Keep in mind, that you need to compare the lines between two ROMs which are made for YOUR device. In this case it is the GT-I9100. Just download the right ROM from CyanogenMod, and see inside the zip, under "system" folder you can get the build.prop file. Then, compare it to the file you got from your own ROM
So, to make a long story short… If you want to do like me you should do the following:
- Pull out /system/build.prop file from your device AND BACK IT UP
- Change the fingerprint attributes
- Remount your system as writable
- Push the modified build.prop back in your device
I hope this post is helpful to some of you!