[Sprint LG G2] galets:
I cannot for the life of me get the hotspot actually working. I am able using the method you quoted (as well as some other methods) to get hotspot activate and allow other devices to connect. But the phone will not route their traffic. I am able to ping as far as the phone IP address goes, but it will not route further. As a result, it looks like a laptop is connected to hotspot, but it can't browse. I verified that the phone itself can access internet while it's running hotspot.

I have this problem on UltraPOP as well as stock rooted ZVG.

I tried updating carrier partition, as well as I did use the method where the files are copied to directly /carrier

If that helps, I am on Ring+ (Sprint MVNO).

Anyone can share if they can actually access the internet after connecting to hotspot?

**EDIT:** I adb'ed to the phone as it was in hotspot mode. It can ping 8.8.8.8 itself, but not the laptop connected to it. Here's the dump of my iptables on the phone as the laptop is connected to it, maybe it will help:

root@g2:/ # iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
bw_INPUT all -- anywhere anywhere
fw_INPUT all -- anywhere anywhere
fweps_INPUT all -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
oem_fwd all -- anywhere anywhere
fweps_FORWARD all -- anywhere anywhere
fw_FORWARD all -- anywhere anywhere
bw_FORWARD all -- anywhere anywhere
natctrl_FORWARD all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
DROP udp -- anywhere anywhere udp dpt:1900 /* Drop SSDP on WWAN */
oem_out all -- anywhere anywhere
fweps_OUTPUT all -- anywhere anywhere
fw_OUTPUT all -- anywhere anywhere
bw_OUTPUT all -- anywhere anywhere
voice_protection all -- anywhere anywhere

Chain bw_FORWARD (1 references)
target prot opt source destination

Chain bw_INPUT (1 references)
target prot opt source destination
all -- anywhere anywhere ! quota globalAlert: 2097152 bytes
bw_costly_rmnet0 all -- anywhere anywhere
all -- anywhere anywhere owner socket exists

Chain bw_OUTPUT (1 references)
target prot opt source destination
all -- anywhere anywhere ! quota globalAlert: 2097152 bytes
bw_costly_rmnet0 all -- anywhere anywhere
all -- anywhere anywhere owner socket exists

Chain bw_costly_rmnet0 (2 references)
target prot opt source destination
bw_penalty_box all -- anywhere anywhere
REJECT all -- anywhere anywhere ! quota rmnet0: 9223372036854775807 bytes reject-with icmp-port-unreachable

Chain bw_costly_shared (0 references)
target prot opt source destination
bw_penalty_box all -- anywhere anywhere

Chain bw_happy_box (0 references)
target prot opt source destination

Chain bw_penalty_box (2 references)
target prot opt source destination

Chain fw_FORWARD (1 references)
target prot opt source destination

Chain fw_INPUT (1 references)
target prot opt source destination

Chain fw_OUTPUT (1 references)
target prot opt source destination

Chain fweps_FORWARD (1 references)
target prot opt source destination

Chain fweps_INPUT (1 references)
target prot opt source destination

Chain fweps_OUTPUT (1 references)
target prot opt source destination

Chain natctrl_FORWARD (1 references)
target prot opt source destination
DROP all -- anywhere anywhere

Chain natctrl_tether_counters (0 references)
target prot opt source destination

Chain oem_fwd (1 references)
target prot opt source destination

Chain oem_out (1 references)
target prot opt source destination

Chain voice_protection (1 references)
target prot opt source destination

root@g2:/ # iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
oem_nat_pre all -- anywhere anywhere

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
natctrl_nat_POSTROUTING all -- anywhere anywhere

Chain natctrl_nat_POSTROUTING (1 references)
target prot opt source destination

Chain oem_nat_pre (1 references)
target prot opt source destination
root@g2:/ #

... and yes, ip_forward is 1

root@g2:/ # cat /proc/sys/net/ipv4/ip_forward
1