[MOD][VZW][AT&T][SPR] Native tether

Search This thread

amoamare

Senior Member
Jul 17, 2006
476
319
Requires root access

I went ahead and patched the app that check's for subscription on Verizon when trying to enable WiFi or USB Tether.

I may self have an unlimited data plan and have been declined tethering because of my use.

This needs to be installed in the /system that means if you reboot you will have to redo these steps again.

Download the apk below

Code:
adb push VzwEntitlementService.apk /data/local/tmp/VzwEntitlementService.apk
adb shell
su
mount -o remount,rw /system
rm /system/app/VzwEntitlementService.apk
rm /system/app/VzwEntitlementService.odex
cat /data/local/tmp/VzwEntitlementService.apk > /system/app/VzwEntitlementService.apk
mount -o remount,ro /system
exit
exit

Do not reboot


Q) What code was replaced?
I return a false value in class *DialogActivity I basically remove everything listed in isVZWAccount or isATTAccount and replace with this.
Code:
.method private isATTAccount(Ljava/lang/String;)Z
    .locals 1

    .prologue
    .line 212
    const/4 v0, 0x0

    return v0
.end method

This const/4 v0, 0x0 is a false const change 0x0 to 0x1 will make it true. We then return that const using return v0; v0 = 0x0;


I was going to wait to post but can't really do any harm as long as you followed this.

Q) What was patched ?
A) There is a check to verify if the phone is a Verizon phone, if its true it checks if you have tethering on your plan. I just removed the whole check and always return false. After that it no longer checks if you have tethering on your plan.

Added AT&T Entitlement Service.apk its pre-patched.

Added the Sprint patched version thanks to jonnrb see his post in this thread. I have not personally tested it. Hope he is okay with adding it to the first page.
 

Attachments

  • VzwEntitlementService.apk
    97.7 KB · Views: 2,627
  • entitlementservice.apk
    18.4 KB · Views: 1,105
  • SprintEntitlement.apk
    10.5 KB · Views: 380
Last edited:

phositadc

Senior Member
May 7, 2010
2,103
341
Once system r/w is enabled you will be able to make this permanent right? So that it stays enabled even when rebooting?

Sent from my Nexus 7
 

htowngator

Senior Member
Mar 31, 2008
998
117
Awesome, great job. Can't wait till r/w enabled.

Sent from my Nexus 7 using Tapatalk 4
 

terabyte128

Senior Member
Oct 29, 2011
63
5
Seattle
Requires root access

I went ahead and patched the app that check's for subscription on Verizon when trying to enable WiFi or USB Tether.

I may self have an unlimited data plan and have been declined tethering because of my use.

This needs to be installed in the /system that means if you reboot you will have to redo these steps again.

Download the apk below

Code:
adb push VzwEntitlementService.apk /data/local/tmp/VzwEntitlementService.apk
adb shell
su
mount -o remount,rw /system
rm /system/app/VzwEntitlementService.apk
rm /system/app/VzwEntitlementService..odex
cat /data/local/tmp/VzwEntitlementService.apk > /system/app/VzwEntitlementService.apk
exit
exit

Do not reboot


I was going to wait to post but can't really do any harm as long as you followed this.

Q) What was patched ?
A) There is a check to verify if the phone is a Verizon phone, if its true it checks if you have tethering on your plan. I just removed the whole check and always return false. After that it no longer checks if you have tethering on your plan.

After doing this, should the /system partition be remounted as read only? I'm making a script to automatically do this at boot.

BTW thanks for the app, much appreciated!
 

terabyte128

Senior Member
Oct 29, 2011
63
5
Seattle
Its always a good idea no idea why i left it out haha.

adb shell mount -o remount,ro /system

When I try to do this using scripter I get the error "device busy." The hotspot works but I'm worried it's not remounting it, any ideas? Here's the script (I just modified yours slightly):


Code:
mount -o remount,rw /system
rm /system/app/VzwEntitlementService.apk
rm /system/app/VzwEntitlementService..odex
cat /storage/emulated/legacy/VzwEntitlementService.apk > /system/app/VzwEntitlementService.apk
mount -o remount,ro /system
 

terabyte128

Senior Member
Oct 29, 2011
63
5
Seattle
Also, do youhappen to know of any good tutorials for learning how to decompile/recompile APKs? I'm trying to better understand how they work. I was able to decompile the original VzwEntitlementCheck.apk and change the appropriate lines of code, but I can't figure out how to recompile it.

Thanks!
 

drpencilcase

Member
Jan 16, 2008
10
1
Requires root access

I went ahead and patched the app that check's for subscription on Verizon when trying to enable WiFi or USB Tether.

I may self have an unlimited data plan and have been declined tethering because of my use.

This needs to be installed in the /system that means if you reboot you will have to redo these steps again.

Download the apk below

Code:
adb push VzwEntitlementService.apk /data/local/tmp/VzwEntitlementService.apk
adb shell
su
mount -o remount,rw /system
rm /system/app/VzwEntitlementService.apk
rm /system/app/VzwEntitlementService..odex
cat /data/local/tmp/VzwEntitlementService.apk > /system/app/VzwEntitlementService.apk
mount -o remount,ro /system
exit
exit

Do not reboot


I was going to wait to post but can't really do any harm as long as you followed this.

Q) What was patched ?
A) There is a check to verify if the phone is a Verizon phone, if its true it checks if you have tethering on your plan. I just removed the whole check and always return false. After that it no longer checks if you have tethering on your plan.



Sent from my XT1060 using xda app-developers app
 

thepolishguy

Senior Member
Dec 3, 2009
1,250
190
Ivanhoe CA
For those of us who have installed PwnMyMoto and can write to system - do the steps remain the same? Or is there something different we should do?

Thanks for this and any help.


****EDIT****
Got it figured out. Thanks for your work.
 
Last edited:

ericizzy1

Senior Member
Apr 28, 2006
1,343
43
rooted phone, tried installing the apk, it says app not installed. any ideas? thanks
 

thepolishguy

Senior Member
Dec 3, 2009
1,250
190
Ivanhoe CA
rooted phone, tried installing the apk, it says app not installed. any ideas? thanks

Well a couple of things (and the OP can of course correct any mistakes I may make here)...

It's a system app so you do not install it. You place is in /system and give it the proper permissions.

Have you used @jcase's PwnMyMoto.apk yet? His new release allows for writing to the system partition. You can either follow the OP's instructions or there are probably a couple of other options.

What I did was install jcase's newly released exploit to get access to system write. Then I renamed the existing system apps VZWentitlement.apk and VZWentitlment.apk.odex with a .bak (for backup). Then with RootExplorer I moved the OP's modified .apk to the system folder and changed the permissions to match the other system app permissions.

Reboot.
Or reboot recovery.

Should be ready to go.
 
Last edited:

nimos001

Member
Dec 14, 2010
10
0
Well a couple of things (and the OP can of course correct any mistakes I may make here)...

It's a system app so you do not install it. You place is in /system and give it the proper permissions.

Have you used @jcase's PwnMyMoto.apk yet? His new release allows for writing to the system partition. You can either follow the OP's instructions or there are probably a couple of other options.

What I did was install jcase's newly released exploit to get access to system write. Then I renamed the existing system apps VZWentitlement.apk and VZWentitlment.apk.odex with a .bak (for backup). Then with RootExplorer I moved the OP's modified .apk to the system folder and changed the permissions to match the other system app permissions.

Are you saying you used RootExplorer to do all of this versus using adb commands? I actually followed this but when I try to enable my hotspot I get a message ' Unfortunately, Settings has stopped.'


EDIT: Rebooted phone and all is good!
 
Last edited:

Rahshaka

Senior Member
Aug 12, 2010
50
10
Well a couple of things (and the OP can of course correct any mistakes I may make here)...

It's a system app so you do not install it. You place is in /system and give it the proper permissions.

Have you used @jcase's PwnMyMoto.apk yet? His new release allows for writing to the system partition. You can either follow the OP's instructions or there are probably a couple of other options.

What I did was install jcase's newly released exploit to get access to system write. Then I renamed the existing system apps VZWentitlement.apk and VZWentitlment.apk.odex with a .bak (for backup). Then with RootExplorer I moved the OP's modified .apk to the system folder and changed the permissions to match the other system app permissions.

Reboot.
Or reboot recovery.

Should be ready to go.

This method worked perfectly for me. Now have free Wi-fi Tether with out THE MAN (Verizon) trying to hassle me to pay.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 20
    Requires root access

    I went ahead and patched the app that check's for subscription on Verizon when trying to enable WiFi or USB Tether.

    I may self have an unlimited data plan and have been declined tethering because of my use.

    This needs to be installed in the /system that means if you reboot you will have to redo these steps again.

    Download the apk below

    Code:
    adb push VzwEntitlementService.apk /data/local/tmp/VzwEntitlementService.apk
    adb shell
    su
    mount -o remount,rw /system
    rm /system/app/VzwEntitlementService.apk
    rm /system/app/VzwEntitlementService.odex
    cat /data/local/tmp/VzwEntitlementService.apk > /system/app/VzwEntitlementService.apk
    mount -o remount,ro /system
    exit
    exit
    
    Do not reboot


    Q) What code was replaced?
    I return a false value in class *DialogActivity I basically remove everything listed in isVZWAccount or isATTAccount and replace with this.
    Code:
    .method private isATTAccount(Ljava/lang/String;)Z
        .locals 1
    
        .prologue
        .line 212
        const/4 v0, 0x0
    
        return v0
    .end method
    
    This const/4 v0, 0x0 is a false const change 0x0 to 0x1 will make it true. We then return that const using return v0; v0 = 0x0;


    I was going to wait to post but can't really do any harm as long as you followed this.

    Q) What was patched ?
    A) There is a check to verify if the phone is a Verizon phone, if its true it checks if you have tethering on your plan. I just removed the whole check and always return false. After that it no longer checks if you have tethering on your plan.

    Added AT&T Entitlement Service.apk its pre-patched.

    Added the Sprint patched version thanks to jonnrb see his post in this thread. I have not personally tested it. Hope he is okay with adding it to the first page.
    5
    Alternate Directions

    Hey guys, here are detailed directions based on thepolishguythat doesn't require ADB. It can be done completely free directly from the phone. (OP feel free to copy these into the first post.)

    1. Root using pwnMyMoto.
    2. Boot into recovery mode. (Press Volume Down + Power. Hold for 5 seconds and release. Press Volume down to highlight recovery. Press volume up to select.)
    3. Download and install Root Browser by JRummy.
    4. Download the correct apk.
    5. Open Root Browser. Download Utilities.
    6. Navigate to system -> apps.
    7. Delete entitlementservice.odex (vzwentitlementservice.odex for Verizon)
    8. Rename entitlementservice.apk to entitlementservice.apk.bak (vzwentitlementservice.apk.bak for Verizon)
    9. Navigate all the back up to main folder and then to sdcard -> Download
    10. Copy entitlementservice.apk (downloaded from below) to the system -> apps location.
    11. Reboot into Recovery again.
    4
    rooted phone, tried installing the apk, it says app not installed. any ideas? thanks

    Well a couple of things (and the OP can of course correct any mistakes I may make here)...

    It's a system app so you do not install it. You place is in /system and give it the proper permissions.

    Have you used @jcase's PwnMyMoto.apk yet? His new release allows for writing to the system partition. You can either follow the OP's instructions or there are probably a couple of other options.

    What I did was install jcase's newly released exploit to get access to system write. Then I renamed the existing system apps VZWentitlement.apk and VZWentitlment.apk.odex with a .bak (for backup). Then with RootExplorer I moved the OP's modified .apk to the system folder and changed the permissions to match the other system app permissions.

    Reboot.
    Or reboot recovery.

    Should be ready to go.
    3
    Added AT&T apk same steps apply just replace the name to entitlementservice.apk
    2
    Created a Sprint version of amoamare's hack. Push the apk to /system/app and you should be good to go. We can haz tether people.

    Here's the code I changed:

    Code:
    .method protected isEntitlementSuccess()Z
        #.registers 2
        .locals 1
    
        .prologue
        .line 189
        #iget-boolean v0, p0, Lcom/motorola/sprint/entitlement/EntitlementDialogActivity;->mCheckResult:Z
        const/4 v0, 0x1
    
        return v0
    .end method

    EDIT: This will work for a while, but you will soon notice (like I did) that while you can create a hotspot and connect to it, you will not be able to actually get to the outside world after a few hours of tethering. This, I presume, is because Sprint uses a different APN for tethering than they do for normal everyday data so that they can track usage. So, while you can in fact create a hotspot after removing the entitlement check, you cannot actually use tethering.

    I did some digging and found a workaround posted various places around XDA. It uses iptables to reroute all traffic coming from the hotspot's network to the normal data network via NAT. You have to run this command as root!

    Code:
    iptables -tnat -A natctrl_nat_POSTROUTING -s 192.168.0.0/16 -o rmnet0 -j MASQUERADE

    Personally, I found it was easy to create a Tasker context that runs this command as root every time my MoX boots. In truth, there's a million ways to accomplish this though.

    Just a reminder: this is in addition to the SprintEntitlement.apk hack for Sprint Moto X's.