{"id":174,"date":"2013-02-18T13:52:32","date_gmt":"2013-02-18T21:52:32","guid":{"rendered":"http:\/\/intr.overt.org\/blog\/?p=174"},"modified":"2013-02-18T13:52:32","modified_gmt":"2013-02-18T21:52:32","slug":"normal-file-readwrite-support-with-the-gvfs-mtp-backend","status":"publish","type":"post","link":"https:\/\/blog.intr.overt.org\/?p=174","title":{"rendered":"Normal file read\/write support with the GVFS MTP backend!"},"content":{"rendered":"<p>A couple of weeks ago, Han-Wen Nienhuys, the author of <a href=\"https:\/\/github.com\/hanwen\/go-mtpfs\">go-mtpfs<\/a>, pointed out to me that Android&#8217;s MTP implementation includes a set of methods that allow you to do normal read and write operations on files without having to do the whole download\/upload dance. With these extensions, you can expose files in the way that most people expect &#8211; you can just open a text file, picture, video etc, make changes and save it back. As a bonus, this functionality also allows you to do very useful operations like copy or move a file on the device.<\/p>\n<p>I&#8217;ve now had a chance to put together an initial implementation of support for these extensions, and my PPA is in the process of rebuilding packages, so people can try them out easily. I&#8217;ve not started the upstreaming process on the GVFS changes as I still need to get the libmtp changes approved and upstreamed, but the libmtp maintainer has been AWOL for a few weeks now.<\/p>\n<p>Obviously, it&#8217;s important to remember that these extensions are Android specific and won&#8217;t help you if you have a non-Android device, nor if your Android device doesn&#8217;t use Google&#8217;s MTP implementation (which, unfortunately, includes most Samsung devices).<\/p>\n<p>You can grab Ubuntu packages from my <a href=\"https:\/\/launchpad.net\/~langdalepl\/+archive\/gvfs-mtp\">ppa<\/a> and the source is available on my <a href=\"https:\/\/github.com\/philipl\">github page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of weeks ago, Han-Wen Nienhuys, the author of go-mtpfs, pointed out to me that Android&#8217;s MTP implementation includes a set of methods that allow you to do normal read and write operations on files without having to do the whole download\/upload dance. With these extensions, you can expose files in the way that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-174","post","type-post","status-publish","format-standard","hentry","category-the-wonderful-world-of-gnome"],"_links":{"self":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/posts\/174"}],"collection":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=174"}],"version-history":[{"count":0,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/posts\/174\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}