The signal on my Galaxy S is pretty terrible right now. It was never that good to begin with (phone calls would sometimes break up, texts would occasionally fail to send, internet speed tests were often in the single digits). But it got especially bad a few months ago. Sometimes I couldn't even get a dial tone when making calls, or connect to the internet at all.
At first I thought this was the network's fault. So I switched from O2 to Vodafone. And the signal in my university campus improved dramatically. But then I came home for the summer, and my signal got a lot worse again.
It turns out Vodafone has very good coverage for my campus, but O2 is merely okay. O2 service in my hometown is also okay, but Vodafone is worse.
The annoying thing is that it's always an intermittent problem. The signal always comes back a few minutes later, invalidating most of my attempts to test it, and then it fails me when I really need it. It doesn't seem to match up to the bars. I've had four bars and no dial tone before.
I tried putting a wire into my external antenna port like it says here. But the signal did not improve. From this I conclude that the internal antenna is busted.
TL;DR? Start reading here.
Is there any way to replace the internal antenna? If so, which antenna component do I buy?
How do I fit an external antenna? I found an external antenna that says it's compatible with my phone, but what am I supposed to do with it? It looks like I'd have to use my phone without the backplate, and with a cable hanging out the whole time. Aren't there any cases or replacement backplates with a built in antenna?
Lastly, I'm pretty sure this is a hardware fault, but is there any chance it could be a software problem? I am running a nightly build of CyanogenMod 7 (build number GWK74), which is a custom ROM of Android 2.3.7. My kernel version is 22.214.171.124-g7a2264a.