[Nexus 7 (2013) LTE Android Development] DivinityCycle:
Since there's now an Xposed Framework Module available to do this same thing, that is the much better way to go than modifying your framework-res.apk directly.

Check that out here http://repo.xposed.info/module/de.makuser.nexussms

-Original post follows-

I got tired of seeing several threads about this topic so I figured I would post a "How to", which should work on all ROMs and versions around.

This procedure is actually fairly simple, and if you have basic Android and computer knowledge you can do this.

What Does This Do?

On mobile-enabled tablets like the N7 3G and the N7 LTE, the device itself is capable of sending & receiving MMS and SMS messages. Maybe you've read about how Google Hangouts got the ability to do this not too long ago. However, if you excitedly downloaded and installed the new version, you may be like "What the hell is this?!?" because by default you cannot see any SMS-related options. In Jellybean and KitKat, a device has to be "a phone" before the system thinks the device is able to send SMS and MMS messages. However, its fairly easy to change this particular property on your device so that it self-identifies as a "phone" and you get access to SMS.

Important: You actually have to have SMS service to use SMS service. Even though it boggles my mind, people have actually sometimes been confused by this particular mod, and have asked me if it somehow gives you SMS service. It does not, it only gives you access to the software functionality to send and receive SMS messages.

Even More Bolded Text!: there is one exception to this. If you are using CyanogenMod 10.2 (or 11 if they have ported Voice+ to it, not sure at this time), you can use this mod in conjunction with Google Voice and the Voice Plus app. Voice+ allows you to send & receive messgaes via the Google Voice service behind the scenes, but on the front end you can use the stock MMS.apk, or the Google Hangouts app to do this. This does not involve modifying Google Hangouts, its just sort of "bridging" Google Voice and the native SMS handling so that your Google Voice texts act like regular SMS messages. Voice+ is part of the CyanogenMod project and you can read more about it here. It's honestly pretty nice if you're a Google Voice user, since the regular Google Voice app kindof sucks.

This procedure involves modifying a boolean setting in your device's framework-res.apk file. That may sound like gibberish to you, but its still not hard to get this done.

What You'll Need

This guide is written for people who use Windows. All the utilities I'll talk about in this guide are for Windows. I'm sure its possible to do this on Mac & Linux, but the main utility I use to make this easy (FrameWork Flasher) is for Windows.

-An archive manager. I recommend 7-Zip, since it is free, open source, and can handle basically every archive format known to man.

-FrameWork Flasher. I updated this application to work with KitKat, but am not the original creator. You can download the updated version from MediaFire. FrameWork Flasher was created by XDA's own Wes Foster, and you can see his original post here.

-Some kind of text editor. I use NotePad++

-An Android device with a custom recovery installed on it. "Custom Recovery" means like ClockWork Mod, or TWRP. You need this to flash your modded file back onto your device.

Got all your stuff together? OK, on with the How Tos.

How To Do This

The first thing you'll need to do is get a copy of your current ROM's framework-res.apk file. There are a variety of ways to do this. If you're running a custom flashable ROM, like CyanogenMod, the simplest way to go is to just download your ROM's flashable ZIP file onto your computer and then open it up in 7-Zip. The file should be located inside the ZIP in the system\framework folder. Just extract that to your Desktop, or wherever you're going to keep the files you're working on.

If you're running a "stock" firmware, probably the easiest way to get your current framework-res.apk is to copy it from your current tablet. Note: this method should always work regardless what ROM you are running, I just find it easier to pull the files out of the downloaded ZIPs on a computer. You'll need an Android file manager that allows you access to the entire file system, not just the "sdcard" type area. I use SolidExplorer, but Root Explorer would work just as well. Your goal is to get the file /system/framework/framework-res.apk on your Android device onto your computer. There are probably a dozen ways to accomplish this. Super noob method: just copy this file from its original location to your "Downloads" folder, then plug your device into your computer via USB and copy the file out of the Downloads folder and onto your computer using MTP. Another method would be to send it to yourself as an attachment on an email. Hell, Solid Explorer has a SMB/SAMBA client built into it, so if you know how to use that you can just push the file directly from its original location to a shared folder on your computer. If you need a step-by-step on how to accomplish this particular step, IMO you're not tech savvy enough to be doing this stuff.

Anyways, so you should now have the framework-res.apk file from your current ROM on your computer.

Download and unzip my FrameworkFlasher-MOD file. Inside the folder, you'll see several folders and files. You need to put the original framework-res.apk file in the "place-framework-res-here" folder (how inscrutible!). Then you can run RunMe.bat.

You should get a pop-up window with a simple text-based menu. You'll want to run Option 1. The program will process for a while, and then should end up at a "The APK has been decompiled successfully" message. You can press any key to continue. At this point its not a bad idea to just leave FrameWork Flasher running.

FrameWork Flasher should have unpacked all the resources from the APK into the folder "files-to-edit". You'll need to go into files-to-edit\framework-res.apk\res\values. Inside of their, you'll find a bunch of XML files. You need to open bools.xml in the text editor of your choice. You're looking for the line that says

<bool name="config_voice_capable">false</bool>

All you need to do is change false to true, so you should end up with

<bool name="config_voice_capable">true</bool>

Then, save the file and close your text editor and go back to FrameWork Flasher.

You'll now want to run through options 2, 3 and 4. After doing this, you'll have a file called "update.zip" in the "final-zip-file" folder. You'll need to put this onto your device and flash it.

If you've flashed ROMs before, I'd hope you know how to do this. As with the "get your framework file" step, there are many different possible ways to get the update.zip file onto your device. You could transfer via USB, over the network, via email, whatever.

Once you've got the file on your device, you flash it like you do any other flashable ZIP using CWM or TWRP. This ZIP should work with either recovery, and you do NOT need to clear cache or anything like that. Simply flash and then reboot your device.

NOTE FOR T-MOBILE USERS: Some T-Mobile customers, including me, get a "New Voicemail" notification on their device(s) with voice capable turned on. This is specifically a problem with the way your T-Mobile account was initially set up and/or provisioned. The device is correctly reporting the voicemail status it gets from your account. The problem is that T-Mobile sometimes puts the "Welcome to your new voice mailbox!" message into your inbox even if your voicemail is not turned on. As far as I know there's no way to fix this issue short of working with a T-Mobile tech to get them to fix it, which I haven't bothered trying to do given the weird nature of what I'm doing. In CM10.2 you can just swipe this message away. It occurs once and only once each time the device is rebooted. On the current builds of CM11, the voicemail notfication cannot be swiped away. This is a known bug in AOSP and was fixed in 4.4.2, so the fix should come to CM11 soon enough.