{"id":3701,"date":"2011-08-17T22:24:29","date_gmt":"2011-08-17T19:24:29","guid":{"rendered":"http:\/\/vaxxi.net\/log\/?p=3701"},"modified":"2011-08-17T22:26:14","modified_gmt":"2011-08-17T19:26:14","slug":"android-reverse-tethering-on-mac-os-x","status":"publish","type":"post","link":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/","title":{"rendered":"android reverse tethering on mac os x"},"content":{"rendered":"<p>Everyone knows what tethering is: using your mobile phone&#8217;s data plan to get Internet on your laptop. Well, here&#8217;s the concept of <strong>reverse tethering<\/strong>: you don&#8217;t have a mobile data plan or a WiFi connection available for your smartphone, but you have a WiFi connection available for your laptop. Therefore, you want to use <b>your laptop&#8217;s WiFi internet connection<\/b> to <b>get internet on your Android phone<\/b>. <\/p>\n<p><!--more--><\/p>\n<p><em>When might this be useful ?<\/em> you might ask. Well, here I am in a hotel room where my phone can&#8217;t connect to wifi (either a CyanogenMod fault or a phone hardware problem). I can&#8217;t use the WiFi Internet sharing included in Mac OS X, because the WiFi is already used for Internet. On Windows\/Linux, <a href=\"http:\/\/blog.mycila.com\/2010\/06\/reverse-usb-tethering-with-android-22.html\">it&#8217;s quite easy to do<\/a>. What about Mac OS X ?<\/p>\n<p>Well, it seems Android&#8217;s reverse tethering is based on a Microsoft protocol (ha-ha, the irony). Although it&#8217;s specifications are public, it&#8217;s not implemented in Mac OS X at all and probably will never be. You could try <a href=\"http:\/\/projects.goldelico.com\/p\/AJZaurusUSB\/\">AJZaurusUSB<\/a>, which makes your USB device appear as a network interface to Mac OS X. It&#8217;s easy then to use Mac OS X&#8217;s Internet Sharing to give Internet access to the device connected on USB.<\/p>\n<p>For me, AJZaurusUSB didn&#8217;t work unfortunately. It installed successfully, but no new network interface appeared. What to do, what to do ? Hmm. We have Bluetooth, don&#8217;t we ? Go to Mac OS X&#8217;s System Panel, Network, add a new network interface (&#8220;+&#8221; button in bottom left), choose &#8220;Bluetooth PAN&#8221; and set up your Android phone. Get the wizard done and press &#8220;Connect&#8221;. You&#8217;ll get a new &#8220;Bluetooth PAN&#8221; network interface in the left list (it was en2 on my laptop, with en0 being Ethernet and en1 being the Wifi interface). <\/p>\n<p>Now, go back to system panel and into Sharing. Go to Internet Sharing and &#8220;Share your connection from Airport&#8221; &#8220;To computers using: Bluetooth PAN&#8221;. I assume this is the equivalent of masquerading, which could be also achieved on Linux with:<\/p>\n<p><code><br \/>\niptables -A FORWARD -i tap0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT<br \/>\niptables -A POSTROUTING -t nat -o tap0 -j MASQUERADE<br \/>\niptables -A INPUT -i usb0 -j ACCEPT<br \/>\niptables -A FORWARD -i usb0 -o tap0 -j ACCEPT<br \/>\n<\/code><\/p>\n<p>And that&#8217;s it ! browser will work, email will work, maps will work&#8230; except Market \ud83d\ude41 it seems Android applications which access the network are relying on ConnectivityService to find out if there&#8217;s a network connection available. Our method doesn&#8217;t make ConnectivityService think we&#8217;re online. You can read more about ConnectivityService not being notified <a href=\"http:\/\/comments.gmane.org\/gmane.comp.handhelds.android.porting\/12028\">here<\/a>, unfortunately there seems to be no other solution other than recompiling it. Bummer.<\/p>\n<p>Seems to be quite an omission from Google, considering even the old Windows Mobile was able to do this. However, in this world of &#8220;always connected\/wifi everywhere&#8221; (except here :-D) probably nobody will bother to fix this. It seems HTC offered an &#8220;<a href=\"http:\/\/www.htc.com\/sea\/faqs.aspx?p_id=324&#038;cat=264&#038;id=149702\">Internet passthrough<\/a>&#8221; mode for the new devices, but it&#8217;s Windows only and requires HTC Sync to be installed.<\/p>\n<p>References: <a href=\"http:\/\/superuser.com\/questions\/188636\/connect-android-to-internet-using-usb-tether-through-laptops-newtwork\">[1]<\/a>, <a href=\"http:\/\/blog.mycila.com\/2010\/06\/reverse-usb-tethering-with-android-22.html\">[2]<\/a>, <a href=\"http:\/\/wordpress.metro.cx\/2011\/06\/17\/reverse-tethering-for-android\/\">[3]<\/a> , <a href=\"http:\/\/forum.xda-developers.com\/showthread.php?p=8236341\">[4]<\/a>, <a href=\"http:\/\/forum.xda-developers.com\/showthread.php?t=666988&#038;page=2\">[5]<\/a>, <a href=\"http:\/\/comments.gmane.org\/gmane.comp.handhelds.android.porting\/12028\">[6]<\/a>, <a href=\"http:\/\/blog.brightpointuk.co.uk\/using-internet-passthrough-mode-htc-desire-z-and-desire-hd\">[7]<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Everyone knows what tethering is: using your mobile phone&#8217;s data plan to get Internet on your laptop. Well, here&#8217;s the concept of reverse tethering: you don&#8217;t have a mobile data plan or a WiFi connection available for your smartphone, but you have a WiFi connection available for your laptop. Therefore, you want to use your<a class=\"continue-link\" href=\"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/\">&#8230;(Continue Reading)<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[29,181,139],"class_list":["post-3701","post","type-post","status-publish","format-standard","hentry","category-gadgets","tag-android","tag-gadgets","tag-mac-os-x"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>android reverse tethering on mac os x<\/title>\n<meta name=\"description\" content=\"Everyone knows what tethering is: using your mobile phone&#039;s data plan to get Internet on your laptop. Well, here&#039;s the concept of reverse tethering: you\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"VAXXi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/\"},\"author\":{\"name\":\"VAXXi\",\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/#\\\/schema\\\/person\\\/94a50a82939211f624b6bf7579d2f752\"},\"headline\":\"android reverse tethering on mac os x\",\"datePublished\":\"2011-08-17T19:24:29+00:00\",\"dateModified\":\"2011-08-17T19:26:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/\"},\"wordCount\":488,\"commentCount\":2,\"keywords\":[\"android\",\"gadgets\",\"mac os x\"],\"articleSection\":[\"gadgets\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/\",\"url\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/\",\"name\":\"android reverse tethering on mac os x\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/#website\"},\"datePublished\":\"2011-08-17T19:24:29+00:00\",\"dateModified\":\"2011-08-17T19:26:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/#\\\/schema\\\/person\\\/94a50a82939211f624b6bf7579d2f752\"},\"description\":\"Everyone knows what tethering is: using your mobile phone's data plan to get Internet on your laptop. Well, here's the concept of reverse tethering: you\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/android-reverse-tethering-on-mac-os-x\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"VAXXiNET\",\"item\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"android reverse tethering on mac os x\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/#website\",\"url\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/\",\"name\":\"\",\"description\":\"There must be some way out of here\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vaxxi.net\\\/log\\\/#\\\/schema\\\/person\\\/94a50a82939211f624b6bf7579d2f752\",\"name\":\"VAXXi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/133cb32f29e4500787dc50b17f325e4d69b66c0126b8fedd4c15a8e850f06b21?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/133cb32f29e4500787dc50b17f325e4d69b66c0126b8fedd4c15a8e850f06b21?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/133cb32f29e4500787dc50b17f325e4d69b66c0126b8fedd4c15a8e850f06b21?s=96&d=mm&r=x\",\"caption\":\"VAXXi\"},\"sameAs\":[\"http:\\\/\\\/vaxxi.net\\\/log\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"android reverse tethering on mac os x","description":"Everyone knows what tethering is: using your mobile phone's data plan to get Internet on your laptop. Well, here's the concept of reverse tethering: you","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/","twitter_misc":{"Written by":"VAXXi","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/#article","isPartOf":{"@id":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/"},"author":{"name":"VAXXi","@id":"https:\/\/vaxxi.net\/log\/#\/schema\/person\/94a50a82939211f624b6bf7579d2f752"},"headline":"android reverse tethering on mac os x","datePublished":"2011-08-17T19:24:29+00:00","dateModified":"2011-08-17T19:26:14+00:00","mainEntityOfPage":{"@id":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/"},"wordCount":488,"commentCount":2,"keywords":["android","gadgets","mac os x"],"articleSection":["gadgets"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/","url":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/","name":"android reverse tethering on mac os x","isPartOf":{"@id":"https:\/\/vaxxi.net\/log\/#website"},"datePublished":"2011-08-17T19:24:29+00:00","dateModified":"2011-08-17T19:26:14+00:00","author":{"@id":"https:\/\/vaxxi.net\/log\/#\/schema\/person\/94a50a82939211f624b6bf7579d2f752"},"description":"Everyone knows what tethering is: using your mobile phone's data plan to get Internet on your laptop. Well, here's the concept of reverse tethering: you","breadcrumb":{"@id":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vaxxi.net\/log\/android-reverse-tethering-on-mac-os-x\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"VAXXiNET","item":"https:\/\/vaxxi.net\/log\/"},{"@type":"ListItem","position":2,"name":"android reverse tethering on mac os x"}]},{"@type":"WebSite","@id":"https:\/\/vaxxi.net\/log\/#website","url":"https:\/\/vaxxi.net\/log\/","name":"","description":"There must be some way out of here","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vaxxi.net\/log\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/vaxxi.net\/log\/#\/schema\/person\/94a50a82939211f624b6bf7579d2f752","name":"VAXXi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/133cb32f29e4500787dc50b17f325e4d69b66c0126b8fedd4c15a8e850f06b21?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/133cb32f29e4500787dc50b17f325e4d69b66c0126b8fedd4c15a8e850f06b21?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/133cb32f29e4500787dc50b17f325e4d69b66c0126b8fedd4c15a8e850f06b21?s=96&d=mm&r=x","caption":"VAXXi"},"sameAs":["http:\/\/vaxxi.net\/log\/"]}]}},"_links":{"self":[{"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/posts\/3701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/comments?post=3701"}],"version-history":[{"count":7,"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/posts\/3701\/revisions"}],"predecessor-version":[{"id":3707,"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/posts\/3701\/revisions\/3707"}],"wp:attachment":[{"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/media?parent=3701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/categories?post=3701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vaxxi.net\/log\/wp-json\/wp\/v2\/tags?post=3701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}