[T-Mobile Samsung Galaxy Note 3] jovy23:
Hello to all Developers and XDA members! I have come here to give you a few guides for some tethering mods, you just have to follow the instructions below so you can learn on how you can do it!

NOTE: This is an updated guide based on my guide that I have done a while ago here -> CLICK HERE, just updated for Kitkat.

What Is Required...

★ First you need to have experience and know how to decompile/recompile apks with Apktools, apkmanager, smali, and baksmali

★ Have 7-zip installed onto your computer/laptop

★ Make sure you have Notepad++ also installed!

★HOW TO ENABLE NATIVE TETHERING WITHOUT RESTRICTIONS★

STEP 1

★ Go into your system/framework folder and take out your "framework-res.apk"

★ Then use one of the applications such as apktools and then use the commands to decompile the framework-res.apk

★ Once you have decompiled the framework-res.apk, go to:

Now open up "arrays.xml" with your notepad++ for editing.

Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:

SEARCH FOR:

[COLOR="Green"]<string-array name="config_mobile_hotspot_provision_app">[/COLOR]

NOW REMOVE:

[COLOR="Red"] <string-array name="config_mobile_hotspot_provision_app">
<item>com.sec.tetheringprovision</item>
<item>com.sec.tetheringprovision.TetheringProvisionActivity</item>
</string-array>[/COLOR]

AND CHANGE TO:

[COLOR="Blue"]<array name="config_mobile_hotspot_provision_app" />[/COLOR]

ONCE DONE, IT WILL LOOK SOMETHING LIKE THIS:

<array name="config_tether_dhcp_range" />
[COLOR="Blue"]<array name="config_mobile_hotspot_provision_app" />[/COLOR]
<integer-array name="config_tether_upstream_types">
<item>0</item>
<item>1</item>
<item>4</item>
<item>5</item>
<item>7</item>
</integer-array>

Now recompile your framework-res.apk using apktools and your DONE!!!

NOTE: Remember by removing those "com.sec.tetheringprovision" lines in the arrays.xml, it bypasses all the checks, There will be no more popup message that's telling you to upgrade to a T-Mobile Hotspot Plan, and you will get no errors!. There is no need for any third party apps or creating a APN just to have Tether to work properly!

STEP 2

The next step that your going to have to do is go into your roms:

folder and then remove these two apks:

The TetheringAutomation.apk and TetheringProvision.apk is no longer needed, so delete it.

STEP 3

Now for this step, this is going to give you the opportunity to edit/remove the locked APNS And also it will show you how you can see any of the hidden APN's from the "Access Point Names" Menu which is in Settings -> Connections -> More Networks -> Mobile Networks -> Access Point Names. Also this step your going to have to change the APN site name which makes you tether without bringing you into the T-Mobile Hotspot Browser Page.

First your going to have to go into your roms folder which is:

And then open up "customer.xml" with your notepad++ for editing.

Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:

SEARCH FOR:

[COLOR="Green"]<ProfileName>T-Mobile US LTE</ProfileName>[/COLOR]

NOW REMOVE:

<NetworkName>T-Mobile</NetworkName>
[COLOR="Red"]<Editable>no</Editable>[/COLOR]
<EnableStatus>enable</EnableStatus>
[COLOR="Green"]<ProfileName>T-Mobile US LTE</ProfileName>[/COLOR]
<Auth>none</Auth>
<MTUSize>1440</MTUSize>
<Bearer>ps</Bearer>
<Protocol>http</Protocol>
[COLOR="Red"]<IpVersion>ipv6</IpVersion>[/COLOR]
<Proxy>
<EnableFlag>off</EnableFlag>
</Proxy>
<PSparam>
<APN>fast.t-mobile.com</APN>
</PSparam>
</Profile>
<Profile>

AND CHANGE TO:

<NetworkName>T-Mobile</NetworkName>
[COLOR="Blue"]<Editable>yes</Editable>[/COLOR]
<EnableStatus>enable</EnableStatus>
[COLOR="Green"]<ProfileName>T-Mobile US LTE</ProfileName>[/COLOR]
<Auth>none</Auth>
<MTUSize>1440</MTUSize>
<Bearer>ps</Bearer>
<Protocol>http</Protocol>
[COLOR="Blue"]<IpVersion>ipv4</IpVersion>[/COLOR]
<Proxy>
<EnableFlag>off</EnableFlag>
</Proxy>
<PSparam>
<APN>fast.t-mobile.com</APN>
</PSparam>
</Profile>
<Profile>

NOW SEARCH FOR:

[COLOR="Green"]<ProfileName>T-Mobile Tethering</ProfileName>[/COLOR]

NOW REMOVE:

<NetworkName>T-Mobile</NetworkName>
[COLOR="Red"]<Editable>no</Editable>[/COLOR]
<EnableStatus>enable</EnableStatus>
[COLOR="Green"]<ProfileName>T-Mobile Tethering</ProfileName>[/COLOR]
<Auth>none</Auth>
<MTUSize>1440</MTUSize>
<Bearer>ps</Bearer>
<Protocol>http</Protocol>
<Proxy>
<EnableFlag>off</EnableFlag>
</Proxy>
<PSparam>
[COLOR="Red"]<APN>pcweb.tmobile.com</APN>[/COLOR]
</PSparam>
</Profile>
<Profile>

AND CHANGE TO:

<NetworkName>T-Mobile</NetworkName>
[COLOR="Blue"]<Editable>yes</Editable>[/COLOR]
<EnableStatus>enable</EnableStatus>
[COLOR="Green"]<ProfileName>T-Mobile Tethering</ProfileName>[/COLOR]
<Auth>none</Auth>
<MTUSize>1440</MTUSize>
<Bearer>ps</Bearer>
<Protocol>http</Protocol>
<Proxy>
<EnableFlag>off</EnableFlag>
</Proxy>
<PSparam>
[COLOR="Blue"]<APN>fast.t-mobile.com</APN>[/COLOR]
</PSparam>
</Profile>
<Profile>

Now what your doing is changing where it says <Editable>no</Editable> into <Editable>yes</Editable>. By changing this, this will give you the permission to edit/remove this APN setting. Next your going to change <IpVersion>ipv6</IpVersion> to <IpVersion>ipv4</IpVersion>. When the APN protocol is on ipv6 I couldn't get Tethering to play nicely when tethering my device to my PC, once I have changed the APN Protocol to ipv4 it worked perfectly! Also you can change <IpVersion>ipv6</IpVersion> to <IpVersion>ipv4v6</IpVersion>, It has also worked for me so try which one works best for you. Once your done with that go to where it says <APN>pcweb.tmobile.com</APN> and change it into <APN>fast.t-mobile.com</APN>. By changing this APN site name it should give you total access for you to tether without bringing you into the T-Mobile Hotspot Browser Page from your PC's internet browser. If <APN>fast.t-mobile.com</APN> isn't working for you change it to <APN>epc.tmobile.com</APN>. I believe fast.t-mobile.com has to do with LTE and epc.tmobile.com has to do with No LTE.

Now save this file with the new edits with Notepad++ and your DONE!

But your not done yet with this step, The Tethering APN that you have modified from "above" is still hidden. Now what your going to have to do is go into your roms folder again to:

And then open up "feature.xml" with your notepad++ for editing.

Now with Notepad++ go and find:

Now DELETE THIS WHOLE LINE! [This csc feature hides the T-Mobile Tethering APN that you have modified from above from view]. By removing it completely it will now show in "Settings -> Connections -> More Networks -> Mobile Networks -> Access Point Names". Once done save your changes with Notepad++ and your DONE!

STEP 3

★ Go into your system/framework folder and take out your "services.jar"

★ Then use one of the applications such as a baksmali tool and then use the commands to baksmali the services.jar

★ Once you have decompiled the services.jar, go to:

Now open up "Tethering.smali" with your notepad++ for editing.

Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:

SEARCH FOR:

[COLOR="Green"]const-string v1, "Set dun requiered as 1"[/COLOR]

NOW REMOVE:

.line 1827
:try_start_a1
iget-object v0, p0, Lcom/android/server/connectivity/Tethering;->mContext:Landroid/content/Context;

invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v0

const-string/jumbo v1, "tether_dun_required"

[COLOR="Red"]const/4 v2, 0x1[/COLOR]

invoke-static {v0, v1, v2}, Landroid/provider/Settings$Secure;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

.line 1828
const-string v0, "Tethering"

[COLOR="Green"]const-string v1, "Set dun requiered as 1"[/COLOR]

invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_b5
.catchall {:try_start_a1 .. :try_end_b5} :catchall_f6

NOW CHANGE TO:

.line 1827
:try_start_a1
iget-object v0, p0, Lcom/android/server/connectivity/Tethering;->mContext:Landroid/content/Context;

invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v0

const-string/jumbo v1, "tether_dun_required"

[COLOR="Blue"]const/4 v2, 0x0[/COLOR]

invoke-static {v0, v1, v2}, Landroid/provider/Settings$Secure;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

.line 1828
const-string v0, "Tethering"

[COLOR="Green"]const-string v1, "Set dun requiered as 1"[/COLOR]

invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_b5
.catchall {:try_start_a1 .. :try_end_b5} :catchall_f6

STILL HAVING PROBLEMS WITH TETHERING EVEN AFTER THE MOD? - Go into "Settings -> Connections -> More Networks -> Mobile Networks -> Access Point Names" and then press your phone's "Menu Settings Key" on the bottom left of your phone and then select "Reset To Default" and see if that helps.

★HOW TO ENABLE BLUETOOTH TETHERING★

This guide will show you how you can enable bluetooth tethering so here is how you can do it!

STEP 1

★ Go into your system/framework folder and take out your "framework-res.apk"

★ Then use one of the applications such as apktools and then use the commands to decompile the framework-res.apk

★ Once you have decompiled the framework-res.apk, go to:

Now open up "arrays.xml" with your notepad++ for editing.

Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:

SEARCH FOR:

[COLOR="Green"]<array name="config_tether_bluetooth_regexs" />[/COLOR]

IT WILL LOOK SOMETHING LIKE BELOW:

<array name="config_tether_wimax_regexs" />
[COLOR="Green"]<array name="config_tether_bluetooth_regexs" />[/COLOR]
<array name="config_tether_dhcp_range" />

NOW REMOVE:

<array name="config_tether_wimax_regexs" />
[COLOR="Red"]<array name="config_tether_bluetooth_regexs" />[/COLOR]
<array name="config_tether_dhcp_range" />

AND CHANGE TO:

<array name="config_tether_wimax_regexs" />
[COLOR="Blue"]<string-array name="config_tether_bluetooth_regexs">
<item>bnep\\d</item>
<item>bt-pan</item>
</string-array>[/COLOR]
<array name="config_tether_dhcp_range" />

Once done save changes, recompile your framework-res.apk using apktools and your DONE!

After step 1 the Bluetooth Tethering setting will now show in "Settings -> Connections -> Tethering And Mobile Hotspot". Even while enabling the setting Bluetooth Internet Access Connection will still not work and the Bluetooth Internet Access setting in the Paired Bluetooth Device menu will not show on any device that your trying to pair with which seems to only work on Sprint/International Note 3 Variants. I have gotten it to work on Jellybean and also I have gotten it to work on Kitkat firmware on our T-Mobile Note 3 Device (Should also work for ATT/Verizon Note 3 devices) which is so simple to do so go to step 2 below on how I got it to work!

STEP 2

1. To get Bluetooth Tethering Internet Access to work, your going to need to get any stock International based firmware/rom that is already deodexed/odexed! REMEMBER: GET IT ONLY FROM THE INTERNATIONAL VARIANT! Make sure your getting it from the same android version that your device is on so if your on T-Mobile and your latest updated stock firmware is 4.4.2 Kitkat (N900TUVUDNF1), your going to need to download the latest stock 4.4.2 Kitkat firmware from http://www.sammobile.com or get it from the International thread related to your specific device "Note 3".

Just As A Reference For This Part Of The Guide: The International SM-N9005 stock 4.4.2 Kitkat firmware from sammobile that I have downloaded is (N9005XXUFNF4).

Now once you get it deodexed (Or get any rom that is based off of N9005XXUFNF4), your going to have to go into the roms folder and go to:

KITKAT...

and take the bluetooth.default.so file from the International based rom, and add it into your T-Mobile/ATT/Verizon rom and your DONE! No smali work, no decompiling apks, nothing just overwrite that file to the same location into your rom and THAT'S ABOUT IT! If your on Jellybean, the file is renamed differently, check below!

JELLYBEAN...

and take the bplus.default.so file from the International based rom, and add it into your T-Mobile/ATT/Verizon rom and your DONE!

NOTE #1 - Because there are many International firmwares out based from the same android version, your going to have to download a few to get the right one.

NOTE #2 - This should work for all Galaxy/Note Samsung Devices And ETC! (Your going to have to test it out on the other devices and let me know.)

IF YOUR ON A N900TUVUDNF1 BASED ROM, FLASH THE FILE BELOW TO GET BLUETOOTH TETHERING (INTERNET ACCESS) TO WORK!

Download Link - CLICK HERE