History log of /packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9aecbd92265fe74a29d47866abbb233c1454effc 07-Apr-2016 Daichi Hirono <hirono@google.com> Cleanup MtpService#onStartComamnd.

Previously MtpService creates MtpDatabase even if it is not used by
MtpServer. Since MtpServer has a responsibility to release MtpDatabase,
if only MtpDatabase is created, the database will be leaked.

Change-Id: I387f813af5e7a8bb1bb0acc3fce70b44b7a97fa5
Fix: 28030321
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
bc640a0889da34c67b1eb298fe9de04609fd78b6 10-Jul-2015 Jeff Sharkey <jsharkey@android.com> MtpService always expects a start intent.

Return START_REDELIVER_INTENT to make sure we always get the intent
if we're ever killed and restarted.

Bug: 22349167
Change-Id: I696284b8d55a8c8d1fb2362cd769981ae0d45366
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
40fef25a59cc7a36b99857b756befc36e6996845 08-Jul-2015 Jeff Sharkey <jsharkey@android.com> Generate stable MTP storage IDs.

It ends up that MediaProvider is persisting MTP storage IDs in its
database, so we need to make sure we generate stable IDs over time,
otherwise we can end up looking into a black hole.

Bug: 22256092
Change-Id: Ia419c37f87c7c0aa59ef0de530fd219c82988f6c
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
1469c78b58e40d0400487e61078b1297899d8956 10-Jun-2015 Nick Kralevich <nnk@google.com> Fix USB access control when adb is disabled.

When adb is disabled, the default usb mode would be "none", which
would turn off the driver and prevent UsbDeviceManager from receiving
any new USB connect / disconnect messages. This prevents the user
from ever enabling MTP and sharing data when adb is turned off.

As discussed in bug 21429947, we work around this problem by keeping
the USB driver in MTP mode most of the time, so that we continue to
receive USB connect / disconnect messages.

To avoid leaking confidential user photos, this change honors the
unlock state sent to us by the UsbDeviceManager code. We only expose
user data if explicitly authorized by the user. MTP being enabled
is decoupled from data being exposed on the USB connection.

Bug: 21429947
Change-Id: I495011aa4e3e18c5e5e6fe7b9d0e1a3efe747ee7
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
1e45d525d1e521a0b1d425d53f1cda773fd203d3 27-Mar-2014 Marco Nelissen <marcone@google.com> Unset server before database is discarded.

This fixes a broadcastreceiver leak.
b/13622801

Change-Id: If9da147163c8f819eae66f97424a37e6f6f6d3aa
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
bcbcb91c4cac69658faebd6e45ca6490d944778a 07-Mar-2014 Mike Lockwood <lockwood@google.com> MTP: Add support for device property changed notifications

Bug: 7342482
Change-Id: I56851a97303a72e999bdff009a59a2924f586e69
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
e89c3f8afe178cf31457917e13b017e8ff76dc52 19-Nov-2012 Marco Nelissen <marcone@google.com> Perform ACTION_USER_PRESENT processing in a thread

b/7561695

Change-Id: I9bce548caa2f6cc9a380495bfb0058bfc3122ebd
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
8efd65fe64c7978534bb549b2329068a2f8c5075 17-Sep-2012 Jeff Sharkey <jsharkey@android.com> Multi-user MTP, handle secondary user boot.

Watch for BOOT_COMPLETED, and dispatch any current USB state or
mounted volumes which may have already occured. This specifically
handles starting of secondary users.

The current MTP kernel driver at /dev/mtp_usb is exclusive, meaning
only one process can have it open. To solve this, the framework
cycles the USB host stack when switching users, giving the new
user's media process a chance to claim the kernel device. We only
start an MtpServer when we're the active user.

Bug: 6925114
Change-Id: Idfcda09aed88140bb470a110a9e4434f5b79abdd
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
57b65f10aaafc4bf42a0fa59eb2bbe6c8371c2e6 12-Sep-2012 Jeff Sharkey <jsharkey@android.com> Leave trigger intact during upgrade.

Change-Id: I55a93be5e1edd0f00c318d07363242388936aa63
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
395ad2597601ccf285cfe679c7263a1b1feee231 09-Sep-2012 Jeff Sharkey <jsharkey@android.com> Include user identifier in external storage paths.

When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.

Bug: 7131382
Change-Id: I85f9eeed418a4fcced6633c579642e947fba65d7
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
8d13ca8552efd8292099a7bf5a30c0e0d18a60e7 20-Jul-2012 Chuanxiao Dong <chuanxiao.dong@intel.com> MtpService: check primary storage status when use it in PTP mode

Using single storage solution means its primary storage is physical SD
card. So, it is possible for user to insert a non-Vfat SD card to make
primary storage not mounted.
So, before using primary storage in PTP mode, let's have a check first

Change-Id: I3932c16399675232d8b2329c8e30cf6030b3586e
Author: Chuanxiao Dong <chuanxiao.dong@intel.com>
Signed-off-by: Xiaokang Qin <xiaokang.qin@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 30725
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
9681e238cd39c3cfbbd63d47d26a1d9bff9f09e5 24-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6522190 MountService should respond to configuration changes ("INTERNAL STORAGE" string should be translated dynamically)

- use an ID instead of a String for StorageVolume description
- use this ID for getting the correct localized version of the description string

Change-Id: I7f1b1cf6c953442e3c47e54ed4ffbb4498f4cf78
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
55bf981b5231b0831a146ba67dc16d9f55c67154 23-May-2012 Mike Lockwood <lockwood@google.com> MtpService: Recreate MtpStorage objects each time MTP starts

This will allow recomputing the volume description in case the locale has changed

Bug: 6522190
Change-Id: Icc055ae3404841582285c0f2a153d5ee10ebcc6d
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
1e950b8090d90bbf92e528a974ecb8c5c48dff84 01-Dec-2011 Mike Lockwood <lockwood@google.com> Only allow access to Pictures and DCIM directories in PTP mode

Change-Id: Ie1ef3f585d1847df9da49078a7f34e922ee69777
Bug: 5527220

Signed-off-by: Mike Lockwood <lockwood@google.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
573171a69cb8238af817450a3a7679bdfc953749 13-Jul-2011 Mike Lockwood <lockwood@android.com> MtpService: Adjust for change to MtpServer lifecycle

Change-Id: Ic68d1e07b672ae6d5c1db90c7d1ab4168c933f8d
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
30f6d0a1e6168f9dfda9856408dac81e9f151200 21-Jun-2011 Mike Lockwood <lockwood@android.com> Fix NPE when starting MTP service

Change-Id: I8578cd081410f570904e58badd934814395069a1
Bug: 4771333

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
6fcef4f5098c35a94cf0f17b6dd2b99149d2296c 21-Jun-2011 Mike Lockwood <lockwood@android.com> MTP: Pass PTP vs MTP mode to MtpServer

Change-Id: I16cd5d65255f72fd4565da27e558bad9a1ba9e1a
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
9f787704a1c3b8786ca9c5118a9b3a43d0dee9d3 08-Jun-2011 Mike Lockwood <lockwood@android.com> Add support for new PTP USB function

Change-Id: I5a89ef23b9b6feccf29c7610c0a4a7e97877c041
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
2c9146bec4fc04e49e1c3229444023851cdce81b 17-May-2011 Mike Lockwood <lockwood@android.com> Adjust MtpStorage constructor

Change-Id: I33c2f552c24d30eb4e927fdfd092067bff9e8cab
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
c1d3f21e4325998069edfb57975efd68b23a161c 11-May-2011 Mike Lockwood <lockwood@android.com> MtpService: Pass isRemovable flag to MtpStorage constructor.

Change-Id: Icdc15b2da542173f26d700aadf3257a61683ad81
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
c47e4f2921312098eddc5fe49b080e0f2df60e81 10-May-2011 Mike Lockwood <lockwood@android.com> Update to new Storage Manager volume list

Change-Id: I2156727522e1987be690439371a43351f5be741f
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
76feb6a4ede71bcfde693f1ae046dfe3fcf91a8f 07-Apr-2011 Mike Lockwood <lockwood@android.com> DO NOT MERGE MtpService: remove some logging

Change-Id: Ib5f3a2b9982432c3111866eecb222265b1db64dc
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
d3709e80446eb8abc3bb9c60db0d5c9473930611 05-Apr-2011 Mike Lockwood <lockwood@android.com> DO NOT MERGE Add support for multiple volumes to the media provider and MTP

In MTP each volume will appear as a separate storage unit.
However, in the provider, the database provides a unified view all the volumes.
We use the new storage_id column to tell which volume a given file is on.

Still to do: run the media scanner when volumes are added or removed.

Change-Id: Ia6d1b610916438a1110b1900b66b7dca3d65d9a5
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
868c8a91b9fe8aba9e3c1f17514c3aa1022307d5 18-Feb-2011 Mike Lockwood <lockwood@android.com> MTP: Disable MTP when the keyguard is locked and secure

BUG: 3402847

Change-Id: Ib64db4bc9bf9aa9a66fa42d4b6ec950f8560cb77
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
044ba53a65fd083a0f6b5b0b477e1215b5202e10 22-Jan-2011 Mike Lockwood <lockwood@android.com> Remove MTP related log spam

Change-Id: Ib0e86b7eb04581fd297ff1f1de6020545ca8ad11
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
819cafdb3d4c3ce8a74d3b572b8ca0a0b639e8b2 22-Jan-2011 Mike Lockwood <lockwood@android.com> MTP: Clean up MtpService life cycle

Improves reliability when connecting to Windows XP

BUG: 3331077

Change-Id: I9e96f782e6c37d718142107068a928c9069ceaa3
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
17ad80b32f839ccddac3911799ff732d1ca3a006 12-Jan-2011 Mike Lockwood <lockwood@android.com> Media Provider and MTP now run on emulated /mnt/sdcard file system instead of /data/media

Change-Id: I78ac177ebe3bdc2ddf537f8b8e0a18128799c390
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
90345783ad297da6059398cab174687de6f36a5b 30-Dec-2010 Mike Lockwood <lockwood@android.com> Move MTP Java classes to android.mtp.* package.

Change-Id: Ief5f00ed68e4c4a36ea5be4456d8e3b655ac7726
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
3b3006c590def1b5a61d015ea62544f4d9b9baa8 12-Dec-2010 Mike Lockwood <lockwood@android.com> MTP: Add support for MTP reserve storage setting

BUG: 3250924

Change-Id: I9cecd210caba4ed2d484419171c14f2ce887f5c4
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
9114d7e6e7536580b5c6e01fbcd5287e9643b7e4 10-Dec-2010 Mike Lockwood <lockwood@android.com> Rename android.hardware.Usb to android.hardware.UsbManager

Change-Id: Ifac198bc3ec9c3c1ed8515c827f0d8e9bfeae47d
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
685aac2d437ef229f81b167ffa1dae95fe2d1a97 09-Dec-2010 Mike Lockwood <lockwood@android.com> Finish implementing the PTP mode flag

This is used to make the device appear as a PTP device instead of MTP.

Change-Id: Ie544852d87ff34540154e5cb6fa77a5eedf93a99
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
d829c50ab113237fe1c547d74e8317ae26fd2ad4 11-Oct-2010 Mike Lockwood <lockwood@android.com> Update MtpDatabase constructor to include media storage path.

Change-Id: I556a4aba8f2fde7721e560a9a4eded4916afbe82
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
4f2186758ee1c6eaa702bf1511b233b26143b631 24-Aug-2010 Mike Lockwood <lockwood@android.com> Add support for fuse based SD card emulation

On devices with no SD card we emulate external storage with a directory
on the internal data partition. For backward compatibility purposes
(mainly emulating file system permissions), the internal directory is
mirrored at the /mnt/sdcard mount point via FUSE.

The problem now is that files can exist in two places on the device's
file system. To avoid the performance penalty of the FUSE emulation,
the media provider and MTP will use paths to real files in the /data/media
directory. To support applications that use the legacy location,
all paths that begin with /mnt/sdcard will be remapped to the real location
in /data/media internally within the media provider.

Change-Id: I81cada1bf65a3d4b28c7178214116d4a78208ed0
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
3d8bf05677c11764474df82ec5dc912c9e746b0a 31-Jul-2010 Mike Lockwood <lockwood@android.com> Fix a copy & paste error from my last change.

Change-Id: Ic389ce6ac1a1b50309433283f0e6a26e5b62b2c3
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
abf5daf6a8c2f9441af98b489398a476e7c6564c 31-Jul-2010 Mike Lockwood <lockwood@android.com> MTP: Don't start MTP server unless MTP is enabled and connected.

In particular, start less of MTP on devices that do not have MTP support.
Also do not send "object added" events to the host when the new object
was sent via MTP.

BUG: 2883217

Change-Id: Ibf7ea72f2ea6144b234708fdb89bd7d169572aac
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
d186c64cdd590e6491ee46dd8fcd52600d2edc5c 14-Jul-2010 Mike Lockwood <lockwood@android.com> Implement MTP device to host notifications when files are added and removed.

Now MTP events are sent to the host when objects are added and deleted
due to device-side changes (rather than MTP initiated).

Also clean up MTP database upgrade path, fixing bug 2841422
This change is incompatible with the state of master over the last couple weeks
but will not be a problem for upgrades from earlier releases.

BUG: 2841422

Change-Id: I138d252e9b2b01371711eb7db723a908dc97e75b
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
b78ad0d07a40f0d72dbe6c9ff365ddcfef316eb0 03-Jul-2010 Mike Lockwood <lockwood@android.com> Support for serving MTP device support from media provider database

Add new "MTP Objects" table to support MTP.
This supports basic MTP file enumeration.
Adding and deleting files and accessing media file metadata not yet implemented.

Change-Id: I408d7b8e9a41786b7d37fb014bab7280dd22ef59
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
2bf937a11e9f9d8d12fa008baeb9b146563f7c38 02-Jul-2010 Mike Lockwood <lockwood@android.com> MTP: Fix database path computation.

Change-Id: I3fd351bdcdb76665e76bb3fda1c6a0298517302e
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
abf8d09064cdc380d4996f5022d3a20eb4448ed1 29-Jun-2010 Mike Lockwood <lockwood@android.com> Start moving MTP device support into the media provider process.

Change-Id: I9ce28ae0d92729fe7707d0fb1f4b3dfc2c77ca24
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java