127 Commits

Author SHA1 Message Date
Mike Lockwood
8334038f9e MtpServer: Pass 0xFFFFFFFF for file size when receiving files >= 4GB in size
Bug: 5432487

Change-Id: Ie86e72d9d85476941eab6a9d271948b8fdde6926
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-13 11:38:20 -04:00
Mike Lockwood
de6d73acec MTP: Use a single packet for the data phase
instead of sending 12 byte header in a separate packet.
PTP on the Mac is much happier with this approach.

Change-Id: I7d1ca498f6346afd88876d24332187b466fc469c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-07-17 15:53:53 -04:00
Mike Lockwood
dcc31946f2 MTP: Clean up MtpServer initialization and threading:
Move thread from native to Java code
Remove the stop() method (the thread will exit on its own)

Change-Id: Ib897c3630162f82669a4ee8c187e8172da50b29d
2011-07-13 09:44:42 -04:00
Jeff Brown
bd882b1c87 Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
2011-07-11 22:12:16 -07:00
Mike Lockwood
7a59dd2ce3 MTP: Return error if user tries to copy a file >= 4GB to a FAT32 file system
Bug: 4561836

Change-Id: I2bffb93b032038f6c220c24c752ccd7ca66c23a0
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-07-11 13:40:02 -04:00
Mike Lockwood
7d40d42a36 MTP: Add support for PTP variant of GetDeviceInfo result.
Change-Id: I09f86fda768b7697665e401adb9516588859bf59
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-21 08:27:06 -04:00
Mike Lockwood
6acc90fc21 MTP: Fix some problems with GetObjectHandles and GetNumObjects commands
These calls did not correctly handle some variants of the arguments,
which showed up when running in PTP mode.

Change-Id: Iedbaefebfa39111c8bcaee7c6cc3820a65d6c98f
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-17 19:49:05 -04:00
Mike Lockwood
51690544aa MTP: Have GetStorageInfo command return correct storage type for removable storage
Change-Id: I09b548483c12080e7d77970babcae2eef379f2f4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-16 14:29:45 -04:00
Mike Lockwood
710a206445 DO NOT MERGE MTP: Implement GetThumb command
This allows the PC to access thumbnails in JPEG files over MTP/PTP

Bug: 3219495

Change-Id: Id61f353ba70e896fae9a47338bf7871c0f185d3e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-03 21:03:57 -04:00
Mike Lockwood
7fc3bebb5e DO NOT MERGE MTP: Fix file descriptor leak in file editing extensions
Change-Id: Ie0b979b5cfd9b5f9e9196c5f8c8ecccef6ed84c3
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-03 21:03:57 -04:00
Mike Lockwood
371279f802 DO NOT MERGE MTP: Add extended operations to support in-place editing of files
MTP does not support partial writes of files (the entire file must be transferred at once).
This makes it impossible to implement a FUSE file system for MTP
with acceptable performance.
To fix this problem, this change adds extended MTP operations to allow
partial writes to files:

SendPartialObject - allows writing a subset of a file, or appending to the end of a file

TruncateObject - allows changing the size of a file

BeginEditObject - must be called before using SendPartialObject and TruncateObject

EndEditObject - commits changes to a file after it has been edited with SendPartialObject or TruncateObject

We also add GetPartialObject64, which is the same as GetPartialObject
but has a 64 bit offset rather than 32.

Change-Id: Id5365e1c4dc55a2d819c16c9db0a3ac2260f9309
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-03 21:03:56 -04:00
Mike Lockwood
7ae938be1b DO NOT MERGE MTP and media provider support for multiple storage devices:
- MTP support for multiple storage units

- Add storage_id column to media database for MTP storage ID

- Add framework resource for defining mount points and user visible descriptions
for multiple volumes

- Clean up locking in MtpServer JNI code

Change-Id: Ide6d47bd9aa1698ed2a13d695613e03f2a9b29e3
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-03 21:03:56 -04:00
Mike Lockwood
90f5d75cf0 MtpDevice: Handle zero length packets in readResponse()
Bug: 3509060

Change-Id: I291eefeaa667688c9e6e75da74ec3025b84065e9
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-14 10:33:22 -04:00
Mike Lockwood
bcc0516bc8 MTP host: Fix problems reading large data packets
Fixes problem reading large thumbnails via PTP

Bug: 4065217

Change-Id: I643672512829c93ab0827091f39103dbb1918071
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-12 14:03:23 -05:00
Mike Lockwood
467ca0de6d MTP: Add support for dynamically adding and removing storage units
BUG: 3402847

Change-Id: I7da266061d949abcb6bb11c6faaa47b5e4a2a977
2011-02-22 13:57:23 -08:00
Mike Lockwood
8c553b9003 MTP host: disable some test code
Change-Id: I2237ad88f73b03a2c324f17267c52cc42b8a0d5b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-15 14:55:51 -05:00
Mike Lockwood
321aa99762 MTP host: Use usb_device_bulk_transfer for synchronous transfers
Change-Id: Icf42ea0e5a848cee1565da49713ee9ad0db9f1a6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-14 08:17:44 -05:00
Kenny Root
3d384f8edb Fix some memory leaks found in static analysis
Change-Id: Icd630009793c51acfaed45763ef50489ead40024
2011-02-02 14:07:10 -08:00
Mike Lockwood
4639532261 MTP: Use ro.product.manufacturer system property value for MTP manufacturer name
Previously it was hard coded to "Google, Inc."

BUG: 3405965

Change-Id: I5f962d474814c22e990c39b501c0f01da9e8dc6d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-31 17:11:24 -05:00
Mike Lockwood
1fce24b241 Add support for synchronous bulk USB transfers
Change-Id: Id5de49e4d728a702fa1583ecc24f83f36cc57d21
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-27 16:22:15 -08:00
Mike Lockwood
82cb6731a0 am bd65c065: am a13732e1: Merge "MTP: Fix month off by one error in date parsing and formatting code" into honeycomb
* commit 'bd65c065b2dcb54dde563a8a21c9f92da947c7dd':
  MTP: Fix month off by one error in date parsing and formatting code
2011-01-26 15:34:15 -08:00
Mike Lockwood
2107d23fc9 MTP: Fix month off by one error in date parsing and formatting code
BUG: 3379100

Change-Id: Ib386f0def9d611529ce0528b8159cef48df9cd85
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-26 15:11:48 -08:00
Mike Lockwood
47063a859a Merge "New APIs for MTP and PTP host support" 2011-01-22 15:59:28 -08:00
Mike Lockwood
8182e72479 New APIs for MTP and PTP host support
This replaces the previous ContentProvider based interface

Change-Id: I4cea2544854adb9fdcc04345e4d73d8ef05380f3
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-22 15:56:09 -08:00
Mike Lockwood
f26a586c86 Remove MTP related log spam
Change-Id: I9de1792cbeec07fa5ab42ff9a10813f0c3d30fc1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-21 21:00:54 -08:00
Mike Lockwood
7a0bd17bce MTP: Fix problems with modification dates for folders and non-media files
Also removed an unnecessary parameter to MtpDatabase.endSendobject()

BUG: 3352142

Change-Id: I6fd812dcba4814956bc8bc1cbd6bd5c868197790
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-18 11:07:11 -08:00
Mike Lockwood
27480cd494 Remove support for obsolete PTP content provider
This will be replaced by a new PTP host API in an upcoming commit.

Change-Id: Ib914194e332b5c090cb8e34ed35bd691bc9f85d1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-06 11:47:56 -05:00
Mike Lockwood
215b682b8a MTP: changes to use new usb_request support in libusbhost
Change-Id: Ic091eab166a66efcde0395dcebbbc513f2322fca
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-06 11:46:55 -05:00
Mike Lockwood
da03aaad78 Change libusbhost and libmtp from static to shared libraries
Change-Id: Iccc67db32400cdeb88aa33261c9e0cf73db992ca
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-29 09:12:15 -05:00
Mike Lockwood
bafca214ea MTP: check for replacing existing files via the database instead of the file system
Change-Id: I283dab48f24d2836e48fab8e49764a9cdf13de55
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-13 21:50:09 -08:00
Mike Lockwood
7f36b19b6b MTP: Add support for reserve storage setting to avoid low storage situations.
Set resource config_mtpReserveSpaceMegabytes to number of megabytes to reserve.
If MTP has dedicated storage this value should be zero, but if MTP is
sharing storage with the rest of the system, set this to a positive value
to ensure that MTP activity does not result in the storage being
too close to full.

BUG: 3250924

Change-Id: I881c87240da268bad1ea1b99ad03673ab85ffdbf
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-12 12:17:43 -08:00
Mike Lockwood
bfd1d72a1a MTP host: Handle receiving a response packet instead of data packet.
This will happen if the device needs to report an error rather than returning the data.

Change-Id: I477512b3676c2f0518a85a4135832ed4475fbc2d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-09 18:34:18 -08:00
Mike Lockwood
365e03e494 MTP: Improve argument checking in SendObjectInfo
In particular, make sure the parent is a folder and make sure file
does not already exist.

Change-Id: Ifa870faba3285f03a92025d9e82f93fed78a761c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-08 16:09:37 -08:00
Mike Lockwood
a194cc7d8b MTP: Support format argument in host GetObjectPropDesc command
Change-Id: Ic14313c0f95bea1d1d475cc6a001b256fccb91c8
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-07 18:53:04 -08:00
Mike Lockwood
bf1dbd1938 MTP: Read property code before calling isDeviceProperty in MtpProperty::read()
Change-Id: I0b1493f3af5d9caac08327f9ffba91ee255d3d55
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-07 17:16:20 -08:00
Mike Lockwood
e4880e421f MTP: Improve MtpProperty logging support
Change-Id: I46800b99763edcc5e994d912941f9f5e9b1c94d2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-07 17:13:12 -08:00
Mike Lockwood
5768f1089b MTP: Host support for GetObjectPropsSupported and GetObjectPropDesc
Change-Id: I6fd23587597fc68227dfb61118b097eda3e3e1d5
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-07 10:58:56 -08:00
Mike Lockwood
4cb956cc58 MTP: Use correct return type for getSupportedObjectProperties
Change-Id: I6d5bd63fecaa3384dfa1b97dbc0d89ea5668981f
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-07 10:51:20 -08:00
Mike Lockwood
87626b1d01 Revert "MTP: Remove static library build for linux host."
This reverts commit d46c683f0e13ad9341ba83453835f6658ae5ad15.

Change-Id: I7e56760c92bad1d66d4a1f2415328a4d2138de84
2010-12-07 10:45:22 -08:00
Mike Lockwood
7d7fb63071 MTP: Add support for multiple properties in GetObjectPropList command
Change-Id: Ib469a6c8141937aaa3e811345056195117abb4b2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-02 08:16:12 -05:00
Mike Lockwood
9dfc7de2cc MTP: Make sure buffer is big enough before reading the data packet
Fixes buffer overflow when transferring large playlists.

Change-Id: I1b7feaf9e56d849e5b6609f0f68a6aa5a3ae1ea8
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-30 12:19:41 -05:00
Mike Lockwood
e3634c3a80 MTP: Fix typo in MtpServer::doGetObjectPropList
Change-Id: Ia5fec45a238c49a6797a4ac55457ddb5d6521408
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 18:45:25 -05:00
Mike Lockwood
44e82ddaec MTP: Implement GetPartialObject command
Allows host to read partial contents of files on the device

Change-Id: I74927f7394224d674e1d150a4b72a51d9358459b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 18:45:01 -05:00
Mike Lockwood
5b19af05f2 MTP: Use DateTime form in GetObjectPropDesc for date/time properties.
Change-Id: I5a3c0b07a9f2958b86947256606e6a824dbe93a6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 18:38:55 -05:00
Mike Lockwood
5a2755d0c9 Rename MtpCursor to PtpCursor
Change-Id: I8ce257641388b195f3e17995d323355b19355dc1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 12:25:49 -05:00
Mike Lockwood
d46c683f0e MTP: Remove static library build for linux host.
Change-Id: Iefdd386b91dba0579ca952aca40b7114535e1d4e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 10:30:31 -05:00
Mike Lockwood
929b3da2fc PTP: Fix permissions problems with files imported via PTP
Change-Id: I630a89c67e5b3d6d0c29e6c257f84e1909fa4de2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-19 13:55:22 -05:00
Mike Lockwood
954c267725 PTP: Improve performance and reliability of file importing
Now the file copy is done completely within the media process
rather than pushing data to the client via ContProvider.openFile().

File system writes are now interleaved with USB reads, which allows us
to copy the data faster and prevents the camera from timing out during transfer.

File is automatically inserted in the media provider after a successful import
and a Uri is returned to the client.

BUG: 2994234

Change-Id: Ie75c63da76f623343d3d966c6a707aa1ae871972
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-19 11:30:10 -05:00
Mike Lockwood
413577d860 MTP: Fixes to allow file transfers > 4 gigabytes
BUG: 3198248

Change-Id: I6f11c79a19d7bdd63718a7370939124b1262d221
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-17 16:43:24 -05:00
Mike Lockwood
0b58c19840 MTP: Set correct format for abstract audio playlists
Fixes a bad interaction with the media scanner that could result in
playlists getting duplicated or deleted after rebooting.

BUG: 3175649

Change-Id: I970234e86b24ac17d069aca085683d988abc7881
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-17 15:42:09 -05:00