Recently google updated ADB service. And added reverse command that should do the job.
From reverse documentation:
This implements the
adb reversefeature, i.e. the ability to reverse
socket connections from a device to the host.<forward-command>is one
of the forwarding commands that are described above, as in:
list-forwardforward:<local>;<remote>forward:norebind:<local>;<remote>killforward-allkillforward:<local>Note that in this case,
<local>corresponds to the socket on the device
and<remote>corresponds to the socket on the host.The output of
reverse:list-forwardis the same as host:list-forward
except that<serial>will be justhost.