[MOD][4.2.1/4.2][JOP40D/JOP40C] Tethering/Wifi Hotspot for the Nexus 7 3G

Search This thread

stridger

Senior Member
Oct 8, 2010
104
93
PLEASE USE WITH CAUTION AND ONLY IF YOU KNOW WHAT YOU ARE DOING. I WILL NOT BE RESPONSIBLE FOR BRICKED DEVICES.

You may have noticed that the Nexus 7 3G does not have the tethering options enabled by default.

I couldn't live with that (that was partially the point why I got the 3G version), so have patched the framework to enable those options. Partial credits go to [email protected] who has fixed the apktool for Android 4.2 .

To get it to work just flash the ZIP below. It will only work on the JOP40D and JOP40C releases, and obviously only if you have a 3G device. Please do not try it on the WiFi-only Nexus 7 :) .

Please note that it doesn't do a backup of the original framework-res.apk, so you can either make one yourself, or you can reflash the factory system image if you want to go back to stock later.

4.2.1 (JOP40D):
https://www.dropbox.com/s/oti37qsc265me8t/enabletether-JOP40D.zip

4.2 (JOP40C):
https://www.dropbox.com/s/9tswcvz50op8rfu/enabletether-JOP40C.zip
 
Last edited:

stridger

Senior Member
Oct 8, 2010
104
93
Now what about Voice Calls ;)

Unfortunately voice calls seem to be blocked at radio level. If you try to do voice dial, it craps out with a CME ERROR 4 (Operation not supported). So unfortunately it looks like it will need to be a radio hack, which is beyond me (and I don't want to risk bricking the device :) )

Radio log is below in case it helps someone.

Code:
D/AT      (  129): AT< +XCSQ: 11, 23
D/GSM     (  762): isTwoDigitShortCode
D/GSM     (  762): dialing w/ mmi 'null'...
D/GSM     (  762): [GSMConn] acquireWakeLock
D/RILJ    (  762): [0364]> SET_MUTE false
D/RILJ    (  762): [0365]> DIAL
D/RIL     (  129): onRequest: SET_MUTE
D/AT      (  129): AT> AT+CMUT=0
D/AT      (  129): AT< +CME ERROR: 4
D/RIL     (  129): onRequest: DIAL
D/AT      (  129): AT> ATD+XXXXXXXXXX;
D/RILJ    (  762): [0364]< SET_MUTE 
D/AT      (  129): AT< +CME ERROR: 4
D/RILJ    (  762): [0365]< DIAL 
D/GSM     (  762): [GsmDCT] handleMessage msg={ what=270343 when=-122ms [email protected] }
D/GSM     (  762): [GsmDCT] onVoiceCallStarted
D/RILJ    (  762): [0366]> GET_CURRENT_CALLS
D/RIL     (  129): onRequest: GET_CURRENT_CALLS
D/AT      (  129): AT> AT+CLCC
D/AT      (  129): AT< OK
D/RILJ    (  762): [0366]< GET_CURRENT_CALLS  
D/RILJ    (  762): [0367]> SET_MUTE false
D/RIL     (  129): onRequest: SET_MUTE
D/AT      (  129): AT> AT+CMUT=0
D/RILJ    (  762): [0368]> SET_MUTE false
D/AT      (  129): AT< +CME ERROR: 4
D/RILJ    (  762): [0367]< SET_MUTE 
D/RIL     (  129): onRequest: SET_MUTE
D/AT      (  129): AT> AT+CMUT=0
D/AT      (  129): AT< +CME ERROR: 4
D/RILJ    (  762): [0368]< SET_MUTE 
D/PHONE   (  762): VM: PhoneSubInfo.getVoiceMailNUmber: 
D/GSM     (  762): Pending MO dropped before poll fg state:DIALING
D/RILJ    (  762): [0369]> LAST_CALL_FAIL_CAUSE
D/RIL     (  129): onRequest: LAST_CALL_FAIL_CAUSE
D/AT      (  129): AT> AT+CEER
D/AT      (  129): AT< +CEER: "No report available"
D/AT      (  129): AT< OK
D/RILJ    (  762): [0369]< LAST_CALL_FAIL_CAUSE error: com.android.internal.telephony.CommandException: GENERIC_FAILURE
 

phonic

Senior Member
May 30, 2008
1,130
412
Florida
Unfortunately voice calls seem to be blocked at radio level. If you try to do voice dial, it craps out with a CME ERROR 4 (Operation not supported). So unfortunately it looks like it will need to be a radio hack, which is beyond me (and I don't want to risk bricking the device :) )

Radio log is below in case it helps someone.

Code:
D/AT      (  129): AT< +XCSQ: 11, 23
D/GSM     (  762): isTwoDigitShortCode
D/GSM     (  762): dialing w/ mmi 'null'...
D/GSM     (  762): [GSMConn] acquireWakeLock
D/RILJ    (  762): [0364]> SET_MUTE false
D/RILJ    (  762): [0365]> DIAL
D/RIL     (  129): onRequest: SET_MUTE
D/AT      (  129): AT> AT+CMUT=0
D/AT      (  129): AT< +CME ERROR: 4
D/RIL     (  129): onRequest: DIAL
D/AT      (  129): AT> ATD+XXXXXXXXXX;
D/RILJ    (  762): [0364]< SET_MUTE 
D/AT      (  129): AT< +CME ERROR: 4
D/RILJ    (  762): [0365]< DIAL 
D/GSM     (  762): [GsmDCT] handleMessage msg={ what=270343 when=-122ms [email protected] }
D/GSM     (  762): [GsmDCT] onVoiceCallStarted
D/RILJ    (  762): [0366]> GET_CURRENT_CALLS
D/RIL     (  129): onRequest: GET_CURRENT_CALLS
D/AT      (  129): AT> AT+CLCC
D/AT      (  129): AT< OK
D/RILJ    (  762): [0366]< GET_CURRENT_CALLS  
D/RILJ    (  762): [0367]> SET_MUTE false
D/RIL     (  129): onRequest: SET_MUTE
D/AT      (  129): AT> AT+CMUT=0
D/RILJ    (  762): [0368]> SET_MUTE false
D/AT      (  129): AT< +CME ERROR: 4
D/RILJ    (  762): [0367]< SET_MUTE 
D/RIL     (  129): onRequest: SET_MUTE
D/AT      (  129): AT> AT+CMUT=0
D/AT      (  129): AT< +CME ERROR: 4
D/RILJ    (  762): [0368]< SET_MUTE 
D/PHONE   (  762): VM: PhoneSubInfo.getVoiceMailNUmber: 
D/GSM     (  762): Pending MO dropped before poll fg state:DIALING
D/RILJ    (  762): [0369]> LAST_CALL_FAIL_CAUSE
D/RIL     (  129): onRequest: LAST_CALL_FAIL_CAUSE
D/AT      (  129): AT> AT+CEER
D/AT      (  129): AT< +CEER: "No report available"
D/AT      (  129): AT< OK
D/RILJ    (  762): [0369]< LAST_CALL_FAIL_CAUSE error: com.android.internal.telephony.CommandException: GENERIC_FAILURE

Yup, I think that might be the nail in the coffin.

I don't know anything about radio hardware, but I imagine it's cheaper to use data only components versus ones that support data and voice. If that's true, I'm not surprised that Assus decided to use the cheaper components. Whether this can be fixed with a different radio firmware or hardware hack is up to someone smarter than I, but it looks like we're stuck with data only.

---------- Post added at 09:34 AM ---------- Previous post was at 09:00 AM ----------

...Partial credits go to [email protected] who has fixed the apktool for Android 4.2 .

Can you please provide the link (or more info) on the fix for apktool? I can't find it and want to decompile my framework. Thanks!

---------- Post added at 09:56 AM ---------- Previous post was at 09:34 AM ----------

Nevermind found it the github commit. Built apktool and decompiled framework.

Ok, I enabled voice calling, but can't find the option to enable tethering...
 

H4CK_H0PP3R

Senior Member
Oct 9, 2012
371
43
Mumbai
Yup, I think that might be the nail in the coffin.

I don't know anything about radio hardware, but I imagine it's cheaper to use data only components versus ones that support data and voice. If that's true, I'm not surprised that Assus decided to use the cheaper components. Whether this can be fixed with a different radio firmware or hardware hack is up to someone smarter than I, but it looks like we're stuck with data only.

---------- Post added at 09:34 AM ---------- Previous post was at 09:00 AM ----------



Can you please provide the link (or more info) on the fix for apktool? I can't find it and want to decompile my framework. Thanks!

---------- Post added at 09:56 AM ---------- Previous post was at 09:34 AM ----------

Nevermind found it the github commit. Built apktool and decompiled framework.

Ok, I enabled voice calling, but can't find the option to enable tethering...

How did you enabled voice calling ? Is it possible?
 

phonic

Senior Member
May 30, 2008
1,130
412
Florida
How did you enabled voice calling ? Is it possible?

Yes and no. You can enable the FUNCTION of voice calling in the framework (it's in values/bools.xml). All this does is allow the dialer to come up. However, so far, no one has been able to actually get voice calls to work through it.

---------- Post added at 11:29 AM ---------- Previous post was at 11:16 AM ----------

Is there a reason why customized versions of framework.apk are half the size of the original?
 

NORCALkID

Senior Member
Jun 23, 2011
826
242
Yes and no. You can enable the FUNCTION of voice calling in the framework (it's in values/bools.xml). All this does is allow the dialer to come up. However, so far, no one has been able to actually get voice calls to work through it.

----------
lqqu at 11:29 AM ---------- Previous post was at 11:16 AM ----------


Is there a reason why customized versions of framework.apk are half the size of the original?

What do you mean by customized?... there's a difference between an odexed apk and deodexed apk and that will change the size of it.

Sent from my SPH-L710 using Tapatalk 2
 

phonic

Senior Member
May 30, 2008
1,130
412
Florida
What do you mean by customized?... there's a difference between an odexed apk and deodexed apk and that will change the size of it.

Sent from my SPH-L710 using Tapatalk 2

What I mean is, when I decompile, modify and recompile the framework.apk file, making only a 1 character change effectively, the filesize of the apk goes from ~9MB to ~5MB.
 

bpye

Retired Recognized Developer
Oct 8, 2010
476
234
I highly doubt the actual hardware is any different, it would be more expensive to produce two different pieces of silicon. They may be "disabled" physically, however I doubt it, it is most likely the radio's firmware.
 

stridger

Senior Member
Oct 8, 2010
104
93
I highly doubt the actual hardware is any different, it would be more expensive to produce two different pieces of silicon. They may be "disabled" physically, however I doubt it, it is most likely the radio's firmware.

I agree with that. It will be similar to the 3G Galaxy Tab, where you can enable the functionality through a custom radio:

http://forum.xda-developers.com/showthread.php?t=1875024

I don't know whether this was a leaked or a hacked radio, but I'm sure it must be possible in software, it just may be very hard.
 

cmstlist

Senior Member
Jan 11, 2010
3,362
521
Toronto
We're off topic here but just to point out, if it's a radio hack then part of the challenge is finding radio firmware for a comparable device that does have phone functionality enabled. On the Samsung devices, many of th em have parts in common that made it easy to cross flash radios.

Asus has not released very many phones as they have concentrated on the tablet market. Neither of the Padfones uses a Tegra 3 so I wouldn't imagine the radios would be cross compatible.
 

bohlool

Senior Member
Jun 21, 2010
100
12
details

Thanks for this. Would you please give more detail about how you did it? Where can I found the fixed apktool (latest one from google code site is not working for framework-res)?

Also after unpacking, which setting did you change to enable tethering?

PLEASE USE WITH CAUTION AND ONLY IF YOU KNOW WHAT YOU ARE DOING. I WILL NOT BE RESPONSIBLE FOR BRICKED DEVICES.

You may have noticed that the Nexus 7 3G does not have the tethering options enabled by default.

I couldn't live with that (that was partially the point why I got the 3G version), so have patched the framework to enable those options. Partial credits go to [email protected] who has fixed the apktool for Android 4.2 .

To get it to work just flash the ZIP below. It will only work on the newest JOP40C release, and obviously only if you have a 3G device. Please do not try it on the WiFi-only Nexus 7 :) .

Please note that it doesn't do a backup of the original framework-res.apk, so you can either make one yourself, or you can reflash the factory system image if you want to go back to stock later.

https://www.dropbox.com/s/f9c2jslwq6ht0hw/enabletether.zip
 

punshkin

Senior Member
Jan 6, 2010
1,021
257
Yes and no. You can enable the FUNCTION of voice calling in the framework (it's in values/bools.xml). All this does is allow the dialer to come up. However, so far, no one has been able to actually get voice calls to work through it.

---------- Post added at 11:29 AM ---------- Previous post was at 11:16 AM ----------

Is there a reason why customized versions of framework.apk are half the size of the original?

people have suggested, a build.prop modification might work - however noone has tried it yet. Have you tried this before? might be worth a shot
 

Top Liked Posts

  • There are no posts matching your filters.
  • 48
    PLEASE USE WITH CAUTION AND ONLY IF YOU KNOW WHAT YOU ARE DOING. I WILL NOT BE RESPONSIBLE FOR BRICKED DEVICES.

    You may have noticed that the Nexus 7 3G does not have the tethering options enabled by default.

    I couldn't live with that (that was partially the point why I got the 3G version), so have patched the framework to enable those options. Partial credits go to [email protected] who has fixed the apktool for Android 4.2 .

    To get it to work just flash the ZIP below. It will only work on the JOP40D and JOP40C releases, and obviously only if you have a 3G device. Please do not try it on the WiFi-only Nexus 7 :) .

    Please note that it doesn't do a backup of the original framework-res.apk, so you can either make one yourself, or you can reflash the factory system image if you want to go back to stock later.

    4.2.1 (JOP40D):
    https://www.dropbox.com/s/oti37qsc265me8t/enabletether-JOP40D.zip

    4.2 (JOP40C):
    https://www.dropbox.com/s/9tswcvz50op8rfu/enabletether-JOP40C.zip
    6
    I really would appreciate flashable zip to enable tethering for 4.3.:sly:
    Thanks in advance !

    Sent from my Nexus 7 using xda app-developers app

    Hi i just pulled the file decompressed it and it works for me i will aditionally put a small guide here:

    after pulling framework-res.apk and decompiling modify the following lines in /res/values/arrays.xml

    <array name="config_tether_usb_regexs" />
    <array name="config_tether_wifi_regexs" />
    <array name="config_tether_wimax_regexs" />
    <array name="config_tether_bluetooth_regexs" />
    <array name="config_tether_dhcp_range" />
    <array name="config_mobile_hotspot_provision_app" />
    <array name="config_tether_upstream_types" />

    to

    <string-array name="config_tether_usb_regexs">
    <item>rndis\\d</item>
    </string-array>
    <string-array name="config_tether_wifi_regexs">
    <item>wlan\\d</item>
    </string-array>
    <array name="config_tether_wimax_regexs" />
    <string-array name="config_tether_bluetooth_regexs">
    <item>bnep\\d</item>
    </string-array>
    <array name="config_tether_dhcp_range" />
    <array name="config_mobile_hotspot_provision_app" />
    <integer-array name="config_tether_upstream_types">
    <item>0</item>
    <item>1</item>
    <item>5</item>
    <item>7</item>
    </integer-array>

    recompile the framework-res.apk sign it and u are ready to go.

    Here are the links for the stock framework and the tether mod:

    Stock Framework 4.3
    Tether enabled

    U can flash them with sideload and i recommend a cache wipe after it.

    HF
    5
    Hi Folks,

    as far i could tell there are no diferences in the stock framework-res.apk but i think i fixed the bootloop error on first install and i made a new enable tether file for jwr66y anyways hf flashing.

    Enable Tether jwr66y
    5
    https://docs.google.com/file/d/0B94bfpTec3GpdWpjclNteGhOQmM/edit
    Successfully flashed this over 4.2.2
    Worked on first boot without problems. Currently tethering over wifi.

    Sent from my Nexus 7 using xda premium
    5
    bootloop even with 3rd try :(

    Try this version. It's works for Me.

    8953c95366caf1e9ab6a9f50f7337f1e thether-JDQ39.zip

    Flashed via TWRP without any problems, bootloops.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone