History log of /frameworks/base/media/jni/android_mtp_MtpServer.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d9f3005fc3d3e6544e5e94052d9229413b0181d1 28-Mar-2018 Jerry Zhang <zhangjerry@google.com> Fix Unicode handling.

Change type usages based on changes
in libmtp.

Bug: 70546563
Test: Mtp works, tests pass
Change-Id: Id38c30e3a1311328ec2293792ae0866da2cf90be
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
6d319b8aaa961862afac48010d96d03afb11fa1c 07-Dec-2017 Jerry Zhang <zhangjerry@google.com> Write descriptors for Mtp in UsbService

The current model for setting up a functionfs
function is:

UsbDeviceManager#setCurrentFunctions() ->
intent is sent to MtpReceiver to write the descriptors ->
init/hal waits for descriptors to write, then pulls up gadget ->
Gadget is configured, a USB_STATE intent starts MtpServer

The main downside of this is a lack of reliability because
the Mtp process could be killed at any point. Normally, a
gadget is unbound if its control endpoint is closed. no_disconnect
works around this, but is still a little janky. In addition, the
extra intent delays the startup of the gadget.

With the new model, UsbDeviceManager writes the descriptors
on initialization. Since it is a system service, it won't be killed.

UsbDeviceManager#setCurrentFunctions() ->
init/hal pulls up gadget ->
Gadget is configured, a USB_STATE intent starts MtpServer
MtpServer calls UsbManager#getControlFd to get a dup of the control
endpoint.

Also modify permissions so system server can access mtp files.

Bug: 72877174
Test: Change usb configurations to ptp/mtp
Change-Id: Id17d2b5930f4e1f37ec1b4f00add9d594174ad49
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
f9c5c2574d95b6d233ebae8beae110f4e15c52c5 17-Aug-2017 Jerry Zhang <zhangjerry@google.com> Add MtpStorageManager for monitoring filesystem events

MtpStorageManager keeps track of file information and
send notifications for new files. MtpDatabase now uses
this instead of MediaProvider for getting object information,
although some operations are still reflected into MP.

Since MtpStorageManager handles storage ids, remove
that field from StorageVolume and VolumeInfo.

Clean up a lot of the jni code for MtpDatabase.

Bug: 63143623
Test: Test every MtpOperation in a variety of situations on Linux and
Windows. Also use the shell to manipulate files. Verify that the cache
is consistent throughout, and the operations behave as expected. Verify
files created by the shell appear.
Test: adb shell am instrument -w android.mtp /android.support.test.runner.AndroidJUnitRunner
Change-Id: Id4ea810047b0c323399cd833047733e5daafb30a
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
def7b1930013e31e85bed904ff38cc3af71e75b2 17-Oct-2017 Jerry Zhang <zhangjerry@google.com> Add storageId to moveObjects

When moving between different storages, the storageId
must be changed as well.

Bug: 67028892
Test: Move between storages with virtual sdcard.
Change-Id: Ie82aa8d53686bfffb7c26b46a49524a00f2f0214
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
2279b2534272282a5b5152723235da397e49195c 19-Jul-2017 Steven Moreland <smoreland@google.com> frameworks/base: use proper nativehelper headers

libnativehelper exports headers under nativehelper. These were
available before incorrectly as global headers in order to give
access to jni.h.

Test: modules using frameworks/base find headers
Bug: 63762847
Change-Id: I0f9f231acdebe460f279135462f43d3e32eff64d
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
abdc2b47b3b6736e202663dee93f37e53f4e3ebf 21-Dec-2016 Alex Klyubin <klyubin@google.com> Make users of MtpServer fill in DeviceInfo field values

This is part of weaning apps off accessing system identifiers via
system properties API. Apps should use android.os.Build API instead.

Bug: 33700679
Test: Enable MTP mode then check that mtp-detect output same as before this commit
Change-Id: I4e6696cdee18b9c3e987c432c095911e85a997db
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
bb598ee16f4b61978c88358e8f96153395cdb7ad 24-Oct-2016 Jerry Zhang <zhangjerry@google.com> Modify UsbDeviceManager stack to allow MtpServer to use FunctionFS drivers.

Functionfs requires MtpServer to write descriptors before the device can be
configured. This adds a new configure call that will occur only when
functions are changed (new argument added to updateUsbStateBroadcast for this)
and be called after sys.usb.config is changed but before the waitForState
call to ensure compatibility with configfs devices.

Bug: 30976142
Change-Id: I7e94a5847d3b19c0fd75139e1b15a3f2a1cea01d
Test: Manual
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
76f6a86de25e1bf74717e047e55fd44b089673f3 19-Sep-2015 Daniel Micay <danielmicay@gmail.com> constify JNINativeMethod function pointer tables

Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
4048a4bcb1ea709ddb83a4fde3ff5c53e642f7d0 23-Nov-2014 Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> Remove unused variables and functions, don't warn about unused parameters

Remove unused variables and static functions clang complains about,
disable warnings about unused parameters (needed for clang and for gcc
with -Wextra enabled)

Change-Id: I76a22cd0158b3c7375c54e3d4d15bc1ac448591e
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
56c85244b9be0fc6f6c2baf5f9a53f2364d5ec5e 07-Mar-2014 Mike Lockwood <lockwood@google.com> MTP: Add support for battery level device property

Bug: 7342482

Change-Id: I810e55fe9695e2206816f57334ad14f65e9c641d
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
e2e59326f13cf291bf5b37989390fd2a55a94f0c 17-Dec-2013 Ashok Bhat <ashok.bhat@arm.com> AArch64: Use long for pointers in MTP classes

For storing pointers, long is used in MTP classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: I67805547251722e7b77611d47d0bb632a64d3e6d
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
3762c311729fe9f3af085c14c5c1fb471d994c03 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
dcc31946f2b78be4bf95b1cace2e2c211f027e72 11-Jul-2011 Mike Lockwood <lockwood@android.com> 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
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
7a59dd2ce33b46cbc73eef964ddb4272ea1da8d1 11-Jul-2011 Mike Lockwood <lockwood@android.com> 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>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
7d40d42a364f520da853b41956b0a18ed172491b 21-Jun-2011 Mike Lockwood <lockwood@android.com> MTP: Add support for PTP variant of GetDeviceInfo result.

Change-Id: I09f86fda768b7697665e401adb9516588859bf59
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
aa48835ce9a84d9d587d7a4b10ee6ea7c00e00ec 08-Jun-2011 Mike Lockwood <lockwood@android.com> MTP: Remove obsolete setPtpMode support

PTP mode will be implemented as a separate USB function instead.

Change-Id: I9304c1936c70604ab2ed9704c6b95e11b61f5ba2
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
e6f3f54e05ac773cacd146a9cc69d758d031271a 16-May-2011 Mike Lockwood <lockwood@android.com> resolved conflicts for merge of b107f4de to master

Change-Id: I0290c8517562bcbba7ac1f6ed358011c8e7e250e
51690544aaeee82b1c50232cd57d50038b77f0c4 10-May-2011 Mike Lockwood <lockwood@android.com> MTP: Have GetStorageInfo command return correct storage type for removable storage

Change-Id: I09b548483c12080e7d77970babcae2eef379f2f4
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
7ae938be1b4fb8938f0f438cfd611cd9ed0da513 05-Apr-2011 Mike Lockwood <lockwood@android.com> 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>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
3977472d9f3380a8323156dbc7d0090cf2f2d310 06-Apr-2011 James Dong <jdong@google.com> Handle the failure from GetStringUTFChars()

Change-Id: I9eb0f9f0fd2fa5116e7be80b1fa2ed4a95521b9d
related-to-bug: 4139926
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
b239b683765f63d79e74b8ba2a8cc2855f236536 05-Apr-2011 Mike Lockwood <lockwood@android.com> 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: Iffb66ed156ef5bc80b14228af78fbacee7734360
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
66e57f6aa9d206552e9b154bf00a17d6efae7fb0 18-Feb-2011 Mike Lockwood <lockwood@android.com> MTP: Disable MTP when the keyguard is locked and secure

BUG: 3402847

Change-Id: I6c77efe18f525cd0af37911c8b6aac4f17352552
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
467ca0de6d7fd55787a37de9dfd7e5325e1c3c6f 18-Feb-2011 Mike Lockwood <lockwood@android.com> MTP: Add support for dynamically adding and removing storage units

BUG: 3402847

Change-Id: I7da266061d949abcb6bb11c6faaa47b5e4a2a977
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
071b2b6739c83d3de806cda5d7be2aba33fde1af 25-Jan-2011 Mike Lockwood <lockwood@android.com> MTP: Fix race conditions in MtpServer JNI code

Make sure previous MtpThread has exited before starting another to avoid
EBUSY opening MTP kernel driver.

BUG: 3317803

Change-Id: I81dcbac42bcf5f680ed1b1469839bc0b0e49d53d
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
f26a586c86b097f975e26fe526ead564ad011bd0 22-Jan-2011 Mike Lockwood <lockwood@android.com> Remove MTP related log spam

Change-Id: I9de1792cbeec07fa5ab42ff9a10813f0c3d30fc1
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
897f894e88a3a1c9010309f04c6bf466125ff818 19-Jan-2011 Mike Lockwood <lockwood@android.com> MTP: Close and reopen driver file after an error.

BUG: 3368665

Change-Id: Ib1580c0e98a4d192aa0c213406fd3bafae597ec0
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
a1c9180461a819f0515ec92a72d8ebfe462d977f 19-Jan-2011 Mike Lockwood <lockwood@android.com> MTP: Fix problem with MTP starting up on the first try.

BUG: 3361230

Change-Id: Ibc2e8adf24a14ea18385b306e786a77983ff8f5b
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp
0cd0136d440cf6ad9d5fab430269116786e671ec 30-Dec-2010 Mike Lockwood <lockwood@android.com> Move MTP Java classes to android.mtp.* package.

Change-Id: Ib18bcaabf314241a95e517d0b93be5845d988e2c
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/jni/android_mtp_MtpServer.cpp