The definitive guide on hacking the Nexus 4, part 5: How to permanently enable LTE on Android 4.2.2
Update (March 19, 2013): Dear T-Mobile users, apparently, T-Mobile has been testing their LTE network and various users have reported being able to connect to it. All of the steps in this guide are still valid, however we would like to clarify step 15 for T-Mobile users. If you wish to get LTE to stick upon reboot, you will likely need to change the APN stored in the apns-conf.xml file. Users report that you need to use APN fast.t-mobile.com in order to access T-Mobile’s LTE network, but the XML document in the Nexus 4 has a default APN of epc.tmobile.com under “T-Mobile US”. We have no way of testing this as we’re not with T-Mobile, but according to this post and this post on XDA, the following changes should work (changes to XML file). Please make a backup of the XML first and try to make these changes and let us know in the comments below if it works. All that we did was simply replaced all of the APNs for “T-Mobile US” (as we didn’t know which one would be picked up) to fast.t-mobile.com and added a new APN called “T-Mobile US LTE” (just in case–it doesn’t hurt). You may ask, “why do you need to change the APN in the XML file instead of in Android under settings?” Apparently, as XDA users discovered, if you go into “settings” and change the APN after editing the “build.prop” (and doing a factory reset), you will lose LTE on the next reboot. If you have any questions, please leave us a comment below. Good luck!
The definitive guide on hacking the Nexus 4, part 5
Legal disclaimer: We are not responsible for any damage or loss to your device or computer system. Therefore, should you decide to follow these steps, you do so at your own risk and peril and agree to hold us harmless from any damage or loss you may experience. Should you disagree with the foregoing, please do not read any further.
As you may have heard by now, the Nexus 4 unofficially supports LTE in Canada. Back in November 2012, we conducted a short interview with the person that first made this discovery. If you haven’t read the interview yet, you can find it here.
On February 14, 2013, Google released an update to Jelly Bean called Android 4.2.2 which effectively killed unofficial LTE support for the Nexus 4 (not surprising as Google didn’t get LTE certification at the FCC). However, thanks to our friends at XDA-dev, we’re going to show you how to get LTE back. Furthermore, we’re going to show you how you can permanently enable LTE so that it “sticks” even if you reboot your phone. By using the standard trick to enable LTE, every time that you reboot your phone, you lose LTE until you select the proper LTE profile. It’s a bit annoying.
As you are already aware, the Nexus 4 only supports LTE (band 4 AWS) which is mostly used in Canada and by Telcel (Mexico). Therefore, if you live elsewhere, this guide isn’t really for you. However, if you live in a country that supports Band 4 AWS LTE and you have a Nexus 4, you may find this guide useful.
There are many guides on the internet on how to enable LTE on the Nexus 4, but it’s probably best to ignore all of those guides. They’re just going to confuse you. Those guides are all temporary LTE fixes and those methods don’t work with the latest Android 4.2.2. If you don’t mind enabling LTE on every reboot, please follow this guide instead (but install the .33 radio first by following step 1-5 below). Enabling temporary LTE is much simpler, but you need to do it on every reboot. Fortunately, there’s a workaround, but it requires your device to be wiped. Also, Google Now sort of stops working if you enable LTE. Well, Google Now still works under LTE, but it requires a GPS lock and you need to be outside as aGPS seems to stop working (assisted GPS).
Before we get started, there are a few prerequisites for the following hack to work. You need (1) a Nexus 4 that has been rooted (2) you’re with Rogers, Bell, Telus, Fido, Kodoo, Virgin, MTS, Sasktel, Telcel (and for some lucky users T-Mobile) –for greater certainty, this guide will definitely NOT work with Wind Mobile, Mobilicity or Public Mobile in Canada or AT&T, Verizon, etc.), (3) you have an LTE sim card–you cannot use a regular sim card and (4) your data plan supports LTE (most data plans are LTE enabled, but some really old ones do not, ask your carrier if you are unsure). If you meet all of those requirements, please follow the below steps.
We would like to warn you that you will need to edit a few files, so be mentally prepared. It’s not very difficult, but it can appear a bit intimidating. Also, in case you’re interested, the source of this guide was found on this and this thread on XDA.
How to permanently enable LTE on the Nexus 4 running Android 4.2.2
The first thing that we’re going to do is install an older “radio” or “baseband”. Most people use the term “radio” and “baseband” interchangeably. The radio firmware controls basic low-level functions like network connectivity, Wifi, and GPS. Usually upgrading your radio will not give you any new features but will fix connectivity issues, increase range or performance, decrease battery usage, etc. However, in our case, by downgrading to an earlier radio, we’re going to get LTE back. We have not noticed any issues using the earlier radio with Android 4.2.2. Everything seems to work perfectly. Well, except with LTE wifi hotspot, but we’ll cover that in part 6.
1) Go into “Settings” then “About Phone” and go down to “Baseband” to see which version you’re running. The last 2 digits will tell you which version you’re running. If you’re running Android 4.2.2, it probably says “.48“. That version disables unofficial LTE support. Therefore, we’re going to install the earlier version called “.33“.
2) Download radio version .33 from this site (or direct link cwm-radio-mako-m9615a-cefwmazm-2.0.1700.33.zip) from your PC or from your phone. It’s about 20 megabytes. The MD5 for version .33 is 3607ae33dea2764c44e0e03c44cce7f9. You can verify the checksum if you like (see step 3 in part 3 which explains how to use WinMD5). Some users reported issues using radio .33, but we didn’t experience any difficulties. If you do experience any issues, try installing version .27 to see if that resolves it.
Update (March 20, 2013): Users on stock Android have reported incompatibilities with baseband .33 and Android 4.2.2 (people can’t hear you when you’re talking on the phone), therefore it’s recommended to use the methods described in this guide if you’re running a custom ROM like CyanogenMod. CyanogenMod users have not had any issues.
3) If you downloaded the radio from your PC, transfer the zip file to somewhere in your phone (see step 4 in part 3 if you have trouble transferring the file). If you downloaded it using the browser in your phone, it’s probably saved at /sdcard/Download. If that’s the case, you can leave it there.
4) Turn off your phone and enter into Fastboot mode then enter into ClockworkMod and flash the zip file (see step 5 in part 3 if you forget how). We don’t think that there’s a need to clear the cache in ClockworkMod, but it doesn’t hurt. One the flash is complete, select reboot to reboot into Android.
5) Once the phone is booted, go into “Settings” then “About Phone” and down to “Baseband”. If you see .33 in the last 2 digits. It worked. You’re successfully downgraded to radio .33. You’re getting closer to LTE nirvana.
6) Send yourself an email (choose an email address that is easily accessible from your phone) with the following text in the content of the email (we’ll need this text later). You can type it out by hand, but in order to avoid any possible typos, it’s safest just to send it to yourself by email.
telephony.lteOnGsmDevice=1 ro.telephony.default_network=9 ro.ril.def.preferred.network=9
Some users may say that you only need the 1st line, but we tried that and it didn’t work. Trust us, you need all three lines.
7) Install your favorite file manager. We’re going to use ES File Explorer because it’s free and it’s good enough for our purposes, but you can use any file manager that can have root access.
8) We’re going to enable Root in the file manager now as we need to edit some system files. In ES File Explorer, click on the context menu button “…” select “Settings” and scroll down till you see “Root Settings”, as shown below. Click on “Root Settings”
9) Enable all of the boxes.
10) We’re going to now edit the build.prop file. You can do this following our instructions below or you can use a dedicated app such as Build Prop Editor (Free) or build.prop Editor (Free). This file controls a lot of things. It tells Google what device you have, which country you’re in (therefore which Google Play Store you have access to), the LCD density of your device, etc. It’s basically your device’s ID card. Therefore, if you don’t know what you’re doing, don’t edit random things in this file! Now, go back to the main screen of ES File Explorer and navigate to /system/ (default location is /sdcard/ so you’ll have to go up one directory in order to see /system/). Scroll down till you see a file called “build.prop“. Make a copy of this file and rename the copy as build.prop.original (but we probably won’t ever need it–just to be safe).
11) Long click on “build.prop” and select “Open As“, select “Text“, select your favorite text editor. We’ll be using ES Note Editor in our example below. You’re now editing the build.prop file. If you scroll down the text editor, you’ll see a line that starts with “telephony.lteOnCdmaDevice=0“, as shown below.
12) Delete that entire line and replace it with the text in the content of the email that you sent yourself. The end result should look exactly like below. Try to avoid leaving empty spaces at the beginning or at the end of the lines. Once you’re satisfied that it looks correct. Click on “…” then push “Save”
13) In the next few steps, we’re going to add your carrier’s LTE APNs directly into Android (if you’re with Rogers or Fido) because the build.prop trick only works if you don’t change the APN in Android. Therefore, if you’re with Bell, Telus, Virgin or Kodoo or Telcel (Mexico), you can likely safely skip this step as the APNs in the XML file are likely already correct (but you can check to make sure). If you’re with Fido or Rogers, you will have to modify the XML file as we do below. If you don’t know what your carrier’s APN settings are, you can visit this page to find your carrier and take note of the LTE APN settings. In our example below, we’ll be changing the APN under “Fido Default”.
14) In ES File Explorer, navigate to /system/etc/ and look for a file called apns-conf.xml. Make a backup of this file by copying it and rename the copy to apns-conf.xml.original. It’s a very long text file to navigate. Therefore, send it to yourself by email so that you can edit it on your computer more comfortably.
15) Install Notepad++ on your PC. It’s free and probably one of the best text editors for Windows. Open up the apns-conf.xml file in Notepad++. Search for your carrier. In our example, we’ll be searching for “Fido”. Fido was found on line 530. In our example below, you can see that the APN for “Fido Default” is “fido-core-appl1.apn“. Let’s replace that APN with “ltemobile.apn” (as mentioned on this list). You can leave everything else the same. It’s not necessary to change anything in “Fido Internet” or “Fido Tethering“. If “Rogers LTE” already has “ltemobile.apn” as its APN, you probably don’t need to edit anything, you can skip this step.
16) Save the apns-conf.xml in Notepad++ and send it to yourself by email. You may have trouble downloading the file from gmail on your phone if Android can’t find a program to open .xml documents. In that case, rename the file extension from .xml document to .txt, send it to yourself by email, download it from your phone to /sdcard/Download, rename the file extension to .xml and replace the apns-conf.xml file located in /system/etc with the one that we just edited.
17) Now, we have to factory reset your phone. There’s no way around this unfortunately. It’s the only way to get the settings to “stick”. Go into “Settings” then “Backup & Reset”. You’ll see something like below. Click on “Factory data reset”.
18) Click “Erase everything”.
19) You’re going to have to go through the Android setup, feel free to setup your Google Account and Wifi. However, in order to test LTE, turn off Wifi and give it 5 minutes to connect to the cell towers. After a few minutes, you should see the 4G icon appear at the top right.
20) If you’re so inclined, you can download the speedtest app and give it a whirl.You should see a substantial speed increase over 3G, but LTE speeds vary greatly depending on where you are currently located. Download speeds can be as low as 10Mbps and as high as 60Mbps.
If you’ve ever read any “how to enable LTE on a Nexus 4 guide”, it will tell you to go into the Android dialer and input *#*#4636#*#* in order to access the config menu. After the factory reset, NEVER enter the *#*#4636#*#* config menu. Otherwise, it will revert back to WCDMA as the preferred network profile. If you enter that config screen, you would need to perform another factory reset in order to get LTE to stick again. Also, do not change your APN in Android once everything has been setup or LTE won’t stick anymore.
Finally, if you would like to change the little 4G icon to LTE, you can follow the instructions here (www.androidcoliseum.com). It doesn’t change anything performance wise. It’s purely for aesthetic purposes, but it’s kinda neat. Thanks ou7shined for the link :)
In part 6, we’ll discuss how we can get LTE wifi hotspot working. It’s broken by default.