History log of /frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
07f48ad0dfe8d0b01f56cd33c06ad87c178e0123 01-May-2016 Daichi Hirono <hirono@google.com> Do not terminate AppFuse message loop when FUSE_FORGET.

Currently AppFuse tries to terminate its message loop when it receives
FUSE_FORGET. But kernel continues to dispatch messages after FUSE_FORGET
and it should not terminate AppFuse meesage loop.

Change-Id: I070a71c35a8d80bcaaf7603305d219e65be97bc9
Fixes: 28508169
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
f4e7fa80384ac72d0228ca5de6e949a9162cefbf 28-Mar-2016 Daichi Hirono <hirono@google.com> Use AppFuse to write document.

Previously MtpDocumentsProvider used pipes to transfer bytes from an
application to the provider when writing a document. The problem was
application could not ensure that the last chunk of bytes was
successfully written to MTP device, since pipes had been already closed
when the provider transferred bytes to MTP device. Though the provider
encountered an error, the provider could not report the error to an
application.

The CL switches the method to transfer bytes from pipes to AppFuse. Now
application can flush() bytes on the file descriptor, and flush will not
complete until the provider completes writing bytes to MTP device.

Fixed: 23093747
Change-Id: I4e28f8cbf19d6c97e591943349a7535241d768f7
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
77a1c65610618891ba28d7a10e4f107ea27e392e 28-Mar-2016 Daichi Hirono <hirono@google.com> Open 4G+ file by using AppFuse.

To open files by using AppFuse, the provider needs to know the size of
file. Previously we cannot open 4G+ files because we cannot obtain file
size for such large files.

Now MtpDatabase contains correct size for 4GB+ file size. The CL starts
opening files by using AppFuse which obtains partial bytes by using
getObjectPartial64 operation.

FIXED=26840097

Change-Id: I1cb41972175c2b98f4aa76981decc6b3ad35486d
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
09ece6c68bdaf3a04b517f04dff6a3272b54b2b2 20-Jan-2016 Daichi Hirono <hirono@google.com> Implement FUSE_WRITE command in app fuse.

The CL adds a handler for FUSE_WRITE command which invokes a Java
handler.

BUG=23093747

Change-Id: I1903fca6b5663e6241ad540a89fe812310ba6810
(cherry picked from commit 35693da25af11583053d4af6a70d4acbf446978d)
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
0f32537e40ee2662d4f0b7b625ee280ca9c02066 21-Feb-2016 Daichi Hirono <hirono@google.com> Stops performing operations that does not supported by MTP device.

MTP devices can return supported operation list. The CL sets root flag
by referring it.

BUG=26147375

Change-Id: I02397821e208cf5a8fcf7457aa279d2818ce24c7
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
2f310f6d5d352817f42384394b50a660ad6e0bf8 26-Jan-2016 Daichi Hirono <hirono@google.com> Reuse buffer when reading bytes from files.

Previously AppFuse getObjectBytes returns byte array and the array's
length needs to equals to the exact number of bytes the method read.

The CL change the function signature so that it can return the number of
read bytes. And reuse a buffer array instead of slicing the array with
valid length.

BUG=None

Change-Id: I78b714554cac9ae71b895cb8929bc98969f5a8ca
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
e6054c0ff07005c73bd10a362f039933dc00f8bd 20-Jan-2016 Daichi Hirono <hirono@google.com> Fix race in AppFuseTest.

Previously IllegalStateException is thrown in app fuse main loop, if the
loop thread starts just after closing device FD.

BUG=None

Change-Id: Ia5232857d29f9f324446aa38acf3c062f359d406
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
f52ef008c76566f7118a80bf28f599ba48d7c578 11-Jan-2016 Daichi Hirono <hirono@google.com> Start to use app fuse in MtpDocumentsProvider.

BUG=25756419

Change-Id: I050e7cf7523926710291875737602e95c47be088
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
cc9a7d78d519aa25b4afbc96afd401be75696dda 28-Oct-2015 Daichi Hirono <hirono@google.com> Implement FUSE operations in AppFuse JNI.

The CL adds the following operations.

* FUSE_LOOKUP
* FUSE_OPEN
* FUSE_READ
* FUSE_RELEASE
* FUSE_FLUSH

BUG=25756145

Change-Id: Ib57d7d0ade3343a604a1c40e4b2c2a2d089f3715
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
91e3b50636f48f0860fa7576f185fb36ec4e6dc7 16-Dec-2015 Daichi Hirono <hirono@google.com> Unmount appfuse when the device FD is closed.

The CL lets MountService to observe device FD, and request unmount to
vold when the device FD was closed, or remote application providing
appfuse is crashed.

BUG=25756420

Change-Id: I7990694d32affa7f89e3f40badb25098d74d744d
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java
bee50c05439191d88df37f20749fff1c700d9684 14-Dec-2015 Daichi Hirono <hirono@google.com> Add AppFuse class and its JNI module.

BUG=25756145

Change-Id: I10597e3377cf860412e006a118cd979b6f108af3
/frameworks/base/packages/MtpDocumentsProvider/src/com/android/mtp/AppFuse.java