Yeah, maybe a little less creativity next time... |
One of the phones in the house stopped working after an over the air update from AT&T - it was just stuck in an update loop and would reboot endlessly. I assumed it was probably full and did the normal resets to try to fix, to no avail. The phone's not mine so I never changed the ROM (i.e. - kept the warranty in case something happened to it :-) ) - it was totally stock other than being unlocked by AT&T so other SIMs could be used out of the US.
The guy at the AT&T store couldn't do anything with it - so I downloaded CyanogenMod for the SGH-I317 (that's what it really is - it's the 4G AT&T model, says so on the back), and spent a lot of fun times getting it to sync enough to transfer ClockworkMod (a replacement boot manager that makes it easier to install new ROMs). Never had that much trouble, but I had to reboot over and over to get it to transfer. That finally done - I put the CyanogenMod ROM on the SD card and booted to recovery and tried to install. And it barfed out a page of errors and failed.
Being way too lazy to see what was wrong, I grabbed a few more and tried them. The all failed too - but one of them spewed out an error message saying: "Your (sic) a t03g!".
The t03g is the international model of this phone - not the model I have. I snagged a Cyanogen for that device and put it on, and it installed happily and came up, but with no radio. That didn't seem good - so I fished around some more. There was nothing posted anywhere - so I got creative and cracked open the ROM for the AT&T model. There's a updater-script inside /META-INF/com/google/android/ that has the model filter - slight hack and chop to add the 'wrong' model:
assert(getprop("ro.product.device") == "t0lte" || getprop("ro.build.product") == "t0lte" ||
getprop("ro.product.device") == "t0ltexx" || getprop("ro.build.product") == "t0ltexx" ||
getprop("ro.product.device") == "GT-N7105" || getprop("ro.build.product") == "GT-N7105" ||
getprop("ro.product.device") == "t0ltedv" || getprop("ro.build.product") == "t0ltedv" ||
getprop("ro.product.device") == "GT-N7105T" || getprop("ro.build.product") == "GT-N7105T" ||
getprop("ro.product.device") == "t0lteatt" || getprop("ro.build.product") == "t0lteatt" ||
getprop("ro.product.device") == "SGH-I317" || getprop("ro.build.product") == "SGH-I317" ||
getprop("ro.product.device") == "t0ltetmo" || getprop("ro.build.product") == "t0ltetmo" ||
getprop("ro.product.device") == "SGH-T889" || getprop("ro.build.product") == "SGH-T889" ||
getprop("ro.product.device") == "t0ltecan" || getprop("ro.build.product") == "t0ltecan" ||
getprop("ro.product.device") == "t03g" || getprop("ro.build.product") == "t03g" ||
getprop("ro.product.device") == "SGH-I317M" || getprop("ro.build.product") == "SGH-I317M");
And a repack (with zip - don't use 7Zip or anything else or it won't apply right) and boom - everything worked.
What I think happened is the unlock code sent to this phone made it 'international' even though the hardware really isn't so updates are broken. Weird. This phone is probably past end of life anyway - but still.
No comments:
Post a Comment